diff options
author | Ton Roosendaal <ton@blender.org> | 2005-05-18 23:50:39 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2005-05-18 23:50:39 +0400 |
commit | 698f7974b91fd5ab97c9f6507b702273c706635c (patch) | |
tree | f058a2366f30a9b9451ce3e4f3c6f14170bf7e1a | |
parent | 780412f1ae0c447d75645b1610eedab3bb4e6897 (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.c | 20 |
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); |