[Mesa-dev] [PATCH] fixup! glsl: Add support for C-style initializers.

Matt Turner mattst88 at gmail.com
Mon Jul 1 10:39:00 PDT 2013


---
 src/glsl/glsl_parser_extras.cpp | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index f4b4924..2eb5fb7 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -674,15 +674,12 @@ static const char *
 _mesa_ast_get_matrix_column_type_name(const char *matrix_type_name)
 {
    static const char *vec_name[] = { "vec2", "vec3", "vec4" };
-   long rows;
 
-   if (strlen(matrix_type_name) == strlen("mat4")) {
-      rows = strtol(matrix_type_name + 3, NULL, 10);
-   } else {
-      assert(strlen(matrix_type_name) == strlen("mat4x2"));
-
-      rows = strtol(matrix_type_name + 5, NULL, 10);
-   }
+   /* The number of elements in a row of a matrix is specified by the last
+    * character of the matrix type name.
+    */
+   long rows = strtol(matrix_type_name + strlen(matrix_type_name) - 1,
+                      NULL, 10);
    return vec_name[rows - 2];
 }
 
-- 
1.8.1.5



More information about the mesa-dev mailing list