New _mesa_exec_vertex_state_program() function. Start of some re-org.

This commit is contained in:
Brian Paul 2006-10-29 18:33:14 +00:00
parent abb1430c79
commit ebcedd2d89
3 changed files with 28 additions and 9 deletions

View file

@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
* Version: 6.5.1
* Version: 6.5.2
*
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
*
@ -77,10 +77,7 @@ _mesa_ExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params)
return;
}
_mesa_init_vp_per_vertex_registers(ctx);
_mesa_init_vp_per_primitive_registers(ctx);
COPY_4V(ctx->VertexProgram.Machine.Inputs[VERT_ATTRIB_POS], params);
_mesa_exec_vertex_program(ctx, vprog);
_mesa_exec_vertex_state_program(ctx, vprog, params);
}

View file

@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
* Version: 6.5
* Version: 6.5.2
*
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
*
@ -805,6 +805,22 @@ _mesa_exec_vertex_program(GLcontext *ctx, const struct gl_vertex_program *progra
}
/**
* Execute a vertex state program.
* \sa _mesa_ExecuteProgramNV
*/
void
_mesa_exec_vertex_state_program(GLcontext *ctx,
struct gl_vertex_program *vprog,
const GLfloat *params)
{
_mesa_init_vp_per_vertex_registers(ctx);
_mesa_init_vp_per_primitive_registers(ctx);
COPY_4V(ctx->VertexProgram.Machine.Inputs[VERT_ATTRIB_POS], params);
_mesa_exec_vertex_program(ctx, vprog);
}
/**
Thoughts on vertex program optimization:

View file

@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
* Version: 6.1
* Version: 6.5.2
*
* Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@ -35,7 +35,13 @@ extern void
_mesa_init_vp_per_primitive_registers(GLcontext *ctx);
extern void
_mesa_exec_vertex_program(GLcontext *ctx, const struct gl_vertex_program *program);
_mesa_exec_vertex_program(GLcontext *ctx,
const struct gl_vertex_program *program);
extern void
_mesa_exec_vertex_state_program(GLcontext *ctx,
struct gl_vertex_program *vprog,
const GLfloat *params);
extern void
_mesa_dump_vp_state( const struct gl_vertex_program_state *state );