mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
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:
parent
19a01f8139
commit
25c60fa6a2
1 changed files with 40 additions and 3 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue