Added _mesa_realloc_instructions() utility function.
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 24 Aug 2006 21:57:36 +0000 (21:57 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 24 Aug 2006 21:57:36 +0000 (21:57 +0000)
Fixed/updated comments for parameter list functions.

src/mesa/shader/program.c
src/mesa/shader/program.h

index 371500304f4d76176cd9f2d0513e931d0c7ecb67..27eb5c2f432dd946060355aa258c5fe0dd245e11 100644 (file)
@@ -419,7 +419,10 @@ _mesa_add_named_parameter(struct gl_program_parameter_list *paramList,
 
 
 /**
- * Add a new unnamed constant to the parameter list.
+ * Add a new named constant to the parameter list.
+ * This will be used when the program contains something like this:
+ *    PARAM myVals = { 0, 1, 2, 3 };
+ *
  * \param paramList - the parameter list
  * \param values - four float values
  * \return index of the new parameter.
@@ -434,6 +437,9 @@ _mesa_add_named_constant(struct gl_program_parameter_list *paramList,
 
 /**
  * Add a new unnamed constant to the parameter list.
+ * This will be used when the program contains something like this:
+ *    MOV r, { 0, 1, 2, 3 };
+ *
  * \param paramList - the parameter list
  * \param values - four float values
  * \return index of the new parameter.
@@ -448,9 +454,11 @@ _mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList,
 
 /**
  * Add a new state reference to the parameter list.
+ * This will be used when the program contains something like this:
+ *    PARAM ambient = state.material.front.ambient;
+ *
  * \param paramList - the parameter list
  * \param state     - an array of 6 state tokens
- *
  * \return index of the new parameter.
  */
 GLint
@@ -1304,6 +1312,30 @@ _mesa_init_instruction(struct prog_instruction *inst)
 }
 
 
+/**
+ * Reallocate memory storing an array of program instructions.
+ * This is used when we need to append additional instructions onto an
+ * program.
+ * \param oldInst  pointer to first of old/src instructions
+ * \param numOldInst  number of instructions at <oldInst>
+ * \param numNewInst  desired size of new instruction array.
+ * \return  pointer to start of new instruction array.
+ */
+struct prog_instruction *
+_mesa_realloc_instructions(struct prog_instruction *oldInst,
+                           GLuint numOldInst, GLuint numNewInst)
+{
+   struct prog_instruction *newInst;
+
+   newInst = (struct prog_instruction *)
+      _mesa_realloc(oldInst,
+                    numOldInst * sizeof(struct prog_instruction),
+                    numNewInst * sizeof(struct prog_instruction));
+
+   return newInst;
+}
+
+
 /**
  * Basic info about each instruction
  */
index 1d91e63af501c60abf8b4dd703e7de2aeb9efeb8..a8535cc2cf1d6c9aafac07d1831966a7af070f0e 100644 (file)
@@ -114,6 +114,10 @@ _mesa_delete_program(GLcontext *ctx, struct gl_program *prog);
 extern struct gl_program *
 _mesa_lookup_program(GLcontext *ctx, GLuint id);
 
+extern struct prog_instruction *
+_mesa_realloc_instructions(struct prog_instruction *oldInst,
+                           GLuint numOldInst, GLuint numNewInst);
+
 
 /**
  * Used for describing GL state referenced from inside ARB vertex and