Vad är en OpenGL®-klass?

En OpenGL®-klass kan antingen referera till en objektorienterad implementering av delar av OpenGL® abstrakt programmeringsgränssnitt (API), eller till en klass som använder OpenGL®-funktionsanrop inom sin egen kod. Naturen hos OpenGL®-biblioteket betyder att det verkligen inte fanns något stöd för en objektorienterad version av API:t, och de flesta program kallade funktionerna som de skrevs, utanför en klass. När objektorienterade språk blev vanligare, verkade olika OpenGL®-klassbibliotek fungera som omslagsobjekt för kärnbiblioteket. Det finns fördelar med att använda en OpenGL®-klass som är fullt realiserad istället för bara samlingen av funktioner som tillhandahålls i biblioteket, inklusive inkapsling och ett sätt att härleda nya funktionella klasser genom nedärvning samtidigt som den grundläggande implementeringen skyddas. Alla utvecklare använder inte ett OpenGL®-klassbibliotek, eftersom det kan vara förvirrande att byta till helt objektorienterade programmeringsparadigm.

I objektorienterad programmering är en klass en samling av data, variabler och funktioner, kallade metoder, som modifierar informationen den innehåller. Ursprunget till OpenGL® som ett bibliotek med funktioner för programmeringsspråket C, som inte var ett objektorienterat språk, betyder att vissa av de metoder och programmeringsmetoder som utvecklades inte var väl lämpade för objektorienterad programmering. När vissa operativsystem och andra enheter började förlita sig mer på objektorienterade språk, uppstod flera OpenGL®-klassbibliotek.

Vissa av OpenGL®-klassbiblioteken inkapslade helt enkelt de grundläggande OpenGL®-funktionerna. Detta gav en säker och kompatibel ram för programmering. Även om denna typ av klass var nödvändig för vissa språk, krävde den fortfarande att stödklasser gjordes till en funktionell applikation. Verkligen organiserade bibliotek delade faktiskt OpenGL®-funktionerna i en serie klasser, där var och en hanterade olika element i biblioteket, som rendering.

Ett antal OpenGL®-klassbibliotek började expandera på den grundläggande OpenGL®-motorn och började inkludera mer funktionalitet. Detta inkluderade i första hand en speciell klass för hantering av objekten i en scen, kallad scengraf. Dessa klasser fungerade som omslag för kärnbiblioteken samtidigt som de gav en logisk struktur som kunde byggas på för att skapa ett program som gjorde mer än att rendera en scen och avsluta utan att behöva uppfinna ett nytt OpenGL®-ramverk varje gång.

Nästan alla OpenGL®-bibliotek, inklusive verktygsbibliotek, har översatts på ett eller annat sätt till en objektorienterad form. Detta har i vissa fall gjort det lättare för utvecklare att hålla OpenGL® uppdaterad på de olika enheter som finns genom att bilda en mestadels enhetlig plan för hur man implementerar OpenGL® i en objektorienterad miljö. Med tillägget av objektorienterade utvecklingsverktyg har det också gjort det möjligt att dra och släppa en OpenGL®-klass till ett program som stöder visuell utveckling, vilket förenklar några av de mer komplicerade aspekterna.