Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Parborg <darkdefende@gmail.com>2019-04-11 19:28:20 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-04-11 19:28:20 +0300
commitadaa7688ee77f4bce284b99ef5ac19a7c7a8ae42 (patch)
tree7b3dba7f17393d6be87f08086b946b085d4bd14d /source/blender/draw/engines
parent6b06440ed867189262034c26b483474fae670e60 (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.c4
-rw-r--r--source/blender/draw/engines/workbench/workbench_render.c2
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. */