mesa: new comments, assertion related to glClearTexSubImage
authorBrian Paul <brianp@vmware.com>
Wed, 5 Jul 2017 20:44:08 +0000 (14:44 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 6 Jul 2017 22:33:57 +0000 (16:33 -0600)
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/mesa/main/teximage.c

index 36747a72732467885f91e6cea2871b699640d9b1..7b5df54ca1562fa381c9457a4b4e1ac723e45fae 100644 (file)
@@ -4361,6 +4361,15 @@ get_tex_obj_for_clear(struct gl_context *ctx,
    return texObj;
 }
 
+
+/**
+ * For clearing cube textures, the zoffset and depth parameters indicate
+ * which cube map faces are to be cleared.  This is the one case where we
+ * need to be concerned with multiple gl_texture_images.  This function
+ * returns the array of texture images to clear for cube maps, or one
+ * texture image otherwise.
+ * \return number of texture images, 0 for error, 6 for cube, 1 otherwise.
+ */
 static int
 get_tex_images_for_clear(struct gl_context *ctx,
                          const char *function,
@@ -4430,6 +4439,7 @@ _mesa_ClearTexSubImage( GLuint texture, GLint level,
       minDepth = -(int) texImages[0]->Border;
       maxDepth = texImages[0]->Depth;
    } else {
+      assert(numImages == MAX_FACES);
       minDepth = 0;
       maxDepth = numImages;
    }
@@ -4459,7 +4469,9 @@ _mesa_ClearTexSubImage( GLuint texture, GLint level,
                                       data ? clearValue[0] : NULL);
       }
    } else {
+      /* loop over cube face images */
       for (i = zoffset; i < zoffset + depth; i++) {
+         assert(i < MAX_FACES);
          if (!check_clear_tex_image(ctx, "glClearTexSubImage",
                                     texImages[i],
                                     format, type, data, clearValue[i]))