diff options
Diffstat (limited to 'source/blender/draw/engines')
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_grid.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_grid.c b/source/blender/draw/engines/overlay/overlay_grid.c index 20403f156a1..ed6db459696 100644 --- a/source/blender/draw/engines/overlay/overlay_grid.c +++ b/source/blender/draw/engines/overlay/overlay_grid.c @@ -49,20 +49,29 @@ void OVERLAY_grid_init(OVERLAY_Data *vedata) if (pd->space_type == SPACE_IMAGE) { SpaceImage *sima = (SpaceImage *)draw_ctx->space_data; View2D *v2d = &draw_ctx->region->v2d; - if (sima->mode == SI_MODE_UV || !ED_space_image_has_buffer(sima)) { - shd->grid_flag = GRID_BACK | PLANE_IMAGE | SHOW_GRID; - } - else { - shd->grid_flag = 0; + + /* Only UV Edit mode has the various Overlay options for now. */ + const bool is_uv_edit = sima->mode == SI_MODE_UV; + + const bool background_enabled = is_uv_edit ? (!pd->hide_overlays && + (sima->overlay.flag & + SI_OVERLAY_SHOW_GRID_BACKGROUND) != 0) : + true; + if (background_enabled) { + shd->grid_flag = GRID_BACK | PLANE_IMAGE; } - if (sima->flag & SI_CUSTOM_GRID) { - shd->grid_flag |= CUSTOM_GRID; + const bool draw_grid = is_uv_edit || !ED_space_image_has_buffer(sima); + if (background_enabled && draw_grid) { + shd->grid_flag |= SHOW_GRID; + if (is_uv_edit && (sima->flag & SI_CUSTOM_GRID) != 0) { + shd->grid_flag |= CUSTOM_GRID; + } } shd->grid_distance = 1.0f; copy_v3_fl3(shd->grid_size, 1.0f, 1.0f, 1.0f); - if (sima->mode == SI_MODE_UV) { + if (is_uv_edit) { shd->grid_size[0] = (float)sima->tile_grid_shape[0]; shd->grid_size[1] = (float)sima->tile_grid_shape[1]; } |