Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2005-07-14 21:10:44 +0400
committerDaniel Dunbar <daniel@zuster.org>2005-07-14 21:10:44 +0400
commitaa454cd4124b6323201b334e4a5b68cc4badd5a5 (patch)
treeb9f277bff293509692cb70573266a0e2efba1508 /source
parentabbda3a8a148a2b14b645a3a9396b8eace212a8f (diff)
- switch to using DAG_object_flush_update instead of mesh_changed
- mesh drawing calculated derived surface before clipping to view matrix, waste for offscreen objects
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/mesh.c3
-rw-r--r--source/blender/src/buttons_editing.c1
-rw-r--r--source/blender/src/drawobject.c15
-rw-r--r--source/blender/src/editface.c6
-rw-r--r--source/blender/src/editobject.c2
-rw-r--r--source/blender/src/editsima.c3
-rw-r--r--source/blender/src/toolbox.c5
-rw-r--r--source/blender/src/vpaint.c9
8 files changed, 27 insertions, 17 deletions
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index c6d823a9afe..56c97a8f62d 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -54,6 +54,7 @@
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
+#include "BKE_depsgraph.h"
#include "BKE_main.h"
#include "BKE_DerivedMesh.h"
#include "BKE_global.h"
@@ -1273,5 +1274,5 @@ void mesh_set_smooth_flag(Object *meshOb, int enableSmooth) {
}
}
- mesh_changed(meshOb);
+ DAG_object_flush_update(G.scene, meshOb, OB_RECALC_DATA);
}
diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c
index 6fbad452a80..ff557f654d4 100644
--- a/source/blender/src/buttons_editing.c
+++ b/source/blender/src/buttons_editing.c
@@ -397,7 +397,6 @@ void do_common_editbuts(unsigned short event) // old name, is a mix of object an
EditFace *efa;
Base *base;
Object *ob;
- Mesh *me;
Nurb *nu;
Curve *cu;
BezTriple *bezt;
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c
index 7005a9384f6..f41dc5d07af 100644
--- a/source/blender/src/drawobject.c
+++ b/source/blender/src/drawobject.c
@@ -1920,27 +1920,32 @@ static void draw_mesh_object(Base *base, int dt)
{
Object *ob= base->object;
Mesh *me= ob->data;
- DerivedMesh *baseDM = mesh_get_base_derived(ob);
- DerivedMesh *realDM = mesh_get_derived(ob);
int has_alpha= 0;
if(G.obedit && ob->data==G.obedit->data) {
+ DerivedMesh *baseDM = mesh_get_base_derived(ob);
+ DerivedMesh *realDM = mesh_get_derived(ob);
+
if(dt>OB_WIRE) init_gl_materials(ob); // no transp in editmode, the fancy draw over goes bad then
draw_em_fancy(ob, G.editMesh, baseDM, realDM, dt);
+
+ baseDM->release(baseDM);
}
else {
if(me->bb==NULL) tex_space_mesh(me);
if(me->totface<=4 || boundbox_clip(ob->obmat, me->bb)) {
+ DerivedMesh *baseDM = mesh_get_base_derived(ob);
+ DerivedMesh *realDM = mesh_get_derived(ob);
+
if(dt==OB_SOLID) has_alpha= init_gl_materials(ob);
draw_mesh_fancy(ob, baseDM, realDM, dt);
+
+ baseDM->release(baseDM);
}
}
/* init_gl_materials did the proper checking if this is needed */
if(has_alpha) add_view3d_after(G.vd, base, V3D_TRANSP);
-
- baseDM->release(baseDM);
-
}
/* ************** DRAW DISPLIST ****************** */
diff --git a/source/blender/src/editface.c b/source/blender/src/editface.c
index f6feceb7f8e..845d371eec6 100644
--- a/source/blender/src/editface.c
+++ b/source/blender/src/editface.c
@@ -59,6 +59,7 @@
#include "DNA_userdef_types.h"
#include "BKE_utildefines.h"
+#include "BKE_depsgraph.h"
#include "BKE_displist.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
@@ -885,7 +886,8 @@ void rotate_uv_tface()
}
BIF_undo_push("Rotate UV face");
- mesh_changed(OBACT);
+ DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA);
+
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWIMAGE, 0);
}
@@ -1228,7 +1230,7 @@ void set_faceselect() /* toggle */
else if((G.f & (G_WEIGHTPAINT|G_VERTEXPAINT|G_TEXTUREPAINT))==0) {
if(me) {
reveal_tface();
- mesh_changed(ob);
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
}
setcursor_space(SPACE_VIEW3D, CURSOR_STD);
BIF_undo_push("End UV Faceselect");
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c
index df8bb319537..5714764b694 100644
--- a/source/blender/src/editobject.c
+++ b/source/blender/src/editobject.c
@@ -2347,7 +2347,7 @@ void flip_subdivison(Object *ob, int level)
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWOOPS, 0);
allqueue(REDRAWBUTSEDIT, 0);
- mesh_changed(ob);
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
BIF_undo_push("Switch subsurf on/off");
}
diff --git a/source/blender/src/editsima.c b/source/blender/src/editsima.c
index 96b9b1de3f7..b9c409c5758 100644
--- a/source/blender/src/editsima.c
+++ b/source/blender/src/editsima.c
@@ -59,6 +59,7 @@
#include "DNA_image_types.h"
#include "DNA_object_types.h" // only for uvedit_selectionCB() (struct Object)
+#include "BKE_depsgraph.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
#include "BKE_displist.h"
@@ -761,7 +762,7 @@ void transform_tface_uv(int mode, int context) // 2 args, for callback
G.moving= 0;
prop_size*= 3;
- mesh_changed(OBACT);
+ DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA);
allqueue(REDRAWVIEW3D, 0);
if(event!=ESCKEY && event!=RIGHTMOUSE)
diff --git a/source/blender/src/toolbox.c b/source/blender/src/toolbox.c
index b5096bf8228..92ea8264233 100644
--- a/source/blender/src/toolbox.c
+++ b/source/blender/src/toolbox.c
@@ -67,6 +67,7 @@
#include "BLI_blenlib.h"
#include "BLI_arithb.h"
+#include "BKE_depsgraph.h"
#include "BKE_plugin_types.h"
#include "BKE_utildefines.h"
#include "BKE_mesh.h"
@@ -1808,8 +1809,8 @@ static void tb_do_mesh(void *arg, int event){
case 2: G.f ^= G_DRAWEDGES; break;
case 3: G.f ^= G_DRAWFACES; break;
case 4: G.f ^= G_DRAWNORMALS; break;
- case 5: me->flag ^= ME_SUBSURF; mesh_changed(OBACT); break;
- case 6: me->flag ^= ME_OPT_EDGES; mesh_changed(OBACT); break;
+ case 5: me->flag ^= ME_SUBSURF; DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA); break;
+ case 6: me->flag ^= ME_OPT_EDGES; DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA); break;
}
addqueue(curarea->win, REDRAW, 1);
}
diff --git a/source/blender/src/vpaint.c b/source/blender/src/vpaint.c
index f3363c63bdf..7e1135c8d1c 100644
--- a/source/blender/src/vpaint.c
+++ b/source/blender/src/vpaint.c
@@ -60,6 +60,7 @@
#include "DNA_view3d_types.h"
#include "DNA_userdef_types.h"
+#include "BKE_depsgraph.h"
#include "BKE_displist.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
@@ -766,7 +767,7 @@ void wpaint_undo (void){
me->dvert= MEM_mallocN(sizeof(MDeformVert)*me->totvert, "deformVert");
copy_dverts(me->dvert, wpaintundobuf, totwpaintundo);
- mesh_changed(OBACT);
+ DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA);
scrarea_do_windraw(curarea);
}
@@ -940,7 +941,7 @@ void weight_paint(void)
me->mcol= 0;
}
- mesh_changed(ob);
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
// this flag is event for softbody to refresh weightpaint values
if(ob->soft) ob->softflag |= OB_SB_REDO;
@@ -1153,7 +1154,7 @@ void set_wpaint(void) /* toggle */
else {
freefastshade(); /* to be sure */
if (me) {
- mesh_changed(ob);
+ DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA);
}
if(!(G.f & G_FACESELECT))
setcursor_space(SPACE_VIEW3D, CURSOR_STD);
@@ -1202,7 +1203,7 @@ void set_vpaint(void) /* toggle */
else {
freefastshade(); /* to be sure */
if (me) {
- mesh_changed(ob);
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
}
if((G.f & G_FACESELECT)==0) setcursor_space(SPACE_VIEW3D, CURSOR_STD);
}