mesa: Branch 'master' - 4 commits
Brian Paul
brianp at kemper.freedesktop.org
Sun Apr 8 22:47:44 UTC 2007
configs/default | 2 -
progs/demos/Makefile | 15 ++++++---
progs/util/extfuncs.h | 14 ++++++++
src/mesa/shader/slang/library/slang_shader.syn | 21 ++++++++++++
src/mesa/shader/slang/library/slang_shader_syn.h | 12 +++++++
src/mesa/shader/slang/slang_codegen.c | 9 +++++
src/mesa/shader/slang/slang_compile.c | 25 +++++++++++++++
src/mesa/shader/slang/slang_compile_variable.c | 18 ++++++++++
src/mesa/shader/slang/slang_print.c | 18 ++++++++++
src/mesa/shader/slang/slang_storage.c | 26 ++++++++++++---
src/mesa/shader/slang/slang_typeinfo.c | 38 +++++++++++++++++++++--
src/mesa/shader/slang/slang_typeinfo.h | 6 +++
12 files changed, 190 insertions(+), 14 deletions(-)
New commits:
diff-tree 5c0c60a13cb95032a49aa77ae7275387a351a057 (from 5dba996dba3bd55f1f44904e7abd9486fee899d9)
Author: Brian <brian at nostromo.localnet.net>
Date: Sun Apr 8 16:47:32 2007 -0600
support for GLSL 1.20 non-square matrices
diff --git a/src/mesa/shader/slang/library/slang_shader.syn b/src/mesa/shader/slang/library/slang_shader.syn
index 9389869..1764d1a 100644
--- a/src/mesa/shader/slang/library/slang_shader.syn
+++ b/src/mesa/shader/slang/library/slang_shader.syn
@@ -144,6 +144,15 @@
.emtcode TYPE_SPECIFIER_STRUCT 24
.emtcode TYPE_SPECIFIER_TYPENAME 25
+/* OpenGL 2.1 */
+.emtcode TYPE_SPECIFIER_MAT23 26
+.emtcode TYPE_SPECIFIER_MAT32 27
+.emtcode TYPE_SPECIFIER_MAT24 28
+.emtcode TYPE_SPECIFIER_MAT42 29
+.emtcode TYPE_SPECIFIER_MAT34 30
+.emtcode TYPE_SPECIFIER_MAT43 31
+
+
/* structure field */
.emtcode FIELD_NONE 0
.emtcode FIELD_NEXT 1
@@ -880,6 +889,12 @@ type_qualifier
| "mat2"
| "mat3"
| "mat4"
+ | "mat2x3"
+ | "mat3x2"
+ | "mat2x4"
+ | "mat4x2"
+ | "mat3x4"
+ | "mat4x3"
| "sampler1D"
| "sampler2D"
| "sampler3D"
@@ -908,6 +923,12 @@ type_specifier_space
"mat2" .emit TYPE_SPECIFIER_MAT2 .or
"mat3" .emit TYPE_SPECIFIER_MAT3 .or
"mat4" .emit TYPE_SPECIFIER_MAT4 .or
+ "mat2x3" .emit TYPE_SPECIFIER_MAT23 .or
+ "mat3x2" .emit TYPE_SPECIFIER_MAT32 .or
+ "mat2x4" .emit TYPE_SPECIFIER_MAT24 .or
+ "mat4x2" .emit TYPE_SPECIFIER_MAT42 .or
+ "mat3x4" .emit TYPE_SPECIFIER_MAT34 .or
+ "mat4x3" .emit TYPE_SPECIFIER_MAT43 .or
"sampler1D" .emit TYPE_SPECIFIER_SAMPLER1D .or
"sampler2D" .emit TYPE_SPECIFIER_SAMPLER2D .or
"sampler3D" .emit TYPE_SPECIFIER_SAMPLER3D .or
diff --git a/src/mesa/shader/slang/library/slang_shader_syn.h b/src/mesa/shader/slang/library/slang_shader_syn.h
index 4863fed..fe37adc 100644
--- a/src/mesa/shader/slang/library/slang_shader_syn.h
+++ b/src/mesa/shader/slang/library/slang_shader_syn.h
@@ -67,6 +67,12 @@
".emtcode TYPE_SPECIFIER_SAMPLER2DRECTSHADOW 23\n"
".emtcode TYPE_SPECIFIER_STRUCT 24\n"
".emtcode TYPE_SPECIFIER_TYPENAME 25\n"
+".emtcode TYPE_SPECIFIER_MAT23 26\n"
+".emtcode TYPE_SPECIFIER_MAT32 27\n"
+".emtcode TYPE_SPECIFIER_MAT24 28\n"
+".emtcode TYPE_SPECIFIER_MAT42 29\n"
+".emtcode TYPE_SPECIFIER_MAT34 30\n"
+".emtcode TYPE_SPECIFIER_MAT43 31\n"
".emtcode FIELD_NONE 0\n"
".emtcode FIELD_NEXT 1\n"
".emtcode FIELD_ARRAY 2\n"
@@ -431,6 +437,12 @@
" \"mat2\" .emit TYPE_SPECIFIER_MAT2 .or\n"
" \"mat3\" .emit TYPE_SPECIFIER_MAT3 .or\n"
" \"mat4\" .emit TYPE_SPECIFIER_MAT4 .or\n"
+" \"mat2x3\" .emit TYPE_SPECIFIER_MAT23 .or\n"
+" \"mat3x2\" .emit TYPE_SPECIFIER_MAT32 .or\n"
+" \"mat2x4\" .emit TYPE_SPECIFIER_MAT24 .or\n"
+" \"mat4x2\" .emit TYPE_SPECIFIER_MAT42 .or\n"
+" \"mat3x4\" .emit TYPE_SPECIFIER_MAT34 .or\n"
+" \"mat4x3\" .emit TYPE_SPECIFIER_MAT43 .or\n"
" \"sampler1D\" .emit TYPE_SPECIFIER_SAMPLER1D .or\n"
" \"sampler2D\" .emit TYPE_SPECIFIER_SAMPLER2D .or\n"
" \"sampler3D\" .emit TYPE_SPECIFIER_SAMPLER3D .or\n"
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index 0c14e64..a25037c 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -143,6 +143,15 @@ _slang_sizeof_type_specifier(const slang
return 3 * 3;
case SLANG_SPEC_MAT4:
return 4 * 4;
+ case SLANG_SPEC_MAT23:
+ case SLANG_SPEC_MAT32:
+ return 2 * 3;
+ case SLANG_SPEC_MAT24:
+ case SLANG_SPEC_MAT42:
+ return 2 * 4;
+ case SLANG_SPEC_MAT34:
+ case SLANG_SPEC_MAT43:
+ return 3 * 4;
case SLANG_SPEC_SAMPLER1D:
case SLANG_SPEC_SAMPLER2D:
case SLANG_SPEC_SAMPLER3D:
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c
index 85dd158..65522ae 100644
--- a/src/mesa/shader/slang/slang_compile.c
+++ b/src/mesa/shader/slang/slang_compile.c
@@ -491,6 +491,13 @@ parse_type_qualifier(slang_parse_ctx * C
#define TYPE_SPECIFIER_SAMPLER2DRECTSHADOW 23
#define TYPE_SPECIFIER_STRUCT 24
#define TYPE_SPECIFIER_TYPENAME 25
+#define TYPE_SPECIFIER_MAT23 26
+#define TYPE_SPECIFIER_MAT32 27
+#define TYPE_SPECIFIER_MAT24 28
+#define TYPE_SPECIFIER_MAT42 29
+#define TYPE_SPECIFIER_MAT34 30
+#define TYPE_SPECIFIER_MAT43 31
+
static int
parse_type_specifier(slang_parse_ctx * C, slang_output_ctx * O,
@@ -545,6 +552,24 @@ parse_type_specifier(slang_parse_ctx * C
case TYPE_SPECIFIER_MAT4:
spec->type = SLANG_SPEC_MAT4;
break;
+ case TYPE_SPECIFIER_MAT23:
+ spec->type = SLANG_SPEC_MAT23;
+ break;
+ case TYPE_SPECIFIER_MAT32:
+ spec->type = SLANG_SPEC_MAT32;
+ break;
+ case TYPE_SPECIFIER_MAT24:
+ spec->type = SLANG_SPEC_MAT24;
+ break;
+ case TYPE_SPECIFIER_MAT42:
+ spec->type = SLANG_SPEC_MAT42;
+ break;
+ case TYPE_SPECIFIER_MAT34:
+ spec->type = SLANG_SPEC_MAT34;
+ break;
+ case TYPE_SPECIFIER_MAT43:
+ spec->type = SLANG_SPEC_MAT43;
+ break;
case TYPE_SPECIFIER_SAMPLER1D:
spec->type = SLANG_SPEC_SAMPLER1D;
break;
diff --git a/src/mesa/shader/slang/slang_compile_variable.c b/src/mesa/shader/slang/slang_compile_variable.c
index 9a0b985..819b4f9 100644
--- a/src/mesa/shader/slang/slang_compile_variable.c
+++ b/src/mesa/shader/slang/slang_compile_variable.c
@@ -56,6 +56,12 @@ static const type_specifier_type_name ty
{"mat2", SLANG_SPEC_MAT2},
{"mat3", SLANG_SPEC_MAT3},
{"mat4", SLANG_SPEC_MAT4},
+ {"mat2x3", SLANG_SPEC_MAT23},
+ {"mat3x2", SLANG_SPEC_MAT32},
+ {"mat2x4", SLANG_SPEC_MAT24},
+ {"mat4x2", SLANG_SPEC_MAT42},
+ {"mat3x4", SLANG_SPEC_MAT34},
+ {"mat4x3", SLANG_SPEC_MAT43},
{"sampler1D", SLANG_SPEC_SAMPLER1D},
{"sampler2D", SLANG_SPEC_SAMPLER2D},
{"sampler3D", SLANG_SPEC_SAMPLER3D},
@@ -367,6 +373,18 @@ gl_type_from_specifier(const slang_type_
return GL_FLOAT_MAT3_ARB;
case SLANG_SPEC_MAT4:
return GL_FLOAT_MAT4_ARB;
+ case SLANG_SPEC_MAT23:
+ return GL_FLOAT_MAT2x3_ARB;
+ case SLANG_SPEC_MAT32:
+ return GL_FLOAT_MAT3x2_ARB;
+ case SLANG_SPEC_MAT24:
+ return GL_FLOAT_MAT2x4_ARB;
+ case SLANG_SPEC_MAT42:
+ return GL_FLOAT_MAT4x2_ARB;
+ case SLANG_SPEC_MAT34:
+ return GL_FLOAT_MAT3x4_ARB;
+ case SLANG_SPEC_MAT43:
+ return GL_FLOAT_MAT4x3_ARB;
case SLANG_SPEC_SAMPLER1D:
return GL_SAMPLER_1D_ARB;
case SLANG_SPEC_SAMPLER2D:
diff --git a/src/mesa/shader/slang/slang_print.c b/src/mesa/shader/slang/slang_print.c
index 90e6fe2..f3e127c 100644
--- a/src/mesa/shader/slang/slang_print.c
+++ b/src/mesa/shader/slang/slang_print.c
@@ -101,6 +101,24 @@ print_type(const slang_fully_specified_t
case SLANG_SPEC_MAT4:
printf("mat4");
break;
+ case SLANG_SPEC_MAT23:
+ printf("mat2x3");
+ break;
+ case SLANG_SPEC_MAT32:
+ printf("mat3x2");
+ break;
+ case SLANG_SPEC_MAT24:
+ printf("mat2x4");
+ break;
+ case SLANG_SPEC_MAT42:
+ printf("mat4x2");
+ break;
+ case SLANG_SPEC_MAT34:
+ printf("mat3x4");
+ break;
+ case SLANG_SPEC_MAT43:
+ printf("mat4x3");
+ break;
case SLANG_SPEC_SAMPLER1D:
printf("sampler1D");
break;
diff --git a/src/mesa/shader/slang/slang_storage.c b/src/mesa/shader/slang/slang_storage.c
index 6d6a6d9..ecd6048 100644
--- a/src/mesa/shader/slang/slang_storage.c
+++ b/src/mesa/shader/slang/slang_storage.c
@@ -105,13 +105,13 @@ aggregate_vector(slang_storage_aggregate
static GLboolean
aggregate_matrix(slang_storage_aggregate * agg, slang_storage_type basic_type,
- GLuint dimension)
+ GLuint columns, GLuint rows)
{
slang_storage_array *arr = slang_storage_aggregate_push_new(agg);
if (arr == NULL)
return GL_FALSE;
arr->type = SLANG_STORE_AGGREGATE;
- arr->length = dimension;
+ arr->length = columns;
arr->aggregate =
(slang_storage_aggregate *)
slang_alloc_malloc(sizeof(slang_storage_aggregate));
@@ -122,7 +122,7 @@ aggregate_matrix(slang_storage_aggregate
arr->aggregate = NULL;
return GL_FALSE;
}
- if (!aggregate_vector(arr->aggregate, basic_type, dimension))
+ if (!aggregate_vector(arr->aggregate, basic_type, rows))
return GL_FALSE;
return GL_TRUE;
}
@@ -180,11 +180,25 @@ _slang_aggregate_variable(slang_storage_
case SLANG_SPEC_VEC4:
return aggregate_vector(agg, SLANG_STORE_FLOAT, 4);
case SLANG_SPEC_MAT2:
- return aggregate_matrix(agg, SLANG_STORE_FLOAT, 2);
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 2, 2);
case SLANG_SPEC_MAT3:
- return aggregate_matrix(agg, SLANG_STORE_FLOAT, 3);
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 3, 3);
case SLANG_SPEC_MAT4:
- return aggregate_matrix(agg, SLANG_STORE_FLOAT, 4);
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 4, 4);
+
+ case SLANG_SPEC_MAT23:
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 2, 3);
+ case SLANG_SPEC_MAT32:
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 3, 2);
+ case SLANG_SPEC_MAT24:
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 2, 4);
+ case SLANG_SPEC_MAT42:
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 4, 2);
+ case SLANG_SPEC_MAT34:
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 3, 4);
+ case SLANG_SPEC_MAT43:
+ return aggregate_matrix(agg, SLANG_STORE_FLOAT, 4, 3);
+
case SLANG_SPEC_SAMPLER1D:
case SLANG_SPEC_SAMPLER2D:
case SLANG_SPEC_SAMPLER3D:
diff --git a/src/mesa/shader/slang/slang_typeinfo.c b/src/mesa/shader/slang/slang_typeinfo.c
index fef5575..2af8eb7 100644
--- a/src/mesa/shader/slang/slang_typeinfo.c
+++ b/src/mesa/shader/slang/slang_typeinfo.c
@@ -815,6 +815,12 @@ _slang_type_is_matrix(slang_type_specifi
case SLANG_SPEC_MAT2:
case SLANG_SPEC_MAT3:
case SLANG_SPEC_MAT4:
+ case SLANG_SPEC_MAT23:
+ case SLANG_SPEC_MAT32:
+ case SLANG_SPEC_MAT24:
+ case SLANG_SPEC_MAT42:
+ case SLANG_SPEC_MAT34:
+ case SLANG_SPEC_MAT43:
return GL_TRUE;
default:
return GL_FALSE;
@@ -847,7 +853,8 @@ _slang_type_is_vector(slang_type_specifi
/**
- * Given a vector type, return the type of the vector's elements
+ * Given a vector type, return the type of the vector's elements.
+ * For a matrix, return the type of the columns.
*/
slang_type_specifier_type
_slang_type_base(slang_type_specifier_type ty)
@@ -874,6 +881,18 @@ _slang_type_base(slang_type_specifier_ty
return SLANG_SPEC_VEC3;
case SLANG_SPEC_MAT4:
return SLANG_SPEC_VEC4;
+ case SLANG_SPEC_MAT23:
+ return SLANG_SPEC_VEC3;
+ case SLANG_SPEC_MAT32:
+ return SLANG_SPEC_VEC2;
+ case SLANG_SPEC_MAT24:
+ return SLANG_SPEC_VEC4;
+ case SLANG_SPEC_MAT42:
+ return SLANG_SPEC_VEC2;
+ case SLANG_SPEC_MAT34:
+ return SLANG_SPEC_VEC4;
+ case SLANG_SPEC_MAT43:
+ return SLANG_SPEC_VEC3;
default:
return SLANG_SPEC_VOID;
}
@@ -881,7 +900,8 @@ _slang_type_base(slang_type_specifier_ty
/**
- * Return the dimensionality of a vector or matrix type.
+ * Return the dimensionality of a vector, or for a matrix, return number
+ * of columns.
*/
GLuint
_slang_type_dim(slang_type_specifier_type ty)
@@ -906,6 +926,20 @@ _slang_type_dim(slang_type_specifier_typ
case SLANG_SPEC_BVEC4:
case SLANG_SPEC_MAT4:
return 4;
+
+ case SLANG_SPEC_MAT23:
+ return 2;
+ case SLANG_SPEC_MAT32:
+ return 3;
+ case SLANG_SPEC_MAT24:
+ return 2;
+ case SLANG_SPEC_MAT42:
+ return 4;
+ case SLANG_SPEC_MAT34:
+ return 3;
+ case SLANG_SPEC_MAT43:
+ return 4;
+
default:
return 0;
}
diff --git a/src/mesa/shader/slang/slang_typeinfo.h b/src/mesa/shader/slang/slang_typeinfo.h
index c815c99..ffffd09 100644
--- a/src/mesa/shader/slang/slang_typeinfo.h
+++ b/src/mesa/shader/slang/slang_typeinfo.h
@@ -108,6 +108,12 @@ typedef enum slang_type_specifier_type_
SLANG_SPEC_MAT2,
SLANG_SPEC_MAT3,
SLANG_SPEC_MAT4,
+ SLANG_SPEC_MAT23,
+ SLANG_SPEC_MAT32,
+ SLANG_SPEC_MAT24,
+ SLANG_SPEC_MAT42,
+ SLANG_SPEC_MAT34,
+ SLANG_SPEC_MAT43,
SLANG_SPEC_SAMPLER1D,
SLANG_SPEC_SAMPLER2D,
SLANG_SPEC_SAMPLER3D,
diff-tree 5dba996dba3bd55f1f44904e7abd9486fee899d9 (from 9612a3011f52ab98b42e48d0eed76b68bca92e57)
Author: Brian <brian at nostromo.localnet.net>
Date: Sun Apr 8 15:50:31 2007 -0600
add glsl to PROGRAM_DIRS
diff --git a/configs/default b/configs/default
index 72176f1..b162287 100644
--- a/configs/default
+++ b/configs/default
@@ -63,7 +63,7 @@ SRC_DIRS = mesa glu glut/glx glw
GLU_DIRS = sgi
DRIVER_DIRS = x11 osmesa
# Which subdirs under $(TOP)/progs/ to enter:
-PROGRAM_DIRS = demos redbook samples xdemos
+PROGRAM_DIRS = demos redbook samples glsl xdemos
# Library/program dependencies
diff-tree 9612a3011f52ab98b42e48d0eed76b68bca92e57 (from 0d3d930912d0e4c78f5e4785625614fe8b5b613e)
Author: Brian <brian at nostromo.localnet.net>
Date: Sun Apr 8 15:42:26 2007 -0600
fix some dependencies, remove some CFLAGS
diff --git a/progs/demos/Makefile b/progs/demos/Makefile
index 6369746..cf96828 100644
--- a/progs/demos/Makefile
+++ b/progs/demos/Makefile
@@ -118,34 +118,39 @@ extfuncs.h: $(TOP)/progs/util/extfuncs.
reflect: reflect.o showbuffer.o readtex.o
- $(CC) -I$(INCDIR) $(CFLAGS) reflect.o showbuffer.o readtex.o $(APP_LIB_DEPS) -o $@
+ $(CC) reflect.o showbuffer.o readtex.o $(APP_LIB_DEPS) -o $@
reflect.o: reflect.c showbuffer.h
$(CC) -c -I$(INCDIR) $(CFLAGS) reflect.c
shadowtex: shadowtex.o showbuffer.o
- $(CC) -I$(INCDIR) $(CFLAGS) shadowtex.o showbuffer.o $(APP_LIB_DEPS) -o $@
+ $(CC) shadowtex.o showbuffer.o $(APP_LIB_DEPS) -o $@
shadowtex.o: shadowtex.c showbuffer.h
$(CC) -c -I$(INCDIR) $(CFLAGS) shadowtex.c
gloss: gloss.o trackball.o readtex.o
- $(CC) -I$(INCDIR) $(CFLAGS) gloss.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
+ $(CC) gloss.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
gloss.o: gloss.c trackball.h
$(CC) -c -I$(INCDIR) $(CFLAGS) gloss.c
engine: engine.o trackball.o readtex.o
- $(CC) -I$(INCDIR) $(CFLAGS) engine.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
+ $(CC) engine.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
engine.o: engine.c trackball.h
$(CC) -c -I$(INCDIR) $(CFLAGS) engine.c
-fslight.c: extfuncs.h
+fslight: fslight.o
+ $(CC) fslight.o $(APP_LIB_DEPS) -o $@
+
+fslight.o: fslight.c extfuncs.h
+ $(CC) -c -I$(INCDIR) $(CFLAGS) fslight.c
+
clean:
diff-tree 0d3d930912d0e4c78f5e4785625614fe8b5b613e (from d8bfc42bb778e46e64569a6f621e9d41ddca2e59)
Author: Brian <brian at nostromo.localnet.net>
Date: Sun Apr 8 15:41:02 2007 -0600
add 2.1 functions
diff --git a/progs/util/extfuncs.h b/progs/util/extfuncs.h
index 13067cd..90302bb 100644
--- a/progs/util/extfuncs.h
+++ b/progs/util/extfuncs.h
@@ -38,6 +38,13 @@ static PFNGLVERTEXATTRIB2FPROC glVertexA
static PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f_func = NULL;
static PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f_func = NULL;
+/* OpenGL 2.1 */
+static PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv_func = NULL;
+static PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv_func = NULL;
+static PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv_func = NULL;
+static PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv_func = NULL;
+static PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv_func = NULL;
+static PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv_func = NULL;
/* GL_ARB_vertex/fragment_program */
static PFNGLBINDPROGRAMARBPROC glBindProgramARB_func = NULL;
@@ -98,6 +105,13 @@ GetExtensionFuncs(void)
glVertexAttrib3f_func = (PFNGLVERTEXATTRIB3FPROC) glutGetProcAddress("glVertexAttrib3f");
glVertexAttrib4f_func = (PFNGLVERTEXATTRIB4FPROC) glutGetProcAddress("glVertexAttrib4f");
+ /* OpenGL 2.1 */
+ glUniformMatrix2x3fv_func = (PFNGLUNIFORMMATRIX2X3FVPROC) glutGetProcAddress("glUniformMatrix2x3fv");
+ glUniformMatrix3x2fv_func = (PFNGLUNIFORMMATRIX3X2FVPROC) glutGetProcAddress("glUniformMatrix3x2fv");
+ glUniformMatrix2x4fv_func = (PFNGLUNIFORMMATRIX2X4FVPROC) glutGetProcAddress("glUniformMatrix2x4fv");
+ glUniformMatrix4x2fv_func = (PFNGLUNIFORMMATRIX4X2FVPROC) glutGetProcAddress("glUniformMatrix4x2fv");
+ glUniformMatrix3x4fv_func = (PFNGLUNIFORMMATRIX3X4FVPROC) glutGetProcAddress("glUniformMatrix3x4fv");
+ glUniformMatrix4x3fv_func = (PFNGLUNIFORMMATRIX4X3FVPROC) glutGetProcAddress("glUniformMatrix4x3fv");
/* GL_ARB_vertex/fragment_program */
glBindProgramARB_func = (PFNGLBINDPROGRAMARBPROC) glutGetProcAddress("glBindProgramARB");
More information about the mesa-commit
mailing list