summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/library/slang_common_builtin.gc
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-03-08 09:38:35 -0700
committerBrian <brian@yutani.localnet.net>2007-03-08 09:38:35 -0700
commitde8172673e23bad1186553b91a7c22e65d93692a (patch)
tree98d34048bba510acc26f3e420e1bf52942cdde03 /src/mesa/shader/slang/library/slang_common_builtin.gc
parent6ff0a04f7ccc6a7049bccedb3dc52382e854848b (diff)
Rework matrix-related code.
GLSL matrices are stored in column-major order while GL_ARB_vertex/fragment_program use row-major. So, need to use STATE_MATRIX_TRANSPOSE for built-in matrices. Unfortunately, this means that the expression M * V isn't very efficient since we need to extract the rows out of M. And that's the typical expression for vertex transformation: gl_ModelViewProjectionMatrix * gl_Position. Solve this inefficiency by looking for M*V expressions and replacing them with V*Transpose(M). Also, add support for GLSL 1.20's MatrixTranspose, Inverse and InverseTranspose matrices.
Diffstat (limited to 'src/mesa/shader/slang/library/slang_common_builtin.gc')
-rw-r--r--src/mesa/shader/slang/library/slang_common_builtin.gc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/shader/slang/library/slang_common_builtin.gc b/src/mesa/shader/slang/library/slang_common_builtin.gc
index c8931d259e..476608fb06 100644
--- a/src/mesa/shader/slang/library/slang_common_builtin.gc
+++ b/src/mesa/shader/slang/library/slang_common_builtin.gc
@@ -47,6 +47,7 @@ uniform mat4 gl_ModelViewProjectionMatrix;
uniform mat4 gl_TextureMatrix[gl_MaxTextureCoords];
uniform mat3 gl_NormalMatrix;
+uniform mat3 __NormalMatrixTranspose; // Mesa only
uniform mat4 gl_ModelViewMatrixInverse;
uniform mat4 gl_ProjectionMatrixInverse;