Katere so različne vrste razširitev OpenGL®?

Obstaja več različnih razširitev OpenGL®, ki se večinoma uporabljajo za pomoč pri upravljanju in vzdrževanju urejene strukture knjižnic OpenGL®. Obstajajo štiri glavne vrste razširitev OpenGL®: vendor, odobrene, generične in jedro. Odobrene, splošne in jedrne razširitve vse označujejo funkcije in knjižnice, ki se na nek način premikajo po poti, da bi bile vključene v splošno distribucijo razvojnega kompleta OpenGL®. Razširitve proizvajalca so funkcije po meri, ki veljajo za določena okolja strojne ali programske opreme. Obstaja nekaj drugih vrst, čeprav so bolj za podrazvrstitev številnih razširitev, ki obstajajo.

Eden od razlogov, zakaj obstajajo različne vrste razširitev OpenGL®, je razširjena uporaba jedrnih knjižnic in potencialno zmedena količina lastniške kode, ki se ustvari za njeno razširitev. OpenGL® Architecture Review Board (ARB) pomaga vzdrževati in uveljavljati standard OpenGL® ter upravljati razširitve. Številne razširitve se začnejo bodisi kot razširitve proizvajalca ali vseprisotne razširitve in jih lahko sčasoma uporablja več ponudnikov, s čimer si prisluži naziv generične razširitve. Splošne razširitve lahko nato pregleda ARB in postanejo razširitve, ki jih odobri ARB, ki se bodo najverjetneje pridružile osnovnim razširitvam.

Vendor OpenGL® razširitve so funkcije, ki jih izvajajo proizvajalci grafične strojne opreme ali operacijskih sistemov. Te vrste razširitev omogočajo proizvajalcu, da izboljša ali uvede novo funkcionalnost svoje grafične zmogljivosti in nato omogoči te izboljšave na voljo programom OpenGL®. Vse razširitve prodajalca se začnejo s kodo, dodeljeno ARB, ki predstavlja ime proizvajalca in označuje okolje, v katerem bi lahko bila funkcija na voljo.

Generične razširitve OpenGL® so funkcije, ki jih je uporabljalo in izvajalo več proizvajalcev in jih ni več treba označevati s posebnimi predponskimi kodami prodajalca. Za ohranitev skladnosti s standardom OpenGL® ni treba implementirati vseh splošnih razširitev. Generična razširitev uporablja predpono GL_EXT pred imenom funkcije ali konstante.

Odobrene razširitve OpenGL® so tiste, ki jih je sprejelo več kot en proizvajalec in jih je pregledal ARB, kar jim omogoča, da postanejo del običajne knjižnice OpenGL®. Tovrstne funkcije običajno izvajajo vsi proizvajalci, ne glede na to, kateri prodajalec je dejansko izumil razširitev in ne glede na to, ali imajo drugi proizvajalci strojno opremo, ki lahko podpira zahtevane funkcije. Ta vrsta razširitve nosi predpono GL_ARB.

Razširitve Core OpenGL® so funkcije, ki lahko nadgradijo zmogljivost starejših programov, tako da omogočijo klice prejšnjim različicam funkcije OpenGL® za izvedbo najnovejše kode. Ko so izdane nove različice OpenGL®, je mogoče nove razširitve jedra nemoteno priklicati iz starejšega programa, ne da bi bilo treba spremeniti katero koli izvorno kodo. Kljub priročnosti izboljšanja združljivosti za nazaj je jedrne razširitve OpenGL® še vedno mogoče sčasoma amortizirati.