Mesa (master): ir_print_visitor: Print out constant structure values.

Kenneth Graunke kwg at kemper.freedesktop.org
Fri Dec 3 22:00:21 UTC 2010


Module: Mesa
Branch: master
Commit: b7acf538af24ddab72a5cbd5975f089a747b68e4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7acf538af24ddab72a5cbd5975f089a747b68e4

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Dec  2 10:11:49 2010 -0800

ir_print_visitor: Print out constant structure values.

In the form (constant type ((field1 value) (field2 value) ...))

---

 src/glsl/ir_print_visitor.cpp |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/glsl/ir_print_visitor.cpp b/src/glsl/ir_print_visitor.cpp
index 55188ee..0aa0b0a 100644
--- a/src/glsl/ir_print_visitor.cpp
+++ b/src/glsl/ir_print_visitor.cpp
@@ -318,6 +318,15 @@ void ir_print_visitor::visit(ir_constant *ir)
    if (ir->type->is_array()) {
       for (unsigned i = 0; i < ir->type->length; i++)
 	 ir->get_array_element(i)->accept(this);
+   } else if (ir->type->is_record()) {
+      ir_constant *value = (ir_constant *) ir->components.get_head();
+      for (unsigned i = 0; i < ir->type->length; i++) {
+	 printf("(%s ", ir->type->fields.structure->name);
+	 value->accept(this);
+	 printf(")");
+
+	 value = (ir_constant *) value->next;
+      }
    } else {
       for (unsigned i = 0; i < ir->type->components(); i++) {
 	 if (i != 0)




More information about the mesa-commit mailing list