From d6c2708e1eb319e577f61ea137471a1966d231ab Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 7 Jun 2013 14:52:48 +0800 Subject: util: add util_resource_is_array_texture() Checking if array_size is greater than 1 is not enough for single-layered array textures. Signed-off-by: Chia-I Wu Reviewed-by: Brian Paul --- src/gallium/auxiliary/util/u_resource.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/gallium/auxiliary/util/u_resource.h') diff --git a/src/gallium/auxiliary/util/u_resource.h b/src/gallium/auxiliary/util/u_resource.h index 977e0136bea..a5e091fd66e 100644 --- a/src/gallium/auxiliary/util/u_resource.h +++ b/src/gallium/auxiliary/util/u_resource.h @@ -26,9 +26,27 @@ #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 -- cgit v1.2.3