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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to