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
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2005-06-06 13:52:44 +0400
committerTon Roosendaal <ton@blender.org>2005-06-06 13:52:44 +0400
commit88fa58c437ef926495bbf016d0f14139df04ddea (patch)
tree9d976508e56427ab61d76d9e8b50dc93373b00c1
parent35a00d7ca01cdf47479f95e5b5a98917c5ecf52b (diff)
Changed test for (me->flag&ME_SUBSURF) into
((me->flag&ME_SUBSURF) && me->subdiv) In build_mesh_data(). This because meshes with subdiv==0 were calling a MakeDisplist() for each redraw otherwise, disabling for example the posemode "delay deform" feature. (bug #2700) Daniel; it would help if you would add comments in the code, for example to understand the difference between; mesh_get_base_derived() mesh_get_derived() and how it relates to build_mesh_data() I realize most of the mess is in displist code... and confusing use of features while editing, posemode, & render. Nevertheless, it's not clear at first sight which parts of derivedmesh is design, and which part reflects the hacks to make it work. :)
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c5
-rw-r--r--source/blender/blenkernel/intern/displist.c2
2 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index fde90485536..68587cafed2 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -40,6 +40,7 @@
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
+#include "DNA_object_force.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
@@ -846,13 +847,13 @@ static void build_mesh_data(Object *ob, int inEditMode)
if(ob->parent && ob->partype==PARSKEL) makeDispList(ob);
else if(ob->parent && ob->parent->type==OB_LATTICE) makeDispList(ob);
else if(ob->hooks.first) makeDispList(ob);
- else if(ob->softflag & 0x01) makeDispList(ob);
+ else if(ob->softflag & OB_SB_ENABLE) makeDispList(ob);
else if(ob->effect.first) {
Effect *eff= ob->effect.first;
if(eff->type==EFF_WAVE) makeDispList(ob);
}
}
- if(me->flag&ME_SUBSURF) {
+ if ((me->flag&ME_SUBSURF) && me->subdiv) {
if(inEditMode && !G.editMesh->derived) {
makeDispList(ob);
} else if (!inEditMode && !me->derived) {
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 9ad4fa89278..15f6fe6db90 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -2268,7 +2268,7 @@ void test_all_displists(void)
}
}
- if(ob->softflag & 0x01) freedisplist_object(ob);
+ if(ob->softflag & OB_SB_ENABLE) freedisplist_object(ob);
/* warn, ob pointer changed in case of OB_MALL */
if ELEM(ob->type, OB_CURVE, OB_SURF) {