From 7fb216d800f03489aacec1e4e261d36bba32147c Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 7 Jun 2018 08:25:22 +0200 Subject: [PATCH] Workbench: respect the duplication visibility flag --- source/blender/draw/engines/workbench/workbench_deferred.c | 5 ++++- source/blender/draw/engines/workbench/workbench_forward.c | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c index aad4260241f..9e71ba551a1 100644 --- a/source/blender/draw/engines/workbench/workbench_deferred.c +++ b/source/blender/draw/engines/workbench/workbench_deferred.c @@ -661,7 +661,6 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) WORKBENCH_StorageList *stl = vedata->stl; WORKBENCH_PassList *psl = vedata->psl; WORKBENCH_PrivateData *wpd = stl->g_data; - if (!DRW_object_is_renderable(ob)) return; @@ -669,6 +668,10 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) workbench_cache_populate_particles(vedata, ob); } + if (!DRW_check_object_visible_within_active_context(ob)) { + return; + } + WORKBENCH_MaterialData *material; if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT)) { const DRWContextState *draw_ctx = DRW_context_state_get(); diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c index 13821e0e57e..f313aee30ec 100644 --- a/source/blender/draw/engines/workbench/workbench_forward.c +++ b/source/blender/draw/engines/workbench/workbench_forward.c @@ -517,6 +517,11 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob) if (ob->type == OB_MESH) { workbench_forward_cache_populate_particles(vedata, ob); } + + if (!DRW_check_object_visible_within_active_context(ob)) { + return; + } + if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT)) { const DRWContextState *draw_ctx = DRW_context_state_get(); const bool is_active = (ob == draw_ctx->obact);