mesa: Add structures for "new style" uniform tracking in shader programs

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Tom Stellard <thomas.stellard@amd.com>
This commit is contained in:
Ian Romanick
2011-10-18 11:53:19 -07:00
parent 466d5ffee4
commit 9a21d4670c
+25
View File
@@ -77,6 +77,7 @@ struct gl_program_cache;
struct gl_texture_object;
struct gl_context;
struct st_context;
struct gl_uniform_storage;
/*@}*/
@@ -2205,6 +2206,30 @@ struct gl_shader_program
} Vert;
/* post-link info: */
unsigned NumUserUniformStorage;
struct gl_uniform_storage *UniformStorage;
/**
* Map of active uniform names to locations
*
* Maps any active uniform that is not an array element to a location.
* Each active uniform, including individual structure members will appear
* in this map. This roughly corresponds to the set of names that would be
* enumerated by \c glGetActiveUniform.
*/
struct string_to_uint_map *UniformHash;
/**
* Map from sampler unit to texture unit (set by glUniform1i())
*
* A sampler unit is associated with each sampler uniform by the linker.
* The sampler unit associated with each uniform is stored in the
* \c gl_uniform_storage::sampler field.
*/
GLubyte SamplerUnits[MAX_SAMPLERS];
/** Which texture target is being sampled (TEXTURE_1D/2D/3D/etc_INDEX) */
gl_texture_index SamplerTargets[MAX_SAMPLERS];
struct gl_uniform_list *Uniforms;
struct gl_program_parameter_list *Varying;
GLboolean LinkStatus; /**< GL_LINK_STATUS */