summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/library/slang_core.gc
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2006-12-15 15:32:11 -0700
committerBrian <brian@yutani.localnet.net>2006-12-15 15:32:11 -0700
commit6579245800f39c14f738db8e8ae1d93a65a32a4c (patch)
treeabc0d00f8cb65d3eda9c4ad9143c5ea6fa76fb09 /src/mesa/shader/slang/library/slang_core.gc
parent4b4632f94c726c19d3c1efd05ceb5770a430cefd (diff)
redo mat4 addition, mat4 constructor from vec4s
Diffstat (limited to 'src/mesa/shader/slang/library/slang_core.gc')
-rwxr-xr-xsrc/mesa/shader/slang/library/slang_core.gc29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/mesa/shader/slang/library/slang_core.gc b/src/mesa/shader/slang/library/slang_core.gc
index 8f1b0c2d3c..e94fa20a7f 100755
--- a/src/mesa/shader/slang/library/slang_core.gc
+++ b/src/mesa/shader/slang/library/slang_core.gc
@@ -307,6 +307,18 @@ mat4 __constructor (const bool b) {
return mat4 (b ? 1.0 : 0.0);
}
+
+mat4 __constructor (const vec4 r0, const vec4 r1, const vec4 r2, const vec4 r3)
+{
+ __retVal[0] = r0;
+ __retVal[1] = r1;
+ __retVal[2] = r2;
+ __retVal[3] = r3;
+}
+
+
+
+
void __operator += (inout float a, const float b) {
__asm float_add a, a, b;
}
@@ -1040,12 +1052,21 @@ mat3 __operator / (const mat3 m, const mat3 n) {
return mat3 (m[0] / n[0], m[1] / n[1], m[2] / n[2]);
}
-mat4 __operator + (const mat4 m, const mat4 n) {
- return mat4 (m[0] + n[0], m[1] + n[1], m[2] + n[2], m[3] + n[3]);
+
+mat4 __operator + (const mat4 m, const mat4 n)
+{
+ __retVal[0] = m[0] + n[0];
+ __retVal[1] = m[1] + n[1];
+ __retVal[2] = m[2] + n[2];
+ __retVal[3] = m[3] + n[3];
}
-mat4 __operator - (const mat4 m, const mat4 n) {
- return mat4 (m[0] - n[0], m[1] - n[1], m[2] - n[2], m[3] - n[3]);
+mat4 __operator - (const mat4 m, const mat4 n)
+{
+ __retVal[0] = m[0] - n[0];
+ __retVal[1] = m[1] - n[1];
+ __retVal[2] = m[2] - n[2];
+ __retVal[3] = m[3] - n[3];
}
mat4 __operator / (const mat4 m, const mat4 n) {