From 9f07ed00e4d4bca95189720dd44bf57a228baf02 Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 20 Jan 2007 07:56:00 -0700 Subject: rewrite more __postIncr functions --- src/mesa/shader/slang/library/slang_core.gc | 74 +++++++++++++++++++---------- 1 file changed, 49 insertions(+), 25 deletions(-) (limited to 'src/mesa/shader/slang/library/slang_core.gc') diff --git a/src/mesa/shader/slang/library/slang_core.gc b/src/mesa/shader/slang/library/slang_core.gc index 01d91e3c41..407c613ab5 100644 --- a/src/mesa/shader/slang/library/slang_core.gc +++ b/src/mesa/shader/slang/library/slang_core.gc @@ -2344,18 +2344,22 @@ mat4 __postDecr(inout mat4 m) //// post-increment -float __postIncr(inout float a) { - float b = a; - ++a; - return b; +float __postIncr(inout float a) +{ + __retVal = a; + a = a + 1; } -vec2 __postIncr(inout vec2 v) { - return vec2 (v.x++, v.y++); +vec2 __postIncr(inout vec2 v) +{ + __retVal = v; + v = v + vec2(1.0); } -vec3 __postIncr(inout vec3 v) { - return vec3 (v.x++, v.y++, v.z++); +vec3 __postIncr(inout vec3 v) +{ + __retVal = v; + v = v + vec3(1.0); } vec4 __postIncr(inout vec4 v) @@ -2365,36 +2369,56 @@ vec4 __postIncr(inout vec4 v) } -int __postIncr(inout int a) { - int b = a; - ++a; - return b; +int __postIncr(inout int a) +{ + __retVal = a; + a = a + 1; } -ivec2 __postIncr(inout ivec2 v) { - return ivec2 (v.x++, v.y++); +ivec2 __postIncr(inout ivec2 v) +{ + __retVal = v; + v = v + ivec2(1); } -ivec3 __postIncr(inout ivec3 v) { - return ivec3 (v.x++, v.y++, v.z++); +ivec3 __postIncr(inout ivec3 v) +{ + __retVal = v; + v = v + ivec3(1); } -ivec4 __postIncr(inout ivec4 v) { - return ivec4 (v.x++, v.y++, v.z++, v.w++); +ivec4 __postIncr(inout ivec4 v) +{ + __retVal = v; + v = v + ivec3(1); } - -mat2 __postIncr(inout mat2 m) { - return mat2 (m[0]++, m[1]++); +mat2 __postIncr(inout mat2 m) +{ + mat2 n = m; + m[0] = m[0] + vec2(1.0); + m[1] = m[1] + vec2(1.0); + return n; } -mat3 __postIncr(inout mat3 m) { - return mat3 (m[0]++, m[1]++, m[2]++); +mat3 __postIncr(inout mat3 m) +{ + mat3 n = m; + m[0] = m[0] + vec3(1.0); + m[1] = m[1] + vec3(1.0); + m[2] = m[2] + vec3(1.0); + return n; } -mat4 __postIncr(inout mat4 m) { - return mat4 (m[0]++, m[1]++, m[2]++, m[3]++); +mat4 __postIncr(inout mat4 m) +{ + mat4 n = m; + m[0] = m[0] + vec4(1.0); + m[1] = m[1] + vec4(1.0); + m[2] = m[2] + vec4(1.0); + m[3] = m[3] + vec4(1.0); + return n; } -- cgit v1.2.3