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