static struct gl_program * i915NewProgram(GLcontext * ctx, GLenum target, GLuint id) { switch (target) { case GL_VERTEX_PROGRAM_ARB: return _mesa_init_vertex_program(ctx, CALLOC_STRUCT(gl_vertex_program), target, id); case GL_FRAGMENT_PROGRAM_ARB:{ struct i915_fragment_program *prog = CALLOC_STRUCT(i915_fragment_program); if (prog) { i915_init_program(I915_CONTEXT(ctx), prog); return _mesa_init_fragment_program(ctx, &prog->FragProg, target, id); } else return NULL; } default: /* Just fallback: */ return _mesa_new_program(ctx, target, id); } }
static struct gl_program *brwNewProgram( struct gl_context *ctx, GLenum target, GLuint id ) { struct brw_context *brw = brw_context(ctx); switch (target) { case GL_VERTEX_PROGRAM_ARB: { struct brw_vertex_program *prog = CALLOC_STRUCT(brw_vertex_program); if (prog) { prog->id = brw->program_id++; return _mesa_init_vertex_program( ctx, &prog->program, target, id ); } else return NULL; } case GL_FRAGMENT_PROGRAM_ARB: { struct brw_fragment_program *prog = CALLOC_STRUCT(brw_fragment_program); if (prog) { prog->id = brw->program_id++; return _mesa_init_fragment_program( ctx, &prog->program, target, id ); } else return NULL; } default: return _mesa_new_program(ctx, target, id); } }