Like swizzle_x(), swizzle_y(), etc., except the index is programmable.
---
 src/glsl/ir_builder.cpp | 6 ++++++
 src/glsl/ir_builder.h   | 1 +
 2 files changed, 7 insertions(+)

diff --git a/src/glsl/ir_builder.cpp b/src/glsl/ir_builder.cpp
index 7f41ed6..2229cd2 100644
--- a/src/glsl/ir_builder.cpp
+++ b/src/glsl/ir_builder.cpp
@@ -166,6 +166,12 @@ swizzle_xy(operand a)
 }
 
 ir_swizzle *
+swizzle_component(operand a, int component)
+{
+   return swizzle(a, MAKE_SWIZZLE4(component, component, component, 
component), 1);
+}
+
+ir_swizzle *
 swizzle_xyz(operand a)
 {
    return swizzle(a, SWIZZLE_XYZW, 3);
diff --git a/src/glsl/ir_builder.h b/src/glsl/ir_builder.h
index f00e6f3..ae10995 100644
--- a/src/glsl/ir_builder.h
+++ b/src/glsl/ir_builder.h
@@ -206,6 +206,7 @@ ir_swizzle *swizzle_x(operand a);
 ir_swizzle *swizzle_y(operand a);
 ir_swizzle *swizzle_z(operand a);
 ir_swizzle *swizzle_w(operand a);
+ir_swizzle *swizzle_component(operand a, int component);
 ir_swizzle *swizzle_xy(operand a);
 ir_swizzle *swizzle_xyz(operand a);
 ir_swizzle *swizzle_xyzw(operand a);
-- 
1.8.3.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to