Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Move Win32 specific function grabbing fallback to WGL.cpp. Fixes issu…
…e 6964.
  • Loading branch information
Sonicadvance1 committed Jan 18, 2014
1 parent 839df31 commit bea484e
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
10 changes: 9 additions & 1 deletion Source/Core/DolphinWX/GLInterface/WGL.cpp
Expand Up @@ -13,6 +13,7 @@
#include "EmuWindow.h"
static HDC hDC = NULL; // Private GDI Device Context
static HGLRC hRC = NULL; // Permanent Rendering Context
static HINSTANCE dllHandle = NULL; // Handle to OpenGL32.dll

// typedef from wglext.h
typedef BOOL(WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
Expand All @@ -32,7 +33,10 @@ void cInterfaceWGL::Swap()

void* cInterfaceWGL::GetProcAddress(std::string name)
{
return (void*)wglGetProcAddress((LPCSTR)name.c_str());
void* func = (void*)wglGetProcAddress((LPCSTR)name.c_str());
if (func == NULL)
func = (void*)GetProcAddress(dllHandle, (LPCSTR)name.c_str());
return func;
}

// Draw messages on top of the screen
Expand Down Expand Up @@ -69,6 +73,10 @@ bool cInterfaceWGL::Create(void *&window_handle)
s_backbuffer_width = _twidth;
s_backbuffer_height = _theight;

#ifdef _WIN32
dllHandle = LoadLibrary(TEXT("OpenGL32.dll"));
#endif

window_handle = (void*)EmuWindow::Create((HWND)window_handle, GetModuleHandle(0), _T("Please wait..."));
if (window_handle == NULL)
{
Expand Down
14 changes: 1 addition & 13 deletions Source/Core/VideoBackends/OGL/GLExtensions/GLExtensions.cpp
Expand Up @@ -8,9 +8,6 @@
#if defined(__linux__) || defined(__APPLE__)
#include <dlfcn.h>
#endif
#ifdef _WIN32
#include <windows.h>
#endif
#include <unordered_map>

// gl_1_1
Expand Down Expand Up @@ -779,9 +776,6 @@ namespace GLExtensions
bool _isES3;
bool _isES;
u32 _GLVersion;
#ifdef _WIN32
HINSTANCE dllHandle = NULL;
#endif
std::unordered_map<std::string, bool> _extensionlist;
// Forward declared init functions
bool init_gl_1_1();
Expand Down Expand Up @@ -954,10 +948,6 @@ namespace GLExtensions
#if defined(__linux__) || defined(__APPLE__)
// Give it a second try with dlsym
*func = dlsym(RTLD_NEXT, name.c_str());
#endif
#ifdef _WIN32
if (*func == NULL)
*func = (void*)GetProcAddress(dllHandle, (LPCSTR)name.c_str());
#endif
if (*func == NULL && _isES)
*func = (void*)0xFFFFFFFF; // Easy to determine invalid function, just so we continue on
Expand All @@ -979,9 +969,7 @@ namespace GLExtensions
bool success = true;
_isES3 = GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3;
_isES = GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3 || GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES2;
#ifdef _WIN32
dllHandle = LoadLibrary(TEXT("OpenGL32.dll"));
#endif

// Grab glGetStringi and glGetIntegerv immediately
// We need them to grab the extension list
// If it fails then the user's drivers don't support GL 3.0
Expand Down

0 comments on commit bea484e

Please sign in to comment.