From: Brian Date: Sat, 3 Feb 2007 01:00:03 +0000 (-0700) Subject: add _slang_multiply_swizzles() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1b3092e4bb89b7a5bd64a3e27f82299d4b2669a2;p=mesa.git add _slang_multiply_swizzles() --- 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) {