Browse Source

mesa: reject immutable textures in glEGLImageTargetTexture2DOES()

GL_ARB_texture_storage says:

    The commands eglBindTexImage, wglBindTexImageARB, glXBindTexImageEXT or
    EGLImageTargetTexture2DOES are not permitted on an immutable-format
    texture.
    They will generate the following errors:
      - EGLImageTargetTexture2DOES: INVALID_OPERATION
      - eglBindTexImage: EGL_BAD_MATCH
      - wglBindTexImage: ERROR_INVALID_OPERATION
      - glXBindTexImageEXT: BadMatch

Fixing the EGL and GLX cases requires extending the DRI interface,
since setTexBuffer2 doesn't currently return any error information.

Reviewed-by: Brian Paul <brianp@vmware.com>
tags/i965-primitive-restart-v2
Dylan Noblesmith 13 years ago
parent
commit
18bb6852b2
1 changed files with 7 additions and 0 deletions
  1. 7
    0
      src/mesa/main/teximage.c

+ 7
- 0
src/mesa/main/teximage.c View File

@@ -2692,6 +2692,13 @@ _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image)
texObj = _mesa_get_current_tex_object(ctx, target);
_mesa_lock_texture(ctx, texObj);

if (texObj->Immutable) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glEGLImageTargetTexture2D(texture is immutable)");
_mesa_unlock_texture(ctx, texObj);
return;
}

texImage = _mesa_get_tex_image(ctx, texObj, target, 0);
if (!texImage) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glEGLImageTargetTexture2D");

Loading…
Cancel
Save