summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glsl/ir.h')
-rw-r--r--src/glsl/ir.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 65026ef1f5b..00b0076c172 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -793,6 +793,33 @@ private:
/** Loop containing this break instruction. */
ir_loop *loop;
};
+
+/**
+ * IR instruction representing discard statements.
+ */
+class ir_discard : public ir_jump {
+public:
+ ir_discard()
+ {
+ this->condition = NULL;
+ }
+
+ ir_discard(ir_rvalue *cond)
+ {
+ this->condition = cond;
+ }
+
+ virtual ir_instruction *clone(struct hash_table *ht) const;
+
+ virtual void accept(ir_visitor *v)
+ {
+ v->visit(this);
+ }
+
+ virtual ir_visitor_status accept(ir_hierarchical_visitor *);
+
+ ir_rvalue *condition;
+};
/*@}*/