diff options
author | Sebastian Parborg <darkdefende@gmail.com> | 2019-04-11 19:28:20 +0300 |
---|---|---|
committer | Sebastian Parborg <darkdefende@gmail.com> | 2019-04-11 19:28:20 +0300 |
commit | adaa7688ee77f4bce284b99ef5ac19a7c7a8ae42 (patch) | |
tree | 7b3dba7f17393d6be87f08086b946b085d4bd14d /source/blender/draw/engines | |
parent | 6b06440ed867189262034c26b483474fae670e60 (diff) |
Fix T63467: Edge/vertex selection isnt working properly with X-ray set to 1
Edit mode shows the mesh elements in X-ray mode even if alpha is set to
1. Now the code takes this into account so that you can still select
visible mesh elements in X-ray edit mode.
view3d_draw_legacy need to be updated with the new XRAY flag macros to
avoid crashes. Additional cleanup of the XRAY macro flags were done.
Diffstat (limited to 'source/blender/draw/engines')
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_forward.c | 4 | ||||
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_render.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c index a6c41f41198..85596b22225 100644 --- a/source/blender/draw/engines/workbench/workbench_forward.c +++ b/source/blender/draw/engines/workbench/workbench_forward.c @@ -382,7 +382,7 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata) /* TODO(campbell): displays but masks geometry, * only use with wire or solid-without-xray for now. */ - if (((wpd->shading.type != OB_WIRE && XRAY_FLAG(wpd) == 0)) && + if ((wpd->shading.type != OB_WIRE && !XRAY_FLAG_ENABLED(wpd)) && (draw_ctx->rv3d && (draw_ctx->rv3d->rflag & RV3D_CLIPPING) && draw_ctx->rv3d->clipbb)) { psl->background_pass = DRW_pass_create( @@ -408,7 +408,7 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata) noise_offset = fmodf(noise_offset + 1.0f / 8.0f, 1.0f); } - if (wpd->shading.flag & XRAY_FLAG(wpd)) { + if (XRAY_FLAG_ENABLED(wpd)) { blend_threshold = 1.0f - XRAY_ALPHA(wpd) * 0.9f; } diff --git a/source/blender/draw/engines/workbench/workbench_render.c b/source/blender/draw/engines/workbench/workbench_render.c index 7ad8eea1c6e..663727285a1 100644 --- a/source/blender/draw/engines/workbench/workbench_render.c +++ b/source/blender/draw/engines/workbench/workbench_render.c @@ -137,7 +137,7 @@ void workbench_render(WORKBENCH_Data *data, RenderEngine *engine, RenderLayer *r return; } - const bool deferred = (scene->display.shading.flag & XRAY_FLAG(&scene->display)) == 0; + const bool deferred = !XRAY_FLAG_ENABLED(&scene->display); if (deferred) { /* Init engine. */ |