diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2004-02-04 15:44:53 +0000 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2004-02-04 15:44:53 +0000 |
commit | b19cb627e002ec06dc92ab42c8107a3e34f2d181 (patch) | |
tree | 5fc83044b7df9b68908f07483e890bc2c0901e11 | |
parent | 72aeea4eea1454efcdd78908343bbebd99ebcc01 (diff) |
fix stores to vertex state program registers
-rw-r--r-- | src/mesa/main/nvvertexec.c | 12 | ||||
-rw-r--r-- | src/mesa/main/nvvertparse.c | 8 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/mesa/main/nvvertexec.c b/src/mesa/main/nvvertexec.c index fd1519e9a87..9663b38157d 100644 --- a/src/mesa/main/nvvertexec.c +++ b/src/mesa/main/nvvertexec.c @@ -1,6 +1,6 @@ /* * Mesa 3-D graphics library - * Version: 6.0 + * Version: 6.0.1 * * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. * @@ -326,8 +326,16 @@ store_vector4( const struct vp_dst_register *dest, case PROGRAM_OUTPUT: dst = state->Outputs[dest->Index]; break; + case PROGRAM_ENV_PARAM: + { + /* a slight hack */ + GET_CURRENT_CONTEXT(ctx); + dst = ctx->VertexProgram.Parameters[dest->Index]; + } + break; default: - _mesa_problem(NULL, "Invalid register file in fetch_vector1(vp)"); + _mesa_problem(NULL, "Invalid register file in store_vector4(file=%d)", + dest->File); return; } diff --git a/src/mesa/main/nvvertparse.c b/src/mesa/main/nvvertparse.c index 15451adc71f..bacf5a5af3b 100644 --- a/src/mesa/main/nvvertparse.c +++ b/src/mesa/main/nvvertparse.c @@ -1,8 +1,8 @@ /* * Mesa 3-D graphics library - * Version: 5.1 + * Version: 6.0.1 * - * Copyright (C) 1999-2003 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2004 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"), @@ -578,8 +578,10 @@ Parse_MaskedDstReg(struct parse_state *parseState, struct vp_dst_register *dstRe if (!Parse_OutputReg(parseState, &dstReg->Index)) RETURN_ERROR; } - else if (parseState->isStateProgram && token[0] == 'c') { + else if (parseState->isStateProgram && token[0] == 'c' && + parseState->isStateProgram) { /* absolute program parameter register */ + /* Only valid for vertex state programs */ dstReg->File = PROGRAM_ENV_PARAM; if (!Parse_AbsParamReg(parseState, &dstReg->Index)) RETURN_ERROR; |