App
|
Třída zapouzdřuje veškeré funkce pro alpha blending bitmap pomocí statických metod. More...
#include <Blender.hpp>
Public Member Functions | |
Blender () | |
Konstruktor, vzhledem k rize statické povaze třídy nadbytečný. | |
virtual | ~Blender () |
Virtuální destruktor, nemá opodstatněni, jen ze slušnosti. | |
Static Public Member Functions | |
static int | blendTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_4x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig) |
Prolne bitmapu do cílové. | |
static int | blendTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_4x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig, double alpha) |
Prolne bitmapu do cílové s dodatečnou průhledností. | |
static int | blendTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, px_4x8bit *src, Rect dstRect) |
static int | blendTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, px_4x8bit *src, Rect dstRect, double alpha) |
static int | addTo (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig) |
Přičte bitmapu k cílové bitmapě. | |
static int | addTo (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig, double alpha) |
Přičte bitmapu k cílové bitmapě s dodatečnou průhledností. | |
static int | addTo (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig) |
Přičtení jednokanálové bitmapy, analogie k drawTo() přes masku. | |
static int | addTo (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig, double alpha) |
Přičtení jednokanálové bitmapy, analogie k drawTo() přes masku a alphu. | |
static int | removeFrom (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig) |
Odečte bitmapu od cílové bitmapy. | |
static int | removeFrom (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig, double alpha) |
Odečte bitmapu od cílové bitmapy. | |
static int | removeFrom (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig) |
Odečtení jednokanálové bitmapy, analogie k drawTo() přes masku a alphu. | |
static int | removeFrom (TBitmap< px_1x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig, double alpha) |
Odečtení jednokanálové bitmapy, analogie k drawTo() přes masku a alphu. | |
static int | addTo (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig) |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové | |
static int | addTo (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig, double alpha) |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové | |
static int | addTo (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig) |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové | |
static int | addTo (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig, double alpha) |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové | |
static int | removeFrom (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig) |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové | |
static int | removeFrom (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect srcRect, Point srcOrig, double alpha) |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové | |
static int | removeFrom (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig) |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové | |
static int | removeFrom (TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_1x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig, double alpha) |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové | |
static int | drawTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, px_4x8bit *src, Rect mskRect, Point mskOrig) |
Kreslí v daném módu na cílovou bitmapu danou barvou s touto bitmapou jako maskou průhlednosti. | |
static int | drawTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, px_4x8bit *src, Rect mskRect, Point mskOrig, double alpha) |
Kreslí v daném módu na cílovou bitmapu danou barvou s touto bitmapou jako maskou průhlednosti a dodatečnou alphou. | |
static int | drawTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_4x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig) |
Kreslí v daném módu data ze zdrojové bitmapy na cílovou bitmapu s touto bitmapou jako maskou průhlednosti. | |
static int | drawTo (BlendMode mode, TBitmap< px_4x8bit, px_1x8bit > &dst, const TBitmap< px_1x8bit, px_1x8bit > &msk, const TBitmap< px_4x8bit, px_1x8bit > &src, Rect mskRect, Point srcOrig, Point mskOrig, double alpha) |
Kreslí v daném módu data ze zdrojové bitmapy na cílovou bitmapu s touto bitmapou jako maskou průhlednosti, navíc s využitím dodatečné průhlednosti. | |
Static Protected Member Functions | |
static int | blend_add_onech_sd (PARAMS_SD) |
Funkce realizuje přičtení jednokanálové bitmapy ke druhé (mód sd), parametry viz makra. | |
static int | blend_add_onech_sda (PARAMS_SDA) |
Funkce realizuje přičtení jednokanálové bitmapy ke druhé (mód sda), parametry viz makra. | |
static int | blend_add_onech_sdm (PARAMS_SDM) |
static int | blend_add_onech_sdma (PARAMS_SDMA) |
static int | blend_remove_onech_sd (PARAMS_SD) |
Funkce realizuje odečtení jednokanálové bitmapy od druhé (mód sd), parametry viz makra. | |
static int | blend_remove_onech_sda (PARAMS_SDA) |
Funkce realizuje odečtení jednokanálové bitmapy od druhé (mód sda), parametry viz makra. | |
static int | blend_remove_onech_sdm (PARAMS_SDM) |
static int | blend_remove_onech_sdma (PARAMS_SDMA) |
static int | blend_add_argb_sd (PARAMS_SD) |
static int | blend_add_argb_sda (PARAMS_SDA) |
static int | blend_add_argb_sdm (PARAMS_SDM) |
static int | blend_add_argb_sdma (PARAMS_SDMA) |
static int | blend_remove_argb_sd (PARAMS_SD) |
static int | blend_remove_argb_sda (PARAMS_SDA) |
static int | blend_remove_argb_sdm (PARAMS_SDM) |
static int | blend_remove_argb_sdma (PARAMS_SDMA) |
Třída zapouzdřuje veškeré funkce pro alpha blending bitmap pomocí statických metod.
Popis třídy
Třída zapouzdřuje veškeré funkce pro alpha blending bitmap pomocí statických metod. Celkově pracuje velmi nízkoúrovňově, proto jednotlivé metody vyžadují velký počet parametrů.
Třída je převážně definována pomocí maker preprocesoru, protože potřebuje definovat velké množství metod - pro každý blendovací mód je z hlediska rychlosti dobré mít více metod (v závislosti na parametrech) takových, aby pokud možno nevolali v tělech cyklů, které prochází jednotlivé obrazové body žádné funkce.
Od inlinování funkcí bylo upušťeno vzhledem k tomu, že je to jen doporučení pro překladač, a navíc většina funkcí se liší jen v drobných detailech, proto následující přístup umožňuje lepší optimalizaci, ikdyž za cenu snížení čitelnosti kódu, a ztrátu možnosti generovat rozumnou dokumentaci Doxygenem.
Typy parametrů pro blendování ARGB_Bitmap
Pro každý mód prolnutí existují následující funkce, které se liší použitými parametry:
Pro každý typ funkce (dle parametrů) existuje příslušný selektor, který vrací odpovídající funkci na základě požadovaného módu.
Parametry příslušných funkcí jsou popsány u příslušných maker, která je definují.
Typy parametrů pro blendování ARGB_Bitmap
Pro jednokanálové bitmapy existují následující funkce, které se liší použitými parametry. Jejich vlastnosti jsou stejné jako u funkcí pro ARGB_Bitmap.
Definition at line 85 of file Blender.hpp.
app::Blender::Blender | ( | ) |
Konstruktor, vzhledem k rize statické povaze třídy nadbytečný.
Definition at line 13 of file Blender_protected.cpp.
|
virtual |
Virtuální destruktor, nemá opodstatněni, jen ze slušnosti.
Definition at line 14 of file Blender_protected.cpp.
|
static |
Přičte bitmapu k cílové bitmapě.
Výsledek operace přičtení vybrané oblasti z bitmapy na určené místo v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je zdrojová nad cílovou). Vybraná oblast je určena obdélníkem srcRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již nepřičítají). Pozice kam se data přičítají je určena bodem srcOrig, který určuje, kam se v ss cílové bítmapy má umístit přičítaná oblast.
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmapy. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
Přičítání je ekvivalentní výpočtu alphy pro kombinaci dvou bitmap.
dst | Cílová bitmapa. |
srcRect | Vybraná oblast. |
srcOrig | Počátek cílové oblasti. |
Definition at line 113 of file Blender_public.cpp.
|
static |
Přičte bitmapu k cílové bitmapě s dodatečnou průhledností.
Výsledek operace přičtení vybrané oblasti z bitmapy na určené místo v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je zdrojová nad cílovou). Vybraná oblast je určena obdélníkem srcRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již nepřičítají). Pozice kam se data prolínají je určena bodem srcOrig, který určuje, kam se v ss cílové bítmapy má umístit přičítaná oblast. Hodnota zdrojového kanálu je při výpočtu dodatečně násobena hodnotou alpha
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmapy. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
Přičítání je ekvivalentní výpočtu alphy pro kombinaci dvou bitmap s dodatečnou alphou.
dst | Cílová bitmapa. |
srcRect | Vybraná oblast. |
srcOrig | Počátek cílové oblasti. |
alpha | Dodatečná průhlednost. |
Definition at line 139 of file Blender_public.cpp.
|
static |
Přičtení jednokanálové bitmapy, analogie k drawTo() přes masku.
Definition at line 166 of file Blender_public.cpp.
|
static |
Přičtení jednokanálové bitmapy, analogie k drawTo() přes masku a alphu.
Definition at line 196 of file Blender_public.cpp.
|
static |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové
Definition at line 355 of file Blender_public.cpp.
|
static |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové
Definition at line 381 of file Blender_public.cpp.
|
static |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové
Definition at line 408 of file Blender_public.cpp.
|
static |
Přičtení jednokanálové bitmapy k alpha kanálu čtyřkanálové
Definition at line 438 of file Blender_public.cpp.
|
staticprotected |
Definition at line 204 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 211 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 218 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 225 of file Blender_protected.cpp.
|
staticprotected |
Funkce realizuje přičtení jednokanálové bitmapy ke druhé (mód sd), parametry viz makra.
Definition at line 126 of file Blender_protected.cpp.
|
staticprotected |
Funkce realizuje přičtení jednokanálové bitmapy ke druhé (mód sda), parametry viz makra.
Definition at line 134 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 142 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 150 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 232 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 239 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 246 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 253 of file Blender_protected.cpp.
|
staticprotected |
Funkce realizuje odečtení jednokanálové bitmapy od druhé (mód sd), parametry viz makra.
Definition at line 158 of file Blender_protected.cpp.
|
staticprotected |
Funkce realizuje odečtení jednokanálové bitmapy od druhé (mód sda), parametry viz makra.
Definition at line 166 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 174 of file Blender_protected.cpp.
|
staticprotected |
Definition at line 182 of file Blender_protected.cpp.
|
static |
Prolne bitmapu do cílové.
Výsledek operace prolnutí vybrané oblasti z bitmapy na určené místo v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je zdrojová nad cílovou). Vybraná oblast je určena obdélníkem srcRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již neprolínají). Pozice kam se data prolínají je určena bodem srcOrig, který určuje, kam se v ss cílové bítmapy má umístit prolínaná oblast.
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmapy. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
mode | Mód prolnutí. |
dst | Cílová bitmapa. |
src | Zdrojová bitmapa. |
srcRect | Vybraná oblast. |
srcOrig | Počátek cílové oblasti. |
Definition at line 10 of file Blender_public.cpp.
|
static |
Prolne bitmapu do cílové s dodatečnou průhledností.
Výsledek operace prolnutí vybrané oblasti z bitmapy na určené místo v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je zdrojová nad cílovou). Vybraná oblast je určena obdélníkem srcRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již neprolínají). Pozice kam se data prolínají je určena bodem srcOrig, který určuje, kam se v ss cílové bítmapy má umístit prolínaná oblast. Na alpha kanál zdrojové bitmapy je pří výpočtu dodatečně násoben hodnotou alpha.
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmapy. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
mode | Mód prolnutí. |
dst | Cílová bitmapa. |
srcRect | Vybraná oblast. |
srcOrig | Počátek cílové oblasti. |
alpha | Dodatečná průhlednost. |
Definition at line 42 of file Blender_public.cpp.
|
static |
Definition at line 75 of file Blender_public.cpp.
|
static |
Definition at line 96 of file Blender_public.cpp.
|
static |
Kreslí v daném módu na cílovou bitmapu danou barvou s touto bitmapou jako maskou průhlednosti.
Výsledek operace prolnutí konstantní hodnoty barvy při použití vybrané oblasti z masky na určené místo v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je barva nad cílovou). Vybraná oblast masky je určena obdélníkem mskRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již nepoužijí). Pozice kam se data prolínají je určena bodem mskOrig, který určuje, kam se v ss cílové bítmapy má umístit prolínaná oblast. Na alpha kanál konstantní barvy je pří výpočtu dodatečně násoben hodnotou alpha odpovídající hodnotě masky na dané pozici.
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmap. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
mode | Mód prolnutí. |
dst | Cílová bitmapa. |
src | Konstantní hodnota pixelů, která se má použít jako zdroj. |
mskRect | Vybraná oblast (masky). |
mskOrig | Počátek cílové oblasti. |
Definition at line 630 of file Blender_public.cpp.
|
static |
Kreslí v daném módu na cílovou bitmapu danou barvou s touto bitmapou jako maskou průhlednosti a dodatečnou alphou.
Výsledek operace prolnutí konstantní hodnoty barvy při použití vybrané oblasti z masky na určené místo v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je barva nad cílovou). Vybraná oblast masky je určena obdélníkem mskRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již nepoužijí). Pozice kam se data prolínají je určena bodem mskOrig, který určuje, kam se v ss cílové bítmapy má umístit prolínaná oblast. Na alpha kanál konstantní barvy je pří výpočtu dodatečně násoben hodnotou alpha odpovídající hodnotě masky na dané pozici.
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmap. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
mode | Mód prolnutí. |
dst | Cílová bitmapa. |
src | Konstantní hodnota pixelů, která se má použít jako zdroj. |
mskRect | Vybraná oblast (masky). |
mskOrig | Počátek cílové oblasti. |
Definition at line 661 of file Blender_public.cpp.
|
static |
Kreslí v daném módu data ze zdrojové bitmapy na cílovou bitmapu s touto bitmapou jako maskou průhlednosti.
mode | Mód prolnutí. |
dst | Cílová bitmapa. |
src | Zdrojová bitmapa.. |
mskRect | Vybraná oblast (masky v jejícm ss). |
srcOrig | Počátek zdrojové oblasti (v ss cíle) |
mskOrig | Počátek oblasti masky (v ss cíle). |
Definition at line 674 of file Blender_public.cpp.
|
static |
Kreslí v daném módu data ze zdrojové bitmapy na cílovou bitmapu s touto bitmapou jako maskou průhlednosti, navíc s využitím dodatečné průhlednosti.
mode | Mód prolnutí. |
dst | Cílová bitmapa. |
src | Zdrojová bitmapa.. |
mskRect | Vybraná oblast (masky v jejícm ss). |
srcOrig | Počátek zdrojové oblasti (v ss cíle) |
mskOrig | Počátek oblasti masky (v ss cíle). |
alpha | Dodatečná průhlednost. |
Definition at line 711 of file Blender_public.cpp.
|
static |
Odečte bitmapu od cílové bitmapy.
Výsledek operace odečtení vybrané oblasti z bitmapy od určeného místa v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je zdrojová nad cílovou). Vybraná oblast je určena obdélníkem srcRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již neodečítají). Pozice odkud se data odečítají je určena bodem srcOrig, který určuje, kam se v ss cílové bítmapy má umístit odečítaná oblast.
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmapy. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
dst | Cílová bitmapa. |
srcRect | Vybraná oblast. |
srcOrig | Počátek cílové oblasti. |
Definition at line 227 of file Blender_public.cpp.
|
static |
Odečte bitmapu od cílové bitmapy.
Výsledek operace odečtení vybrané oblasti z bitmapy od určeného místa v cílové bitmapě se zapíše do cílové bitmapy (pořadí vrstev je zdrojová nad cílovou). Vybraná oblast je určena obdélníkem srcRect (ss této bitmapy, body určené pravou a dolní maximální souřadnicí se již neodečítají). Pozice odkud se data odečítají je určena bodem srcOrig, který určuje, kam se v ss cílové bítmapy má umístit odečítaná oblast. Hodnota zdrojového kanálu je při výpočtu dodatečně násobena hodnotou alpha
Je možné zadat požadavek na prolnutí takový, že by se mělo prolínat z / mimo platnou oblast Bitmapy. V tom případě budou oblasti adekvátně ořezány, aby se prolínala pouze platná data do platné oblasti.
dst | Cílová bitmapa. |
srcRect | Vybraná oblast. |
srcOrig | Počátek cílové oblasti. |
alpha | Dodatečná průhlednost. |
Definition at line 253 of file Blender_public.cpp.
|
static |
Odečtení jednokanálové bitmapy, analogie k drawTo() přes masku a alphu.
Definition at line 280 of file Blender_public.cpp.
|
static |
Odečtení jednokanálové bitmapy, analogie k drawTo() přes masku a alphu.
Definition at line 310 of file Blender_public.cpp.
|
static |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové
Definition at line 469 of file Blender_public.cpp.
|
static |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové
Definition at line 495 of file Blender_public.cpp.
|
static |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové
Definition at line 522 of file Blender_public.cpp.
|
static |
Odečtení jednokanálové bitmapy od alpha kanálu čtyřkanálové
Definition at line 552 of file Blender_public.cpp.