From 7db993a98b9239bd4e384cc4aa128262fe3cf52c Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Sun, 25 Mar 2012 00:49:46 -0700 Subject: debug.egl.finish can be used to force a glFinish() when eglSwapBuffers() is called this debug property is evaludated at eglInitialize() time. Change-Id: Ie439e4aac87f7fdc6ab2add86183d6d042f3ee8b --- opengl/libs/EGL/eglApi.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'opengl/libs/EGL/eglApi.cpp') diff --git a/opengl/libs/EGL/eglApi.cpp b/opengl/libs/EGL/eglApi.cpp index a1bd82d..8bfa16d 100644 --- a/opengl/libs/EGL/eglApi.cpp +++ b/opengl/libs/EGL/eglApi.cpp @@ -30,6 +30,7 @@ #include #include +#include #include #include @@ -732,6 +733,17 @@ EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface draw) #endif egl_surface_t const * const s = get_surface(draw); + + if (CC_UNLIKELY(dp->finishOnSwap)) { + uint32_t pixel; + egl_context_t * const c = get_context( egl_tls_t::getContext() ); + if (c) { + // glReadPixels() ensures that the frame is complete + s->cnx->hooks[c->version]->gl.glReadPixels(0,0,1,1, + GL_RGBA,GL_UNSIGNED_BYTE,&pixel); + } + } + return s->cnx->egl.eglSwapBuffers(dp->disp.dpy, s->surface); } -- cgit v1.1