[Mesa-dev] [PATCH 2/8] gallium: add helper to use as a replacement for the MIXED_COLOR cap
Ilia Mirkin
imirkin at alum.mit.edu
Fri Oct 4 01:34:13 PDT 2013
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/gallium/auxiliary/util/u_format.c | 20 ++++++++++++++++++++
src/gallium/auxiliary/util/u_format.h | 11 +++++++++++
2 files changed, 31 insertions(+)
diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c
index a8aa571..8b9fb15 100644
--- a/src/gallium/auxiliary/util/u_format.c
+++ b/src/gallium/auxiliary/util/u_format.c
@@ -208,6 +208,26 @@ util_format_is_supported(enum pipe_format format, unsigned bind)
}
+boolean
+util_format_same_cbuf_formats(
+ const struct pipe_screen *screen,
+ int num_color_formats,
+ const enum pipe_format *color_formats,
+ enum pipe_format zsformat)
+{
+ enum pipe_format color = PIPE_FORMAT_NONE;
+ int i;
+
+ for (i = 0; i < num_color_formats; i++) {
+ if (color == PIPE_FORMAT_NONE)
+ color = color_formats[i];
+ if (color != color_formats[i])
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
void
util_format_read_4f(enum pipe_format format,
float *dst, unsigned dst_stride,
diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h
index 84f16d5..49b5656 100644
--- a/src/gallium/auxiliary/util/u_format.h
+++ b/src/gallium/auxiliary/util/u_format.h
@@ -35,6 +35,7 @@
#include "util/u_debug.h"
union pipe_color_union;
+struct pipe_screen;
#ifdef __cplusplus
@@ -665,6 +666,16 @@ boolean
util_format_is_supported(enum pipe_format format, unsigned bind);
/**
+ * Whether all the color buffers are the same.
+ */
+boolean
+util_format_same_cbuf_formats(
+ const struct pipe_screen *screen,
+ int num_color_formats,
+ const enum pipe_format *color_formats,
+ enum pipe_format zsformat);
+
+/**
* Whether this format is a rgab8 variant.
*
* That is, any format that matches the
--
1.8.1.5
More information about the mesa-dev
mailing list