diff options
author | Jacques Lucke <jacques@blender.org> | 2020-11-06 20:37:52 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-11-06 20:37:52 +0300 |
commit | 992b8f6f5fce7f34139ad4acf4a2b74c0cf49185 (patch) | |
tree | 2658c793f8f19d5d62d5907935b1c9f72bbd0f16 /source/blender/blenkernel/intern/screen.c | |
parent | 1762d5f43a4086b4492efb507c6085b0d841aaac (diff) |
Refactor: move Screen .blend data read to blenkernel
Ref T76372.
Diffstat (limited to 'source/blender/blenkernel/intern/screen.c')
-rw-r--r-- | source/blender/blenkernel/intern/screen.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c index 1b8360a1cec..d23dcfbb00a 100644 --- a/source/blender/blenkernel/intern/screen.c +++ b/source/blender/blenkernel/intern/screen.c @@ -254,6 +254,26 @@ static void screen_blend_write(BlendWriter *writer, ID *id, const void *id_addre } } +/* Cannot use IDTypeInfo callback yet, because of the return value. */ +bool BKE_screen_blend_read_lib(BlendDataReader *reader, bScreen *screen) +{ + bool success = true; + + screen->regionbase.first = screen->regionbase.last = NULL; + screen->context = NULL; + screen->active_region = NULL; + + BLO_read_data_address(reader, &screen->preview); + BKE_previewimg_blend_read(reader, screen->preview); + + if (!BKE_screen_area_map_blend_read_data(reader, AREAMAP_FROM_SCREEN(screen))) { + printf("Error reading Screen %s... removing it.\n", screen->id.name + 2); + success = false; + } + + return success; +} + /* note: file read without screens option G_FILE_NO_UI; * check lib pointers in call below */ static void screen_blend_read_lib(BlendLibReader *reader, ID *id) |