From 9a21d4670ce88cd2476930f3c5f7945cc57579e8 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 18 Oct 2011 11:53:19 -0700 Subject: [PATCH] mesa: Add structures for "new style" uniform tracking in shader programs Signed-off-by: Ian Romanick Tested-by: Tom Stellard --- src/mesa/main/mtypes.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 61909727d16..013524a84d9 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -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 */ -- 2.30.2