Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek
Uaktualniono: 31.07.2022

©2022 mgr Jerzy Wałaszek
I LO w Tarnowie

Interfejs SDL2:

SDL_ComposeCustomBlendMode

SPIS TREŚCI

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.

SDL_ComposeCustomBlendMode

Użyj tej funkcji, aby stworzyć własny tryb wtapiania dla kontekstów graficznych.

Składnia

SDL_BlendMode SDL_ComposeCustomBlendMode(SDL_BlendFactor    srcColorFactor,
                                         SDL_BlendFactor    dstColorFactor,
                                         SDL_BlendOperation colorOperation,
                                         SDL_BlendFactor    srcAlphaFactor,
                                         SDL_BlendFactor    dstAlphaFactor,
                                         SDL_BlendOperation alphaOperation)

Parametry funkcji

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.

Wartość zwracana

Zwraca tryb wtapiania SDL_BlendMode reprezentujący wybrane współczynniki i operacje.

Uwagi

Funkcje SDL_SetRenderDrawBlendMode i SDL_SetTextureBlendMode akceptują SDL_BlendMode zwracane przez tę funkcję, jeśli kontekst to wspiera.

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.

Wersja

Funkcja dostępna od SDL 2.0.6.

Powiązane funkcje

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2022 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.