added _mesa_add_sampler()
authorBrian <brian@yutani.localnet.net>
Fri, 5 Jan 2007 23:00:57 +0000 (16:00 -0700)
committerBrian <brian@yutani.localnet.net>
Fri, 5 Jan 2007 23:00:57 +0000 (16:00 -0700)
src/mesa/shader/prog_parameter.c
src/mesa/shader/prog_parameter.h

index cdc8a20..d09cc65 100644 (file)
@@ -223,6 +223,23 @@ _mesa_add_uniform(struct gl_program_parameter_list *paramList,
 
 
 GLint
+_mesa_add_sampler(struct gl_program_parameter_list *paramList,
+                  const char *name)
+{
+   GLint i = _mesa_lookup_parameter_index(paramList, -1, name);
+   if (i >= 0 && paramList->Parameters[i].Type == PROGRAM_SAMPLER) {
+      /* already in list */
+      return i;
+   }
+   else {
+      const GLint size = 1;
+      i = _mesa_add_parameter(paramList, name, NULL, size, PROGRAM_SAMPLER);
+      return i;
+   }
+}
+
+
+GLint
 _mesa_add_varying(struct gl_program_parameter_list *paramList,
                   const char *name, GLuint size)
 {
index 6ce96c7..0db2bcd 100644 (file)
 
 
 /**
- * Named program parameters 
- * Used for NV_fragment_program "DEFINE"d constants and "DECLARE"d parameters,
- * and ARB_fragment_program global state references.  For the later, Name
- * might be "state.light[0].diffuse", for example.
+ * Program parameter.
+ * Used for NV_fragment_program for "DEFINE"d constants and "DECLARE"d
+ * parameters.
+ * Also used by ARB_vertex/fragment_programs for state variables, etc.
+ * Used by shaders for uniforms, constants, varying vars, etc.
  */
 struct gl_program_parameter
 {
@@ -53,7 +54,7 @@ struct gl_program_parameter
 
 
 /**
- * A list of the above program_parameter instances.
+ * List of gl_program_parameter instances.
  */
 struct gl_program_parameter_list
 {
@@ -99,6 +100,10 @@ _mesa_add_uniform(struct gl_program_parameter_list *paramList,
                   const char *name, GLuint size);
 
 extern GLint
+_mesa_add_sampler(struct gl_program_parameter_list *paramList,
+                  const char *name);
+
+extern GLint
 _mesa_add_varying(struct gl_program_parameter_list *paramList,
                   const char *name, GLuint size);