diff options
-rw-r--r-- | release/scripts/startup/bl_ui/space_image.py | 72 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_blender_version.h | 2 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_300.c | 38 | ||||
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_grid.c | 25 | ||||
-rw-r--r-- | source/blender/editors/space_image/space_image.c | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_space_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 7 |
7 files changed, 82 insertions, 65 deletions
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py index 785a841a0e6..1dd50c979e2 100644 --- a/release/scripts/startup/bl_ui/space_image.py +++ b/release/scripts/startup/bl_ui/space_image.py @@ -1453,66 +1453,57 @@ class IMAGE_PT_uv_cursor(Panel): col.prop(sima, "cursor_location", text="Location") -class IMAGE_PT_udim_grid(Panel): +class IMAGE_PT_overlay(Panel): bl_space_type = 'IMAGE_EDITOR' - bl_region_type = 'UI' - bl_category = "View" - bl_label = "UDIM Grid" - - @classmethod - def poll(cls, context): - sima = context.space_data - - return sima.show_uvedit + bl_region_type = 'HEADER' + bl_label = "Overlays" + bl_ui_units_x = 13 def draw(self, context): - layout = self.layout - - sima = context.space_data - uvedit = sima.uv_editor - - layout.use_property_split = True - layout.use_property_decorate = False + pass - col = layout.column() - col.prop(uvedit, "tile_grid_shape", text="Grid Shape") -class IMAGE_PT_custom_grid(Panel): +class IMAGE_PT_overlay_guides(Panel): bl_space_type = 'IMAGE_EDITOR' - bl_region_type = 'UI' - bl_category = "View" - bl_label = "Custom Grid" + bl_region_type = 'HEADER' + bl_label = "Guides" + bl_parent_id = 'IMAGE_PT_overlay' @classmethod def poll(cls, context): sima = context.space_data - return sima.show_uvedit - def draw_header(self, context): - sima = context.space_data - uvedit = sima.uv_editor - self.layout.prop(uvedit, "use_custom_grid", text="") + return sima.show_uvedit def draw(self, context): layout = self.layout sima = context.space_data + overlay = sima.overlay uvedit = sima.uv_editor - layout.use_property_split = True - layout.use_property_decorate = False + layout.active = overlay.show_overlays - col = layout.column() - col.prop(uvedit, "custom_grid_subdivisions", text="Subdivisions") + row = layout.row() + row_el = row.column() + row_el.prop(overlay, "show_grid_background", text="Grid") -class IMAGE_PT_overlay(Panel): - bl_space_type = 'IMAGE_EDITOR' - bl_region_type = 'HEADER' - bl_label = "Overlays" - bl_ui_units_x = 13 + if overlay.show_grid_background: + layout.use_property_split = True + col = layout.column(align=False, heading="Fixed Subdivisions") + col.use_property_decorate = False - def draw(self, context): - pass + row = col.row(align=True) + sub = row.row(align=True) + sub.prop(uvedit, "use_custom_grid", text="") + sub = sub.row(align=True) + sub.active = uvedit.use_custom_grid + sub.prop(uvedit, "custom_grid_subdivisions", text="") + + row = layout.row() + row.use_property_split = True + row.use_property_decorate = False + row.prop(uvedit, "tile_grid_shape", text="Tiles") class IMAGE_PT_overlay_uv_edit(Panel): @@ -1689,9 +1680,8 @@ classes = ( IMAGE_PT_scope_sample, IMAGE_PT_uv_cursor, IMAGE_PT_annotation, - IMAGE_PT_udim_grid, - IMAGE_PT_custom_grid, IMAGE_PT_overlay, + IMAGE_PT_overlay_guides, IMAGE_PT_overlay_uv_edit, IMAGE_PT_overlay_uv_edit_geometry, IMAGE_PT_overlay_texture_paint, diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 34f3b9afacd..8a2693f3f6b 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -25,7 +25,7 @@ extern "C" { /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 11 +#define BLENDER_FILE_SUBVERSION 12 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and show a warning if the file diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c index dd3412d6c83..95851c0e9ff 100644 --- a/source/blender/blenloader/intern/versioning_300.c +++ b/source/blender/blenloader/intern/versioning_300.c @@ -2567,9 +2567,7 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain) } } } - } - if (!MAIN_VERSION_ATLEAST(bmain, 302, 10)) { /* While vertex-colors were experimental the smear tool became corrupt due * to bugs in the wm_toolsystem API (auto-creation of sculpt brushes * was broken). Go through and reset all smear brushes. */ @@ -2637,17 +2635,18 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain) } } - /** - * Versioning code until next subversion bump goes here. - * - * \note Be sure to check when bumping the version: - * - "versioning_userdef.c", #blo_do_versions_userdef - * - "versioning_userdef.c", #do_versions_theme - * - * \note Keep this message at the bottom of the function. - */ - { - /* Keep this block, even when empty. */ + if (!MAIN_VERSION_ATLEAST(bmain, 302, 12)) { + /* UV/Image show background grid option. */ + LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) { + LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { + LISTBASE_FOREACH (SpaceLink *, space, &area->spacedata) { + if (space->spacetype == SPACE_IMAGE) { + SpaceImage *sima = (SpaceImage *)space; + sima->overlay.flag |= SI_OVERLAY_SHOW_GRID_BACKGROUND; + } + } + } + } /* Add node storage for the merge by distance node. */ FOREACH_NODETREE_BEGIN (bmain, ntree, id) { @@ -2666,4 +2665,17 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain) } FOREACH_NODETREE_END; } + + /** + * Versioning code until next subversion bump goes here. + * + * \note Be sure to check when bumping the version: + * - "versioning_userdef.c", #blo_do_versions_userdef + * - "versioning_userdef.c", #do_versions_theme + * + * \note Keep this message at the bottom of the function. + */ + { + /* Keep this block, even when empty. */ + } } 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]; } diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 03ec018fbe8..bc047a00ae1 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -100,7 +100,7 @@ static SpaceLink *image_create(const ScrArea *UNUSED(area), const Scene *UNUSED( simage->lock = true; simage->flag = SI_SHOW_GPENCIL | SI_USE_ALPHA | SI_COORDFLOATS; simage->uv_opacity = 1.0f; - simage->overlay.flag = SI_OVERLAY_SHOW_OVERLAYS; + simage->overlay.flag = SI_OVERLAY_SHOW_OVERLAYS | SI_OVERLAY_SHOW_GRID_BACKGROUND; BKE_imageuser_default(&simage->iuser); simage->iuser.flag = IMA_SHOW_STEREO | IMA_ANIM_ALWAYS | IMA_SHOW_MAX_RESOLUTION; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 806c989100d..bcf54ee47a0 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -1318,6 +1318,7 @@ typedef enum eSpaceImage_Flag { typedef enum eSpaceImageOverlay_Flag { SI_OVERLAY_SHOW_OVERLAYS = (1 << 0), + SI_OVERLAY_SHOW_GRID_BACKGROUND = (1 << 1), } eSpaceImageOverlay_Flag; /** Keep in sync with `STEPS_LEN` in `grid_frag.glsl`. */ diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index a74019f9569..d2b8eb203aa 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -3497,7 +3497,7 @@ static void rna_def_space_image_uv(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Display Faces", "Display faces over the image"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL); - prop = RNA_def_property(srna, "tile_grid_shape", PROP_INT, PROP_NONE); + prop = RNA_def_property(srna, "tile_grid_shape", PROP_INT, PROP_XYZ); RNA_def_property_int_sdna(prop, NULL, "tile_grid_shape"); RNA_def_property_array(prop, 2); RNA_def_property_int_default(prop, 1); @@ -5264,6 +5264,11 @@ static void rna_def_space_image_overlay(BlenderRNA *brna) prop = RNA_def_property(srna, "show_overlays", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "overlay.flag", SI_OVERLAY_SHOW_OVERLAYS); RNA_def_property_ui_text(prop, "Show Overlays", "Display overlays like UV Maps and Metadata"); + + prop = RNA_def_property(srna, "show_grid_background", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "overlay.flag", SI_OVERLAY_SHOW_GRID_BACKGROUND); + RNA_def_property_ui_text(prop, "Display Background", "Show the grid background and borders"); + RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL); } static void rna_def_space_image(BlenderRNA *brna) |