diff options
Diffstat (limited to 'source/Irrlicht/CWGLManager.cpp')
-rw-r--r-- | source/Irrlicht/CWGLManager.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/Irrlicht/CWGLManager.cpp b/source/Irrlicht/CWGLManager.cpp index e45c96a..b807acb 100644 --- a/source/Irrlicht/CWGLManager.cpp +++ b/source/Irrlicht/CWGLManager.cpp @@ -26,6 +26,7 @@ CWGLManager::CWGLManager() #ifdef _DEBUG
setDebugName("CWGLManager");
#endif
+ memset(FunctionPointers, 0, sizeof(FunctionPointers));
}
CWGLManager::~CWGLManager()
@@ -206,6 +207,9 @@ bool CWGLManager::initialize(const SIrrlichtCreationParameters& params, const SE os::Printer::log("WGL_extensions", wglExtensions);
#endif
+ // Without a GL context we can't call wglGetProcAddress so store this for later
+ FunctionPointers[0] = (void*)wglGetProcAddress("wglCreateContextAttribsARB");
+
#ifdef WGL_ARB_pixel_format
PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormat_ARB = (PFNWGLCHOOSEPIXELFORMATARBPROC)wglGetProcAddress("wglChoosePixelFormatARB");
if (pixel_format_supported && wglChoosePixelFormat_ARB)
@@ -400,7 +404,7 @@ bool CWGLManager::generateContext() HGLRC hrc;
// create rendering context
#ifdef WGL_ARB_create_context
- PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribs_ARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)wglGetProcAddress("wglCreateContextAttribsARB");
+ PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribs_ARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)FunctionPointers[0];
if (wglCreateContextAttribs_ARB)
{
// with 3.0 all available profiles should be usable, higher versions impose restrictions
|