Browse Source

Frontend: Don't call DoneCurrent if the context isnt already current

nce_cpp
James Rowe 6 years ago
parent
commit
e345e46a98
  1. 5
      src/yuzu/bootmanager.cpp
  2. 10
      src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp

5
src/yuzu/bootmanager.cpp

@ -141,7 +141,7 @@ public:
} }
~OpenGLSharedContext() { ~OpenGLSharedContext() {
context->doneCurrent();
DoneCurrent();
} }
void SwapBuffers() override { void SwapBuffers() override {
@ -156,6 +156,9 @@ public:
} }
void DoneCurrent() override { void DoneCurrent() override {
if (!is_current) {
return;
}
context->doneCurrent(); context->doneCurrent();
is_current = false; is_current = false;
} }

10
src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp

@ -37,16 +37,24 @@ public:
} }
void MakeCurrent() override { void MakeCurrent() override {
SDL_GL_MakeCurrent(window, context);
if (is_current) {
return;
}
is_current = SDL_GL_MakeCurrent(window, context) == 0;
} }
void DoneCurrent() override { void DoneCurrent() override {
if (!is_current) {
return;
}
SDL_GL_MakeCurrent(window, nullptr); SDL_GL_MakeCurrent(window, nullptr);
is_current = false;
} }
private: private:
SDL_Window* window; SDL_Window* window;
SDL_GLContext context; SDL_GLContext context;
bool is_current = false;
}; };
bool EmuWindow_SDL2_GL::SupportsRequiredGLExtensions() { bool EmuWindow_SDL2_GL::SupportsRequiredGLExtensions() {

Loading…
Cancel
Save