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-07-26 01:38:13 +0400
committerTon Roosendaal <ton@blender.org>2005-07-26 01:38:13 +0400
commite8347e8b28be7a980e798cd0c6d9e41735bcb60a (patch)
treedd3ac0a6d9634b33598ba78fc9cab4a4ac6e1b1b
parent3dcc653365563098f28e365e2934c764637cf5ee (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
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c3
-rw-r--r--source/blender/src/drawview.c50
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 */