diff options
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/ir.h | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/src/glsl/ir.h b/src/glsl/ir.h index 4f775da4bd1..b898d619b3e 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -1032,13 +1032,33 @@ public: * If \c from and \c to are the same value, the loop will execute once. */ /*@{*/ - ir_rvalue *from; /** Value of the loop counter on the first - * iteration of the loop. - */ - ir_rvalue *to; /** Value of the loop counter on the last - * iteration of the loop. - */ + + /** + * Value which should be assigned to \c counter before the first iteration + * of the loop. Must be non-null whenever \c counter is non-null, and vice + * versa. + */ + ir_rvalue *from; + + /** + * Value which \c counter should be compared to in order to determine + * whether to exit the loop. Must be non-null whenever \c counter is + * non-null, and vice versa. + */ + ir_rvalue *to; + + /** + * Value which should be added to \c counter at the end of each loop + * iteration. Must be non-null whenever \c counter is non-null, and vice + * versa. + */ ir_rvalue *increment; + + /** + * Variable which counts loop iterations. This is a brand new ir_variable + * declaration (not a reference to a previously declared ir_variable, as in + * ir_dereference_variable). + */ ir_variable *counter; /** @@ -1047,6 +1067,8 @@ public: * If any of the loop control fields are non-\c NULL, this field must be * one of \c ir_binop_less, \c ir_binop_greater, \c ir_binop_lequal, * \c ir_binop_gequal, \c ir_binop_equal, or \c ir_binop_nequal. + * + * Ignored if \c counter is NULL. */ int cmp; /*@}*/ |