diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-11-08 15:34:25 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-11-08 15:49:39 +0300 |
commit | 3750dfaa0a23130f1fc5200b67443ce68fa4d930 (patch) | |
tree | e49d032c13694ac10245f31deaa7a876fba275d0 /source/blender/blenkernel/intern/object_dupli.c | |
parent | da4bfb87703e49806aff5ce4ed75deaf8c7310e1 (diff) |
Partial Fix T53269: Dupli-verts/dupli-faces not working
This fixes the issue for the Draw Manager, but for Cycles this is still not
working. The iterator bpy.context.depsgraph.duplis seems to be correct though.
Diffstat (limited to 'source/blender/blenkernel/intern/object_dupli.c')
-rw-r--r-- | source/blender/blenkernel/intern/object_dupli.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/object_dupli.c b/source/blender/blenkernel/intern/object_dupli.c index c25207d81bf..bfc99e1f238 100644 --- a/source/blender/blenkernel/intern/object_dupli.c +++ b/source/blender/blenkernel/intern/object_dupli.c @@ -75,6 +75,7 @@ typedef struct DupliContext { Group *group; /* XXX child objects are selected from this group if set, could be nicer */ Scene *scene; + SceneLayer *scene_layer; Object *object; float space_mat[4][4]; @@ -99,6 +100,7 @@ static void init_context(DupliContext *r_ctx, const EvaluationContext *eval_ctx, { r_ctx->eval_ctx = eval_ctx; r_ctx->scene = scene; + r_ctx->scene_layer = eval_ctx->scene_layer; /* don't allow BKE_object_handle_update for viewport during render, can crash */ r_ctx->do_update = update && !(G.is_rendering && eval_ctx->mode != DAG_EVAL_RENDER); r_ctx->animated = false; @@ -255,13 +257,11 @@ static void make_child_duplis(const DupliContext *ctx, void *userdata, MakeChild } } else { - unsigned int lay = ctx->scene->lay; int baseid = 0; - BaseLegacy *base; - for (base = ctx->scene->base.first; base; base = base->next, baseid++) { + SceneLayer *scene_layer = ctx->scene_layer; + for (Base *base = scene_layer->object_bases.first; base; base = base->next, baseid++) { Object *ob = base->object; - - if ((base->lay & lay) && ob != obedit && is_child(ob, parent)) { + if ((base->flag & BASE_VISIBLED) && ob != obedit && is_child(ob, parent)) { DupliContext pctx; copy_dupli_context(&pctx, ctx, ctx->object, NULL, baseid, false); |