diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-06-07 09:25:22 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-06-07 10:26:06 +0300 |
commit | 7fb216d800f03489aacec1e4e261d36bba32147c (patch) | |
tree | 8007f3fb81955c24bfe16c23603fa5f337a59787 /source/blender/draw | |
parent | 2d2f23de10103528cb64beef58ec0cdb277409ff (diff) |
Workbench: respect the duplication visibility flag
Diffstat (limited to 'source/blender/draw')
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_deferred.c | 5 | ||||
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_forward.c | 5 |
2 files changed, 9 insertions, 1 deletions
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); |