mesa: new _mesa_num_tex_faces() helper
authorBrian Paul <brianp@vmware.com>
Wed, 22 Aug 2012 02:22:27 +0000 (20:22 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 24 Aug 2012 12:18:41 +0000 (06:18 -0600)
Not a real big help now, but will be useful for the
GL_ARB_texture_cube_map_array extension in the future.

src/mesa/drivers/dri/intel/intel_tex.c
src/mesa/drivers/dri/intel/intel_tex_validate.c
src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c
src/mesa/drivers/dri/radeon/radeon_texture.c
src/mesa/main/mipmap.c
src/mesa/main/texobj.c
src/mesa/main/texobj.h
src/mesa/main/texstorage.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/swrast/s_texture.c

index 4abe9885369653bccb19d5bd360a2f552bd6387a..5d938798d9fb6a6c32758b48fa6723e23fa7f665 100644 (file)
@@ -120,7 +120,7 @@ intel_alloc_texture_storage(struct gl_context *ctx,
                             GLsizei levels, GLsizei width,
                             GLsizei height, GLsizei depth)
 {
-   const int numFaces = (texObj->Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+   const int numFaces = _mesa_num_tex_faces(texObj->Target);
    int face;
    int level;
 
index 34bbbb8393096886e24153672247f065d903371c..77c93290216902b41a3b90c9b649c7e20c7b6e48 100644 (file)
@@ -1,6 +1,7 @@
 #include "main/mtypes.h"
 #include "main/macros.h"
 #include "main/samplerobj.h"
+#include "main/texobj.h"
 
 #include "intel_context.h"
 #include "intel_mipmap_tree.h"
@@ -95,7 +96,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
 
    /* Pull in any images not in the object's tree:
     */
-   nr_faces = (intelObj->base.Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+   nr_faces = _mesa_num_tex_faces(intelObj->base.Target);
    for (face = 0; face < nr_faces; face++) {
       for (i = tObj->BaseLevel; i <= intelObj->_MaxLevel; i++) {
          struct intel_texture_image *intelImage =
@@ -181,7 +182,7 @@ intel_tex_map_images(struct intel_context *intel,
                     struct intel_texture_object *intelObj,
                     GLbitfield mode)
 {
-   GLuint nr_faces = (intelObj->base.Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+   GLuint nr_faces = _mesa_num_tex_faces(intelObj->base.Target);
    int i, face;
 
    DBG("%s\n", __FUNCTION__);
@@ -200,7 +201,7 @@ void
 intel_tex_unmap_images(struct intel_context *intel,
                       struct intel_texture_object *intelObj)
 {
-   GLuint nr_faces = (intelObj->base.Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+   GLuint nr_faces = _mesa_num_tex_faces(intelObj->base.Target);
    int i, face;
 
    for (i = intelObj->base.BaseLevel; i <= intelObj->_MaxLevel; i++) {
index 0ef6457f513db5d4e7bf485f2a780a6de0352fb4..8901090df8b39a42d1e823b4bd83e54f1962bb40 100644 (file)
@@ -198,7 +198,7 @@ radeon_mipmap_tree* radeon_miptree_create(radeonContextPtr rmesa,
        mt->mesaFormat = mesaFormat;
        mt->refcount = 1;
        mt->target = target;
-       mt->faces = (target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+       mt->faces = _mesa_num_tex_faces(target);
        mt->baseLevel = baseLevel;
        mt->numLevels = numLevels;
        mt->width0 = width0;
@@ -569,7 +569,7 @@ int radeon_validate_texture_miptree(struct gl_context * ctx,
                        "%s: Using miptree %p\n", __FUNCTION__, t->mt);
        }
 
-       const unsigned faces = texObj->Target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+       const unsigned faces = _mesa_num_tex_faces(texObj->Target);
        unsigned face, level;
        radeon_texture_image *img;
        /* Validate only the levels that will actually be used during rendering */
index 157cc096a3151a314dca45ec47bc785837325e08..11b825d9dabcb0a5fba9997d4c41358e853ebb04 100644 (file)
@@ -750,7 +750,7 @@ radeon_swrast_map_texture_images(struct gl_context *ctx,
                                 struct gl_texture_object *texObj)
 {
        radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-       GLuint nr_faces = (texObj->Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+       GLuint nr_faces = _mesa_num_tex_faces(texObj->Target);
        int i, face;
 
        for (i = texObj->BaseLevel; i <= texObj->_MaxLevel; i++) {
@@ -766,7 +766,7 @@ radeon_swrast_unmap_texture_images(struct gl_context *ctx,
                                   struct gl_texture_object *texObj)
 {
        radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-       GLuint nr_faces = (texObj->Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+       GLuint nr_faces = _mesa_num_tex_faces(texObj->Target);
        int i, face;
 
        for (i = texObj->BaseLevel; i <= texObj->_MaxLevel; i++) {
index 00d3e8f9ed60b0324eb15a88e154222cdbe4022f..15373ba69b0fd320c1f21da03409db2ca81affbd 100644 (file)
@@ -33,6 +33,7 @@
 #include "mipmap.h"
 #include "mtypes.h"
 #include "teximage.h"
+#include "texobj.h"
 #include "texstore.h"
 #include "image.h"
 #include "macros.h"
@@ -1817,7 +1818,7 @@ _mesa_prepare_mipmap_level(struct gl_context *ctx,
                            GLsizei width, GLsizei height, GLsizei depth,
                            GLsizei border, GLenum intFormat, gl_format format)
 {
-   const GLuint numFaces = texObj->Target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+   const GLuint numFaces = _mesa_num_tex_faces(texObj->Target);
    GLuint face;
 
    if (texObj->Immutable) {
index 77cd4f9625fc254c0fcba930bf06ae0a4462eb39..2b2dccfbc1fab963a2a535c551c0409b1ddb45a6 100644 (file)
@@ -577,7 +577,7 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx,
       GLint i;
       const GLint minLevel = baseLevel;
       const GLint maxLevel = t->_MaxLevel;
-      const GLuint numFaces = t->Target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+      const GLuint numFaces = _mesa_num_tex_faces(t->Target);
       GLuint width, height, depth, face;
 
       if (minLevel > maxLevel) {
@@ -826,7 +826,7 @@ _mesa_get_fallback_texture(struct gl_context *ctx, gl_texture_index tex)
 static GLuint
 texture_size(const struct gl_texture_object *texObj)
 {
-   const GLuint numFaces = texObj->Target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+   const GLuint numFaces = _mesa_num_tex_faces(texObj->Target);
    GLuint face, level, size = 0;
 
    for (face = 0; face < numFaces; face++) {
index 93e0d77382e021c86381aa0e8828170bbc394ae5..a6f1d3a14ff5d4b37e31ca2875fb9929241bf88d 100644 (file)
@@ -78,6 +78,17 @@ _mesa_reference_texobj(struct gl_texture_object **ptr,
 }
 
 
+/**
+ * Return number of faces for a texture target.  This will be 6 for
+ * cube maps (and cube map arrays) and 1 otherwise.
+ */
+static inline GLuint
+_mesa_num_tex_faces(GLenum target)
+{
+   return target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+}
+
+
 /** Is the texture "complete" with respect to the given sampler state? */
 static inline GLboolean
 _mesa_is_texture_complete(const struct gl_texture_object *texObj,
index 5e1f31a9377af3e20f769c82c393e4849ec837e9..f8af8bf012b4fd8cd35d4f3a9d0eed6996b5ac2a 100644 (file)
@@ -36,6 +36,7 @@
 #include "macros.h"
 #include "mfeatures.h"
 #include "teximage.h"
+#include "texobj.h"
 #include "texstorage.h"
 #include "mtypes.h"
 
@@ -128,7 +129,7 @@ setup_texstorage(struct gl_context *ctx,
                  GLsizei width, GLsizei height, GLsizei depth)
 {
    const GLenum target = texObj->Target;
-   const GLuint numFaces = (target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+   const GLuint numFaces = _mesa_num_tex_faces(target);
    gl_format texFormat;
    GLint level, levelWidth = width, levelHeight = height, levelDepth = depth;
    GLuint face;
@@ -206,7 +207,7 @@ clear_image_fields(struct gl_context *ctx,
                    struct gl_texture_object *texObj)
 {
    const GLenum target = texObj->Target;
-   const GLuint numFaces = (target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+   const GLuint numFaces = _mesa_num_tex_faces(target);
    GLint level;
    GLuint face;
 
index a7c732bd72fb9aff79e93401e7a01c7bec06f826..3de96adf3ed42212d0fa7b91a2c0f54641fd7afa 100644 (file)
@@ -1299,7 +1299,7 @@ st_AllocTextureStorage(struct gl_context *ctx,
                        GLsizei levels, GLsizei width,
                        GLsizei height, GLsizei depth)
 {
-   const GLuint numFaces = (texObj->Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+   const GLuint numFaces = _mesa_num_tex_faces(texObj->Target);
    struct st_context *st = st_context(ctx);
    struct st_texture_object *stObj = st_texture_object(texObj);
    GLuint ptWidth, ptHeight, ptDepth, ptLayers, bindings;
index 8df4b84398ee8e8915017684aaa63ba7b5a029de..1b73d46e49bde9aad03269f81eae863620ff6e15 100644 (file)
@@ -29,6 +29,7 @@
 #include "main/context.h"
 #include "main/fbobject.h"
 #include "main/teximage.h"
+#include "main/texobj.h"
 #include "swrast/swrast.h"
 #include "swrast/s_context.h"
 
@@ -246,7 +247,7 @@ _swrast_unmap_teximage(struct gl_context *ctx,
 void
 _swrast_map_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
 {
-   const GLuint faces = texObj->Target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+   const GLuint faces = _mesa_num_tex_faces(texObj->Target);
    GLuint face, level;
 
    for (face = 0; face < faces; face++) {
@@ -267,7 +268,7 @@ _swrast_map_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
 void
 _swrast_unmap_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
 {
-   const GLuint faces = texObj->Target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+   const GLuint faces = _mesa_num_tex_faces(texObj->Target);
    GLuint face, level;
 
    for (face = 0; face < faces; face++) {