summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/library/slang_core.gc
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-01-20 07:56:00 -0700
committerBrian <brian@yutani.localnet.net>2007-01-20 07:56:00 -0700
commit9f07ed00e4d4bca95189720dd44bf57a228baf02 (patch)
tree83b180688299e0dd767b131402d440bcae506b3d /src/mesa/shader/slang/library/slang_core.gc
parent3cec66512de9c424088ff4fd9332bcceec8ee3c6 (diff)
rewrite more __postIncr functions
Diffstat (limited to 'src/mesa/shader/slang/library/slang_core.gc')
-rw-r--r--src/mesa/shader/slang/library/slang_core.gc74
1 files changed, 49 insertions, 25 deletions
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;
}