diff options
author | Ton Roosendaal <ton@blender.org> | 2005-07-26 01:38:13 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2005-07-26 01:38:13 +0400 |
commit | e8347e8b28be7a980e798cd0c6d9e41735bcb60a (patch) | |
tree | dd3ac0a6d9634b33598ba78fc9cab4a4ac6e1b1b /source/blender | |
parent | 3dcc653365563098f28e365e2934c764637cf5ee (diff) |
- Dupliframes mball didn't work anymore (should be added to scene_update)
- restored nicer drawing for duplicator wireframe. Draws before selected,
so you can see the duplicated object better
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/depsgraph.c | 3 | ||||
-rw-r--r-- | source/blender/src/drawview.c | 50 |
2 files changed, 7 insertions, 46 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index a50eb21ecb7..16b9b63f5e6 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -1461,6 +1461,9 @@ void DAG_scene_update_flags(Scene *sce, unsigned int lay) lt= ob->data; if(lt->key) ob->recalc |= OB_RECALC_DATA; break; + case OB_MBALL: + if(ob->transflag & OB_DUPLI) ob->recalc |= OB_RECALC_DATA; + break; } } } diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index 7b11abd9b3d..9e7db4ef294 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -2006,22 +2006,17 @@ void drawview3dspace(ScrArea *sa, void *spacedata) } /* then draw not selected and the duplis, but skip editmode object */ - base= G.scene->base.first; - while(base) { - + for(base= G.scene->base.first; base; base= base->next) { if(v3d->lay & base->lay) { /* dupli drawing temporal off here */ - if(FALSE && base->object->transflag & OB_DUPLI) { + if(base->object->transflag & OB_DUPLI) { extern ListBase duplilist; Base tbase; - /* draw original always first because of make_displist */ - draw_object(base); - /* patch: color remains constant */ G.f |= G_PICKSEL; - cpack(0x404040); + BIF_ThemeColorBlend(TH_BACK, TH_WIRE, 0.5); tbase.flag= OB_FROMDUPLI; make_duplilist(G.scene, base->object); @@ -2039,21 +2034,14 @@ void drawview3dspace(ScrArea *sa, void *spacedata) else if((base->flag & SELECT)==0) { if(base->object!=G.obedit) draw_object(base); } - } - - base= base->next; } /* draw selected and editmode */ - base= G.scene->base.first; - while(base) { - + for(base= G.scene->base.first; base; base= base->next) { if(v3d->lay & base->lay) { if (base->object==G.obedit || ( base->flag & SELECT) ) draw_object(base); } - - base= base->next; } if(G.moving) { @@ -2061,36 +2049,6 @@ void drawview3dspace(ScrArea *sa, void *spacedata) if(G.obedit) BIF_drawPropCircle(); // only editmode has proportional edit } - /* duplis, draw as last to make sure the displists are ok */ - base= G.scene->base.first; - while(base) { - - if(v3d->lay & base->lay) { - if(base->object->transflag & OB_DUPLI) { - extern ListBase duplilist; - Base tbase; - - /* patch: color remains constant */ - G.f |= G_PICKSEL; - cpack(0x404040); - - tbase.flag= OB_FROMDUPLI; - make_duplilist(G.scene, base->object); - - ob= duplilist.first; - while(ob) { - tbase.object= ob; - draw_object(&tbase); - ob= ob->id.next; - } - free_duplilist(); - - G.f &= ~G_PICKSEL; - } - } - base= base->next; - } - if(G.scene->radio) RAD_drawall(v3d->drawtype>=OB_SOLID); /* Transp and X-ray afterdraw stuff */ |