diff options
4 files changed, 21 insertions, 7 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index ece23db7a31..969f9b4bd1a 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -5888,7 +5888,9 @@ class VIEW3D_PT_overlay_guides(Panel): sub.prop(overlay, "show_cursor", text="3D Cursor") if shading.type == 'MATERIAL': - col.prop(overlay, "show_look_dev") + row = col.row() + row.active = shading.render_pass == 'COMBINED' + row.prop(overlay, "show_look_dev") col.prop(overlay, "show_annotation", text="Annotations") diff --git a/source/blender/draw/engines/eevee/eevee_lookdev.c b/source/blender/draw/engines/eevee/eevee_lookdev.c index 0cbd3d9ac83..a725a3583f3 100644 --- a/source/blender/draw/engines/eevee/eevee_lookdev.c +++ b/source/blender/draw/engines/eevee/eevee_lookdev.c @@ -76,7 +76,7 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata, effects->lookdev_view = NULL; - if (LOOK_DEV_OVERLAY_ENABLED(v3d)) { + if (eevee_hdri_preview_overlay_enabled(v3d)) { /* Viewport / Spheres size. */ const rcti *rect; rcti fallback_rect; @@ -228,7 +228,7 @@ void EEVEE_lookdev_draw(EEVEE_Data *vedata) const DRWContextState *draw_ctx = DRW_context_state_get(); - if (psl->lookdev_diffuse_pass && LOOK_DEV_OVERLAY_ENABLED(draw_ctx->v3d)) { + if (psl->lookdev_diffuse_pass && eevee_hdri_preview_overlay_enabled(draw_ctx->v3d)) { /* Config renderer. */ EEVEE_CommonUniformBuffer *common = &sldata->common_data; common->la_num_light = 0; diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c index 19d674bfc9c..230a0725493 100644 --- a/source/blender/draw/engines/eevee/eevee_materials.c +++ b/source/blender/draw/engines/eevee/eevee_materials.c @@ -1266,7 +1266,7 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL); } - if (LOOK_DEV_OVERLAY_ENABLED(draw_ctx->v3d)) { + if (eevee_hdri_preview_overlay_enabled(draw_ctx->v3d)) { DRWShadingGroup *shgrp; struct GPUBatch *sphere = DRW_cache_sphere_get(); diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h index 4f5ab5f2e1f..0f084ba306b 100644 --- a/source/blender/draw/engines/eevee/eevee_private.h +++ b/source/blender/draw/engines/eevee/eevee_private.h @@ -125,9 +125,21 @@ extern struct DrawEngineType draw_engine_eevee_type; } \ ((void)0) -#define LOOK_DEV_OVERLAY_ENABLED(v3d) \ - ((v3d) && (v3d->shading.type == OB_MATERIAL) && ((v3d->flag2 & V3D_HIDE_OVERLAYS) == 0) && \ - (v3d->overlay.flag & V3D_OVERLAY_LOOK_DEV)) +BLI_INLINE bool eevee_hdri_preview_overlay_enabled(View3D *v3d) +{ + /* Only show the HDRI Preview in Shading Preview in the Viewport. */ + if (v3d == NULL || v3d->shading.type != OB_MATERIAL) { + return false; + } + + /* Only show the HDRI Preview when viewing the Combined render pass */ + if (v3d->shading.render_pass != SCE_PASS_COMBINED) { + return false; + } + + return ((v3d->flag2 & V3D_HIDE_OVERLAYS) == 0) && (v3d->overlay.flag & V3D_OVERLAY_LOOK_DEV); +} + #define USE_SCENE_LIGHT(v3d) \ ((!v3d) || \ ((v3d->shading.type == OB_MATERIAL) && (v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS)) || \ |