From 1c27a1e957546ed849b3fd0c35904e9680f113f8 Mon Sep 17 00:00:00 2001 From: Karl Rasche Date: Wed, 19 Nov 2003 13:15:13 +0000 Subject: Initial checking of new ARB_frag/vertex program parser --- src/mesa/main/nvvertexec.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/mesa/main/nvvertexec.c') diff --git a/src/mesa/main/nvvertexec.c b/src/mesa/main/nvvertexec.c index 580d04abca..f3034ea699 100644 --- a/src/mesa/main/nvvertexec.c +++ b/src/mesa/main/nvvertexec.c @@ -64,6 +64,23 @@ _mesa_init_vp_registers(GLcontext *ctx) } /* The program parameters aren't touched */ + /* XXX: This should be moved to glBegin() time, but its safe (and slow!) + * here - Karl + */ + if (ctx->VertexProgram.Current->Parameters) { + + /* Grab the state */ + _mesa_load_state_parameters(ctx, ctx->VertexProgram.Current->Parameters); + + /* And copy it into the program state */ + for (i=0; iVertexProgram.Current->Parameters->NumParameters; i++) { + MEMCPY(ctx->VertexProgram.Parameters[i], + &ctx->VertexProgram.Current->Parameters->Parameters[i].Values, + 4*sizeof(GLfloat)); + } + + } + } @@ -234,13 +251,11 @@ get_register_pointer( const struct vp_src_register *source, return state->Inputs[source->Index]; case PROGRAM_LOCAL_PARAM: /* XXX fix */ - return state->Temporaries[source->Index]; + return state->Temporaries[source->Index]; case PROGRAM_ENV_PARAM: return state->Parameters[source->Index]; case PROGRAM_STATE_VAR: - /* XXX fix */ - return NULL; - break; + return state->Parameters[source->Index]; default: _mesa_problem(NULL, "Bad source register file in fetch_vector4(vp)"); -- cgit v1.2.3