On Mon, 2015-08-10 at 11:06 +0300, 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.pa...@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 > +_mesa_tex_storage_invalid_dim(GLsizei width, GLsizei height, GLsizei depth) > +{ > + if (width < 1 || height < 1 || depth < 1) > + return true; > + return false; > +}
Since its only used in one other place I'm not sure if this is an improvement over just using width < 1 || height < 1 || depth < 1 in the next patch. Or is this used elsewhere in your branch? It would probably make sense to move it to texstorage.h and inline it. > > /** > * 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 */ _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev