Kaj je razred OpenGL®?

Razred OpenGL® se lahko nanaša na objektno usmerjeno implementacijo delov vmesnika za abstraktno programiranje OpenGL® (API) ali na razred, ki uporablja klice funkcij OpenGL® znotraj lastne kode. Narava knjižnice OpenGL® pomeni, da v resnici ni bilo podpore za objektno usmerjeno različico API-ja in večina programov je funkcije imenovala, kot so bile napisane, zunaj razreda. Ker so objektno usmerjeni jeziki postajali vse bolj razširjeni, se je zdelo, da različne knjižnice razredov OpenGL® delujejo kot ovojni objekti za osnovno knjižnico. Obstajajo prednosti uporabe razreda OpenGL®, ki je bil v celoti realiziran, namesto le zbirke funkcij, ki so na voljo v knjižnici, vključno z inkapsulacijo in načinom za izpeljavo novih funkcionalnih razredov z dedovanjem ob zaščiti osnovne implementacije. Vsi razvijalci ne uporabljajo knjižnice razredov OpenGL®, ker je lahko zmeden preklop na popolnoma objektno usmerjene programske paradigme.

V objektno usmerjenem programiranju je razred zbirka podatkov, spremenljivk in funkcij, imenovanih metode, ki spreminjajo informacije, ki jih vsebuje. Izvor OpenGL® kot knjižnice funkcij za programski jezik C, ki ni bil objektno usmerjen jezik, pomeni, da nekatere metodologije in programske prakse, ki so se razvile, niso bile dobro primerne za objektno usmerjeno programiranje. Ko so se nekateri operacijski sistemi in druge naprave začeli bolj zanašati na objektno usmerjene jezike, je nastalo več knjižnic razredov OpenGL®.

Nekatere knjižnice razredov OpenGL® so preprosto kapsulirale osnovne funkcije OpenGL®. To je zagotovilo varen in združljiv okvir za programiranje. Čeprav je bila ta vrsta razreda potrebna za nekatere jezike, je še vedno zahtevala, da se podporni razredi pretvorijo v funkcionalno aplikacijo. Resnično organizirane knjižnice so funkcije OpenGL® dejansko razdelile v vrsto razredov, pri čemer vsak upravlja z različnim elementom knjižnice, kot je upodabljanje.

Številne knjižnice razredov OpenGL® so se začele širiti na osnovni motor OpenGL® in so začele vključevati več funkcionalnosti. To je predvsem vključevalo poseben razred za ravnanje s predmeti v sceni, imenovan graf scene. Ti razredi so delovali kot ovoji za jedrne knjižnice, hkrati pa so zagotavljali logično strukturo, na kateri je bilo mogoče zgraditi program, ki je naredil več kot le upodabljanje scene in izhod, ne da bi bilo treba vsakič izumiti nov okvir OpenGL®.

Skoraj vsaka knjižnica OpenGL®, vključno s knjižnicami s pripomočki, je bila na tak ali drugačen način prevedena v objektno usmerjeno obliko. To je v nekaterih primerih razvijalcem olajšalo posodabljanje OpenGL® na različnih napravah, ki obstajajo, tako da so oblikovali večinoma enoten načrt za implementacijo OpenGL® v objektno usmerjenem okolju. Z dodatkom objektno usmerjenih razvojnih orodij je omogočil tudi vlečenje in spuščanje razreda OpenGL® v program, ki podpira vizualni razvoj, kar je poenostavilo nekatere bolj zapletene vidike.