Mesa (glsl2): ir_print_visitor: Print out constant arrays.

Kenneth Graunke kwg at kemper.freedesktop.org
Thu Jul 22 00:21:29 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 9930d18c2aefad12152d12bc251d02ae1c1593bc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9930d18c2aefad12152d12bc251d02ae1c1593bc

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Jul 20 01:28:09 2010 -0700

ir_print_visitor: Print out constant arrays.

---

 src/glsl/ir_print_visitor.cpp |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/glsl/ir_print_visitor.cpp b/src/glsl/ir_print_visitor.cpp
index 05ac302..1eb073f 100644
--- a/src/glsl/ir_print_visitor.cpp
+++ b/src/glsl/ir_print_visitor.cpp
@@ -270,16 +270,20 @@ void ir_print_visitor::visit(ir_constant *ir)
    print_type(ir->type);
    printf(" (");
 
-   for (unsigned i = 0; i < ir->type->components(); i++) {
-      if (i != 0)
-	 printf(" ");
-
-      switch (base_type->base_type) {
-      case GLSL_TYPE_UINT:  printf("%u", ir->value.u[i]); break;
-      case GLSL_TYPE_INT:   printf("%d", ir->value.i[i]); break;
-      case GLSL_TYPE_FLOAT: printf("%f", ir->value.f[i]); break;
-      case GLSL_TYPE_BOOL:  printf("%d", ir->value.b[i]); break;
-      default: assert(0);
+   if (ir->type->is_array()) {
+      for (unsigned i = 0; i < ir->type->length; i++)
+	 ir->get_array_element(i)->accept(this);
+   } else {
+      for (unsigned i = 0; i < ir->type->components(); i++) {
+	 if (i != 0)
+	    printf(" ");
+	 switch (base_type->base_type) {
+	 case GLSL_TYPE_UINT:  printf("%u", ir->value.u[i]); break;
+	 case GLSL_TYPE_INT:   printf("%d", ir->value.i[i]); break;
+	 case GLSL_TYPE_FLOAT: printf("%f", ir->value.f[i]); break;
+	 case GLSL_TYPE_BOOL:  printf("%d", ir->value.b[i]); break;
+	 default: assert(0);
+	 }
       }
    }
    printf(")) ");




More information about the mesa-commit mailing list