1 /* ------------------------------------------------------------------------- */
2 
3 static PFNWGLGETEXTENSIONSSTRINGARBPROC _wglewGetExtensionsStringARB = NULL;
4 static PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglewGetExtensionsStringEXT = NULL;
5 
wglewGetExtension(const char * name)6 GLboolean 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 
wglewContextInit(WGLEW_CONTEXT_ARG_DEF_LIST)23 GLenum GLEWAPIENTRY wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST)
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