diff options
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_vertexprog.c')
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_vertexprog.c | 114 |
1 files changed, 1 insertions, 113 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_vertexprog.c b/src/mesa/drivers/dri/r300/r300_vertexprog.c index 360680bf8f..ec0ec0c47d 100644 --- a/src/mesa/drivers/dri/r300/r300_vertexprog.c +++ b/src/mesa/drivers/dri/r300/r300_vertexprog.c @@ -467,7 +467,7 @@ static unsigned long op_operands(enum vp_opcode opcode) t_src_class(b.File) == VSF_IN_CLASS_ATTR))) \ #define SRCS_WRITABLE 1 -static void translate_program(struct r300_vertex_program *vp) +void translate_vertex_shader(struct r300_vertex_program *vp) { struct vertex_program *mesa_vp=(void *)vp; struct vp_instruction *vpi; @@ -885,115 +885,3 @@ static void translate_program(struct r300_vertex_program *vp) vp->translated=GL_TRUE; } -static void r300BindProgram(GLcontext *ctx, GLenum target, struct program *prog) -{ - r300ContextPtr rmesa = R300_CONTEXT(ctx); - struct r300_vertex_program *vp=(void *)prog; -#if 0 - fprintf(stderr, "r300BindProgram\n"); -#endif - if(rmesa->current_vp == vp) - return ; - - rmesa->current_vp = vp; -} - -/* Mesa doesnt seem to have prototype for this */ -struct program * -_mesa_init_ati_fragment_shader( GLcontext *ctx, struct ati_fragment_shader *prog, - GLenum target, GLuint id); - -static struct program *r300NewProgram(GLcontext *ctx, GLenum target, GLuint id) -{ - struct r300_vertex_program *vp; - struct fragment_program *fp; - struct ati_fragment_shader *afs; -#if 0 - fprintf(stderr, "r300NewProgram, target=%d, id=%d\n", target, id); -#endif - switch(target){ - case GL_VERTEX_PROGRAM_ARB: - vp=CALLOC_STRUCT(r300_vertex_program); - return _mesa_init_vertex_program(ctx, &vp->mesa_program, target, id); - - case GL_FRAGMENT_PROGRAM_ARB: - fp=CALLOC_STRUCT(fragment_program); - return _mesa_init_fragment_program(ctx, fp, target, id); - - case GL_FRAGMENT_PROGRAM_NV: - fp=CALLOC_STRUCT(fragment_program); - return _mesa_init_fragment_program(ctx, fp, target, id); - - case GL_FRAGMENT_SHADER_ATI: - afs=CALLOC_STRUCT(ati_fragment_shader); - return _mesa_init_ati_fragment_shader(ctx, afs, target, id); - } - - return NULL; -} - - -static void r300DeleteProgram(GLcontext *ctx, struct program *prog) -{ - r300ContextPtr rmesa = R300_CONTEXT(ctx); - struct r300_vertex_program *vp=(void *)prog; -#if 0 - fprintf(stderr, "r300DeleteProgram\n"); -#endif - if(rmesa->current_vp == vp) - rmesa->current_vp = NULL; - - _mesa_delete_program(ctx, prog); -} - -static GLboolean r300IsProgramNative(GLcontext *ctx, GLenum target, - struct program *prog); - -static void r300ProgramStringNotify(GLcontext *ctx, GLenum target, - struct program *prog) -{ - struct r300_vertex_program *vp=(void *)prog; -#if 0 - fprintf(stderr, "r300ProgramStringNotify\n"); -#endif - - switch(target) { - case GL_VERTEX_PROGRAM_ARB: - vp->translated=GL_FALSE; - break; - case GL_FRAGMENT_PROGRAM_ARB: - return ; - break; - } - - /* XXX: There is still something wrong as mesa doesnt call r300IsProgramNative at all */ - (void)r300IsProgramNative(ctx, target, prog); - -} - -static GLboolean r300IsProgramNative(GLcontext *ctx, GLenum target, - struct program *prog) -{ - struct r300_vertex_program *vp=(void *)prog; - r300ContextPtr rmesa = R300_CONTEXT(ctx); - -#if 0 - fprintf(stderr, "r300IsProgramNative\n"); - //exit(0); - debug_vp(ctx, vp); -#endif - translate_program(vp); - //r300VertexProgUpdateParams(ctx, vp); - - return 1; -} - -/* This is misnamed and shouldnt be here since fragment programs use these functions too */ -void r300InitVertexProgFuncs(struct dd_function_table *functions) -{ - functions->NewProgram=r300NewProgram; - functions->BindProgram=r300BindProgram; - functions->DeleteProgram=r300DeleteProgram; - functions->ProgramStringNotify=r300ProgramStringNotify; - functions->IsProgramNative=r300IsProgramNative; -} |