util: add util_resource_is_array_texture()
authorChia-I Wu <olvaffe@gmail.com>
Fri, 7 Jun 2013 06:52:48 +0000 (14:52 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Fri, 7 Jun 2013 17:37:40 +0000 (01:37 +0800)
Checking if array_size is greater than 1 is not enough for single-layered
array textures.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/util/u_resource.h

index 977e0136bea30e86adfef7f340172308dd8f9ef5..a5e091fd66e0bdde2c30b85a150e7e17b968288d 100644 (file)
 #ifndef U_RESOURCE_H
 #define U_RESOURCE_H
 
-struct pipe_resource;
+#include "pipe/p_state.h"
 
 unsigned
 util_resource_size(const struct pipe_resource *res);
 
+/**
+ * Return true if the resource is an array texture.
+ *
+ * Note that this function returns true for single-layered array textures.
+ */
+static INLINE boolean
+util_resource_is_array_texture(const struct pipe_resource *res)
+{
+   switch (res->target) {
+   case PIPE_TEXTURE_1D_ARRAY:
+   case PIPE_TEXTURE_2D_ARRAY:
+   case PIPE_TEXTURE_CUBE_ARRAY:
+      return TRUE;
+   default:
+      return FALSE;
+   }
+}
+
 #endif