From 1b3092e4bb89b7a5bd64a3e27f82299d4b2669a2 Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 2 Feb 2007 18:00:03 -0700 Subject: add _slang_multiply_swizzles() --- src/mesa/shader/slang/slang_typeinfo.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src') diff --git a/src/mesa/shader/slang/slang_typeinfo.c b/src/mesa/shader/slang/slang_typeinfo.c index 8bedb40435a..5a3c2eac6b4 100644 --- a/src/mesa/shader/slang/slang_typeinfo.c +++ b/src/mesa/shader/slang/slang_typeinfo.c @@ -151,6 +151,22 @@ _slang_is_swizzle_mask(const slang_swizzle * swz, GLuint rows) } +/** + * Combines (multiplies) two swizzles to form single swizzle. + * Example: "vec.wzyx.yx" --> "vec.zw". + */ +GLvoid +_slang_multiply_swizzles(slang_swizzle * dst, const slang_swizzle * left, + const slang_swizzle * right) +{ + GLuint i; + + dst->num_components = right->num_components; + for (i = 0; i < right->num_components; i++) + dst->swizzle[i] = left->swizzle[right->swizzle[i]]; +} + + GLvoid slang_type_specifier_ctr(slang_type_specifier * self) { -- cgit v1.2.3