From f7bd56bf22b05b07c66ecb9e4eede7b32639cee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Thu, 5 Dec 2019 17:17:55 +0100 Subject: Workbench: Fix missing Clipping state when usint Alt+B clipping Also make the code a bit more clear. --- source/blender/draw/engines/workbench/workbench_forward.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source/blender/draw/engines/workbench/workbench_forward.c') diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c index 80b274e9b76..87f3b28c665 100644 --- a/source/blender/draw/engines/workbench/workbench_forward.c +++ b/source/blender/draw/engines/workbench/workbench_forward.c @@ -387,17 +387,19 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata) }); workbench_volume_cache_init(vedata); - const bool do_cull = CULL_BACKFACE_ENABLED(wpd); - const int cull_state = (do_cull) ? DRW_STATE_CULL_BACK : 0; + + DRWState clip_state = WORLD_CLIPPING_ENABLED(wpd) ? DRW_STATE_CLIP_PLANES : 0; + DRWState cull_state = CULL_BACKFACE_ENABLED(wpd) ? DRW_STATE_CULL_BACK : 0; /* Transparency Accum */ { - int state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_OIT | cull_state; + int state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_OIT | cull_state | clip_state; psl->transparent_accum_pass = DRW_pass_create("Transparent Accum", state); } /* Depth */ { - int state = DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS | cull_state; + int state = DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS | cull_state | + clip_state; psl->object_outline_pass = DRW_pass_create("Object Outline Pass", state); } /* Composite */ -- cgit v1.2.3