[Mesa-dev] [PATCH 2/2] main: Change the type argument of use_shader_program() to gl_shader_stage.
Kristian Høgsberg
krh at bitplanet.net
Mon Mar 16 22:25:40 PDT 2015
On Wed, Mar 11, 2015 at 3:43 PM, Jordan Justen
<jordan.l.justen at intel.com> wrote:
> From: Paul Berry <stereotype441 at gmail.com>
>
> This allows it to be called from a loop.
>
> Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>
> ---
> src/mesa/main/shaderapi.c | 23 +++++++++++------------
> 1 file changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
> index 872b559..9409536 100644
> --- a/src/mesa/main/shaderapi.c
> +++ b/src/mesa/main/shaderapi.c
> @@ -1027,12 +1027,11 @@ _mesa_active_program(struct gl_context *ctx, struct gl_shader_program *shProg,
>
>
> static void
> -use_shader_program(struct gl_context *ctx, GLenum type,
> +use_shader_program(struct gl_context *ctx, gl_shader_stage stage,
> struct gl_shader_program *shProg,
> struct gl_pipeline_object *shTarget)
> {
> struct gl_shader_program **target;
> - gl_shader_stage stage = _mesa_shader_enum_to_shader_stage(type);
>
> target = &shTarget->CurrentProgram[stage];
> if ((shProg != NULL) && (shProg->_LinkedShaders[stage] == NULL))
> @@ -1048,17 +1047,17 @@ use_shader_program(struct gl_context *ctx, GLenum type,
> * it from that binding point as well. This ensures that the correct
> * semantics of glDeleteProgram are maintained.
> */
> - switch (type) {
> - case GL_VERTEX_SHADER:
> + switch (stage) {
> + case MESA_SHADER_VERTEX:
> /* Empty for now. */
> break;
> - case GL_GEOMETRY_SHADER_ARB:
> + case MESA_SHADER_GEOMETRY:
> /* Empty for now. */
> break;
> - case GL_COMPUTE_SHADER:
> + case MESA_SHADER_COMPUTE:
> /* Empty for now. */
> break;
> - case GL_FRAGMENT_SHADER:
> + case MESA_SHADER_FRAGMENT:
> if (*target == ctx->_Shader->_CurrentFragmentProgram) {
> _mesa_reference_shader_program(ctx,
> &ctx->_Shader->_CurrentFragmentProgram,
> @@ -1079,10 +1078,9 @@ use_shader_program(struct gl_context *ctx, GLenum type,
> void
> _mesa_use_program(struct gl_context *ctx, struct gl_shader_program *shProg)
> {
> - use_shader_program(ctx, GL_VERTEX_SHADER, shProg, &ctx->Shader);
> - use_shader_program(ctx, GL_GEOMETRY_SHADER_ARB, shProg, &ctx->Shader);
> - use_shader_program(ctx, GL_FRAGMENT_SHADER, shProg, &ctx->Shader);
> - use_shader_program(ctx, GL_COMPUTE_SHADER, shProg, &ctx->Shader);
> + int i;
> + for (i = 0; i < MESA_SHADER_STAGES; i++)
> + use_shader_program(ctx, i, shProg, &ctx->Shader);
> _mesa_active_program(ctx, shProg, "glUseProgram");
>
> if (ctx->Driver.UseProgram)
> @@ -1889,7 +1887,8 @@ _mesa_use_shader_program(struct gl_context *ctx, GLenum type,
> struct gl_shader_program *shProg,
> struct gl_pipeline_object *shTarget)
> {
> - use_shader_program(ctx, type, shProg, shTarget);
> + gl_shader_stage stage = _mesa_shader_enum_to_shader_stage(type);
> + use_shader_program(ctx, stage, shProg, shTarget);
>
> if (ctx->Driver.UseProgram)
> ctx->Driver.UseProgram(ctx, shProg);
> --
> 2.1.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list