This should have gone in before the previous commit.
}
+ir_dereference::ir_dereference(ir_instruction *var,
+ ir_instruction *array_index)
+ : ir_instruction(ir_op_dereference), mode(ir_reference_array),
+ var(var)
+{
+ this->type = (var != NULL) ? var->type : glsl_error_type;
+ this->selector.array_index = array_index;
+}
+
+
void
ir_dereference::set_swizzle(unsigned x, unsigned y, unsigned z, unsigned w,
unsigned count)
public:
ir_dereference(struct ir_instruction *);
+ ir_dereference(ir_instruction *variable, ir_instruction *array_index);
+
virtual void accept(ir_visitor *v)
{
v->visit(this);
ir_instruction *var;
union {
- ir_expression *array_index;
+ ir_instruction *array_index;
const char *field;
struct ir_swizzle_mask swizzle;
} selector;