Module: Mesa Branch: master Commit: bbfd0e26151bef567c152c8018ecc15f04c70914 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bbfd0e26151bef567c152c8018ecc15f04c70914
Author: Chia-I Wu <[email protected]> Date: Thu Oct 15 11:08:33 2009 +0800 egl: Rework error checking in eglSwapBuffers. Signed-off-by: Chia-I Wu <[email protected]> --- src/egl/main/eglapi.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 1d370db..3669018 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -31,6 +31,15 @@ * * is generated. * + * Some of the entry points use current display, context, or surface + * implicitly. For such entry points, the implicit objects are also + * checked before calling the driver function. Other than the + * errors listed above, + * + * EGL_BAD_CURRENT_SURFACE + * + * may also be generated. + * * Notes on naming conventions: * * eglFooBar - public EGL function @@ -519,7 +528,13 @@ eglSwapInterval(EGLDisplay dpy, EGLint interval) EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) { + _EGLContext *ctx = _eglGetCurrentContext(); _EGL_DECLARE_DD_AND_SURFACE(dpy, surface); + + /* surface must be bound to current context in EGL 1.4 */ + if (!ctx || !_eglIsContextLinked(ctx) || surf != ctx->DrawSurface) + return _eglError(EGL_BAD_SURFACE, __FUNCTION__); + return drv->API.SwapBuffers(drv, disp, surf); } _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
