Co to jest klasa OpenGL®?
Klasa OpenGL® może odnosić się do obiektowej implementacji części abstrakcyjnego interfejsu programistycznego OpenGL® (API) lub do klasy, która korzysta z wywołań funkcji OpenGL® w ramach własnego kodu. Charakter biblioteki OpenGL® oznacza, że tak naprawdę nie było obsługi zorientowanej obiektowo wersji API, a większość programów nazywała funkcje tak, jak zostały napisane, poza klasą. Gdy języki zorientowane obiektowo stały się coraz bardziej rozpowszechnione, różne biblioteki klas OpenGL® zaczęły działać jako obiekty opakowania dla biblioteki podstawowej. Korzyści z używania klasy OpenGL®, która została w pełni zrealizowana, zamiast tylko zbioru funkcji zawartych w bibliotece, w tym enkapsulacji i sposobu uzyskiwania nowych klas funkcjonalnych poprzez dziedziczenie przy jednoczesnej ochronie podstawowej implementacji. Nie wszyscy programiści używają biblioteki klas OpenGL®, ponieważ przełączanie się na w pełni zorientowane obiektowo paradygmaty może być mylące.
W programowaniu obiektowym klasa jest zbiorem danych, zmiennych i funkcji, zwanych metodami, które modyfikują zawarte w niej informacje. Początki OpenGL® jako biblioteki funkcji dla języka programowania C, który nie był językiem obiektowym, oznacza, że niektóre opracowane metodologie i praktyki programistyczne nie były dobrze dostosowane do programowania obiektowego. Kiedy niektóre systemy operacyjne i inne urządzenia zaczęły bardziej polegać na językach obiektowych, powstało kilka bibliotek klasy OpenGL®.
Niektóre biblioteki klasy OpenGL® po prostu zawierają podstawowe funkcje OpenGL®. Zapewniło to bezpieczne i kompatybilne środowisko programowania. Chociaż ten typ klasy był niezbędny w niektórych językach, nadal wymagał przekształcenia klas pomocniczych w funkcjonalną aplikację. Prawdziwie zorganizowane biblioteki faktycznie podzieliły funkcje OpenGL® na serię klas, z których każda zarządza innym elementem biblioteki, takim jak renderowanie.
Wiele bibliotek klasy OpenGL® zaczęło rozszerzać się na podstawowym silniku OpenGL® i zaczęło zawierać więcej funkcji. Obejmowało to przede wszystkim specjalną klasę do obsługi obiektów w scenie, zwaną wykresem sceny. Klasy te działały jako opakowania dla bibliotek podstawowych, zapewniając logiczną strukturę, na której można zbudować program, który zrobił więcej niż renderowanie sceny i wyjście bez konieczności wymyślania nowej struktury OpenGL® za każdym razem.
Niemal każda biblioteka OpenGL®, w tym biblioteki narzędziowe, została przetłumaczona w taki czy inny sposób na formę obiektową. W niektórych przypadkach ułatwiło to programistom aktualizowanie OpenGL® na różnych istniejących urządzeniach, tworząc w większości jednolity plan implementacji OpenGL® w środowisku obiektowym. Dodanie obiektowych narzędzi programistycznych umożliwiło także przeciągnięcie i upuszczenie klasy OpenGL® w programie obsługującym programowanie wizualne, upraszczając niektóre bardziej skomplikowane aspekty.