diff --git a/src/mesa/main/atifragshader.c b/src/mesa/main/atifragshader.c index aed8cce9711..d6340977360 100644 --- a/src/mesa/main/atifragshader.c +++ b/src/mesa/main/atifragshader.c @@ -56,6 +56,17 @@ _mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id) return s; } +static struct gl_program * +new_ati_fs(struct gl_context *ctx, struct ati_fragment_shader *curProg) +{ + struct gl_program *prog = rzalloc(NULL, struct gl_program); + if (!prog) + return NULL; + + _mesa_init_gl_program(prog, MESA_SHADER_FRAGMENT, curProg->Id, true); + prog->ati_fs = curProg; + return prog; +} /** * Delete the given ati fragment shader @@ -415,8 +426,8 @@ _mesa_EndFragmentShaderATI(void) } #endif - struct gl_program *prog = st_new_ati_fs(ctx, - ctx->ATIFragmentShader.Current); + struct gl_program *prog = new_ati_fs(ctx, + ctx->ATIFragmentShader.Current); _mesa_reference_program(ctx, &ctx->ATIFragmentShader.Current->Program, NULL); /* Don't use _mesa_reference_program(), just take ownership */ diff --git a/src/mesa/state_tracker/st_cb_program.c b/src/mesa/state_tracker/st_cb_program.c index 7fa0297ab82..6dc8722f9c7 100644 --- a/src/mesa/state_tracker/st_cb_program.c +++ b/src/mesa/state_tracker/st_cb_program.c @@ -127,18 +127,6 @@ st_program_string_notify( struct gl_context *ctx, return GL_TRUE; } -/** - * Called in glEndFragmentShaderATI() - */ -struct gl_program * -st_new_ati_fs(struct gl_context *ctx, struct ati_fragment_shader *curProg) -{ - struct gl_program *prog = st_new_program(ctx, MESA_SHADER_FRAGMENT, - curProg->Id, true); - prog->ati_fs = curProg; - return prog; -} - /** * Plug in the program and shader-related device driver functions. */ diff --git a/src/mesa/state_tracker/st_cb_program.h b/src/mesa/state_tracker/st_cb_program.h index c917f0a47f8..fdeebaa67b0 100644 --- a/src/mesa/state_tracker/st_cb_program.h +++ b/src/mesa/state_tracker/st_cb_program.h @@ -40,7 +40,6 @@ void st_delete_program(struct gl_context *ctx, struct gl_program *prog); GLboolean st_program_string_notify(struct gl_context *ctx, GLenum target, struct gl_program *prog); -struct gl_program *st_new_ati_fs(struct gl_context *ctx, struct ati_fragment_shader *curProg); #ifdef __cplusplus }