[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32320] trunk/blender/source/blender: - fix for crash when drawing a subsurf after a modifier that lost original indices (bevel/screw/decimate)

Campbell Barton ideasman42 at gmail.com
Tue Oct 5 13:16:07 CEST 2010


Revision: 32320
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32320
Author:   campbellbarton
Date:     2010-10-05 13:16:07 +0200 (Tue, 05 Oct 2010)

Log Message:
-----------
- fix for crash when drawing a subsurf after a modifier that lost original indices (bevel/screw/decimate)
- fix for own mistake used madd_v3_v3fl rather then mul_v3_v3fl, r32241.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    trunk/blender/source/blender/editors/space_view3d/drawmesh.c
    trunk/blender/source/blender/gpu/intern/gpu_draw.c

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2010-10-05 10:45:54 UTC (rev 32319)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2010-10-05 11:16:07 UTC (rev 32320)
@@ -1619,8 +1619,10 @@
 
 		if(drawParams)
 			flag = drawParams(tf, mcol, mat_nr);
+		else if(index != ORIGINDEX_NONE)
+			flag= (drawParamsMapped)? drawParamsMapped(userData, index): 1;
 		else
-			flag= (drawParamsMapped)? drawParamsMapped(userData, index): 1;
+			flag= 1;
 		
 		if (flag == 0) { /* flag 0 == the face is hidden or invisible */
 			if(tf) tf += gridFaces*gridFaces*numVerts;

Modified: trunk/blender/source/blender/editors/space_view3d/drawmesh.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawmesh.c	2010-10-05 10:45:54 UTC (rev 32319)
+++ trunk/blender/source/blender/editors/space_view3d/drawmesh.c	2010-10-05 11:16:07 UTC (rev 32320)
@@ -523,7 +523,7 @@
 	MCol *mcol;
 	int matnr;
 
-	if (efa==NULL || efa->h)
+	if (efa->h)
 		return 0;
 
 	tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);

Modified: trunk/blender/source/blender/gpu/intern/gpu_draw.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_draw.c	2010-10-05 10:45:54 UTC (rev 32319)
+++ trunk/blender/source/blender/gpu/intern/gpu_draw.c	2010-10-05 11:16:07 UTC (rev 32320)
@@ -911,10 +911,10 @@
 		}	
 	}
 	else {
-		madd_v3_v3fl(smat->diff, &bmat->r, bmat->ref + bmat->emit);
+		mul_v3_v3fl(smat->diff, &bmat->r, bmat->ref + bmat->emit);
 		smat->diff[3]= 1.0; /* caller may set this to bmat->alpha */
 
-		madd_v3_v3fl(smat->spec, &bmat->specr, bmat->spec);
+		mul_v3_v3fl(smat->spec, &bmat->specr, bmat->spec);
 		smat->spec[3]= 1.0; /* always 1 */
 		smat->hard= CLAMPIS(bmat->har, 0, 128);
 
@@ -1043,10 +1043,10 @@
 
 		memset(&GMS, 0, sizeof(GMS));
 
-		madd_v3_v3fl(diff, &defmaterial.r, defmaterial.ref + defmaterial.emit);
+		mul_v3_v3fl(diff, &defmaterial.r, defmaterial.ref + defmaterial.emit);
 		diff[3]= 1.0;
 
-		madd_v3_v3fl(spec, &defmaterial.specr, defmaterial.spec);
+		mul_v3_v3fl(spec, &defmaterial.specr, defmaterial.spec);
 		spec[3]= 1.0;
 
 		glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diff);
@@ -1286,7 +1286,7 @@
 		}
 		
 		/* setup energy */
-		madd_v3_v3fl(energy, &la->r, la->energy);
+		mul_v3_v3fl(energy, &la->r, la->energy);
 		energy[3]= 1.0;
 
 		glLightfv(GL_LIGHT0+count, GL_DIFFUSE, energy); 





More information about the Bf-blender-cvs mailing list