summaryrefslogtreecommitdiff
path: root/ir_print_visitor.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2010-05-26 15:15:31 -0700
committerKenneth Graunke <kenneth@whitecape.org>2010-06-09 11:14:57 -0700
commitbe298063b501a3e0bd769209f531fd23e4e4646e (patch)
tree5280a343f06a7e0abd294d283d7bf7e26a3198b4 /ir_print_visitor.cpp
parentc30f6e5dea7e75983784f3539304c8dd36356d1c (diff)
ir_print_visitor: Add support for ir_texture.
Diffstat (limited to 'ir_print_visitor.cpp')
-rw-r--r--ir_print_visitor.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/ir_print_visitor.cpp b/ir_print_visitor.cpp
index 84edad5..18ff48c 100644
--- a/ir_print_visitor.cpp
+++ b/ir_print_visitor.cpp
@@ -143,6 +143,55 @@ void ir_print_visitor::visit(ir_expression *ir)
}
+void ir_print_visitor::visit(ir_texture *ir)
+{
+ printf("(%s ", ir->opcode_string());
+
+ ir->sampler->accept(this);
+ printf(" ");
+
+ ir->coordinate->accept(this);
+
+ printf(" (%d %d %d) ", ir->offsets[0], ir->offsets[1], ir->offsets[2]);
+
+ if (ir->op != ir_txf) {
+ if (ir->projector)
+ ir->projector->accept(this);
+ else
+ printf("1");
+
+ if (ir->shadow_comparitor) {
+ printf(" ");
+ ir->shadow_comparitor->accept(this);
+ } else {
+ printf(" ()");
+ }
+ }
+
+ printf(" ");
+ switch (ir->op)
+ {
+ case ir_tex:
+ break;
+ case ir_txb:
+ ir->lod_info.bias->accept(this);
+ break;
+ case ir_txl:
+ case ir_txf:
+ ir->lod_info.lod->accept(this);
+ break;
+ case ir_txd:
+ printf("(");
+ ir->lod_info.grad.dPdx->accept(this);
+ printf(" ");
+ ir->lod_info.grad.dPdy->accept(this);
+ printf(")");
+ break;
+ };
+ printf(")");
+}
+
+
void ir_print_visitor::visit(ir_swizzle *ir)
{
const unsigned swiz[4] = {