summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTapani Pälli <[email protected]>2015-08-10 10:50:06 +0300
committerTapani Pälli <[email protected]>2015-08-19 07:25:09 +0300
commita342becc490b38436396e98ee653a6b81c037663 (patch)
tree771384c83532f93f62842ccf2ee5bddf6f9b590d
parent2b40a144b7a589ebd5e80c9a8a8241c53201035e (diff)
mesa: expose dimension check for glTex*Storage functions
This is done so that following patch can use it to verify dimensions for multisample variants of glTex*Storage. v2: move function to header, use bool instead GLboolean v3: small changes, cleanup Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r--src/mesa/main/texstorage.c2
-rw-r--r--src/mesa/main/texstorage.h21
2 files changed, 22 insertions, 1 deletions
diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c
index 4a2cc6065df..db2b63d8ac2 100644
--- a/src/mesa/main/texstorage.c
+++ b/src/mesa/main/texstorage.c
@@ -287,7 +287,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_valid_tex_storage_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 6f5495f3856..033ecb7edaa 100644
--- a/src/mesa/main/texstorage.h
+++ b/src/mesa/main/texstorage.h
@@ -38,6 +38,27 @@ _mesa_texture_storage(struct gl_context *ctx, GLuint dims,
GLenum internalformat, GLsizei width,
GLsizei height, GLsizei depth, bool dsa);
+/**
+ * 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.)
+ */
+static inline bool
+_mesa_valid_tex_storage_dim(GLsizei width, GLsizei height, GLsizei depth)
+{
+ if (width < 1 || height < 1 || depth < 1)
+ return false;
+ return true;
+}
+
/*@}*/
/**