Called when the user can insert new decls, instructions.
This could be used in a few places in the 'draw' module.
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
struct tgsi_transform_context *ctx)
{
uint procType;
+ boolean first_instruction = TRUE;
/* input shader */
struct tgsi_parse_context parse;
struct tgsi_full_instruction *fullinst
= &parse.FullToken.FullInstruction;
+ if (first_instruction && ctx->prolog) {
+ ctx->prolog(ctx);
+ }
+
if (ctx->transform_instruction)
ctx->transform_instruction(ctx, fullinst);
else
ctx->emit_instruction(ctx, fullinst);
+
+ first_instruction = FALSE;
}
break;
void (*transform_property)(struct tgsi_transform_context *ctx,
struct tgsi_full_property *prop);
+ /**
+ * Called after last declaration, before first instruction. This is
+ * where the user might insert new declarations and/or instructions.
+ */
+ void (*prolog)(struct tgsi_transform_context *ctx);
+
/**
* Called at end of input program to allow caller to append extra
* instructions. Return number of tokens emitted.