1 /* ------------------------------------------------------------------------- */ 2 3 static PFNWGLGETEXTENSIONSSTRINGARBPROC _wglewGetExtensionsStringARB = NULL; 4 static PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglewGetExtensionsStringEXT = NULL; 5 wglewGetExtension(const char * name)6GLboolean GLEWAPIENTRY wglewGetExtension (const char* name) 7 { 8 const GLubyte* start; 9 const GLubyte* end; 10 if (_wglewGetExtensionsStringARB == NULL) 11 if (_wglewGetExtensionsStringEXT == NULL) 12 return GL_FALSE; 13 else 14 start = (const GLubyte*)_wglewGetExtensionsStringEXT(); 15 else 16 start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); 17 if (start == 0) 18 return GL_FALSE; 19 end = start + _glewStrLen(start); 20 return _glewSearchExtension(name, start, end); 21 } 22 wglewInit()23GLenum GLEWAPIENTRY wglewInit () 24 { 25 GLboolean crippled; 26 const GLubyte* extStart; 27 const GLubyte* extEnd; 28 /* find wgl extension string query functions */ 29 _wglewGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB"); 30 _wglewGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT"); 31 /* query wgl extension string */ 32 if (_wglewGetExtensionsStringARB == NULL) 33 if (_wglewGetExtensionsStringEXT == NULL) 34 extStart = (const GLubyte*)""; 35 else 36 extStart = (const GLubyte*)_wglewGetExtensionsStringEXT(); 37 else 38 extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); 39 extEnd = extStart + _glewStrLen(extStart); 40 /* initialize extensions */ 41 crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL; 42