Fix problems with elts when immediate mode is on.

This commit is contained in:
Aapo Tahkola 2005-06-16 10:27:04 +00:00
parent 0e288e58ef
commit 463c1d6c57
1 changed files with 9 additions and 9 deletions

View File

@ -211,16 +211,19 @@ static int r300_get_num_verts(r300ContextPtr rmesa,
static GLfloat default_vector[4]={0.0, 0.0, 0.0, 1.0};
#define output_vector(v, i) \
{ \
#define output_vector(v, i) { \
int _i; \
for(_i=0;_i<v->size;_i++){ \
efloat(VEC_ELT(v, GLfloat, i)[_i]); \
if(VB->Elts){ \
efloat(VEC_ELT(v, GLfloat, VB->Elts[i])[_i]); \
}else{ \
efloat(VEC_ELT(v, GLfloat, i)[_i]); \
} \
} \
for(_i=v->size;_i<4;_i++){ \
efloat(default_vector[_i]); \
} \
}
efloat(default_vector[_i]); \
} \
}
/* Immediate implementation - vertex data is sent via command stream */
@ -506,9 +509,6 @@ static GLboolean r300_run_vb_render(GLcontext *ctx,
e32(0x00000003);
r300EmitState(rmesa);
if(hw_tcl_on) /* FIXME */
r300FlushCmdBuf(rmesa, __FUNCTION__);
rmesa->state.Elts = VB->Elts;
for(i=0; i < VB->PrimitiveCount; i++){