Revision: 21078 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21078 Author: imbusy Date: 2009-06-22 15:45:18 +0200 (Mon, 22 Jun 2009)
Log Message: ----------- cdDM_drawFacesColored seems to work so Shaded Mode sort of works. Modified Paths: -------------- branches/soc-2009-imbusy/source/blender/blenkernel/intern/cdderivedmesh.c branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c Modified: branches/soc-2009-imbusy/source/blender/blenkernel/intern/cdderivedmesh.c =================================================================== --- branches/soc-2009-imbusy/source/blender/blenkernel/intern/cdderivedmesh.c 2009-06-22 13:23:13 UTC (rev 21077) +++ branches/soc-2009-imbusy/source/blender/blenkernel/intern/cdderivedmesh.c 2009-06-22 13:45:18 UTC (rev 21078) @@ -286,11 +286,11 @@ /* we need that as mesh option builtin, next to double sided lighting */ if(col1 && col2) glEnable(GL_CULL_FACE); - - /* TODO: why does the code below give different results? */ - /*GPU_color4_upload(dm,cp1); + + GPU_color4_upload(dm,cp1); GPU_vertex_setup(dm); GPU_color_setup(dm); + glShadeModel(GL_SMOOTH); glDrawArrays(GL_TRIANGLES, 0, dm->drawObject->nelements); if( useTwoSided ) { @@ -300,46 +300,8 @@ glDrawArrays(GL_TRIANGLES, 0, dm->drawObject->nelements); glCullFace(GL_BACK); } - GPU_buffer_unbind();*/ + GPU_buffer_unbind(); - /* old code */ - glShadeModel(GL_SMOOTH); - glBegin(glmode = GL_QUADS); - for(a = 0; a < dm->numFaceData; a++, mface++, cp1 += 16) { - int new_glmode = mface->v4?GL_QUADS:GL_TRIANGLES; - - if(new_glmode != glmode) { - glEnd(); - glBegin(glmode = new_glmode); - } - - glColor3ub(cp1[0], cp1[1], cp1[2]); - glVertex3fv(mvert[mface->v1].co); - glColor3ub(cp1[4], cp1[5], cp1[6]); - glVertex3fv(mvert[mface->v2].co); - glColor3ub(cp1[8], cp1[9], cp1[10]); - glVertex3fv(mvert[mface->v3].co); - if(mface->v4) { - glColor3ub(cp1[12], cp1[13], cp1[14]); - glVertex3fv(mvert[mface->v4].co); - } - - if(useTwoSided) { - glColor3ub(cp2[8], cp2[9], cp2[10]); - glVertex3fv(mvert[mface->v3].co ); - glColor3ub(cp2[4], cp2[5], cp2[6]); - glVertex3fv(mvert[mface->v2].co ); - glColor3ub(cp2[0], cp2[1], cp2[2]); - glVertex3fv(mvert[mface->v1].co ); - if(mface->v4) { - glColor3ub(cp2[12], cp2[13], cp2[14]); - glVertex3fv(mvert[mface->v4].co ); - } - } - if(col2) cp2 += 16; - } - glEnd(); - glShadeModel(GL_FLAT); glDisable(GL_CULL_FACE); } Modified: branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c =================================================================== --- branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c 2009-06-22 13:23:13 UTC (rev 21077) +++ branches/soc-2009-imbusy/source/blender/gpu/intern/gpu_buffers.c 2009-06-22 13:45:18 UTC (rev 21078) @@ -490,14 +490,14 @@ index[redir[mface[i].mat_nr+127]] += 9; /* v1 v2 v3 */ - VECCOPY(&varray[start],&mcol[i*4]); - VECCOPY(&varray[start+3],&mcol[i*4+3]); - VECCOPY(&varray[start+6],&mcol[i*4+6]); + VECCOPY(&varray[start],&mcol[i*12]); + VECCOPY(&varray[start+3],&mcol[i*12+3]); + VECCOPY(&varray[start+6],&mcol[i*12+6]); if( mface[i].v4 ) { /* v3 v4 v1 */ - VECCOPY(&varray[start+9],&mcol[i*4+6]); - VECCOPY(&varray[start+12],&mcol[i*4+9]); - VECCOPY(&varray[start+15],&mcol[i*4]); + VECCOPY(&varray[start+9],&mcol[i*12+6]); + VECCOPY(&varray[start+12],&mcol[i*12+9]); + VECCOPY(&varray[start+15],&mcol[i*12]); } } } @@ -513,7 +513,7 @@ DEBUG_VBO("GPU_buffer_copy_color4\n"); - mcol = user; + mcol = (unsigned char *)user; varray = (unsigned char *)varray_; mface = dm->getFaceArray(dm); @@ -526,14 +526,14 @@ index[redir[mface[i].mat_nr+127]] += 9; /* v1 v2 v3 */ - VECCOPY(&varray[start],&mcol[i*4]); - VECCOPY(&varray[start+3],&mcol[i*4+4]); - VECCOPY(&varray[start+6],&mcol[i*4+8]); + VECCOPY(&varray[start],&mcol[i*16]); + VECCOPY(&varray[start+3],&mcol[i*16+4]); + VECCOPY(&varray[start+6],&mcol[i*16+8]); if( mface[i].v4 ) { /* v3 v4 v1 */ - VECCOPY(&varray[start+9],&mcol[i*4+8]); - VECCOPY(&varray[start+12],&mcol[i*4+12]); - VECCOPY(&varray[start+15],&mcol[i*4]); + VECCOPY(&varray[start+9],&mcol[i*16+8]); + VECCOPY(&varray[start+12],&mcol[i*16+12]); + VECCOPY(&varray[start+15],&mcol[i*16]); } } } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs