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-05-18 23:50:39 +0400
committerTon Roosendaal <ton@blender.org>2005-05-18 23:50:39 +0400
commit698f7974b91fd5ab97c9f6507b702273c706635c (patch)
treef058a2366f30a9b9451ce3e4f3c6f14170bf7e1a
parent780412f1ae0c447d75645b1610eedab3bb4e6897 (diff)
Bug #2582
This combo didnt render OK: 1 Armature has Empties parented to Bones 2 Curve has these Empties as Hooks 3 Mesh is deformed with this Curve Could be solved with calling makeDispList() earlier on, and it seems like the depgraph already does a great job here. :)
-rw-r--r--source/blender/renderconverter/intern/convertBlenderScene.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/source/blender/renderconverter/intern/convertBlenderScene.c b/source/blender/renderconverter/intern/convertBlenderScene.c
index 1c3106cd7b1..7ea86bf42d5 100644
--- a/source/blender/renderconverter/intern/convertBlenderScene.c
+++ b/source/blender/renderconverter/intern/convertBlenderScene.c
@@ -2965,22 +2965,26 @@ void RE_rotateBlenderScene(void)
base= G.scene->base.first;
while(base) {
ob= base->object;
+
clear_object_constraint_status(ob);
+
if (ob->type==OB_ARMATURE)
where_is_armature (ob);
else
where_is_object(ob);
- if(ob->type==OB_MESH) {
- Mesh *me= ob->data;
+ if(ob->disp.first==NULL) {
/* check for need for displist (it's zero when parent, key, or hook changed) */
/* this part was added to mimic drawing code better, will be solved with dep graph! (ton) */
- if(ob->disp.first==NULL) {
- 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 & OB_SB_ENABLE) makeDispList(ob);
- else if(me->disp.first==NULL && (me->flag&ME_SUBSURF)) makeDispList(ob);
+ /* added note; this is also needed for curves, for example, deformed with hooks */
+ 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 & OB_SB_ENABLE) makeDispList(ob);
+
+ if(ob->type==OB_MESH) {
+ Mesh *me= ob->data;
+ if(me->disp.first==NULL && (me->flag&ME_SUBSURF)) makeDispList(ob);
else if(ob->effect.first) { // as last check
Effect *eff= ob->effect.first;
if(eff->type==EFF_WAVE) makeDispList(ob);