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

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

SDL2

Interfejs SDL2:

SDL_BlitSurface

SPIS TREŚCI

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2. Oryginał znajdziesz pod tym adresem: https://wiki.libsdl.org/CategoryAPI.

SDL_BlitSurface

Użyj tej funkcji, aby wykonać szybkie kopiowanie pikseli na docelową powierzchnię graficzną.

Składnia

nt SDL_BlitSurface(SDL_Surface*    src,
                   const SDL_Rect* srcrect,
                   SDL_Surface*    dst,
                   SDL_Rect*       dstrect)

Parametry funkcji

src struktura SDL_Surface, z której nastąpi kopiowanie.
srcrect struktura SDL_Rect reprezentująca prostokąt do skopiowania lub NULL przy kopiowaniu zawartości całej powierzchni.
dst struktura SDL_Surface reprezentująca docelową powierzchnię dla kopiowania.
dstrect struktura SDL_Rect określająca prostokąt na powierzchni docelowej, do którego nastąpi kopiowanie, lub NULL do kopiowania na całej powierzchni.

Wartość zwracana

Zwraca 0 przy sukcesie lub ujemny kod błędu przy niepowodzeniu
; wywołaj funkcję SDL_GetError(), aby otrzymać więcej informacji.

Przykładowy kod

SDL_BlitSurface(surface, &source_rect, temp_surface, NULL);

Uwagi

Powinieneś korzystać z SDL_BlitSurface(), chyba że dokładnie wiesz, w jaki sposób wewnętrznie działa kopiowanie pikseli w SDL i jak używać innych funkcji kopiujących piksele.

Jest to funkcja publiczna i dokonuje ona sprawdzenia poprawności prostokątów oraz obcinania przed przejściem do SDL_LowerBlit().

Funkcja kopiowania pikseli nie powinna być wykonywana na zablokowanej powierzchni.

Szerokość i wysokość w srcrect określa rozmiar kopiowanego prostokąta. W dstrect używane jest tylko położenie (szerokość i wysokość są ignorowane). Kopiowanie pikseli z ujemnymi współrzędnymi dstrect zostanie odpowiednio przycięte.

Jeśli srcrect ma wartość NULL, to zostanie skopiowana cała powierzchnia. Jeśli dstrect ma wartość NULL, wtedy docelową pozycją (lewy górny narożnik) będzie (0, 0).

Docelowy prostokąt kopiowania jest zapamiętywany w dstrect po wykonaniu wszystkich przycięć (srcrect nie jest modyfikowany).

Semantyka dla powierzchni z lub bez wtapiania (ang. blending) i z kluczowaniem kolorów jest zdefiniowana następująco:

RGBA → RGB:

Tryb wtapiania powierzchni źródłowej jest ustawiany na SDL_BLENDMODE_BLEND:

alpha-blend (używając źródłowego kanału alfa i kanału alfa dla całej powierzchni) SDL_SRCCOLORKEY ignorowany.

Tryb wtapiania powierzchni źródłowej jest ustawiony na SDL_BLENDMODE_NONE:

kopiowanie RGB. Jeśli SDL_SRCCOLORKEY jest ustawiony, to kopiowanie dotyczy tylko pikseli o wartościach RGB zgodnych z kluczem koloru źródłowego, ignorując przezroczystość w porównaniu.

RGB → RGBA:

Tryb wtapiania powierzchni źródłowej jest ustawiany na SDL_BLENDMODE_BLEND:

alpha-blend (używając kanału alfa dla całej powierzchni źródłowej)

Tryb wtapiania powierzchni źródłowej jest ustawiany na SDL_BLENDMODE_NONE:

kopiowanie RGB, Ustawienie docelowego kanału alfa na źródłowy kanał alfa dla całej powierzchni.

oba:

jeśli SDL_SRCCOLORKEY jest ustawiony, to kopiowanie dotyczy tylko pikseli o wartościach RGB zgodnych z kluczem koloru źródłowego

RGBA → RGBA:

Tryb wtapiania powierzchni źródłowej jest ustawiany na SDL_BLENDMODE_BLEND:

alpha-blend (używając źródłowego kanału alfa i kanału alfa dla całej powierzchni) SDL_SRCCOLORKEY ignorowany.

Tryb wtapiania powierzchni źródłowej jest ustawiany na SDL_BLENDMODE_NONE:

kopiowanie wszystkich składowych RGBA na powierzchnię docelową.  Jeśli SDL_SRCCOLORKEY jest ustawiony, to kopiowanie dotyczy tylko pikseli o wartościach RGB zgodnych z kluczem koloru źródłowego, ignorując przezroczystość w porównaniu.

RGB → RGB:

Tryb wtapiania powierzchni źródłowej jest ustawiany na SDL_BLENDMODE_BLEND:

alpha-blend (używając kanału alfa dla całej powierzchni źródłowej)

Tryb wtapiania powierzchni źródłowej jest ustawiany na SDL_BLENDMODE_NONE:

kopiowanie RGB.

oba:

jeśli SDL_SRCCOLORKEY jest ustawiony, to kopiowanie dotyczy tylko pikseli o wartościach RGB zgodnych z kluczem koloru źródłowego

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
©2021 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.