Katere so različne vrste knjižnic OpenGL®?

Obstaja več vrst knjižnic Open Graphics Library® (OpenGL®), ki jih je mogoče namestiti in uporabljati v računalniških sistemih in večina od njih služi posebnim potrebam grafičnih programerjev. Prva vrsta vključuje osnovne, jedrne knjižnice OpenGL®, ki vsebujejo približno 120 ukazov za dostop do grafične strojne opreme, čeprav je te knjižnice OpenGL® mogoče nadalje razdeliti glede na platformo, na kateri naj bi delovale. Ustvarjenih je bilo veliko knjižnic pripomočkov – nekatere od njih skoraj vedno uporabljajo programerji OpenGL® – za pomoč pri združevanju funkcij na zelo nizki ravni v posamezne klice višje ravni zaradi priročnosti in jasnosti kode. Občasno obstajajo knjižnice OpenGL®, ki jih razvijejo določeni proizvajalci grafične strojne opreme, da pomagajo povečati zmogljivost ali podpirajo posebne učinke, ki jih strojna oprema izvaja izvorno. Obstajajo tudi knjižnice na zelo visoki ravni, ki so jih ustvarili uporabniki, ki so nastale iz večjih projektov in so distribuirane za pomoč pri hitrem razvoju aplikacij.

Jedrne knjižnice OpenGL® so potrebne za razvoj in uvajanje programov, ki uporabljajo OpenGL® za upodabljanje grafike. Programom omogočajo uporabo skupnega vmesnika za abstraktno programiranje (API) za klic funkcij znotraj knjižnice OpenGL®, nato pa knjižnica neposredno komunicira z gonilniki strojne opreme. Gonilniki nato neposredno dostopajo do strojne opreme, kar povzroči povečanje hitrosti prikaza. Vse druge knjižnice OpenGL® temeljijo na jedrnih knjižnicah.

Številni ukazi, ki jih uporabljajo osnovne knjižnice, so na dokaj nizki ravni, zato so bile ustvarjene številne pomožne knjižnice, imenovane tudi kompleti orodij. Ti združujejo osnovne ukaze v bolj funkcionalne rutine, ki odvzamejo veliko ponavljanja pri uporabi OpenGL®. En primer uporabe pomožne knjižnice vključuje risanje kroga, ki bi lahko vzel več vrstic kode samo z jedrom OpenGL®, vendar ga je mogoče strniti v eno optimizirano rutino v knjižnici s pripomočki, kot je OpenGL® Utility Toolkit (GLUT). Občasno imajo nekatere knjižnice isto ime, vendar so prenesene za uporabo v različnih operacijskih sistemih ali za različne jezikovne vezave in lahko vsebujejo različne funkcionalnosti.

Nekatere knjižnice OpenGL® dejansko proizvajajo proizvajalci strojne opreme. Do razširjenih knjižnic je mogoče dostopati prek mehanizma razširitev OpenGL® ali neposredno z API-ji, ki jih zagotovijo proizvajalci. Te vrste knjižnic niso vedno razširjene zaradi svojih ozkih ciljnih platform in ker so zelo priljubljene razširitve pogosto zložene v jedrne knjižnice.

Obstajajo tudi knjižnice OpenGL®, ki jih ustvarijo programerji in uporabniki, ki niso povezane z osnovnimi knjižnicami ali katero koli strojno opremo. Te knjižnice so pogosto izdane, tako da lahko drugi programerji, ki ustvarjajo določene vrste znanstvenih, matematičnih ali zabavnih aplikacij, izkoristijo okvir, na katerem lahko gradijo. Obstajajo tudi knjižnice, ki izhajajo iz skupnosti, ki na praktičen način dodajajo interaktivnost in programsko logiko drugim knjižnicam.