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 cdc8a200019813f00565498af81f2504e84bc064..d09cc65937684fb7eabf0f729b7225ee53420334 100644 (file)
@@ -222,6 +222,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 6ce96c79728e3a5164136e968388f7432161535b..0db2bcd314ff3ae403944fac0dd2bb9e90edeb65 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
 {
@@ -98,6 +99,10 @@ extern GLint
 _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);