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 |
©2024 mgr Jerzy Wałaszek
|
SDL_CreateRGBSurface
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby przydzielić nową powierzchnię RGB.
SDL_Surface* SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask) |
flags | znaczniki są nieużywane i powinny mieć wartość 0. |
width | szerokość powierzchni. |
height | wysokość powierzchni. |
depth | głębokość koloru w bitach; zobacz do Uwag. |
Rmask | czerwona maska dla pikseli. |
Gmask | zielona maska dla pikseli. |
Bmask | niebieska maska dla pikseli. |
Amask | maska przezroczystości alfa dla pikseli. |
/* Utwórz 32-bitową powierzchnię z bajtami dla każdego piksela w kolejności R,G,B,A, czego oczekuje OpenGL w teksturach */ SDL_Surface *surface; Uint32 rmask, gmask, bmask, amask; /* SDL traktuje każdy piksel jako liczbę 32-bitową, więc nasze maski muszą zależeć od uporządkowania bajtów na danej platformie */ #if SDL_BYTEORDER == SDL_BIG_ENDIAN rmask = 0xff000000; gmask = 0x00ff0000; bmask = 0x0000ff00; amask = 0x000000ff; #else rmask = 0x000000ff; gmask = 0x0000ff00; bmask = 0x00ff0000; amask = 0xff000000; #endif surface = SDL_CreateRGBSurface(0, width, height, 32, rmask, gmask, bmask, amask); if (surface == NULL) { SDL_Log("SDL_CreateRGBSurface() failed: %s", SDL_GetError()); exit(1); } /* lub zastosuj standardowe maski głębokości: */ surface = SDL_CreateRGBSurface(0, width, height, 32, 0, 0, 0, 0); |
Parametry [RGBA]mask są maskami bitowymi używanymi do wydobywania koloru z piksela. Na przykład maska Rmask o wartości FF000000 oznacza, że składowa czerwona jest przechowywana w najbardziej znaczącym bajcie. Uzycie zer dla masek RGB ustawia standardową wartość opartą na głębokości koloru. (np. SDL_CreateRGBSurface(0,w,h,32,0,0,0,0);) Jednakże użycie zera dla Amask powoduje ustawienie Amask na 0.
Standardowo powierzchnie z maską alfa są ustawiane do wtapiania tak, jak z
SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_BLEND);
Możesz to zmienić przez wywołanie SDL_SetSurfaceBlendMode() i wybranie innego trybu wtapiania blendMode.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 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.