bool GLGraphics::wglExtensionSupported(const char *extension_name) { // this is pointer to function which returns pointer to string with list of all wgl extensions PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglGetExtensionsStringEXT = NULL; // determine pointer to wglGetExtensionsStringEXT function _wglGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)wglGetProcAddress("wglGetExtensionsStringEXT"); if (strstr(_wglGetExtensionsStringEXT(), extension_name) == NULL) { // string was not found return false; } // extension is supported return true; }
int _glfwPlatformExtensionSupported( const char *extension ) { const GLubyte *extensions; WGLGETEXTENSIONSSTRINGEXT_T _wglGetExtensionsStringEXT; WGLGETEXTENSIONSSTRINGARB_T _wglGetExtensionsStringARB; // Try wglGetExtensionsStringEXT _wglGetExtensionsStringEXT = (WGLGETEXTENSIONSSTRINGEXT_T) wglGetProcAddress( "wglGetExtensionsStringEXT" ); if( _wglGetExtensionsStringEXT != NULL ) { extensions = (GLubyte *) _wglGetExtensionsStringEXT(); if( extensions != NULL ) { if( _glfwStringInExtensionString( extension, extensions ) ) { return GL_TRUE; } } } // Try wglGetExtensionsStringARB _wglGetExtensionsStringARB = (WGLGETEXTENSIONSSTRINGARB_T) wglGetProcAddress( "wglGetExtensionsStringARB" ); if( _wglGetExtensionsStringARB != NULL ) { extensions = (GLubyte *) _wglGetExtensionsStringARB(_glfwWin.DC); if( extensions != NULL ) { if( _glfwStringInExtensionString( extension, extensions ) ) { return GL_TRUE; } } } return GL_FALSE; }
bool GLApp::WGLExtSupported(std::string extName) { PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglGetExtensionsStringEXT = NULL; _wglGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)wglGetProcAddress("wglGetExtensionsStringEXT"); return !(strstr(_wglGetExtensionsStringEXT(), extName.c_str()) == NULL); }