glsl2: Use Mesa types instead of duping them into our program.h.
authorEric Anholt <eric@anholt.net>
Fri, 25 Jun 2010 19:23:38 +0000 (12:23 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 25 Jun 2010 19:25:19 +0000 (12:25 -0700)
src/glsl/program.h

index d21b04344cd18614e93e31c005522d3e61762e0c..3c656e9e7c32444c055d2c46b29b07a335766451 100644 (file)
@@ -23,6 +23,8 @@
 
 #include <GL/gl.h>
 #include "main/mtypes.h"
+#include "shader/prog_parameter.h"
+#include "shader/prog_uniform.h"
 
 /**
  * Based on gl_shader in Mesa's mtypes.h.
@@ -41,84 +43,6 @@ struct glsl_shader {
    struct glsl_symbol_table *symbols;
 };
 
-
-typedef int gl_state_index;
-#define STATE_LENGTH 5
-
-/**
- * Program parameter.
- * Used by shaders/programs for uniforms, constants, varying vars, etc.
- */
-struct gl_program_parameter
-{
-   const char *Name;        /**< Null-terminated string */
-   gl_register_file Type;   /**< PROGRAM_NAMED_PARAM, CONSTANT or STATE_VAR */
-   GLenum DataType;         /**< GL_FLOAT, GL_FLOAT_VEC2, etc */
-   /**
-    * Number of components (1..4), or more.
-    * If the number of components is greater than 4,
-    * this parameter is part of a larger uniform like a GLSL matrix or array.
-    * The next program parameter's Size will be Size-4 of this parameter.
-    */
-   GLuint Size;
-   GLboolean Used;          /**< Helper flag for GLSL uniform tracking */
-   GLboolean Initialized;   /**< Has the ParameterValue[] been set? */
-   GLbitfield Flags;        /**< Bitmask of PROG_PARAM_*_BIT */
-   /**
-    * A sequence of STATE_* tokens and integers to identify GL state.
-    */
-   gl_state_index StateIndexes[STATE_LENGTH];
-};
-
-
-/**
- * List of gl_program_parameter instances.
- */
-struct gl_program_parameter_list
-{
-   GLuint Size;           /**< allocated size of Parameters, ParameterValues */
-   GLuint NumParameters;  /**< number of parameters in arrays */
-   struct gl_program_parameter *Parameters; /**< Array [Size] */
-   GLfloat (*ParameterValues)[4];        /**< Array [Size] of GLfloat[4] */
-   GLbitfield StateFlags; /**< _NEW_* flags indicating which state changes
-                               might invalidate ParameterValues[] */
-};
-
-
-/**
- * Shader program uniform variable.
- * The glGetUniformLocation() and glUniform() commands will use this
- * information.
- * Note that a uniform such as "binormal" might be used in both the
- * vertex shader and the fragment shader.  When glUniform() is called to
- * set the uniform's value, it must be updated in both the vertex and
- * fragment shaders.  The uniform may be in different locations in the
- * two shaders so we keep track of that here.
- */
-struct gl_uniform
-{
-   const char *Name;        /**< Null-terminated string */
-   GLint VertPos;
-   GLint FragPos;
-   GLboolean Initialized;   /**< For debug.  Has this uniform been set? */
-#if 0
-   GLenum DataType;         /**< GL_FLOAT, GL_FLOAT_VEC2, etc */
-   GLuint Size;             /**< Number of components (1..4) */
-#endif
-};
-
-
-/**
- * List of gl_uniforms
- */
-struct gl_uniform_list
-{
-   GLuint Size;                 /**< allocated size of Uniforms array */
-   GLuint NumUniforms;          /**< number of uniforms in the array */
-   struct gl_uniform *Uniforms; /**< Array [Size] */
-};
-
-
 /**
  * Based on gl_shader_program in Mesa's mtypes.h.
  */