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

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

Interfejs SDL2:

SDL_GL_SetAttribute

SPIS TREŚCI

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

SDL_GL_SetAttribute

Użyj tej funkcji, aby ustawić atrybuty okna OpenGL przed utworzeniem tego okna.

Składnia

int SDL_GL_SetAttribute(SDL_GLattr attr,
                        int        value)

Parametry funkcji

attr atrybut OpenGL do ustawienia; zobacz do Uwag.
value pożądana wartość dla tego atrybutu.

Wartość zwracana

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

Przykładowy kod

SDL_Window *window;
SDL_GLContext context;

SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

window = SDL_CreateWindow("OpenGL Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_OPENGL);
if (!window)
{
    fprintf(stderr, "Couldn't create window: %s\n", SDL_GetError());
    return;
}

context = SDL_GL_CreateContext(window);
if (!context)
{
    fprintf(stderr, "Couldn't create context: %s\n", SDL_GetError());
    return;
}

int r, g, b;
SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &r);
SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &g);
SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &b);

printf("Red size: %d, Green size: %d, Blue size: %d\n", r, g, b);

Uwagi

Funkcja ta ustawia atrybut OpenGL attr na wartość value. Pożądane atrybuty powinny zostać ustawione przed utworzeniem okna OpenGL. Powinieneś użyć SDL_GL_GetAttribute() do sprawdzenia ich wartości po utworzeniu kontekstu OpenGL, ponieważ otrzymane wartości mogą się różnić od zażądanych.

Parametr attr może być jedną z wartości SDL_GLattr:

SDL_GL_RED_SIZE minimalna liczba bitów dla kanału czerwonego w buforze koloru, standardowo 3.
SDL_GL_GREEN_SIZE minimalna liczba bitów dla kanału zielonego w buforze koloru, standardowo 3.
SDL_GL_BLUE_SIZE minimalna liczba bitów dla kanału niebieskiego w buforze koloru, standardowo 2.
SDL_GL_ALPHA_SIZE minimalna liczba bitów dla kanału alfa w buforze koloru, standardowo 0.
SDL_GL_BUFFER_SIZE minimalna liczba bitów rozmiaru bufora ramki, standardowo 0.
SDL_GL_DOUBLEBUFFER określa pojedyncze lub podwójne buforowanie, standardowo podwójne.
SDL_GL_DEPTH_SIZE minimalna liczba bitów w buforze głębokości, standardowo 16.
SDL_GL_STENCIL_SIZE minimalna liczba bitów w buforze szablonowym, standardowo 0.
SDL_GL_ACCUM_RED_SIZE minimalna liczba bitów kanału czerwonego w buforze akumulacyjnym, standardowo 0.
SDL_GL_ACCUM_GREEN_SIZE minimalna liczba bitów kanału zielonego w buforze akumulacyjnym, standardowo 0.
SDL_GL_ACCUM_BLUE_SIZE minimalna liczba bitów kanału niebieskiego w buforze akumulacyjnym, standardowo 0.
SDL_GL_ACCUM_ALPHA_SIZE minimalna liczba bitów kanału alfa w buforze akumulacyjnym, standardowo 0.
SDL_GL_STEREO wyjście zwykłe lub stereoskopowe 3D, standardowo zwykłe.
SDL_GL_MULTISAMPLEBUFFERS liczba buforów używana do wygładzania wielopróbkowego, standardowo 0.
SDL_GL_MULTISAMPLESAMPLES Liczba próbek używanych wokół bieżącego piksela przy wygładzaniu wielopróbkowym; standardowo 0
SDL_GL_ACCELERATED_VISUAL ustaw na 1, aby uzyskać akcelerację sprzętową, ustaw na 0, aby wymusić rysowanie programowe; standardowo dozwolone obie wartości.
SDL_GL_RETAINED_BACKING nie używane (przestarzałe).
SDL_GL_CONTEXT_MAJOR_VERSION główny numer wersji kontekstu OpenGL
SDL_GL_CONTEXT_MINOR_VERSION dalszy numer wersji kontekstu OpenGL
SDL_GL_CONTEXT_FLAGS pewna kombinacja 0 lub więcej elementów enumeracji SDL_GLcontextFlag; standardowo 0.
SDL_GL_CONTEXT_PROFILE_MASK typ kontekstu GL (Core, Compatibility, ES). Zobacz na See SDL_GLprofile; standardowa wartość zależy od platformy.
SDL_GL_SHARE_WITH_CURRENT_CONTEXT współdzielenie kontekstu OpenGL; standardowo 0.
SDL_GL_FRAMEBUFFER_SRGB_CAPABLE wymóg wyświetlacza o własnościach sRGB; standardowo 0 (>= SDL 2.0.1).
SDL_GL_CONTEXT_RELEASE_BEHAVIOR ustawia kontekst na zachowanie typu release; standardowo  1 (>= SDL 2.0.4).
SDL_GL_CONTEXT_EGL nie używane (przestarzałe).

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