mesh VBO drawing code was swapping red/blue vertex colors - this is confusing because MCol.r is blue and MCol.b is red but not excuse! (and how come nobody noticed this?).

- fixed this error in 4 places.
This commit is contained in:
Campbell Barton 2011-10-10 00:01:44 +00:00
parent 39c4e3ae3c
commit 7b3ea6cc2c
2 changed files with 9 additions and 8 deletions

@ -756,9 +756,10 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
unsigned char *colors = MEM_mallocN(dm->getNumFaces(dm)*4*3*sizeof(unsigned char), "cdDM_drawFacesTex_common");
for( i=0; i < dm->getNumFaces(dm); i++ ) {
for( j=0; j < 4; j++ ) {
colors[i*12+j*3] = col[i*4+j].r;
/* bgr -> rgb is intentional (and stupid), but how its stored internally */
colors[i*12+j*3] = col[i*4+j].b;
colors[i*12+j*3+1] = col[i*4+j].g;
colors[i*12+j*3+2] = col[i*4+j].b;
colors[i*12+j*3+2] = col[i*4+j].r;
}
}
GPU_color3_upload(dm,colors);

@ -450,9 +450,9 @@ static void add_tface_color_layer(DerivedMesh *dm)
}
} else if (tface && tface->mode&TF_OBCOL) {
for(j=0;j<4;j++) {
finalCol[i*4+j].r = FTOCHAR(Gtexdraw.obcol[0]);
finalCol[i*4+j].b = FTOCHAR(Gtexdraw.obcol[0]);
finalCol[i*4+j].g = FTOCHAR(Gtexdraw.obcol[1]);
finalCol[i*4+j].b = FTOCHAR(Gtexdraw.obcol[2]);
finalCol[i*4+j].r = FTOCHAR(Gtexdraw.obcol[2]);
}
} else if (!mcol) {
if (tface) {
@ -471,9 +471,9 @@ static void add_tface_color_layer(DerivedMesh *dm)
else copy_v3_v3(col, &ma->r);
for(j=0;j<4;j++) {
finalCol[i*4+j].b = FTOCHAR(col[2]);
finalCol[i*4+j].b = FTOCHAR(col[0]);
finalCol[i*4+j].g = FTOCHAR(col[1]);
finalCol[i*4+j].r = FTOCHAR(col[0]);
finalCol[i*4+j].r = FTOCHAR(col[2]);
}
}
else
@ -485,9 +485,9 @@ static void add_tface_color_layer(DerivedMesh *dm)
}
} else {
for(j=0;j<4;j++) {
finalCol[i*4+j].b = mcol[i*4+j].r;
finalCol[i*4+j].r = mcol[i*4+j].r;
finalCol[i*4+j].g = mcol[i*4+j].g;
finalCol[i*4+j].r = mcol[i*4+j].b;
finalCol[i*4+j].b = mcol[i*4+j].b;
}
}
}