diff --git a/scripts/presets/keyconfig/keymap_data/blender_default.py b/scripts/presets/keyconfig/keymap_data/blender_default.py index cb9e08f9dd5..378c210854a 100644 --- a/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -3543,6 +3543,8 @@ def km_clip_editor(params): ("clip.cursor_set", params.cursor_set_event, None), ("clip.copy_tracks", {"type": 'C', "value": 'PRESS', "ctrl": True}, None), ("clip.paste_tracks", {"type": 'V', "value": 'PRESS', "ctrl": True}, None), + ("wm.context_toggle", {"type": 'Z', "value": 'PRESS', "alt": True, "shift": True}, + {"properties": [("data_path", "space_data.overlay.show_overlays")]}), *_template_items_context_menu("CLIP_MT_tracking_context_menu", params.context_menu_event), ]) diff --git a/scripts/startup/bl_ui/space_clip.py b/scripts/startup/bl_ui/space_clip.py index 0b2d820a492..f44a4df0ec0 100644 --- a/scripts/startup/bl_ui/space_clip.py +++ b/scripts/startup/bl_ui/space_clip.py @@ -36,38 +36,6 @@ class CLIP_PT_display(Panel): pass -class CLIP_PT_marker_display(Panel): - bl_space_type = 'CLIP_EDITOR' - bl_region_type = 'HEADER' - bl_label = "Marker Display" - bl_parent_id = "CLIP_PT_display" - bl_ui_units_x = 13 - - def draw(self, context): - layout = self.layout - - view = context.space_data - - row = layout.row() - - col = row.column() - col.prop(view, "show_marker_pattern", text="Pattern") - col.prop(view, "show_marker_search", text="Search") - - col.prop(view, "show_track_path", text="Path") - col = col.column() - col.active = view.show_track_path - col.prop(view, "path_length", text="Length") - - col = row.column() - col.prop(view, "show_disabled", text="Show Disabled") - col.prop(view, "show_names", text="Info") - - if view.mode != 'MASK': - col.prop(view, "show_bundles", text="3D Markers") - col.prop(view, "show_tiny_markers", text="Display Thin") - - class CLIP_PT_clip_display(Panel): bl_space_type = 'CLIP_EDITOR' bl_region_type = 'HEADER' @@ -98,7 +66,6 @@ class CLIP_PT_clip_display(Panel): col.prop(sc.clip_user, "use_render_undistorted", text="Render Undistorted") col = row.column() col.prop(sc, "show_stable", text="Show Stable") - col.prop(sc, "show_grid", text="Grid") col.prop(sc, "use_manual_calibration", text="Calibration") clip = sc.clip @@ -236,7 +203,6 @@ class CLIP_HT_header(Header): row = layout.row() row.template_ID(sc, "mask", new="mask.new") - row.popover(panel="CLIP_PT_mask_display") row = layout.row(align=True) icon = 'LOCKED' if sc.lock_selection else 'UNLOCKED' row.operator("clip.lock_selection_toggle", icon=icon, text="", depress=sc.lock_selection) @@ -246,6 +212,7 @@ class CLIP_HT_header(Header): layout = self.layout sc = context.space_data + overlay = sc.overlay layout.template_header() @@ -263,6 +230,14 @@ class CLIP_HT_header(Header): sub.active = sc.show_gizmo sub.popover(panel="CLIP_PT_gizmo_display", text="") + # Overlay toggle & popover. + if sc.view == 'CLIP': + row = layout.row(align=True) + row.prop(overlay, "show_overlays", icon='OVERLAY', text="") + sub = row.row(align=True) + sub.active = overlay.show_overlays + sub.popover(panel="CLIP_PT_overlay", text="") + class CLIP_PT_proportional_edit(Panel): bl_space_type = 'CLIP_EDITOR' @@ -1236,10 +1211,6 @@ class CLIP_PT_tools_mask_tools(MASK_PT_tools, Panel): bl_category = "Mask" -class CLIP_PT_mask_display(MASK_PT_display, Panel): - bl_space_type = 'CLIP_EDITOR' - bl_region_type = 'HEADER' - # --- end mask --- @@ -1960,6 +1931,77 @@ class CLIP_MT_view_pie(Menu): pie.operator("clip.graph_center_current_frame") +class CLIP_PT_overlay_display(Panel): + bl_space_type = 'CLIP_EDITOR' + bl_region_type = 'HEADER' + bl_label = "Marker Display" + bl_parent_id = "CLIP_PT_overlay" + + def draw(self, context): + layout = self.layout + + view = context.space_data + + row = layout.row() + + col = row.column() + col.prop(view, "show_marker_pattern", text="Pattern") + col.prop(view, "show_marker_search", text="Search") + + col.prop(view, "show_track_path", text="Path") + col = col.column() + col.active = view.show_track_path + col.prop(view, "path_length", text="Length") + + col = row.column() + col.prop(view, "show_disabled", text="Show Disabled") + col.prop(view, "show_names", text="Info") + + if view.mode != 'MASK': + col.prop(view, "show_bundles", text="3D Markers") + col.prop(view, "show_tiny_markers", text="Display Thin") + + +class CLIP_PT_overlay_mask(MASK_PT_display, Panel): + bl_space_type = 'CLIP_EDITOR' + bl_region_type = 'HEADER' + bl_parent_id = "CLIP_PT_overlay" + + @classmethod + def poll(cls, context): + sc = context.space_data + + return sc.mode == 'MASK' + + +class CLIP_PT_overlay_guides(Panel): + bl_space_type = 'CLIP_EDITOR' + bl_region_type = 'HEADER' + bl_parent_id = "CLIP_PT_overlay" + bl_label = "Guides" + + def draw(self, context): + layout = self.layout + sc = context.space_data + overlay = sc.overlay + + col = layout.column() + col.prop(sc, "show_grid", text="Distortion Grid") + col.prop(overlay, "show_cursor", text="Cursor") + col.prop(sc, "show_annotation", text="Annotations") + + +class CLIP_PT_overlay(Panel): + bl_space_type = 'CLIP_EDITOR' + bl_region_type = 'HEADER' + bl_label = "Overlays" + bl_ui_units_x = 13 + + def draw(self, _context): + layout = self.layout + layout.label(text="Viewport Overlays") + + class CLIP_PT_gizmo_display(Panel): bl_space_type = 'CLIP_EDITOR' bl_region_type = 'HEADER' @@ -1986,7 +2028,6 @@ classes = ( CLIP_HT_header, CLIP_PT_display, CLIP_PT_clip_display, - CLIP_PT_marker_display, CLIP_MT_tracking_editor_menus, CLIP_MT_masking_editor_menus, CLIP_PT_track, @@ -2015,7 +2056,6 @@ classes = ( CLIP_PT_2d_cursor, CLIP_PT_mask, CLIP_PT_mask_layers, - CLIP_PT_mask_display, CLIP_PT_active_mask_spline, CLIP_PT_active_mask_point, CLIP_PT_mask_animation, @@ -2053,6 +2093,10 @@ classes = ( CLIP_MT_reconstruction_pie, CLIP_MT_solving_pie, CLIP_MT_view_pie, + CLIP_PT_overlay, + CLIP_PT_overlay_guides, + CLIP_PT_overlay_mask, + CLIP_PT_overlay_display, CLIP_PT_gizmo_display, ) diff --git a/scripts/startup/bl_ui/space_image.py b/scripts/startup/bl_ui/space_image.py index 102d408bc1a..64edc751220 100644 --- a/scripts/startup/bl_ui/space_image.py +++ b/scripts/startup/bl_ui/space_image.py @@ -942,9 +942,6 @@ class IMAGE_HT_header(Header): if ima.is_stereo_3d: row = layout.row() row.prop(sima, "show_stereo_3d", text="") - if show_maskedit: - row = layout.row() - row.popover(panel="IMAGE_PT_mask_display") # layers. layout.template_image_layers(ima, iuser) @@ -1043,11 +1040,6 @@ class IMAGE_PT_mask_animation(MASK_PT_animation, Panel): bl_category = "Mask" -class IMAGE_PT_mask_display(MASK_PT_display, Panel): - bl_space_type = 'IMAGE_EDITOR' - bl_region_type = 'HEADER' - - # --- end mask --- class IMAGE_PT_snapping(Panel): @@ -1787,6 +1779,18 @@ class IMAGE_PT_overlay_render_guides(Panel): subrow.prop(overlay, "passepartout_alpha", text="Passepartout") +class IMAGE_PT_overlay_mask(MASK_PT_display, Panel): + bl_space_type = 'IMAGE_EDITOR' + bl_region_type = 'HEADER' + bl_parent_id = "IMAGE_PT_overlay" + + @classmethod + def poll(cls, context): + si = context.space_data + + return si.ui_mode == 'MASK' + + # Grease Pencil properties class IMAGE_PT_annotation(AnnotationDataPanel, Panel): bl_space_type = 'IMAGE_EDITOR' @@ -1840,7 +1844,6 @@ classes = ( IMAGE_PT_active_tool, IMAGE_PT_mask, IMAGE_PT_mask_layers, - IMAGE_PT_mask_display, IMAGE_PT_active_mask_spline, IMAGE_PT_active_mask_point, IMAGE_PT_mask_animation, @@ -1882,6 +1885,7 @@ classes = ( IMAGE_PT_overlay_uv_display, IMAGE_PT_overlay_image, IMAGE_PT_overlay_render_guides, + IMAGE_PT_overlay_mask, IMAGE_AST_brush_paint, ) diff --git a/source/blender/blenloader/intern/versioning_500.cc b/source/blender/blenloader/intern/versioning_500.cc index a3ac12872c0..08eb2ba0a11 100644 --- a/source/blender/blenloader/intern/versioning_500.cc +++ b/source/blender/blenloader/intern/versioning_500.cc @@ -12,9 +12,13 @@ #include "MEM_guardedalloc.h" +/* Define macros in `DNA_genfile.h`. */ +#define DNA_GENFILE_VERSIONING_MACROS + #include "DNA_ID.h" #include "DNA_brush_types.h" #include "DNA_curves_types.h" +#include "DNA_genfile.h" #include "DNA_grease_pencil_types.h" #include "DNA_material_types.h" #include "DNA_mesh_types.h" @@ -3604,6 +3608,23 @@ void blo_do_versions_500(FileData *fd, Library * /*lib*/, Main *bmain) FOREACH_NODETREE_END; } + if (!MAIN_VERSION_FILE_ATLEAST(bmain, 500, 89)) { + /* Node Editor: toggle overlays on. */ + if (!DNA_struct_exists(fd->filesdna, "SpaceClipOverlay")) { + LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) { + LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { + LISTBASE_FOREACH (SpaceLink *, space, &area->spacedata) { + if (space->spacetype == SPACE_CLIP) { + SpaceClip *sclip = (SpaceClip *)space; + sclip->overlay.flag |= SC_SHOW_OVERLAYS; + sclip->overlay.flag |= SC_SHOW_CURSOR; + } + } + } + } + } + } + /** * Always bump subversion in BKE_blender_version.h when adding versioning * code here, and wrap it inside a MAIN_VERSION_FILE_ATLEAST check. diff --git a/source/blender/editors/include/ED_mask.hh b/source/blender/editors/include/ED_mask.hh index 5763fc388be..0cf4cfb2992 100644 --- a/source/blender/editors/include/ED_mask.hh +++ b/source/blender/editors/include/ED_mask.hh @@ -102,6 +102,7 @@ void ED_mask_center_from_pivot_ex( void ED_mask_draw_region(Depsgraph *depsgraph, Mask *mask, ARegion *region, + bool show_overlays, char draw_flag, char draw_type, eMaskOverlayMode overlay_mode, diff --git a/source/blender/editors/mask/mask_draw.cc b/source/blender/editors/mask/mask_draw.cc index e55f58cc3f0..026296a808f 100644 --- a/source/blender/editors/mask/mask_draw.cc +++ b/source/blender/editors/mask/mask_draw.cc @@ -642,6 +642,7 @@ void ED_mask_draw_region( Depsgraph *depsgraph, Mask *mask_, ARegion *region, + const bool show_overlays, const char draw_flag, const char draw_type, const eMaskOverlayMode overlay_mode, @@ -703,7 +704,7 @@ void ED_mask_draw_region( yofs = ((width - height) / -2.0f) * zoomy; } - if (draw_flag & MASK_DRAWFLAG_OVERLAY) { + if (show_overlays && draw_flag & MASK_DRAWFLAG_OVERLAY) { float buf_col[4] = {1.0f, 0.0f, 0.0f, 0.0f}; const float *buffer = mask_rasterize(mask_eval, width, height); @@ -776,7 +777,7 @@ void ED_mask_draw_region( } /* draw! */ - if (draw_flag & MASK_DRAWFLAG_SPLINE) { + if (show_overlays && draw_flag & MASK_DRAWFLAG_SPLINE) { draw_mask_layers(C, mask_eval, draw_type, width, height); } diff --git a/source/blender/editors/space_clip/clip_draw.cc b/source/blender/editors/space_clip/clip_draw.cc index 399522429ce..63e0ab32e93 100644 --- a/source/blender/editors/space_clip/clip_draw.cc +++ b/source/blender/editors/space_clip/clip_draw.cc @@ -1733,7 +1733,7 @@ static void draw_distortion(SpaceClip *sc, immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR); /* grid */ - if (sc->flag & SC_SHOW_GRID) { + if (sc->overlay.flag & SC_SHOW_OVERLAYS && sc->flag & SC_SHOW_GRID) { float val[4][2], idx[4][2]; float min[2], max[2]; @@ -1966,7 +1966,8 @@ void clip_draw_main(const bContext *C, SpaceClip *sc, ARegion *region) if (width && height) { draw_stabilization_border(sc, region, width, height, zoomx, zoomy); - draw_tracking_tracks(sc, scene, region, clip, width, height, zoomx, zoomy); + if (sc->overlay.flag & SC_SHOW_OVERLAYS) + draw_tracking_tracks(sc, scene, region, clip, width, height, zoomx, zoomy); draw_distortion(sc, region, clip, width, height, zoomx, zoomy); } } diff --git a/source/blender/editors/space_clip/clip_editor.cc b/source/blender/editors/space_clip/clip_editor.cc index d2f2e27b350..09b8425ce8e 100644 --- a/source/blender/editors/space_clip/clip_editor.cc +++ b/source/blender/editors/space_clip/clip_editor.cc @@ -105,7 +105,8 @@ bool ED_space_clip_maskedit_visible_splines_poll(bContext *C) } const SpaceClip *space_clip = CTX_wm_space_clip(C); - return space_clip->mask_info.draw_flag & MASK_DRAWFLAG_SPLINE; + return space_clip->overlay.flag & SC_SHOW_OVERLAYS && + space_clip->mask_info.draw_flag & MASK_DRAWFLAG_SPLINE; } bool ED_space_clip_maskedit_mask_poll(bContext *C) @@ -130,7 +131,8 @@ bool ED_space_clip_maskedit_mask_visible_splines_poll(bContext *C) } const SpaceClip *space_clip = CTX_wm_space_clip(C); - return space_clip->mask_info.draw_flag & MASK_DRAWFLAG_SPLINE; + return space_clip->overlay.flag & SC_SHOW_OVERLAYS && + space_clip->mask_info.draw_flag & MASK_DRAWFLAG_SPLINE; } /** \} */ diff --git a/source/blender/editors/space_clip/space_clip.cc b/source/blender/editors/space_clip/space_clip.cc index 7014871c2e1..9d200e25269 100644 --- a/source/blender/editors/space_clip/space_clip.cc +++ b/source/blender/editors/space_clip/space_clip.cc @@ -734,6 +734,7 @@ static void clip_main_region_draw(const bContext *C, ARegion *region) ED_mask_draw_region(CTX_data_expect_evaluated_depsgraph(C), mask, region, + sc->overlay.flag & SC_SHOW_OVERLAYS, sc->mask_info.draw_flag, sc->mask_info.draw_type, eMaskOverlayMode(sc->mask_info.overlay_mode), @@ -752,7 +753,7 @@ static void clip_main_region_draw(const bContext *C, ARegion *region) show_cursor |= sc->mode == SC_MODE_MASKEDIT; show_cursor |= sc->around == V3D_AROUND_CURSOR; - if (show_cursor) { + if (sc->overlay.flag & SC_SHOW_OVERLAYS && sc->overlay.flag & SC_SHOW_CURSOR && show_cursor) { GPU_matrix_push(); GPU_matrix_translate_2f(x, y); GPU_matrix_scale_2f(zoomx, zoomy); @@ -764,7 +765,7 @@ static void clip_main_region_draw(const bContext *C, ARegion *region) clip_draw_cache_and_notes(C, sc, region); - if (sc->flag & SC_SHOW_ANNOTATION) { + if (sc->overlay.flag & SC_SHOW_OVERLAYS && sc->flag & SC_SHOW_ANNOTATION) { /* Grease Pencil */ clip_draw_grease_pencil((bContext *)C, true); } @@ -782,7 +783,7 @@ static void clip_main_region_draw(const bContext *C, ARegion *region) /* reset view matrix */ UI_view2d_view_restore(C); - if (sc->flag & SC_SHOW_ANNOTATION) { + if (sc->overlay.flag & SC_SHOW_OVERLAYS && sc->flag & SC_SHOW_ANNOTATION) { /* draw Grease Pencil - screen space only */ clip_draw_grease_pencil((bContext *)C, false); } diff --git a/source/blender/editors/space_image/space_image.cc b/source/blender/editors/space_image/space_image.cc index 9d2d13f93c2..d2a9e18f2ff 100644 --- a/source/blender/editors/space_image/space_image.cc +++ b/source/blender/editors/space_image/space_image.cc @@ -761,6 +761,7 @@ static void image_main_region_draw(const bContext *C, ARegion *region) ED_mask_draw_region(depsgraph, mask, region, /* Mask overlay is drawn by image/overlay engine. */ + sima->overlay.flag & SI_OVERLAY_SHOW_OVERLAYS, sima->mask_info.draw_flag & ~MASK_DRAWFLAG_OVERLAY, sima->mask_info.draw_type, eMaskOverlayMode(sima->mask_info.overlay_mode), diff --git a/source/blender/editors/space_sequencer/sequencer_preview_draw.cc b/source/blender/editors/space_sequencer/sequencer_preview_draw.cc index ac75ea4b292..e5cd8b6658d 100644 --- a/source/blender/editors/space_sequencer/sequencer_preview_draw.cc +++ b/source/blender/editors/space_sequencer/sequencer_preview_draw.cc @@ -270,6 +270,7 @@ void sequencer_draw_maskedit(const bContext *C, Scene *scene, ARegion *region, S ED_mask_draw_region(mask, region, + true, 0, 0, 0, /* TODO */ diff --git a/source/blender/makesdna/DNA_space_enums.h b/source/blender/makesdna/DNA_space_enums.h index ae03fd2fda1..9c7d2d4044e 100644 --- a/source/blender/makesdna/DNA_space_enums.h +++ b/source/blender/makesdna/DNA_space_enums.h @@ -906,6 +906,12 @@ typedef enum eConsoleLine_Type { /** \name Motion Tracking * \{ */ +/** #SpaceClipOverlay.flag */ +typedef enum eSpaceClipOverlay_Flag { + SC_SHOW_OVERLAYS = (1 << 0), + SC_SHOW_CURSOR = (1 << 1), +} eSpaceClipOverlay_Flag; + /** #SpaceClip.flag */ typedef enum eSpaceClip_Flag { SC_SHOW_MARKER_PATTERN = (1 << 0), diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 0132743b66d..aa212e09801 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -975,6 +975,12 @@ typedef struct SpaceUserPref { /** \name Motion Tracking * \{ */ +typedef struct SpaceClipOverlay { + /* eSpaceClipOverlay_Flag */ + int flag; + char _pad0[4]; +} SpaceClipOverlay; + /** Clip Editor. */ typedef struct SpaceClip { SpaceLink *next, *prev; @@ -1037,6 +1043,7 @@ typedef struct SpaceClip { float cursor[2]; MaskSpaceInfo mask_info; + struct SpaceClipOverlay overlay; } SpaceClip; /** \} */ diff --git a/source/blender/makesrna/intern/rna_space.cc b/source/blender/makesrna/intern/rna_space.cc index 03222eca8bd..ec737a08080 100644 --- a/source/blender/makesrna/intern/rna_space.cc +++ b/source/blender/makesrna/intern/rna_space.cc @@ -2819,6 +2819,17 @@ static void rna_SpaceClipEditor_zoom_percentage_set(PointerRNA *ptr, const float sc->zoom = value / 100.0f; } +static PointerRNA rna_SpaceClip_overlay_get(PointerRNA *ptr) +{ + return RNA_pointer_create_with_parent(*ptr, &RNA_SpaceClipOverlay, ptr->data); +} + +static std::optional rna_SpaceClipOverlay_path(const PointerRNA *ptr) +{ + std::optional editor_path = BKE_screen_path_from_screen_to_space(ptr); + return fmt::format("{}{}{}", editor_path.value_or(""), editor_path ? "." : "", "overlay"); +} + /* File browser. */ static std::optional rna_FileSelectParams_path(const PointerRNA * /*ptr*/) @@ -8088,6 +8099,31 @@ static void rna_def_space_node(BlenderRNA *brna) RNA_api_space_node(srna); } +static void rna_def_space_clip_overlay(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SpaceClipOverlay", nullptr); + RNA_def_struct_sdna(srna, "SpaceClip"); + RNA_def_struct_nested(brna, srna, "SpaceClipEditor"); + RNA_def_struct_path_func(srna, "rna_SpaceClipOverlay_path"); + RNA_def_struct_ui_text( + srna, "Overlay Settings", "Settings for display of overlays in the Movie Clip editor"); + + prop = RNA_def_property(srna, "show_overlays", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, nullptr, "overlay.flag", SC_SHOW_OVERLAYS); + RNA_def_property_boolean_default(prop, true); + RNA_def_property_ui_text(prop, "Show Overlays", "Display overlays like cursor and annotations"); + RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, nullptr); + + prop = RNA_def_property(srna, "show_cursor", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, nullptr, "overlay.flag", SC_SHOW_CURSOR); + RNA_def_property_boolean_default(prop, true); + RNA_def_property_ui_text(prop, "Show Overlays", "Display 2D cursor"); + RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, nullptr); +} + static void rna_def_space_clip(BlenderRNA *brna) { StructRNA *srna; @@ -8408,6 +8444,16 @@ static void rna_def_space_clip(BlenderRNA *brna) RNA_def_property_range(prop, .4f, 80000); RNA_def_property_ui_range(prop, 25, 400, 100, 0); RNA_def_property_ui_text(prop, "Zoom", "Zoom percentage"); + + /* Overlays */ + prop = RNA_def_property(srna, "overlay", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_struct_type(prop, "SpaceClipOverlay"); + RNA_def_property_pointer_funcs(prop, "rna_SpaceClip_overlay_get", nullptr, nullptr, nullptr); + RNA_def_property_ui_text( + prop, "Overlay Settings", "Settings for display of overlays in the Movie Clip editor"); + + rna_def_space_clip_overlay(brna); } static void rna_def_spreadsheet_column_id(BlenderRNA *brna) diff --git a/source/blender/windowmanager/intern/wm_operators.cc b/source/blender/windowmanager/intern/wm_operators.cc index 5ac70dd3d03..6c511bae816 100644 --- a/source/blender/windowmanager/intern/wm_operators.cc +++ b/source/blender/windowmanager/intern/wm_operators.cc @@ -613,6 +613,11 @@ static const char *wm_context_member_from_ptr(const bContext *C, TEST_PTR_DATA_TYPE("space_data.overlay", RNA_SpaceNodeOverlay, ptr, snode); break; } + case SPACE_CLIP: { + const SpaceClip *sclip = (SpaceClip *)space_data; + TEST_PTR_DATA_TYPE("space_data.overlay", RNA_SpaceClipOverlay, ptr, sclip); + break; + } case SPACE_SEQ: { const SpaceSeq *sseq = (SpaceSeq *)space_data; TEST_PTR_DATA_TYPE(