Mesa (master): util: add dual blend helper function (v2)

Dave Airlie airlied at kemper.freedesktop.org
Fri Apr 13 16:23:36 UTC 2012


Module: Mesa
Branch: master
Commit: c59d32d1ce9eee7bf0dcebfca1e69edbda90c22d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c59d32d1ce9eee7bf0dcebfca1e69edbda90c22d

Author: Dave Airlie <airlied at redhat.com>
Date:   Sat Mar 24 14:28:03 2012 +0000

util: add dual blend helper function (v2)

This is just a function to tell if a certain blend mode requires dual sources.

v2: move to inlines as per Brian's suggestion

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/auxiliary/util/u_dual_blend.h |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_dual_blend.h b/src/gallium/auxiliary/util/u_dual_blend.h
new file mode 100644
index 0000000..e31d43c
--- /dev/null
+++ b/src/gallium/auxiliary/util/u_dual_blend.h
@@ -0,0 +1,26 @@
+#ifndef U_DUAL_BLEND_H
+#define U_DUAL_BLEND_H
+
+#include "pipe/p_state.h"
+
+static INLINE boolean util_blend_factor_is_dual_src(int factor)
+{
+   return (factor == PIPE_BLENDFACTOR_SRC1_COLOR) ||
+          (factor == PIPE_BLENDFACTOR_SRC1_ALPHA) ||
+          (factor == PIPE_BLENDFACTOR_INV_SRC1_COLOR) ||
+          (factor == PIPE_BLENDFACTOR_INV_SRC1_ALPHA);
+}
+
+static INLINE boolean util_blend_state_is_dual(const struct pipe_blend_state *blend, 
+				  int index)
+{
+   if (util_blend_factor_is_dual_src(blend->rt[index].rgb_src_factor) ||
+       util_blend_factor_is_dual_src(blend->rt[index].alpha_src_factor) ||
+       util_blend_factor_is_dual_src(blend->rt[index].rgb_dst_factor) ||
+       util_blend_factor_is_dual_src(blend->rt[index].alpha_dst_factor))
+      return true;
+   return false;
+}
+
+
+#endif




More information about the mesa-commit mailing list