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_GLattr

SPIS TREŚCI

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

SDL_GLattr

Enumeracja atrybutów konfiguracyjnych OpenGL.

Wartości

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; szczegóły w Uwagach.
SDL_GL_MULTISAMPLESAMPLES Liczba próbek używanych wokół bieżącego piksela przy wygładzaniu wielopróbkowym; standardowo 0; szczegóły w Uwagach.
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; szczegóły w Uwagach.
SDL_GL_CONTEXT_MINOR_VERSION dalszy numer wersji kontekstu OpenGL; szczegóły w Uwagach.
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).

Przykładowy kod

SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_CreateContext(window);

Uwagi

Większość atrybutów OpenGL możesz ustawiać w normalny sposób, lecz atrybuty wymienione powyżej muszą być znane zanim SDL utworzy okno, które zostanie powiązane z kontekstem OpenGL.  Atrybuty te są ustawiane i odczytywane za pomocą SDL_GL_SetAttribute() i SDL_GL_GetAttribute().

W niektórych przypadkach atrybuty te stanowią minimalne wymagania; GL nie obiecuje, że da ci dokładnie to, o co prosiłeś. Przykładowo możliwe jest poproszenie o 16-bitowy bufor głębokości, a zamiast niego otrzymanie bufora 24-bitowego, lub poproszenie o brak bufora szablonowego, a wciąż będzie on do dyspozycji. Tworzenie kontekstu nie powinno się powieść, jeśli GL nie będzie w stanie zapewnić ci minimalnych atrybutów, które określiłeś, ale zawsze powinieneś sobie sprawdzić, co dokładnie otrzymałeś.

Wygładzanie wielopróbkowe jest rodzajem wygładzania pełnoekranowego. Wielopróbkowość standardowo jest wyłączona, lecz można ją włączyć przez ustawienie SDL_GL_MULTISAMPLEBUFFERS na 1 i SDL_GL_MULTISAMPLESAMPLES na wartość większą od 0. Typowe wartości to 2 i 4.

SDL_GL_CONTEXT_PROFILE_MASK określa rodzaj tworzonego kontekstu, natomiast SDL_GL_CONTEXT_MAJOR_VERSION i SDL_GL_CONTEXT_MINOR_VERSION określają, którą wersję. Wszystkie trzy atrybuty należy ustawić przed utworzeniem pierwszego okna, a ogólnie nie możesz zmienić wartości SDL_GL_CONTEXT_PROFILE_MASK, zanim nie usuniesz wszystkich okien utworzonych z poprzednim ustawieniem.

SDL_GL_CONTEXT_RELEASE_BEHAVIOR można ustawić na SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE lub SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH.

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.