ir_print_visitor: Add support for ir_texture.

This commit is contained in:
Kenneth Graunke 2010-05-26 15:15:31 -07:00
parent c30f6e5dea
commit be298063b5
2 changed files with 50 additions and 0 deletions

View file

@ -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] = {

View file

@ -60,6 +60,7 @@ public:
virtual void visit(ir_function_signature *);
virtual void visit(ir_function *);
virtual void visit(ir_expression *);
virtual void visit(ir_texture *);
virtual void visit(ir_swizzle *);
virtual void visit(ir_dereference_variable *);
virtual void visit(ir_dereference_array *);