Co je třída OpenGL®?
Třída OpenGL® může odkazovat na objektově orientovanou implementaci částí abstraktního programovacího rozhraní OpenGL® (API), nebo na třídu, která používá volání funkcí OpenGL® ve svém vlastním kódu. Povaha knihovny OpenGL® znamená, že skutečně neexistovala podpora objektově orientované verze API a většina programů nazývala funkce tak, jak byly napsány, mimo třídu. Když se objektově orientované jazyky staly rozšířenější, zdálo se, že různé knihovny třídy OpenGL® fungují jako krycí objekty pro základní knihovnu. Výhody plynoucí z použití třídy OpenGL®, která byla plně realizována namísto pouhé kolekce funkcí poskytovaných v knihovně, včetně zapouzdření a způsobu odvozování nových funkčních tříd prostřednictvím dědičnosti při ochraně základní implementace. Ne všichni vývojáři používají knihovnu třídy OpenGL®, protože může být matoucí přechod na plně objektově orientovaná programovací paradigmata.
V objektově orientovaném programování je třída kolekce dat, proměnných a funkcí, nazývaných metody, které upravují informace, které obsahuje. Původ OpenGL® jako knihovny funkcí pro programovací jazyk C, který nebyl objektově orientovaným jazykem, znamená, že některé vyvinuté metodiky a programovací postupy nebyly pro objektově orientované programování vhodné. Když se některé operační systémy a další zařízení začaly více spoléhat na objektově orientované jazyky, vzniklo několik knihoven třídy OpenGL®.
Některé z knihoven třídy OpenGL® jednoduše zapouzdřily základní funkce OpenGL®. To poskytlo bezpečný a kompatibilní rámec pro programování. Ačkoli byl tento typ třídy pro některé jazyky nezbytný, stále vyžadoval, aby byly podpůrné třídy vytvořeny ve funkční aplikaci. Skutečně uspořádané knihovny skutečně rozdělily funkce OpenGL® do řady tříd, přičemž každá z nich spravovala jiný prvek knihovny, například vykreslování.
Řada knihoven třídy OpenGL® se začala rozšiřovat o základní modul OpenGL® a začala zahrnovat více funkcí. Jednalo se především o speciální třídu pro manipulaci s objekty ve scéně, nazvanou graf scény. Tyto třídy fungovaly jako obálky pro základní knihovny a zároveň poskytovaly logickou strukturu, na které by bylo možné stavět program, který by dělal víc než jen vykreslení scény a ukončení, aniž by bylo nutné pokaždé vymýšlet nový rámec OpenGL®.
Téměř každá knihovna OpenGL®, včetně obslužných knihoven, byla přeložena tak či onak do objektově orientované formy. To v některých případech vývojářům usnadnilo udržovat OpenGL® na různých existujících zařízeních tak, že vytvořil většinou jednotný plán, jak implementovat OpenGL® v objektově orientovaném prostředí. Přidáním objektově orientovaných vývojových nástrojů také umožnilo přetáhnout třídu OpenGL® do programu, který podporuje vizuální vývoj a zjednodušuje některé složitější aspekty.