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:
authorJeroen Bakker <jeroen@blender.org>2019-12-03 11:13:17 +0300
committerJeroen Bakker <jeroen@blender.org>2019-12-03 13:28:01 +0300
commitd6fe8cea736957fc8ef8164159d555e1d1b7cfe8 (patch)
tree0329b202838b98c80fb9819b84294b89df065dd1 /source/blender
parentc7e64f67ed8e0a0f1f7a4f3fa1bab55210140543 (diff)
DrawManager: Bounding Box Drawing
Fix for T72136: Bounding boxes were still drawn even with disabled overlays. Also the outline displayed the original mesh Reviewed By: fclem Differential Revision: https://developer.blender.org/D6350
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/draw/engines/overlay/overlay_engine.c4
-rw-r--r--source/blender/draw/engines/overlay/overlay_outline.c6
2 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_engine.c b/source/blender/draw/engines/overlay/overlay_engine.c
index 667172e5bb5..e83a5c04eaf 100644
--- a/source/blender/draw/engines/overlay/overlay_engine.c
+++ b/source/blender/draw/engines/overlay/overlay_engine.c
@@ -336,7 +336,9 @@ static void OVERLAY_cache_populate(void *vedata, Object *ob)
}
/* Relationship, object center, bounbox ... */
- OVERLAY_extra_cache_populate(vedata, ob);
+ if (!pd->hide_overlays) {
+ OVERLAY_extra_cache_populate(vedata, ob);
+ }
if (dupli) {
dupli->base_flag = ob->base_flag;
diff --git a/source/blender/draw/engines/overlay/overlay_outline.c b/source/blender/draw/engines/overlay/overlay_outline.c
index a0c7f575677..cb5344630c3 100644
--- a/source/blender/draw/engines/overlay/overlay_outline.c
+++ b/source/blender/draw/engines/overlay/overlay_outline.c
@@ -271,6 +271,12 @@ void OVERLAY_outline_cache_populate(OVERLAY_Data *vedata,
const DRWContextState *draw_ctx = DRW_context_state_get();
struct GPUBatch *geom;
DRWShadingGroup *shgroup = NULL;
+ const bool draw_outline = ob->dt > OB_BOUNDBOX;
+
+ /* Early exit: outlines of bounding boxes are not drawn. */
+ if (!draw_outline) {
+ return;
+ }
if (ob->type == OB_LIGHTPROBE) {
outline_lightprobe(pd, ob, draw_ctx->view_layer);