WGLManager: fix wglCreateContextAttribsARB not being used

This commit is contained in:
sfan5 2021-04-17 15:55:32 +02:00
parent 4c0aff5aa8
commit bd95662f03
2 changed files with 6 additions and 1 deletions

@ -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

@ -65,6 +65,7 @@ namespace video
s32 PixelFormat;
PIXELFORMATDESCRIPTOR pfd;
ECOLOR_FORMAT ColorFormat;
void* FunctionPointers[1];
};
}
}