Vad är en OpenGL®-klass?
En OpenGL®-klass kan antingen hänvisa till en objektorienterad implementering av delar av OpenGL® abstrakt programmeringsgränssnitt (API), eller till en klass som använder OpenGL®-funktionssamtal inom sin egen kod. Naturen hos OpenGL®-biblioteket innebär att det verkligen inte fanns något stöd för en objektorienterad version av API, och de flesta program kallade funktionerna som de skrevs utanför en klass. När objektorienterade språk blev mer utbredda verkade olika OpenGL®-klassbibliotek fungera som omslagobjekt för kärnbiblioteket. Det finns fördelar med att använda en OpenGL®-klass som har realiserats fullt ut istället för bara samlingen av funktioner som tillhandahålls i biblioteket, inklusive inkapsling och ett sätt att hämta nya funktionella klasser genom arv samtidigt som man skyddar den grundläggande implementeringen. Inte alla utvecklare använder ett OpenGL®-klassbibliotek, eftersom det kan vara förvirrande att byta till helt objektorienterade programmeringsparadigmer.
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 C-programmeringsspråket, som inte var ett objektorienterat språk, betyder att några av de metoder och programmeringsmetoder som utvecklats inte passade väl 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 har helt enkelt inkapslat 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 stödklasser om till en funktionell applikation. Verkligen organiserade bibliotek delade faktiskt OpenGL®-funktionerna i en serie klasser, var och en som hanterade ett annat element i biblioteket, t.ex. rendering.
Ett antal OpenGL®-klassbibliotek började utöka sin grundläggande OpenGL®-motor och började inkludera mer funktionalitet. Detta inkluderade främst en speciell klass för att hantera föremål i en scen, kallad en scengraf. Dessa klasser fungerade som omslag för kärnbiblioteken medan de tillhandahöll en logisk struktur som kunde byggas på för att skapa ett program som gjorde mer än att göra en scen och avsluta utan att behöva uppfinna ett nytt OpenGL®-ramverk varje gång.
Nästan varje OpenGL®-bibliotek, inklusive verktygsbibliotek, har på ett eller annat sätt översatts till en objektorienterad form. Detta har i vissa fall underlättat för utvecklare att hålla OpenGL® uppdaterad på de olika enheter som finns genom att skapa en mestadels enhetlig plan för hur man implementerar OpenGL® i en objektorienterad miljö. Med tillägg 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.