Mesa (10.1): mesa: Add error condition for integer formats in glGetTexImage()

Carl Worth cworth at kemper.freedesktop.org
Wed Apr 23 09:27:25 UTC 2014


Module: Mesa
Branch: 10.1
Commit: 6a154a48753bb13894be4e9e535f30f049716e80
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6a154a48753bb13894be4e9e535f30f049716e80

Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Tue Mar 18 17:01:19 2014 -0700

mesa: Add error condition for integer formats in glGetTexImage()

OpenGL 4.0 spec, page 306 suggests an INVALID_OPERATION in glGetTexImage
if :
   "format is one of the integer formats in table 3.3 and the internal
    format of the texture image is not integer, or format is not one of
    the integer formats in table 3.3 and the internal format is integer."

V2: Use helper function _mesa_is_format_integer()

Cc: <mesa-stable at lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
(cherry picked from commit cb6566f9df61bfc84c27b382ba3e494bbac782d9)

---

 src/mesa/main/texgetimage.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index 63da027..1cbe0a2 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -851,6 +851,11 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
       _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
       return GL_TRUE;
    }
+   else if (_mesa_is_enum_format_integer(format) !=
+            _mesa_is_format_integer(texImage->TexFormat)) {
+      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
+      return GL_TRUE;
+   }
 
    if (!_mesa_validate_pbo_access(dimensions, &ctx->Pack, texImage->Width,
                                   texImage->Height, texImage->Depth,




More information about the mesa-commit mailing list