Whole structures are assignable
authorIan Romanick <ian.d.romanick@intel.com>
Sat, 3 Apr 2010 00:05:59 +0000 (17:05 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Sat, 3 Apr 2010 00:06:57 +0000 (17:06 -0700)
Whole arrays are assignable in GLSL 1.20 and later, but it's not clear
how to handle that within the IR because the IR is supposed to be
shading language version agnostic.

ir.cpp

diff --git a/ir.cpp b/ir.cpp
index dd426df..ef93c40 100644 (file)
--- a/ir.cpp
+++ b/ir.cpp
@@ -200,8 +200,11 @@ ir_dereference::is_lvalue()
    if (var == NULL)
       return false;
 
-   if (this->type->base_type == GLSL_TYPE_ARRAY ||
-       this->type->base_type == GLSL_TYPE_STRUCT)
+   /* Arrays are not assignable in GLSL 1.10, but in GLSL 1.20 and later they
+    * are.
+    */
+   /* FINISHME: Handle GLSL 1.10 vs 1.20 differences. */
+   if (this->type->base_type == GLSL_TYPE_ARRAY)
       return false;
 
    if (mode == ir_reference_variable) {