fix stores to vertex state program registers

This commit is contained in:
Brian Paul
2004-02-04 15:44:53 +00:00
parent 72aeea4eea
commit b19cb627e0
2 changed files with 15 additions and 5 deletions
+10 -2
View File
@@ -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;
}
+5 -3
View File
@@ -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;