Co to jest GLEW i jak działa?

15

Szukam wyjaśnienia przyjaznego dla początkujących . Wyjaśnienie na oficjalnej stronie jest za krótkie i prowadzi mnie do większej liczby pytań niż odpowiedzi:


  • Co to jest GLEW?

Strona programisty GLEW mówi:

OpenGL Extension Wrangler Library (GLEW) to wieloplatformowa biblioteka ładująca rozszerzenia C / C ++ typu open source . GLEW zapewnia wydajne mechanizmy uruchomieniowe do określania, które rozszerzenia OpenGL są obsługiwane na platformie docelowej.


  • Ale czym jest biblioteka ładująca rozszerzenie?

Wiki OpenGL mówi

Biblioteka ładowania OpenGL to biblioteka, która ładuje wskaźniki do funkcji OpenGL w czasie wykonywania, rdzenia oraz rozszerzeń .


  • Co to znaczy ładować wskaźniki do funkcji OpenGL ?

  • Co to jest rozszerzenie ?

  • Co to znaczy „zarówno rdzeń, jak i rozszerzenia ”?

XY6
źródło

Odpowiedzi:

20

Większość kompilatorów udostępnia nagłówek OpenGL, który zapewnia obsługę OpenGL 1.1, ale większość funkcji udostępnianych w tej wersji OpenGL jest już dawno przestarzała i nie ma w niej ważnych funkcji, takich jak shadery i bufory wierzchołków. GLEW jest w zasadzie tylko nagłówkiem (istnieje plik źródłowy, który również musi zostać skompilowany, ale można go po prostu dołączyć do projektu), który zapewnia nowszą funkcjonalność OpenGL.

Co to znaczy przez rozszerzenie?

Oto link na ich temat z OpenGL.org. To tylko dodatkowe funkcje dla OpenGL, które nie są częścią OpenGL. Zapewniają funkcjonalność, która może być przydatna, ale nie można zagwarantować, że będą działać na każdym komputerze, ponieważ nie są one częścią podstawowego OpenGL.

Co to znaczy ładować wskaźniki do funkcji OpenGL?

OpenGL jest implementowany przez sterownik grafiki jako wiązka funkcji zaimplementowanych zgodnie ze specyfikacją, a nie jako samodzielna biblioteka, dlatego nie można go po prostu połączyć z projektem.

Musisz wywołać funkcję (na przykład GetProcAddress, ale zależy to od platformy, dla której programujesz), aby pobrać wskaźnik funkcji w czasie wykonywania ze sterownika dla każdej funkcji OpenGL.

GLEW istnieje, ponieważ wykonanie tego może być bardzo trudne. O wiele łatwiej jest, gdy możesz po prostu dołączyć nagłówek i wywołać jedną funkcję podczas inicjalizacji, co dokładnie robi GLEW. Ponadto GLEW jest wieloplatformowy.

Co to znaczy „zarówno rdzeń, jak i rozszerzenia”?

Oznacza to, że dostarcza funkcje OpenGL, a także rozszerzenia OpenGL.

LiquidFeline
źródło