/* empty */
}
+ virtual void accept(ir_visitor *v)
+ {
+ v->visit(this);
+ }
+
+ virtual ir_visitor_status accept(ir_hierarchical_visitor *);
+
/**
* Return a string representing the ir_texture_opcode.
*/
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 *);
}
+void
+ir_constant_visitor::visit(ir_texture *ir)
+{
+ // FINISHME: Do stuff with texture lookups
+ (void) ir;
+ value = NULL;
+}
+
+
void
ir_constant_visitor::visit(ir_swizzle *ir)
{
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 *);
}
+void
+ir_constant_folding_visitor::visit(ir_texture *ir)
+{
+ // FINISHME: Do stuff with texture lookups
+ (void) ir;
+}
+
+
void
ir_constant_folding_visitor::visit(ir_swizzle *ir)
{
virtual ir_visitor_status visit_enter(ir_call *);
virtual ir_visitor_status visit_enter(ir_assignment *);
virtual ir_visitor_status visit_enter(ir_return *);
+ virtual ir_visitor_status visit_enter(ir_texture *);
virtual ir_visitor_status visit_enter(ir_swizzle *);
bool progress;
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 *);
}
+void
+ir_function_cloning_visitor::visit(ir_texture *ir)
+{
+ // FINISHME: Do stuff with texture lookups
+ (void) ir;
+}
+
+
void
ir_function_cloning_visitor::visit(ir_swizzle *ir)
{
}
+ir_visitor_status
+ir_function_inlining_visitor::visit_enter(ir_texture *ir)
+{
+ (void) ir;
+ return visit_continue_with_parent;
+}
+
+
ir_visitor_status
ir_function_inlining_visitor::visit_enter(ir_swizzle *ir)
{
return visit_continue;
}
+ir_visitor_status
+ir_hierarchical_visitor::visit_enter(ir_texture *ir)
+{
+ (void) ir;
+ return visit_continue;
+}
+
+ir_visitor_status
+ir_hierarchical_visitor::visit_leave(ir_texture *ir)
+{
+ (void) ir;
+ return visit_continue;
+}
+
ir_visitor_status
ir_hierarchical_visitor::visit_enter(ir_swizzle *ir)
{
virtual ir_visitor_status visit_leave(class ir_function *);
virtual ir_visitor_status visit_enter(class ir_expression *);
virtual ir_visitor_status visit_leave(class ir_expression *);
+ virtual ir_visitor_status visit_enter(class ir_texture *);
+ virtual ir_visitor_status visit_leave(class ir_texture *);
virtual ir_visitor_status visit_enter(class ir_swizzle *);
virtual ir_visitor_status visit_leave(class ir_swizzle *);
virtual ir_visitor_status visit_enter(class ir_dereference_array *);
return v->visit_leave(this);
}
+ir_visitor_status
+ir_texture::accept(ir_hierarchical_visitor *v)
+{
+ return visit_continue_with_parent;
+}
+
ir_visitor_status
ir_swizzle::accept(ir_hierarchical_visitor *v)
virtual void visit(class ir_function_signature *) = 0;
virtual void visit(class ir_function *) = 0;
virtual void visit(class ir_expression *) = 0;
+ virtual void visit(class ir_texture *) = 0;
virtual void visit(class ir_swizzle *) = 0;
virtual void visit(class ir_dereference_variable *) = 0;
virtual void visit(class ir_dereference_array *) = 0;