From b2a3a8554a114d93691d5350c234d2022c2c2916 Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 14 Dec 2006 13:56:58 -0700 Subject: New functions for cloning programs and parameter lists. --- src/mesa/shader/program.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/mesa/shader/program.h') diff --git a/src/mesa/shader/program.h b/src/mesa/shader/program.h index a3f50b9310..98e2b53602 100644 --- a/src/mesa/shader/program.h +++ b/src/mesa/shader/program.h @@ -121,6 +121,9 @@ extern struct prog_instruction * _mesa_realloc_instructions(struct prog_instruction *oldInst, GLuint numOldInst, GLuint numNewInst); +extern struct gl_program * +_mesa_clone_program(GLcontext *ctx, const struct gl_program *prog); + /** * Used for describing GL state referenced from inside ARB vertex and @@ -203,8 +206,9 @@ typedef enum gl_state_index_ { */ struct gl_program_parameter { - const char *Name; /**< Null-terminated string */ + const char *Name; /**< Null-terminated string */ enum register_file Type; /**< PROGRAM_NAMED_PARAM, CONSTANT or STATE_VAR */ + GLuint Size; /**< Number of components (1..4) */ /** * A sequence of STATE_* tokens and integers to identify GL state. */ @@ -236,6 +240,14 @@ _mesa_new_parameter_list(void); extern void _mesa_free_parameter_list(struct gl_program_parameter_list *paramList); +extern struct gl_program_parameter_list * +_mesa_clone_parameter_list(const struct gl_program_parameter_list *list); + +extern GLint +_mesa_add_parameter(struct gl_program_parameter_list *paramList, + const char *name, const GLfloat values[4], GLuint size, + enum register_file type); + extern GLint _mesa_add_named_parameter(struct gl_program_parameter_list *paramList, const char *name, const GLfloat values[4]); -- cgit v1.2.3