diff options
author | Chia-I Wu <[email protected]> | 2009-10-15 11:08:48 +0800 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-10-15 12:54:00 -0600 |
commit | 57da499d7ba074128e8c97b8076805e403a2b9c4 (patch) | |
tree | a26240bf9db31a1367da6d2e08583a47b02d27d4 /src/egl/main/eglapi.c | |
parent | bbfd0e26151bef567c152c8018ecc15f04c70914 (diff) |
egl: Rework eglSwapInterval.
This adds error checking to eglSwapInterval and clamps the swap
interval.
Signed-off-by: Chia-I Wu <[email protected]>
Diffstat (limited to 'src/egl/main/eglapi.c')
-rw-r--r-- | src/egl/main/eglapi.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 366901889fe..5ce04693519 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -520,8 +520,18 @@ eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval) { + _EGLContext *ctx = _eglGetCurrentContext(); + _EGLSurface *surf; _EGL_DECLARE_DD(dpy); - return drv->API.SwapInterval(drv, disp, interval); + + if (!ctx || !_eglIsContextLinked(ctx) || ctx->Display != disp) + return _eglError(EGL_BAD_CONTEXT, __FUNCTION__); + + surf = ctx->DrawSurface; + if (!_eglIsSurfaceLinked(surf)) + return _eglError(EGL_BAD_SURFACE, __FUNCTION__); + + return drv->API.SwapInterval(drv, disp, surf, interval); } |