ir_print_visitor: Print out constant arrays.

This commit is contained in:
Kenneth Graunke
2010-07-20 01:28:09 -07:00
parent 7ea977a15c
commit 9930d18c2a

View File

@@ -270,16 +270,20 @@ void ir_print_visitor::visit(ir_constant *ir)
print_type(ir->type); print_type(ir->type);
printf(" ("); printf(" (");
for (unsigned i = 0; i < ir->type->components(); i++) { if (ir->type->is_array()) {
if (i != 0) for (unsigned i = 0; i < ir->type->length; i++)
printf(" "); ir->get_array_element(i)->accept(this);
} else {
switch (base_type->base_type) { for (unsigned i = 0; i < ir->type->components(); i++) {
case GLSL_TYPE_UINT: printf("%u", ir->value.u[i]); break; if (i != 0)
case GLSL_TYPE_INT: printf("%d", ir->value.i[i]); break; printf(" ");
case GLSL_TYPE_FLOAT: printf("%f", ir->value.f[i]); break; switch (base_type->base_type) {
case GLSL_TYPE_BOOL: printf("%d", ir->value.b[i]); break; case GLSL_TYPE_UINT: printf("%u", ir->value.u[i]); break;
default: assert(0); 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(")) "); printf(")) ");