Što je OpenGL® klasa?

OpenGL® klasa može se odnositi ili na objektno orijentiranu implementaciju dijelova OpenGL® apstraktnog programskog sučelja (API), ili na klasu koja koristi pozive funkcija OpenGL® unutar vlastitog koda. Priroda OpenGL® knjižnice znači da zaista nije postojala podrška za objektno orijentiranu verziju API-ja, a većina programa nazivala je funkcije onako kako su napisane, izvan klase. Kako su objektno orijentirani jezici sve više prevladavali, činilo se da različite biblioteke OpenGL® klasa djeluju kao objekti omota za jezgru knjižnice. Postoje prednosti korištenja OpenGL® klase koja je u potpunosti realizirana umjesto samo zbirke funkcija koje se nalaze u knjižnici, uključujući enkapsulaciju i način izvođenja novih funkcionalnih klasa nasljeđivanjem uz zaštitu osnovne implementacije. Ne koriste svi programeri biblioteku klasa OpenGL®, jer može biti zbunjujuće prebaciti se na potpuno objektno orijentirane paradigme programiranja.

U objektno orijentiranom programiranju, klasa je zbirka podataka, varijabli i funkcija, nazvanih metodama, koje mijenjaju informacije koje sadrži. Podrijetlo OpenGL®-a kao biblioteke funkcija za programski jezik C, koji nije bio objektno orijentirani jezik, znači da neke od razvijenih metodologija i programskih praksi nisu bile dobro prikladne za objektno orijentirano programiranje. Kada su se neki operativni sustavi i drugi uređaji počeli više oslanjati na objektno orijentirane jezike, pojavilo se nekoliko OpenGL® biblioteka klasa.

Neke od OpenGL® knjižnica klasa jednostavno su inkapsulirale osnovne OpenGL® funkcije. To je osiguralo siguran i kompatibilan okvir za programiranje. Iako je ova vrsta klase bila neophodna za neke jezike, ipak je zahtijevala da se prateće klase pretvore u funkcionalnu aplikaciju. Istinski organizirane knjižnice su zapravo podijelile OpenGL® funkcije u niz klasa, od kojih svaka upravlja različitim elementima knjižnice, kao što je renderiranje.

Brojne knjižnice OpenGL® klasa počele su se širiti na osnovni OpenGL® motor i počele su uključivati ​​više funkcionalnosti. To je prvenstveno uključivalo posebnu klasu za rukovanje objektima u sceni, nazvanu scenski graf. Ove su klase djelovale kao omoti za osnovne knjižnice, dok su pružale logičku strukturu koja se mogla izgraditi kako bi se napravio program koji je učinio više od renderiranja scene i izlaza bez potrebe za izmišljanjem novog OpenGL® okvira svaki put.

Gotovo svaka biblioteka OpenGL®, uključujući knjižnice pomoćnih programa, prevedena je na ovaj ili onaj način u objektno orijentiran oblik. To je, u nekim slučajevima, razvojnim programerima olakšalo ažuriranje OpenGL®-a na različitim uređajima koji postoje formirajući uglavnom ujednačen nacrt za implementaciju OpenGL®-a u objektno orijentiranom okruženju. Uz dodatak objektno orijentiranih razvojnih alata, također je omogućilo povlačenje i ispuštanje klase OpenGL® u program koji podržava vizualni razvoj, pojednostavljujući neke od kompliciranijih aspekata.