summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2013-09-03 16:55:37 -0700
committerKenneth Graunke <kenneth@whitecape.org>2013-09-09 11:52:22 -0700
commit1a6c0efa116e7427e3ee5f24db2000e3edb66047 (patch)
tree0843cf556e5072128c6b8dd862e455cff0fcbbd4
parent202238824bdde9ddac5753232eee4f3d1e2d67db (diff)
glsl: Expose IR builder support for arbitrary swizzling.
IR builder already offers a lot of swizzling functions, such as swizzle_xxxx, swizzle_z, or swizzle_for_size. The swizzle_xxxx style is convenient if you statically know which components you want. swizzle_for_size is great if you want to select the first few components. However, if you want to select components based on, say, a loop counter, none of those are sufficient. IR builder actually already had support for arbitrary swizzling, but didn't expose it. This patch exposes that API. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Paul Berry <stereotype441@gmail.com>
-rw-r--r--src/glsl/ir_builder.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/glsl/ir_builder.h b/src/glsl/ir_builder.h
index 6d32d7a68b..091cf400b4 100644
--- a/src/glsl/ir_builder.h
+++ b/src/glsl/ir_builder.h
@@ -171,6 +171,7 @@ ir_expression *u2i(operand a);
ir_expression *b2i(operand a);
ir_expression *i2b(operand a);
+ir_swizzle *swizzle(operand a, int swizzle, int components);
/**
* Swizzle away later components, but preserve the ordering.
*/