diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-09-28 12:52:22 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2022-10-03 15:59:16 +0300 |
commit | ef223fe721cbf395125a2fbb24af5b0fc03ab469 (patch) | |
tree | b223f4f3b4ba5e0f8cf57325df35ebbf781565aa /source/blender/editors/space_text | |
parent | 6b77d214670f99c3627d8410c3ae95bb020bba2c (diff) |
Cleanup: decentralize .blend I/O for space types
This adds callbacks to `SpaceType` to make each editor responsible to
manage their own .blend I/O, and moves relevant code from `screen.c`
to the editors files.
Differential Revision: D11069
Diffstat (limited to 'source/blender/editors/space_text')
-rw-r--r-- | source/blender/editors/space_text/CMakeLists.txt | 7 | ||||
-rw-r--r-- | source/blender/editors/space_text/space_text.c | 22 |
2 files changed, 29 insertions, 0 deletions
diff --git a/source/blender/editors/space_text/CMakeLists.txt b/source/blender/editors/space_text/CMakeLists.txt index 38787a84fce..dfd6111e067 100644 --- a/source/blender/editors/space_text/CMakeLists.txt +++ b/source/blender/editors/space_text/CMakeLists.txt @@ -5,12 +5,16 @@ set(INC ../../blenfont ../../blenkernel ../../blenlib + ../../blenloader ../../blentranslation ../../gpu ../../makesdna ../../makesrna ../../windowmanager ../../../../intern/guardedalloc + + # dna_type_offsets.h + ${CMAKE_CURRENT_BINARY_DIR}/../../makesdna/intern ) @@ -47,3 +51,6 @@ endif() blender_add_lib(bf_editor_space_text "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") + +# dna_type_offsets.h +add_dependencies(bf_editor_space_text bf_dna) diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index be9bbdf109e..5b9b3651459 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -29,6 +29,8 @@ #include "UI_resources.h" #include "UI_view2d.h" +#include "BLO_read_write.h" + #include "RNA_access.h" #include "RNA_path.h" @@ -395,6 +397,23 @@ static void text_id_remap(ScrArea *UNUSED(area), BKE_id_remapper_apply(mappings, (ID **)&stext->text, ID_REMAP_APPLY_ENSURE_REAL); } +static void text_blend_read_data(BlendDataReader *UNUSED(reader), SpaceLink *sl) +{ + SpaceText *st = (SpaceText *)sl; + memset(&st->runtime, 0x0, sizeof(st->runtime)); +} + +static void text_blend_read_lib(BlendLibReader *reader, ID *parent_id, SpaceLink *sl) +{ + SpaceText *st = (SpaceText *)sl; + BLO_read_id_address(reader, parent_id->lib, &st->text); +} + +static void text_blend_write(BlendWriter *writer, SpaceLink *sl) +{ + BLO_write_struct(writer, SpaceText, sl); +} + /********************* registration ********************/ void ED_spacetype_text(void) @@ -415,6 +434,9 @@ void ED_spacetype_text(void) st->context = text_context; st->dropboxes = text_dropboxes; st->id_remap = text_id_remap; + st->blend_read_data = text_blend_read_data; + st->blend_read_lib = text_blend_read_lib; + st->blend_write = text_blend_write; /* regions: main window */ art = MEM_callocN(sizeof(ARegionType), "spacetype text region"); |