Mitä erilaisia ​​OpenGL® -laajennuksia on?

On olemassa useita erilaisia ​​OpenGL® -laajennuksia, joita käytetään enimmäkseen OpenGL® -kirjastojen tilatun rakenteen hallintaan ja ylläpitoon. OpenGL® -laajennuksia on neljä päätyyppiä: toimittaja, hyväksytty, yleinen ja ydin. Hyväksytyt, yleiset ja ydinlaajennukset tarkoittavat kaikkia toimintoja ja kirjastoja, jotka ovat jollakin tavalla siirtymässä tietä kohti sisällyttämistä OpenGL® -kehityssarjan yleiseen jakeluun. Toimittajalaajennukset ovat räätälöityjä toimintoja, jotka koskevat tiettyjä laitteisto- tai ohjelmistoympäristöjä. On olemassa muutamia muita tyyppejä, vaikka ne ovatkin enemmän olemassa olevien laajennusten alaluokitusta varten.

Yksi syy siihen, miksi OpenGL® -laajennuksia on erityyppisiä, on ydinkirjastojen laaja käyttö ja mahdollinen hämmentävä määrä omaa koodia sen laajentamiseksi. OpenGL® Architecture Review Board (ARB) auttaa ylläpitämään ja valvomaan OpenGL® -standardia ja hallitsemaan laajennuksia. Monet laajennukset alkavat joko toimittajalaajennuksina tai kaikkialla läsnä olevina laajennuksina, ja useat toimittajat voivat käyttää niitä ajan myötä ja ansaita yleisen laajennuksen otsikon. Yleiset laajennukset voidaan sitten tarkistaa ARB: stä ja niistä tulee ARB-hyväksyttyjä laajennuksia, jotka todennäköisesti liittyvät ydinlaajennuksiin.

Vendor OpenGL® -laajennukset ovat grafiikkalaitteistojen tai käyttöjärjestelmien valmistajien toteuttamia toimintoja. Tämän tyyppisten laajennusten avulla valmistaja voi parantaa grafiikkansa suorituskykyä tai ottaa käyttöön uusia toimintoja ja tuoda nämä parannukset OpenGL® -ohjelmien saataville. Kaikki toimittajalaajennukset alkavat ARB-koodilla, joka edustaa valmistajan nimeä ja osoittaa ympäristön, jossa toiminto voi olla käytettävissä.

Yleiset OpenGL® -laajennukset ovat toimintoja, joita useat valmistajat ovat käyttäneet ja toteuttaneet, eikä niitä tarvitse enää nimetä erityisillä toimittajan etuliitteillä. Kaikkia yleisiä laajennuksia ei tarvitse ottaa käyttöön OpenGL® -standardin noudattamisen ylläpitämiseksi. Yleinen laajennus käyttää etuliitettä GL_EXT ennen funktion tai vakion nimeä.

Hyväksytyt OpenGL® -laajennukset ovat laajennuksia, jotka on hyväksynyt useampi kuin yksi valmistaja ja jotka ARB on tarkistanut, jolloin ne voivat tulla osaksi tavallista OpenGL® -kirjastoa. Tämän tyyppiset toiminnot tulevat yleensä kaikkien valmistajien käyttöön riippumatta siitä, kuka myyjä todella keksi laajennuksen ja riippumatta siitä, onko muilla toimittajilla laitteistoa, joka voi tukea pyydettyjä toimintoja. Tämän tyyppisessä laajennuksessa on etuliite GL_ARB.

Core OpenGL® -laajennukset ovat toimintoja, jotka voivat parantaa vanhempien ohjelmien suorituskykyä sallimalla OpenGL® -toiminnon aiempien versioiden puhelut suorittamaan uusimman koodin. Kun uusia OpenGL® -versioita julkaistaan, uudet ydinlaajennukset voidaan kutsua saumattomasti vanhemmasta ohjelmasta ilman mitään lähdekoodin muutoksia. Huolimatta taaksepäin yhteensopivuuden parantamisesta, OpenGL® -ydinlaajennukset voivat silti poistua ajan myötä.