[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18523] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Thu Jan 15 16:01:40 CET 2009


Revision: 18523
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18523
Author:   ton
Date:     2009-01-15 16:01:39 +0100 (Thu, 15 Jan 2009)

Log Message:
-----------
2.5

- Depricated another bunch of globals; all the totobj,
  totmesh, totvert, and so on.
- All code that needs such totals now count it themselves,
  these stats were not supposed to be reliable
- Editmesh now stores and manages own totals.
- Todo: make a scene->stats that tracks notifiers.

Bugfix: selecting failed in editmesh, backbuffer stuff was
too late, already using index ranges before it was set.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/booleanops.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/exotic.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
    branches/blender2.5/blender/source/blender/blenlib/BLI_editVert.h
    branches/blender2.5/blender/source/blender/editors/curve/editcurve.c
    branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_add.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2009-01-15 15:01:39 UTC (rev 18523)
@@ -52,7 +52,6 @@
 
 	/* active pointers */
 	struct Main *main;
-	char editModeTitleExtra[64];
 	
 	/* fonts, allocated global data */
 	struct BMF_Font *font, *fonts, *fontss;
@@ -65,12 +64,7 @@
 
 	/* strings of recent opend files */
 	struct ListBase recent_files;
-    
-	/* totals */
-	int totobj, totlamp, totobjsel, totcurve, totmesh;
-	int totbone, totbonesel;
-	int totvert, totedge, totface, totvertsel, totedgesel, totfacesel;
-    
+        
 	short afbreek, moving;
 	short background;
 	short winpos, displaymode;	/* used to be in Render */
@@ -108,10 +102,6 @@
 	/* Janco's playing ground */
 	struct bSoundListener* listener;
 
-	/* Test thingy for Nzc */
-	int compat;      /* toggle compatibility mode for edge rendering */
-	int notonlysolid;/* T-> also edge-render transparent faces       */
-	
 	/* ndof device found ? */
 	int ndofdevice;
 	

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/booleanops.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/booleanops.c	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/booleanops.c	2009-01-15 15:01:39 UTC (rev 18523)
@@ -268,7 +268,6 @@
 				
 	// Initialize the mesh data associated with this object.						
 	ob_new->data= add_mesh("Mesh");
-	G.totmesh++;
 
 	// Finally assign the object type.
 	ob_new->type= OB_MESH;

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/exotic.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/exotic.c	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/exotic.c	2009-01-15 15:01:39 UTC (rev 18523)
@@ -2430,7 +2430,7 @@
 
 	if(em) {
 
-		fprintf(fp, "%d\n", G.totvert);
+		fprintf(fp, "%d\n", em->totvert);
 	
 		tot= 0;
 		eve= em->verts.first;
@@ -3457,7 +3457,7 @@
 	} 
 	else {
 		*o = NULL;
-		*m = add_mesh("Mesh"); G.totmesh++;
+		*m = add_mesh("Mesh");
 
 		me = *m;
 		ob = *o;
@@ -4650,8 +4650,6 @@
 						ob->dupsta= 1; ob->dupend= 100;
 						ob->recalc= OB_RECALC;	/* needed because of weird way of adding libdata directly */
 						
-						G.totobj++;
-
 						ob->data= obdata;
 						((ID*)ob->data)->us++;
 						

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/object.c	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/object.c	2009-01-15 15:01:39 UTC (rev 18523)
@@ -886,13 +886,13 @@
 static void *add_obdata_from_type(int type)
 {
 	switch (type) {
-	case OB_MESH: G.totmesh++; return add_mesh("Mesh");
-	case OB_CURVE: G.totcurve++; return add_curve("Curve", OB_CURVE);
-	case OB_SURF: G.totcurve++; return add_curve("Surf", OB_SURF);
+	case OB_MESH: return add_mesh("Mesh");
+	case OB_CURVE: return add_curve("Curve", OB_CURVE);
+	case OB_SURF: return add_curve("Surf", OB_SURF);
 	case OB_FONT: return add_curve("Text", OB_FONT);
 	case OB_MBALL: return add_mball("Meta");
 	case OB_CAMERA: return add_camera("Camera");
-	case OB_LAMP: G.totlamp++; return add_lamp("Lamp");
+	case OB_LAMP: return add_lamp("Lamp");
 	case OB_LATTICE: return add_lattice("Lattice");
 	case OB_WAVE: return add_wave();
 	case OB_ARMATURE: return add_armature("Armature");
@@ -929,7 +929,6 @@
 	Object *ob;
 
 	ob= alloc_libblock(&G.main->object, ID_OB, name);
-	G.totobj++;
 
 	/* default object vars */
 	ob->type= type;

Modified: branches/blender2.5/blender/source/blender/blenlib/BLI_editVert.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenlib/BLI_editVert.h	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/blenlib/BLI_editVert.h	2009-01-15 15:01:39 UTC (rev 18523)
@@ -170,6 +170,8 @@
 	short selectmode;
 	/* copy from object actcol */
 	short mat_nr;
+	/* stats */
+	int totvert, totedge, totface, totvertsel, totedgesel, totfacesel;
 	
 	struct DerivedMesh *derivedCage, *derivedFinal;
 	/* the custom data layer mask that was last used to calculate

Modified: branches/blender2.5/blender/source/blender/editors/curve/editcurve.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/curve/editcurve.c	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/editors/curve/editcurve.c	2009-01-15 15:01:39 UTC (rev 18523)
@@ -344,7 +344,7 @@
 		
 		actkey = ob_get_keyblock(obedit);
 		if(actkey) {
-			strcpy(G.editModeTitleExtra, "(Key) ");
+			// XXX strcpy(G.editModeTitleExtra, "(Key) ");
 			key_to_curve(actkey, cu, editnurb);
 		}
 	}

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h	2009-01-15 15:01:39 UTC (rev 18523)
@@ -86,14 +86,17 @@
 void drawcircball(int mode, float *cent, float rad, float tmat[][4]);
 
 /* backbuffer select and draw support */
+void view3d_validate_backbuf(struct ViewContext *vc);
 struct ImBuf *view3d_read_backbuf(struct ViewContext *vc, short xmin, short ymin, short xmax, short ymax);
-unsigned int view3d_sample_backbuf_rect(struct ViewContext *vc, short mval[2], int size, unsigned int min, unsigned int max, int *dist, short strict, unsigned int (*indextest)(unsigned int index));
+unsigned int view3d_sample_backbuf_rect(struct ViewContext *vc, short mval[2], int size, unsigned int min, unsigned int max, int *dist, short strict, 
+										void *handle, unsigned int (*indextest)(void *handle, unsigned int index));
 unsigned int view3d_sample_backbuf(struct ViewContext *vc, int x, int y);
 
 /* select */
 #define MAXPICKBUF      10000
 short view3d_opengl_select(struct ViewContext *vc, unsigned int *buffer, unsigned int bufsize, rcti *input);
 void view3d_set_viewcontext(struct bContext *C, struct ViewContext *vc);
+
 /* XXX should move to arithb.c */
 int edge_inside_circle(short centx, short centy, short rad, short x1, short y1, short x2, short y2);
 

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c	2009-01-15 10:55:48 UTC (rev 18522)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c	2009-01-15 15:01:39 UTC (rev 18523)
@@ -125,6 +125,7 @@
 
 	eve= callocvert(em, sizeof(EditVert), 1);
 	BLI_addtail(&em->verts, eve);
+	em->totvert++;
 	
 	if(vec) VECCOPY(eve->co, vec);
 
@@ -154,6 +155,8 @@
 	CustomData_em_free_block(&em->vdata, &eve->data);
 	if(eve->fast==0)
 		free(eve);
+	
+	em->totvert--;
 }
 
 
@@ -259,6 +262,7 @@
 		BLI_addtail(&em->edges, eed);
 		eed->dir= swap;
 		insert_hashedge(em, eed);
+		em->totedge++;
 		
 		/* copy edge data:
 		   rule is to do this with addedgelist call, before addfacelist */
@@ -276,9 +280,10 @@
 
 void remedge(EditMesh *em, EditEdge *eed)
 {
-
 	BLI_remlink(&em->edges, eed);
 	remove_hashedge(em, eed);
+	
+	em->totedge--;
 }
 
 void free_editedge(EditMesh *em, EditEdge *eed)
@@ -291,7 +296,6 @@
 
 void free_editface(EditMesh *em, EditFace *efa)
 {
-
 	EM_remove_selection(em, efa, EDITFACE);
 	
 	if (em->act_face==efa) {
@@ -301,6 +305,8 @@
 	CustomData_em_free_block(&em->fdata, &efa->data);
 	if(efa->fast==0)
 		free(efa);
+	
+	em->totface--;
 }
 
 void free_vertlist(EditMesh *em, ListBase *edve) 
@@ -316,6 +322,7 @@
 		eve= next;
 	}
 	edve->first= edve->last= NULL;
+	em->totvert= em->totvertsel= 0;
 }
 
 void free_edgelist(EditMesh *em, ListBase *lb)
@@ -329,6 +336,7 @@
 		eed= next;
 	}
 	lb->first= lb->last= NULL;
+	em->totedge= em->totedgesel= 0;
 }
 
 void free_facelist(EditMesh *em, ListBase *lb)
@@ -342,6 +350,7 @@
 		efa= next;
 	}
 	lb->first= lb->last= NULL;
+	em->totface= em->totfacesel= 0;
 }
 
 EditFace *addfacelist(EditMesh *em, EditVert *v1, EditVert *v2, EditVert *v3, EditVert *v4, EditFace *example, EditFace *exampleEdges)
@@ -394,7 +403,8 @@
 	}
 
 	BLI_addtail(&em->faces, efa);
-
+	em->totface++;
+	
 	if(efa->v4) {
 		CalcNormFloat4(efa->v1->co, efa->v2->co, efa->v3->co, efa->v4->co, efa->n);
 		CalcCent4f(efa->cent, efa->v1->co, efa->v2->co, efa->v3->co, efa->v4->co);
@@ -562,7 +572,7 @@
 	
 	mesh_octree_table(NULL, NULL, NULL, 'e');
 	
-	G.totvert= G.totface= 0;
+	em->totvert= em->totedge= em->totface= 0;
 
 // XXX	if(em->retopo_paint_data) retopo_free_paint_data(em->retopo_paint_data);
 	em->retopo_paint_data= NULL;
@@ -828,9 +838,9 @@
 	
 	em->selectmode= scene->selectmode; // warning needs to be synced
 	em->act_face = NULL;
-	G.totvert= tot= me->totvert;
-	G.totedge= me->totedge;
-	G.totface= me->totface;
+	em->totvert= tot= me->totvert;
+	em->totedge= me->totedge;
+	em->totface= me->totface;
 	
 	if(tot==0) {
 		return;
@@ -1031,21 +1041,19 @@
 	/* eve->f2 : being used in vertexnormals */
 	edge_drawflags(em);
 	
-	G.totvert= BLI_countlist(&em->verts);
-	G.totedge= BLI_countlist(&em->edges);
-	G.totface= BLI_countlist(&em->faces);
+	EM_stats_update(em);
 	
 	/* new Vertex block */
-	if(G.totvert==0) mvert= NULL;
-	else mvert= MEM_callocN(G.totvert*sizeof(MVert), "loadeditMesh vert");
+	if(em->totvert==0) mvert= NULL;
+	else mvert= MEM_callocN(em->totvert*sizeof(MVert), "loadeditMesh vert");
 
 	/* new Edge block */
-	if(G.totedge==0) medge= NULL;
-	else medge= MEM_callocN(G.totedge*sizeof(MEdge), "loadeditMesh edge");
+	if(em->totedge==0) medge= NULL;
+	else medge= MEM_callocN(em->totedge*sizeof(MEdge), "loadeditMesh edge");
 	
 	/* new Face block */
-	if(G.totface==0) mface= NULL;
-	else mface= MEM_callocN(G.totface*sizeof(MFace), "loadeditMesh face");
+	if(em->totface==0) mface= NULL;
+	else mface= MEM_callocN(em->totface*sizeof(MFace), "loadeditMesh face");
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list