Mesa (master): mesa: move _mesa_es_error_check_format_and_type() to glformats.c

Brian Paul brianp at kemper.freedesktop.org
Wed Sep 26 13:52:22 UTC 2012


Module: Mesa
Branch: master
Commit: 3ba9dbbabf591cfeb388cafbd9fa40cb784d32d9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ba9dbbabf591cfeb388cafbd9fa40cb784d32d9

Author: Brian Paul <brianp at vmware.com>
Date:   Sat Sep 22 09:30:24 2012 -0600

mesa: move _mesa_es_error_check_format_and_type() to glformats.c

Where the non-ES _mesa_error_check_format_and_type() function lives.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/main/glformats.c |   69 +++++++++++++++++++++++++++++++++++++++++++++
 src/mesa/main/glformats.h |    4 ++
 src/mesa/main/readpix.c   |    1 -
 src/mesa/main/teximage.c  |   65 ------------------------------------------
 src/mesa/main/teximage.h  |    3 --
 5 files changed, 73 insertions(+), 69 deletions(-)

diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
index 047a613..04029c0 100644
--- a/src/mesa/main/glformats.c
+++ b/src/mesa/main/glformats.c
@@ -1372,3 +1372,72 @@ _mesa_error_check_format_and_type(const struct gl_context *ctx,
    }
    return GL_NO_ERROR;
 }
+
+
+/**
+ * Do error checking of format/type combinations for OpenGL ES glReadPixels
+ * and glTex[Sub]Image.
+ * \return error code, or GL_NO_ERROR.
+ */
+GLenum
+_mesa_es_error_check_format_and_type(GLenum format, GLenum type,
+                                     unsigned dimensions)
+{
+   GLboolean type_valid = GL_TRUE;
+
+   switch (format) {
+   case GL_ALPHA:
+   case GL_LUMINANCE:
+   case GL_LUMINANCE_ALPHA:
+      type_valid = (type == GL_UNSIGNED_BYTE
+                    || type == GL_FLOAT
+                    || type == GL_HALF_FLOAT_OES);
+      break;
+
+   case GL_RGB:
+      type_valid = (type == GL_UNSIGNED_BYTE
+                    || type == GL_UNSIGNED_SHORT_5_6_5
+                    || type == GL_FLOAT
+                    || type == GL_HALF_FLOAT_OES);
+      break;
+
+   case GL_RGBA:
+      type_valid = (type == GL_UNSIGNED_BYTE
+                    || type == GL_UNSIGNED_SHORT_4_4_4_4
+                    || type == GL_UNSIGNED_SHORT_5_5_5_1
+                    || type == GL_FLOAT
+                    || type == GL_HALF_FLOAT_OES
+                    || type == GL_UNSIGNED_INT_2_10_10_10_REV);
+      break;
+
+   case GL_DEPTH_COMPONENT:
+      /* This format is filtered against invalid dimensionalities elsewhere.
+       */
+      type_valid = (type == GL_UNSIGNED_SHORT
+                    || type == GL_UNSIGNED_INT);
+      break;
+
+   case GL_DEPTH_STENCIL:
+      /* This format is filtered against invalid dimensionalities elsewhere.
+       */
+      type_valid = (type == GL_UNSIGNED_INT_24_8);
+      break;
+
+   case GL_BGRA_EXT:
+      type_valid = (type == GL_UNSIGNED_BYTE);
+
+      /* This feels like a bug in the EXT_texture_format_BGRA8888 spec, but
+       * the format does not appear to be allowed for 3D textures in OpenGL
+       * ES.
+       */
+      if (dimensions != 2)
+         return GL_INVALID_VALUE;
+
+      break;
+
+   default:
+      return GL_INVALID_VALUE;
+   }
+
+   return type_valid ? GL_NO_ERROR : GL_INVALID_OPERATION;
+}
diff --git a/src/mesa/main/glformats.h b/src/mesa/main/glformats.h
index 24fbda9..e5b63a9 100644
--- a/src/mesa/main/glformats.h
+++ b/src/mesa/main/glformats.h
@@ -98,6 +98,10 @@ extern GLenum
 _mesa_error_check_format_and_type(const struct gl_context *ctx,
                                   GLenum format, GLenum type);
 
+extern GLenum
+_mesa_es_error_check_format_and_type(GLenum format, GLenum type,
+                                     unsigned dimensions);
+
 
 #ifdef __cplusplus
 }
diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
index 1793095..f6680c9 100644
--- a/src/mesa/main/readpix.c
+++ b/src/mesa/main/readpix.c
@@ -38,7 +38,6 @@
 #include "state.h"
 #include "glformats.h"
 #include "fbobject.h"
-#include "teximage.h"
 
 
 /**
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index fb22c8d..afda0ea 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -1681,71 +1681,6 @@ mutable_tex_object(struct gl_context *ctx, GLenum target)
 }
 
 
-GLenum
-_mesa_es_error_check_format_and_type(GLenum format, GLenum type,
-                                     unsigned dimensions)
-{
-   bool type_valid = true;
-
-   switch (format) {
-   case GL_ALPHA:
-   case GL_LUMINANCE:
-   case GL_LUMINANCE_ALPHA:
-      type_valid = (type == GL_UNSIGNED_BYTE
-                    || type == GL_FLOAT
-                    || type == GL_HALF_FLOAT_OES);
-      break;
-
-   case GL_RGB:
-      type_valid = (type == GL_UNSIGNED_BYTE
-                    || type == GL_UNSIGNED_SHORT_5_6_5
-                    || type == GL_FLOAT
-                    || type == GL_HALF_FLOAT_OES);
-      break;
-
-   case GL_RGBA:
-      type_valid = (type == GL_UNSIGNED_BYTE
-                    || type == GL_UNSIGNED_SHORT_4_4_4_4
-                    || type == GL_UNSIGNED_SHORT_5_5_5_1
-                    || type == GL_FLOAT
-                    || type == GL_HALF_FLOAT_OES
-                    || type == GL_UNSIGNED_INT_2_10_10_10_REV);
-      break;
-
-   case GL_DEPTH_COMPONENT:
-      /* This format is filtered against invalid dimensionalities elsewhere.
-       */
-      type_valid = (type == GL_UNSIGNED_SHORT
-                    || type == GL_UNSIGNED_INT);
-      break;
-
-   case GL_DEPTH_STENCIL:
-      /* This format is filtered against invalid dimensionalities elsewhere.
-       */
-      type_valid = (type == GL_UNSIGNED_INT_24_8);
-      break;
-
-   case GL_BGRA_EXT:
-      type_valid = (type == GL_UNSIGNED_BYTE);
-
-      /* This feels like a bug in the EXT_texture_format_BGRA8888 spec, but
-       * the format does not appear to be allowed for 3D textures in OpenGL
-       * ES.
-       */
-      if (dimensions != 2)
-         return GL_INVALID_VALUE;
-
-      break;
-
-   default:
-      return GL_INVALID_VALUE;
-   }
-
-   return type_valid ? GL_NO_ERROR : GL_INVALID_OPERATION;
-}
-
-
-
 /**
  * Return expected size of a compressed texture.
  */
diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
index c7c32d8..e1b15d2 100644
--- a/src/mesa/main/teximage.h
+++ b/src/mesa/main/teximage.h
@@ -138,9 +138,6 @@ _mesa_tex_target_to_face(GLenum target);
 extern GLint
 _mesa_get_texture_dimensions(GLenum target);
 
-extern GLenum
-_mesa_es_error_check_format_and_type(GLenum format, GLenum type,
-                                     unsigned dimensions);
 
 extern GLboolean
 _mesa_legal_texture_dimensions(struct gl_context *ctx, GLenum target,




More information about the mesa-commit mailing list