diff --git a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp index d7a891ecd1..7323f7f3e5 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp @@ -24,7 +24,10 @@ namespace OGL // Draw messages on top of the screen unsigned int VideoBackend::PeekMessages() { - return GLInterface->PeekMessages(); + if (GLInterface) + return GLInterface->PeekMessages(); + else + return 0; } // Show the current FPS diff --git a/Source/Plugins/Plugin_VideoOGL/Src/main.cpp b/Source/Plugins/Plugin_VideoOGL/Src/main.cpp index 4356418c81..596a4cd86d 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/main.cpp @@ -89,6 +89,7 @@ Make AA apply instantly during gameplay if possible namespace OGL { +static void* m_windowhandle; std::string VideoBackend::GetName() { @@ -149,15 +150,12 @@ void VideoBackend::ShowConfig(void *_hParent) diag.ShowModal(); #endif } -void Test(u32 Data) -{ - printf("Data: %d\n", Data); -} bool VideoBackend::Initialize(void *&window_handle) { InitializeShared(); InitBackendInfo(); - + + m_windowhandle = window_handle; frameCount = 0; g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_opengl.ini").c_str()); @@ -166,13 +164,7 @@ bool VideoBackend::Initialize(void *&window_handle) g_Config.VerifyValidity(); UpdateActiveConfig(); - InitInterface(); - if (!GLInterface->Create(window_handle)) - return false; - - // Do our OSD callbacks - OSD::DoCallbacks(OSD::OSD_INIT); - + s_BackendInitialized = true; return true; @@ -182,6 +174,16 @@ bool VideoBackend::Initialize(void *&window_handle) // Run from the graphics thread void VideoBackend::Video_Prepare() { + InitInterface(); + if (!GLInterface->Create(m_windowhandle)) + { + INFO_LOG(VIDEO, "%s", "GLInterface::Create failed\n"); + return; + } + + // Do our OSD callbacks + OSD::DoCallbacks(OSD::OSD_INIT); + GLInterface->MakeCurrent(); g_renderer = new Renderer;