OpenGL: Fix fast-forward on some OpenGL drivers where it may block early

This commit is contained in:
Jeffrey Pfau 2015-11-16 19:56:43 -08:00
parent 87aaefccd2
commit 34d0dff2d6
4 changed files with 5 additions and 4 deletions

View File

@ -28,6 +28,7 @@ Bugfixes:
- GBA: Fix warnings when creating and loading savestates
- Qt: Add additional checks in CheatModel to prevent crashes
- GBA Hardware: Fix Game Boy Player rumble in Pokemon Pinball
- OpenGL: Fix fast-forward on some OpenGL drivers where it may block early
Misc:
- Qt: Window size command line options are now supported
- Qt: Increase usability of key mapper

View File

@ -16,7 +16,7 @@ extern "C" {
#endif
#if !defined(_WIN32) || defined(USE_EPOXY)
#include "platform/opengl/gles2.h"
#ifdef _WIN32
#ifdef _WIN32
#include <epoxy/wgl.h>
#endif
#endif
@ -264,10 +264,10 @@ void PainterGL::draw() {
}
if (GBASyncWaitFrameStart(&m_context->sync) || !m_queue.isEmpty()) {
dequeue();
GBASyncWaitFrameEnd(&m_context->sync);
m_painter.begin(m_gl->context()->device());
performDraw();
m_painter.end();
GBASyncWaitFrameEnd(&m_context->sync);
m_backend->swap(m_backend);
} else {
GBASyncWaitFrameEnd(&m_context->sync);

View File

@ -64,8 +64,8 @@ void GBASDLGLRunloop(struct GBAThread* context, struct SDLSoftwareRenderer* rend
if (GBASyncWaitFrameStart(&context->sync)) {
v->postFrame(v, renderer->d.outputBuffer);
}
v->drawFrame(v);
GBASyncWaitFrameEnd(&context->sync);
v->drawFrame(v);
v->swap(v);
}
}

View File

@ -117,8 +117,8 @@ void GBASDLGLES2Runloop(struct GBAThread* context, struct SDLSoftwareRenderer* r
if (GBASyncWaitFrameStart(&context->sync)) {
v->postFrame(v, renderer->d.outputBuffer);
}
v->drawFrame(v);
GBASyncWaitFrameEnd(&context->sync);
v->drawFrame(v);
#ifdef BUILD_RASPI
eglSwapBuffers(renderer->display, renderer->surface);
#else