Do Windows oraz do kompilatorów C++Builder 1/6/2005 i MS VC++ dołączane są pliki nagłówkowe gl.h, glu.h, glaux.h odpowiadające wersji OpenGL 1.1 (tej samej, która jest dołączana do „czystego” Windows). Nowsze wersje bibliotek OpenGL instalowane są razem ze sterownikami do kart graficznych. Nagłówek z dodatkowymi typami i funkcjami można ściągnąć ze strony: http://oss.sgi.com/projects/ogl-sample/ABI/glext.h Zob. też. artykuł „Moving Beyond OpenGL 1.1 for Windows”: http://www.gamedev.net/reference/articles/article1929.asp (Dave Astle) Sprawdzanie dostępnych rozszerzeń w bibliotece OpenGL: char* rozszerzenia=(char*)malloc(strlen((char *)glGetString(GL_EXTENSIONS))+1); strcpy (rozszerzenia,(char *)glGetString(GL_EXTENSIONS)); TStringList* tokeny=new TStringList(); char* token=strtok(rozszerzenia," "); while(token!=NULL) { tokeny->Add(token); token=strtok(NULL," "); } ListBox1->Items=tokeny; Sprawdzanie obecności konkretnego rozszerzenia: bool isShaderAvailable=strstr(rozszerzenia,"GL_ARB_shader_objects")>0; Pobieranie adresów funkcji nowszych wersji OpenGL (w tym rozszerzen np. ARB): PFNGLCREATESHADERPROC glCreateShader=(PFNGLCREATESHADERPROC)wglGetProcAddress("glCreateShader"); PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB= (PFNGLGETOBJECTPARAMETERIVARBPROC)wglGetProcAddress("glGetObjectParameterivARB"); if (glCreateShader==NULL || glGetObjectParameterivARB==NULL) { ShowMessage("Pobranie adresu funkcji shaderów nie powiodło się!"); return; }