Składnia
#include <sdl/SDL.h>
int SDL_SetColors( SDL_Surface * surface, SDL_Color * colors, int firstcolor, int ncolors );
Argumenty
Zwracana wartość
Jeżeli funkcja jest powierzchnią, która nie posiada palety kolorów to funkcja nie wykonuje niczego i zwraca wartość 0.
Jeżeli wszystkie przekazane kolory są zgodne z dostępną paletą kolorów obecnego trybu graficznego, funkcja zwróci wartość 1.
Jeżeli którykolwiek z przekazywanych kolorów nie jest zgodny z dostępną paletą kolorów obecnego trybu graficznego, funkcja zwróci wartość 0.
Funkcja zawsze zwróci wartość 1 pod warunkiem, że funkcja
SDL_SetVideoMode została wywołana z flagą
SDL_HWPALETTE.
Opis szczegółowy
Funkcja modyfikuje fragment palety dla wskazanej 8-bitowej powierzchni.
Jeżeli przekazana powierzchnia będzie powierzchnią ekranu to domyślna paleta kolorów ekranu zostanie zaktualizowana żądanymi kolorami.
Powierzchnie ekranowe 8-bitowe utworzone z flagą
SDL_HWPALETTE posiadają dwie palety kolorów, tj.:
Dodatkowe informacje
Każda składowa koloru (R, G, B) w strukturze
SDL_Color jest 8-bitowa, co daje możliwość zdefiniowania 16777216 kolorów.
Jeżeli flaga
SDL_HWPALLETE została przekazana do funkcji
SDL_SetVideoMode to powierzchnie rysowane na ekranie posiadają zawsze prawidłowe odwzorowanie kolorów nawet jeżeli wymaga to emulacji kolorów. W przeciwnym wypadku wyświetlane kolory mogą się różnić w stosunku do oryginalnej powierzchni.
Przykład
SDL_Surface * screen;
SDL_Color colors[ 256 ];
for( int i = 0; i < 256; i++ )
{
colors[ i ].r = i;
colors[ i ].g = i;
colors[ i ].b = i;
}
screen = SDL_SetVideoMode( 640, 480, 8, SDL_HWPALETTE );
if( !screen ) {
printf( "Brak powierzchni graficznej: %s\n", SDL_GetError() );
exit( - 1 );
}
SDL_SetColors( screen, colors, 0, 256 );
Zagadnienia powiązane
SDL_Color | Reprezentuje określony kolor niezależnie od używanego formatu pikseli. (struktura) |
---|
SDL_Surface | Przechowuje informacje o powierzchni. (struktura) |
---|
SDL_SetVideoMode | Tworzy bufor będący powierzchnią ekranu. (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.