[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12100] trunk/blender/source/blender/src/ drawimage.c: last commit had an error that crashed blender.

Campbell Barton cbarton at metavr.com
Fri Sep 21 15:30:38 CEST 2007


Revision: 12100
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12100
Author:   campbellbarton
Date:     2007-09-21 15:30:38 +0200 (Fri, 21 Sep 2007)

Log Message:
-----------
last commit had an error that crashed blender.
some of the UV/image drawomg checks for editmode were redundant

Modified Paths:
--------------
    trunk/blender/source/blender/src/drawimage.c

Modified: trunk/blender/source/blender/src/drawimage.c
===================================================================
--- trunk/blender/source/blender/src/drawimage.c	2007-09-21 10:28:04 UTC (rev 12099)
+++ trunk/blender/source/blender/src/drawimage.c	2007-09-21 13:30:38 UTC (rev 12100)
@@ -453,57 +453,48 @@
 	EditMesh *em = G.editMesh;
 	EditFace *efa;
 	
-	char col1[4], col2[4];
+	char col1[4], col2[4], efaset = 0;
 	float pointsize= BIF_GetThemeValuef(TH_VERTEX_SIZE);
  	
 	if (!G.obedit || !CustomData_has_layer(&em->fdata, CD_MTFACE))
 		return;
 	
-	
 	calc_image_view(G.sima, 'f');	/* float */
 	myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
 	glLoadIdentity();
 	
-	/* draw shadow mesh */
-	if ((G.sima->flag & SI_DRAWSHADOW) && (G.obedit==OBACT)) { /* TODO - editmesh */
-		DerivedMesh *dm;
-
-		/* draw final mesh with modifiers applied */
-		/* should test - editmesh_get_derived_cage_and_final */
-		dm = editmesh_get_derived_base();
-
+	
+	if(G.sima->flag & SI_DRAWTOOL || G.sima->flag & SI_DRAWSHADOW) {
 		glColor3ub(112, 112, 112);
-		if (dm->drawUVEdges) dm->drawUVEdges(dm);
-
-		dm->release(dm);
-	}
-	else if((G.sima->flag & SI_DRAWTOOL) || (G.obedit==OBACT)) {
-		/* draw mesh without modifiers applied */
-
-		if (G.obedit) {		
-			glColor3ub(112, 112, 112);
-			for (efa= em->faces.first; efa; efa= efa->next) {
-				tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
-				if (SIMA_FACEDRAW_CHECK(efa, tface)) {
-					glBegin(GL_LINE_LOOP);
-					glVertex2fv(tface->uv[0]);
-					glVertex2fv(tface->uv[1]);
-					glVertex2fv(tface->uv[2]);
-					if(efa->v4) glVertex2fv(tface->uv[3]);
-					glEnd();
-					
-					
-					efa->tmp.p = tface;
-				} else {
-					efa->tmp.p = NULL;
-				}
-					
+		for (efa= em->faces.first; efa; efa= efa->next) {
+			tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+			if (SIMA_FACEDRAW_CHECK(efa, tface)) {
+				efa->tmp.p = tface;
+			} else {
+				glBegin(GL_LINE_LOOP);
+				glVertex2fv(tface->uv[0]);
+				glVertex2fv(tface->uv[1]);
+				glVertex2fv(tface->uv[2]);
+				if(efa->v4) glVertex2fv(tface->uv[3]);
+				glEnd();
+				
+				efa->tmp.p = NULL;
 			}
 		}
+		if(G.sima->flag & SI_DRAWTOOL)
+			return; /* only draw shadow mesh */
+		
+	} else {
+		/* would be nice to do this within a draw loop but most below are optional, so it would involve too many checks */
+		for (efa= em->faces.first; efa; efa= efa->next) {
+			tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+			if (SIMA_FACEDRAW_CHECK(efa, tface)) {		
+				efa->tmp.p = tface;
+			} else {
+				efa->tmp.p = NULL;
+			}
+		}
 	}
-
-	if((G.sima->flag & SI_DRAWTOOL) || !(G.obedit==OBACT))
-		return; /* only draw shadow mesh */
 	
 	/* draw transparent faces */
 	if(G.f & G_DRAWFACES) {
@@ -620,10 +611,8 @@
 			}
 		}
 		
-		
 		glLineWidth(1);
 		cpack(0xFFFFFF);
-		
 		for (efa= em->faces.first; efa; efa= efa->next) {
 //			tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
 //			if (SIMA_FACEDRAW_CHECK(efa, tface)) {
@@ -1168,14 +1157,16 @@
 	
 	
 	if (G.sima->image) {
-		uiDefBut(block, LABEL, B_NOP, "Image Display...",		10,140,140,19, 0, 0, 0, 0, 0, "");
+		uiDefBut(block, LABEL, B_NOP, "Image Display:",		10,140,140,19, 0, 0, 0, 0, 0, "");
 		uiBlockBeginAlign(block);
 		uiDefButF(block, NUM, B_REDR, "AspX:", 10,120,140,19, &G.sima->image->aspx, 0.1, 5000.0, 100, 0, "X Display Aspect for this image, does not affect renderingm 0 disables.");
 		uiDefButF(block, NUM, B_REDR, "AspY:", 10,100,140,19, &G.sima->image->aspy, 0.1, 5000.0, 100, 0, "X Display Aspect for this image, does not affect rendering 0 disables.");
 		uiBlockEndAlign(block);
 	}
 	
+	
 	if (EM_texFaceCheck()) {
+		uiDefBut(block, LABEL, B_NOP, "Draw Type:",		10, 20,120,19, 0, 0, 0, 0, 0, "");
 		uiBlockBeginAlign(block);
 		uiDefButC(block,  ROW, B_REDR, "Dash",			10, 0,58,19, &G.sima->dt_uv, 0.0, 0.0, 0, 0, "Dashed Wire UV drawtype");
 		uiDefButC(block,  ROW, B_REDR, "Black",			68, 0,58,19, &G.sima->dt_uv, 0.0, 1.0, 0, 0, "Black Wire UV drawtype");





More information about the Bf-blender-cvs mailing list