Multe extensii noi sunt standardizate, în plus, în versiunile ulterioare ale OpenGL, unele dintre ele vor face deja parte din OpenGL în sine și nu sub forma extensiilor sale.
Astfel de trăsături precum comprimarea multitext, speculară și textura sunt obținute în OpenGL 1.2 prin mecanismul extensiilor.
Cum se utilizează extensiile?
Descrierea extensiei este, de obicei, un fișier text simplu (Exemplu).
Puteți adăuga definiția unei noi extensii la codul dvs. de fiecare dată. Cu toate acestea, aproape toate definițiile extensiilor pot fi obținute din fișierul glext.h.
Fișierul glext.h poate fi preluat din fișierul glext.zip. colectate de la NVSDK. sau glext.h însăși de pe site-ul SGI.
Nu uitați să includeți acest fișier antet în codul dvs.:
Determinăm prezența unei extensii.
Prin urmare, înainte de a încerca să utilizați această extensie sau extensie, trebuie mai întâi să verificați disponibilitatea acesteia.
Cu ajutorul funcției glGetString () cu parametrul GL_EXTENSIONS, puteți obține o listă cu toate extensiile care sunt acceptate de acceleratorul dvs. (Rețineți că aceasta este o funcție standard OpenGL și trebuie apelată după inițializarea OpenGL).
Această funcție returnează un pointer unui șir care conține o listă cu nume de extensii separate printr-un spațiu. Trebuie să verificați dacă există sau nu un nume pentru extensia de care aveți nevoie în această listă.
Utilizarea funcțiilor suplimentare.
Foarte des, dar nu întotdeauna, extensia adaugă funcții suplimentare pentru a lucra cu capabilitățile sale.
De exemplu, una dintre astfel de funcții a extensiei "ARB multitext" (GL_ARB_multitexture) este funcția glActiveTextureARB ().
Dar, din moment ce nu se știe în prealabil dacă există sau nu o astfel de funcție, trebuie să o monitorizați singură și, în plus, să creați propriul pointer la funcția necesară pe care o veți folosi ulterior.
Tipul de pointer la o funcție este, de asemenea, definit în glext.h pentru fiecare funcție, de exemplu, pentru cazul nostru:
Pentru a utiliza funcția, trebuie să declarați în mod global un indicator al funcției din codul dvs.:
Și după inițializarea OpenGL, atribuiți-i un pointer unei funcții existente care poate fi obținută de funcția specială wglGetProcAddress ().
wglGetProcAddress () - funcția nu se aplică OpenGL-ului pur, ci se referă la OpenGL (WGL) pentru Windows add-on. Este nevoie ca parametru un șir cu numele funcției pe care o căutați. Această funcție returnează tipul de PROC, așa că vom arunca tipurile.
Dacă indicatorul dvs. a devenit non-zero, îl puteți folosi în siguranță în nevoile dvs. într-o formă funcțională:
Acțiunile distructive, cu excepția celor stipulate în mod special, după folosirea extensiilor pentru a face acest lucru nu sunt necesare.