GLuint unit, GLfloat color[4]);
+/** The larger of VERT_RESULT_MAX, FRAG_RESULT_MAX */
+#define MAX_PROGRAM_OUTPUTS VERT_RESULT_MAX
+
+
/**
* Virtual machine state used during execution of vertex/fragment programs.
*/
/** Fragment Input attributes */
GLfloat (*Attribs)[MAX_WIDTH][4];
+ GLfloat (*DerivX)[4];
+ GLfloat (*DerivY)[4];
+ GLuint NumDeriv; /**< Max index into DerivX/Y arrays */
GLuint CurElement; /**< Index into Attribs arrays */
/** Vertex Input attribs */
GLfloat VertAttribs[VERT_ATTRIB_MAX][4];
GLfloat Temporaries[MAX_PROGRAM_TEMPS][4];
- GLfloat Outputs[FRAG_RESULT_MAX][4];
+ GLfloat Outputs[MAX_PROGRAM_OUTPUTS][4];
+ GLfloat (*EnvParams)[4]; /**< Vertex or Fragment env parameters */
GLuint CondCodes[4]; /**< COND_* value for x/y/z/w */
-
- GLint AddressReg[MAX_VERTEX_PROGRAM_ADDRESS_REGS][4];
+ GLint AddressReg[MAX_PROGRAM_ADDRESS_REGS][4];
GLuint CallStack[MAX_PROGRAM_CALL_DEPTH]; /**< For CAL/RET instructions */
GLuint StackDepth; /**< Index/ptr to top of CallStack[] */
extern GLboolean
_mesa_execute_program(GLcontext *ctx,
- const struct gl_program *program, GLuint maxInst,
- struct gl_program_machine *machine, GLuint element);
+ const struct gl_program *program,
+ struct gl_program_machine *machine);
#endif /* PROG_EXECUTE_H */