[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38298] trunk/blender/source/blender/ blenkernel/intern/subsurf_ccg.c: Fix #27921: optimal display with 2 subsurf modifiers fails.

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Jul 11 11:05:10 CEST 2011


Revision: 38298
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38298
Author:   blendix
Date:     2011-07-11 09:05:10 +0000 (Mon, 11 Jul 2011)
Log Message:
-----------
Fix #27921: optimal display with 2 subsurf modifiers fails.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2011-07-11 09:04:00 UTC (rev 38297)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2011-07-11 09:05:10 UTC (rev 38298)
@@ -1176,7 +1176,8 @@
 	CCGSubSurf *ss = ccgdm->ss;
 	CCGEdgeIterator *ei = ccgSubSurf_getEdgeIterator(ss);
 	CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss);
-	int i, edgeSize = ccgSubSurf_getEdgeSize(ss);
+	int i, j, edgeSize = ccgSubSurf_getEdgeSize(ss);
+	int totedge = ccgSubSurf_getNumEdges(ss);
 	int gridSize = ccgSubSurf_getGridSize(ss);
 	int useAging;
 
@@ -1184,13 +1185,16 @@
 
 	ccgSubSurf_getUseAgeCounts(ss, &useAging, NULL, NULL, NULL);
 
-	for (; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) {
-		CCGEdge *e = ccgEdgeIterator_getCurrent(ei);
+	for (j=0; j< totedge; j++) {
+		CCGEdge *e = ccgdm->edgeMap[j].edge;
 		DMGridData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e);
 
 		if (!drawLooseEdges && !ccgSubSurf_getEdgeNumFaces(e))
 			continue;
 
+		if(ccgdm->edgeFlags && !(ccgdm->edgeFlags[j] & ME_EDGEDRAW))
+			continue;
+
 		if (useAging && !(G.f&G_BACKBUFSEL)) {
 			int ageCol = 255-ccgSubSurf_getEdgeAge(ss, e)*4;
 			glColor3ub(0, ageCol>0?ageCol:0, 0);




More information about the Bf-blender-cvs mailing list