|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2026 mgr Jerzy Wałaszek
|
SDL_ComposeCustomBlendMode
| SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby stworzyć własny tryb wtapiania dla kontekstów graficznych.
SDL_BlendMode SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor,
SDL_BlendFactor dstColorFactor,
SDL_BlendOperation colorOperation,
SDL_BlendFactor srcAlphaFactor,
SDL_BlendFactor dstAlphaFactor,
SDL_BlendOperation alphaOperation)
|
| srcColorFactor | współczynnik SDL_BlendFactor zastosowany do składowych czerwonej, zielonej i niebieskiej pikseli źródłowych. |
| dstColorFactor | współczynnik SDL_BlendFactor zastosowany do składowych czerwonej, zielonej i niebieskiej pikseli docelowych. |
| colorOperation | operacja SDL_BlendOperation używana do łączenia składowych czerwonej, zielonej i niebieskiej pikseli źródłowych i docelowych. |
| srcAlphaFactor | współczynnik SDL_BlendFactor zastosowany do składowej alfa pikseli źródłowych. |
| dstAlphaFactor | współczynnik SDL_BlendFactor zastosowany do składowej alfa pikseli docelowych. |
| alphaOperation | operacja SDL_BlendOperation używana do łączenia składowych alfa pikseli źródłowych i docelowych. |
Tryb wtapiania kontroluje sposób łączenia pikseli z operacji graficznej (źródło) z pikselami docelowymi kontekstu (przeznaczenie). Najpierw składowe kolorów źródła i przeznaczenia zostają przemnożone przez swoje współczynniki wtapiania. Następnie operacja wtapiania bierze te dwa iloczyny i oblicza wynik, który zostanie umieszczony w miejscu docelowym kontekstu (na powierzchni graficznej lub na teksturze).
Wyrażając to kodem:
dstRGB = colorOperation(srcRGB * srcColorFactor, dstRGB * dstColorFactor); dstA = alphaOperation(srcA * srcAlphaFactor, dstA * dstAlphaFactor); |
Gdzie funkcje colorOperation(src, dst) i alphaOperation(src, dst) mogą zwracać jedną z następujących wartości: src + dst, src - dst, dst - src, min(src, dst), max(src, dst).
Składowe czerwona, zielona i niebieska są zawsze mnożone odpowiednio przez pierwszą, drugą i trzecią składową z SDL_BlendFactor. Czwarta składowa nie jest używana.
Składowa alfa jest zawsze mnożona przez czwartą składową z SDL_BlendFactor. Inne składowe nie są używane w obliczeniach przezroczystości alfa.
Wspieranie tych trybów wtapiania różni się dla każdego kontekstu. Aby sprawdzić, czy określony tryb SDL_BlendMode jest wspierany, utwórz kontekst graficzny (ang. renderer) i przekaż go albo do SDL_SetRenderDrawBlendMode, albo do SDL_SetTextureBlendMode. Wrócą z błędem, jeśli wybrany tryb wtapiania nie jest obsługiwany/
Ta lista opisuje wsparcie dla własnych trybów wtapiania dla każdego kontekstu w SDL 2.0.6. Wszystkie konteksty wspierają cztery tryby wtapiania wymienione w enumeracji SDL_BlendMode.
| direct3d | Wspiera SDL_BLENDOPERATION_ADD ze wszystkimi współczynnikami |
| direct3d11 | Wspiera wszystkie operacje ze wszystkimi współczynnikami. Jednakże niektóre współczynniki tworzą nieoczekiwane wyniki z SDL_BLENDOPERATION_MINIMUM i SDL_BLENDOPERATION_MAXIMUM. |
| opengl | Wspiera operację SDL_BLENDOPERATION_ADD ze wszystkimi
współczynnikami. Wersje OpenGL 1.1, 1.2 i 1.3 nie działają poprawnie z SDL 2.0.6. |
| opengles | Wspiera operację SDL_BLENDOPERATION_ADD ze wszystkimi
współczynnikami. Współczynniki koloru i przezroczystości muszą być takie
same. Specyficzne dla implementacji OpenGL ES 1: Może również wspierać SDL_BLENDOPERATION_SUBTRACT i SDL_BLENDOPERATION_REV_SUBTRACT. Może wspierać operacje koloru i przezroczystości różne od siebie. Może wspierać współczynniki koloru i przezroczystości różne od siebie. |
| opengles2 | Wspiera operacje SDL_BLENDOPERATION_ADD, SDL_BLENDOPERATION_SUBTRACT, SDL_BLENDOPERATION_REV_SUBTRACT ze wszystkimi współczynnikami. |
| psp | Własny tryb wtapiania nie jest obsługiwany. |
| software | Własny tryb wtapiania nie jest obsługiwany. |
Niektóre konteksty graficzne nie zapewniają składowej alfa dla standardowej powierzchni graficznej. Współczynniki SDL_BLENDFACTOR_DST_ALPHA i SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA nie mają w tym przypadku żadnego wpływu.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.