[Mesa-stable] [PATCH V2 03/10] mesa: Add error condition for integer formats in glGetTexImage()

Brian Paul brianp at vmware.com
Tue Mar 25 15:33:31 PDT 2014


On 03/25/2014 04:02 PM, Anuj Phogat wrote:
> 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>
> ---
>   src/mesa/main/texgetimage.c | 7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
> index 488b678..2747540 100644
> --- a/src/mesa/main/texgetimage.c
> +++ b/src/mesa/main/texgetimage.c
> @@ -823,7 +823,7 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
>      }
>
>      baseFormat = _mesa_get_format_base_format(texImage->TexFormat);
> -
> +
>      /* Make sure the requested image format is compatible with the
>       * texture's format.
>       */
> @@ -858,6 +858,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_enum_format_integer(texImage->TexFormat)) {

I think you're calling the wrong "is integer" function there.


> +      _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-stable mailing list