Use ProgramStringNotify
This commit is contained in:
@@ -62,30 +62,6 @@ static const struct dri_extension brw_extensions[] =
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
static void brwLinkProgram(GLcontext *ctx, GLuint program)
|
||||
{
|
||||
struct brw_context *brw = brw_context(ctx);
|
||||
struct brw_vertex_program *vert_prog;
|
||||
struct brw_fragment_program *frag_prog;
|
||||
struct gl_shader_program *sh_prog;
|
||||
_mesa_link_program(ctx, program);
|
||||
|
||||
sh_prog = _mesa_lookup_shader_program(ctx, program);
|
||||
if (sh_prog) {
|
||||
sh_prog->FragmentProgram =
|
||||
_mesa_realloc(sh_prog->FragmentProgram,
|
||||
sizeof(struct gl_fragment_program),
|
||||
sizeof(struct brw_fragment_program));
|
||||
frag_prog = (struct brw_fragment_program *)sh_prog->FragmentProgram;
|
||||
frag_prog->id = brw->program_id++;
|
||||
sh_prog->VertexProgram = _mesa_realloc(sh_prog->VertexProgram,
|
||||
sizeof(struct gl_vertex_program),
|
||||
sizeof(struct brw_vertex_program));
|
||||
vert_prog = (struct brw_vertex_program *)sh_prog->VertexProgram;
|
||||
vert_prog->id = brw->program_id++;
|
||||
}
|
||||
}
|
||||
|
||||
static void brwUseProgram(GLcontext *ctx, GLuint program)
|
||||
{
|
||||
struct brw_context *brw = brw_context(ctx);
|
||||
@@ -97,15 +73,12 @@ static void brwUseProgram(GLcontext *ctx, GLuint program)
|
||||
ctx->FragmentProgram.Enabled = GL_TRUE;
|
||||
brw->attribs.VertexProgram->Current = sh_prog->VertexProgram;
|
||||
brw->attribs.FragmentProgram->Current = sh_prog->FragmentProgram;
|
||||
brw->state.dirty.brw |= BRW_NEW_VERTEX_PROGRAM;
|
||||
brw->state.dirty.brw |= BRW_NEW_FRAGMENT_PROGRAM;
|
||||
}
|
||||
}
|
||||
|
||||
static void brwInitProgFuncs( struct dd_function_table *functions )
|
||||
{
|
||||
functions->UseProgram = brwUseProgram;
|
||||
functions->LinkProgram = brwLinkProgram;
|
||||
}
|
||||
static void brwInitDriverFunctions( struct dd_function_table *functions )
|
||||
{
|
||||
|
@@ -242,6 +242,8 @@ _mesa_init_vertex_program( GLcontext *ctx, struct gl_vertex_program *prog,
|
||||
struct gl_program *
|
||||
_mesa_new_program(GLcontext *ctx, GLenum target, GLuint id)
|
||||
{
|
||||
if (ctx->Driver.NewProgram)
|
||||
return ctx->Driver.NewProgram(ctx, target, id);
|
||||
switch (target) {
|
||||
case GL_VERTEX_PROGRAM_ARB: /* == GL_VERTEX_PROGRAM_NV */
|
||||
return _mesa_init_vertex_program(ctx, CALLOC_STRUCT(gl_vertex_program),
|
||||
|
Reference in New Issue
Block a user