bool WIN32Window::isExtensionSupported(const char *ext) { #ifdef OPENGL_ES //TODO return false; #else typedef const char* (WINAPI * wglGetExtensionsStringProc)(); wglGetExtensionsStringProc wglGetExtensionsString = (wglGetExtensionsStringProc)getExtensionProcAddress("wglGetExtensionsStringEXT"); if(!wglGetExtensionsString) return false; const char *exts = wglGetExtensionsString(); if(exts && strstr(exts, ext)) return true; return false; #endif }
bool wIsSupported(const char* name, HDC hdc) { const char *ext = 0, *start; const char *loc, *term; loc = strchr(name, ' '); if( loc || *name == '\0' ) return false; if( !wglGetExtensionsString ) wglGetExtensionsString = (WGLGETEXTENSIONSSTRINGARBPROC)wglGetProcAddress("wglGetExtensionsStringARB"); if( !wglGetExtensionsString ) return false; ext = (const char*)wglGetExtensionsString(hdc); start = ext; for( ;; ) { if( !(loc = strstr(start, name)) ) break; term = loc + strlen(name); if( loc == start || *(loc - 1) == ' ' ) { if( *term == ' ' || *term == '\0' ) return true; } start = term; } return false; }