gallium/u_format: add a new helper for initializing pipe_blit_info::mask
authorMarek Olšák <maraeo@gmail.com>
Wed, 29 May 2013 17:26:56 +0000 (19:26 +0200)
committerMarek Olšák <maraeo@gmail.com>
Thu, 13 Jun 2013 01:54:13 +0000 (03:54 +0200)
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/util/u_format.h
src/gallium/auxiliary/util/u_surface.c

index e4b9c365c977b18ad844abd5a4c38ca0e7f6267f..4cace6ad1b934b3473a46f4ba110d684c0df49bf 100644 (file)
@@ -31,6 +31,7 @@
 
 
 #include "pipe/p_format.h"
+#include "pipe/p_defines.h"
 #include "util/u_debug.h"
 
 union pipe_color_union;
@@ -520,6 +521,33 @@ util_format_is_depth_and_stencil(enum pipe_format format)
           util_format_has_stencil(desc);
 }
 
+/**
+ * Return whether this is an RGBA, Z, S, or combined ZS format.
+ * Useful for initializing pipe_blit_info::mask.
+ */
+static INLINE unsigned
+util_format_get_mask(enum pipe_format format)
+{
+   const struct util_format_description *desc =
+      util_format_description(format);
+
+   if (!desc)
+      return 0;
+
+   if (util_format_has_depth(desc)) {
+      if (util_format_has_stencil(desc)) {
+         return PIPE_MASK_ZS;
+      } else {
+         return PIPE_MASK_Z;
+      }
+   } else {
+      if (util_format_has_stencil(desc)) {
+         return PIPE_MASK_S;
+      } else {
+         return PIPE_MASK_RGBA;
+      }
+   }
+}
 
 /**
  * Give the RGBA colormask of the channels that can be represented in this
index 17591f11988522743a8c0e2fdb208414078da793..07997d2adc7324ba67169a1ad64b5f3178b7fc15 100644 (file)
@@ -548,30 +548,6 @@ util_clear_depth_stencil(struct pipe_context *pipe,
 }
 
 
-/* Return whether this is an RGBA, Z, S, or combined ZS format.
- */
-static unsigned
-get_format_mask(enum pipe_format format)
-{
-   const struct util_format_description *desc = util_format_description(format);
-
-   assert(desc);
-
-   if (util_format_has_depth(desc)) {
-      if (util_format_has_stencil(desc)) {
-         return PIPE_MASK_ZS;
-      } else {
-         return PIPE_MASK_Z;
-      }
-   } else {
-      if (util_format_has_stencil(desc)) {
-         return PIPE_MASK_S;
-      } else {
-         return PIPE_MASK_RGBA;
-      }
-   }
-}
-
 /* Return if the box is totally inside the resource.
  */
 static boolean
@@ -654,7 +630,7 @@ boolean
 util_try_blit_via_copy_region(struct pipe_context *ctx,
                               const struct pipe_blit_info *blit)
 {
-   unsigned mask = get_format_mask(blit->dst.format);
+   unsigned mask = util_format_get_mask(blit->dst.format);
 
    /* No format conversions. */
    if (blit->src.resource->format != blit->src.format ||