glsl: Clean up and clarify comment explaining initializer rules.
authorMatt Turner <mattst88@gmail.com>
Mon, 10 Jun 2013 20:28:40 +0000 (13:28 -0700)
committerMatt Turner <mattst88@gmail.com>
Fri, 12 Jul 2013 03:58:58 +0000 (20:58 -0700)
Reviewed-by: Ian Romanick <ian.d.romainck@intel.com>
src/glsl/ast_function.cpp

index 4b0b87351f53e9a4513db0e3042f4015473f1b4c..bbc607ac4e3cd6130a7c7dd453ad96a672b16150 100644 (file)
@@ -1311,13 +1311,19 @@ ast_function_expression::hir(exec_list *instructions,
       }
 
 
-      /* There are two kinds of constructor call.  Constructors for built-in
-       * language types, such as mat4 and vec2, are free form.  The only
-       * requirement is that the parameters must provide enough values of the
-       * correct scalar type.  Constructors for arrays and structures must
-       * have the exact number of parameters with matching types in the
-       * correct order.  These constructors follow essentially the same type
-       * matching rules as functions.
+      /* There are two kinds of constructor calls.  Constructors for arrays and
+       * structures must have the exact number of arguments with matching types
+       * in the correct order.  These constructors follow essentially the same
+       * type matching rules as functions.
+       *
+       * Constructors for built-in language types, such as mat4 and vec2, are
+       * free form.  The only requirements are that the parameters must provide
+       * enough values of the correct scalar type and that no arguments are
+       * given past the last used argument.
+       *
+       * When using the C-style initializer syntax from GLSL 4.20, constructors
+       * must have the exact number of arguments with matching types in the
+       * correct order.
        */
       if (constructor_type->is_record()) {
         exec_list actual_parameters;