egl: add missing error-checking to eglReleaseTexImage()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
Eric Engestrom 2016-10-01 00:23:26 +01:00 committed by Tapani Pälli
parent 19a01f8139
commit 25c60fa6a2

View file

@ -525,14 +525,51 @@ _eglBindTexImage(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface,
}
EGLBoolean
_eglReleaseTexImage(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf,
_eglReleaseTexImage(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf,
EGLint buffer)
{
/* TODO: do basic error checking and return success/fail.
/* Just do basic error checking and return success/fail.
* Drivers must implement the real stuff.
*/
return EGL_TRUE;
EGLint texture_type = EGL_PBUFFER_BIT;
if (surf == EGL_NO_SURFACE)
{
_eglError(EGL_BAD_SURFACE, "eglReleaseTexImage");
return EGL_FALSE;
}
if (!surf->BoundToTexture)
{
/* Not an error, simply nothing to do */
return EGL_TRUE;
}
if (surf->TextureFormat == EGL_NO_TEXTURE)
{
_eglError(EGL_BAD_MATCH, "eglReleaseTexImage");
return EGL_FALSE;
}
if (buffer != EGL_BACK_BUFFER)
{
_eglError(EGL_BAD_PARAMETER, "eglReleaseTexImage");
return EGL_FALSE;
}
if (dpy->Extensions.NOK_texture_from_pixmap)
texture_type |= EGL_PIXMAP_BIT;
if (!(surf->Type & texture_type))
{
_eglError(EGL_BAD_SURFACE, "eglReleaseTexImage");
return EGL_FALSE;
}
surf->BoundToTexture = EGL_FALSE;
return EGL_TRUE;
}