[Mesa-dev] [PATCH 1/4] mesa: expose dimension check for glTex*Storage functions
Brian Paul
brianp at vmware.com
Mon Aug 10 09:50:52 PDT 2015
On 08/10/2015 02:06 AM, Tapani Pälli wrote:
> This is done so that following patch can use it to verify dimenstions
> for multisample variants of glTex*Storage.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
> src/mesa/main/texstorage.c | 22 +++++++++++++++++++++-
> src/mesa/main/texstorage.h | 3 +++
> 2 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c
> index 4a2cc60..9a321cc 100644
> --- a/src/mesa/main/texstorage.c
> +++ b/src/mesa/main/texstorage.c
> @@ -266,6 +266,26 @@ _mesa_AllocTextureStorage_sw(struct gl_context *ctx,
> return GL_TRUE;
> }
>
> +/**
> + * Texture width, height and depth check shared with the
> + * multisample variants of TexStorage functions.
> + *
> + * From OpenGL 4.5 Core spec, page 260 (section 8.19)
> + *
> + * "An INVALID_VALUE error is generated if width, height, depth
> + * or levels are less than 1, for commands with the corresponding
> + * parameters."
> + *
> + * (referring to TextureStorage* commands, these also match values
> + * specified for OpenGL ES 3.1.)
> + */
> +GLboolean
s/GLboolean/bool/
> +_mesa_tex_storage_invalid_dim(GLsizei width, GLsizei height, GLsizei depth)
> +{
> + if (width < 1 || height < 1 || depth < 1)
> + return true;
> + return false;
> +}
>
> /**
> * Do error checking for calls to glTexStorage1/2/3D().
> @@ -287,7 +307,7 @@ tex_storage_error_check(struct gl_context *ctx,
> * order to allow meta functions to use legacy formats. */
>
> /* size check */
> - if (width < 1 || height < 1 || depth < 1) {
> + if (_mesa_tex_storage_invalid_dim(width, height, depth)) {
> _mesa_error(ctx, GL_INVALID_VALUE,
> "glTex%sStorage%uD(width, height or depth < 1)",
> suffix, dims);
> diff --git a/src/mesa/main/texstorage.h b/src/mesa/main/texstorage.h
> index 6f5495f..62108a8 100644
> --- a/src/mesa/main/texstorage.h
> +++ b/src/mesa/main/texstorage.h
> @@ -98,4 +98,7 @@ _mesa_AllocTextureStorage_sw(struct gl_context *ctx,
> GLsizei levels, GLsizei width,
> GLsizei height, GLsizei depth);
>
> +extern GLboolean
> +_mesa_tex_storage_invalid_dim(GLsizei width, GLsizei height, GLsizei depth);
> +
> #endif /* TEXSTORAGE_H */
>
More information about the mesa-dev
mailing list