diff options
Diffstat (limited to 'source/blender/blenkernel')
40 files changed, 109 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_idtype.h b/source/blender/blenkernel/BKE_idtype.h index 3caf15d1b50..88b78a1c6cc 100644 --- a/source/blender/blenkernel/BKE_idtype.h +++ b/source/blender/blenkernel/BKE_idtype.h @@ -102,6 +102,10 @@ typedef void (*IDTypeBlendReadDataFunction)(struct BlendDataReader *reader, stru typedef void (*IDTypeBlendReadLibFunction)(struct BlendLibReader *reader, struct ID *id); typedef void (*IDTypeBlendReadExpandFunction)(struct BlendExpander *expander, struct ID *id); +typedef void (*IDTypeBlendReadUndoPreserve)(struct BlendLibReader *reader, + struct ID *id_new, + struct ID *id_old); + typedef struct IDTypeInfo { /* ********** General IDType data. ********** */ @@ -196,6 +200,13 @@ typedef struct IDTypeInfo { * Specify which other id data blocks should be loaded when the current one is loaded. */ IDTypeBlendReadExpandFunction blend_read_expand; + + /** + * Allow an ID type to preserve some of its data accross (memfile) undo steps. + * + * \note Called from #setup_app_data when undoing or redoing a memfile step. + */ + IDTypeBlendReadUndoPreserve blend_read_undo_preserve; } IDTypeInfo; /* ********** Declaration of each IDTypeInfo. ********** */ diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index cbecc91b4ec..c77153960ea 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -295,6 +295,8 @@ IDTypeInfo IDType_ID_AC = { .blend_read_data = action_blend_read_data, .blend_read_lib = action_blend_read_lib, .blend_read_expand = action_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /* ***************** Library data level operations on action ************** */ diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index bad2ed53436..2afa90c8088 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -329,6 +329,8 @@ IDTypeInfo IDType_ID_AR = { .blend_read_data = armature_blend_read_data, .blend_read_lib = armature_blend_read_lib, .blend_read_expand = armature_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /** \} */ diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index 17243b328e8..d62ccf794f3 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -376,6 +376,8 @@ IDTypeInfo IDType_ID_BR = { .blend_read_data = brush_blend_read_data, .blend_read_lib = brush_blend_read_lib, .blend_read_expand = brush_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; static RNG *brush_rng; diff --git a/source/blender/blenkernel/intern/cachefile.c b/source/blender/blenkernel/intern/cachefile.c index 0ee0242866f..d6c31809a2e 100644 --- a/source/blender/blenkernel/intern/cachefile.c +++ b/source/blender/blenkernel/intern/cachefile.c @@ -140,6 +140,8 @@ IDTypeInfo IDType_ID_CF = { .blend_read_data = cache_file_blend_read_data, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /* TODO: make this per cache file to avoid global locks. */ diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c index 3980a552855..0ca22e34973 100644 --- a/source/blender/blenkernel/intern/camera.c +++ b/source/blender/blenkernel/intern/camera.c @@ -201,6 +201,8 @@ IDTypeInfo IDType_ID_CA = { .blend_read_data = camera_blend_read_data, .blend_read_lib = camera_blend_read_lib, .blend_read_expand = camera_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /** \} */ diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c index 870a137ede9..b1222e9527c 100644 --- a/source/blender/blenkernel/intern/collection.c +++ b/source/blender/blenkernel/intern/collection.c @@ -359,6 +359,8 @@ IDTypeInfo IDType_ID_GR = { .blend_read_data = collection_blend_read_data, .blend_read_lib = collection_blend_read_lib, .blend_read_expand = collection_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /** \} */ diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index fa45a4ba836..f275299d8f1 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -325,6 +325,8 @@ IDTypeInfo IDType_ID_CU = { .blend_read_data = curve_blend_read_data, .blend_read_lib = curve_blend_read_lib, .blend_read_expand = curve_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; static int cu_isectLL(const float v1[3], diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index e0bbdfaeed6..70f8483efd3 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -168,6 +168,8 @@ IDTypeInfo IDType_ID_VF = { .blend_read_data = vfont_blend_read_data, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /***************************** VFont *******************************/ diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 6c6ca996caa..a4e07a76602 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -288,6 +288,8 @@ IDTypeInfo IDType_ID_GD = { .blend_read_data = greasepencil_blend_read_data, .blend_read_lib = greasepencil_blend_read_lib, .blend_read_expand = greasepencil_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /* ************************************************** */ diff --git a/source/blender/blenkernel/intern/hair.c b/source/blender/blenkernel/intern/hair.c index 313b0d192dc..554919ad1a0 100644 --- a/source/blender/blenkernel/intern/hair.c +++ b/source/blender/blenkernel/intern/hair.c @@ -195,6 +195,8 @@ IDTypeInfo IDType_ID_HA = { .blend_read_data = hair_blend_read_data, .blend_read_lib = hair_blend_read_lib, .blend_read_expand = hair_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; static void hair_random(Hair *hair) diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index cadd442ad9e..5fb5e13d876 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -325,6 +325,8 @@ IDTypeInfo IDType_ID_IM = { .blend_read_data = image_blend_read_data, .blend_read_lib = image_blend_read_lib, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /* prototypes */ diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index c09c5bf5cda..5d2defa3030 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -132,6 +132,8 @@ IDTypeInfo IDType_ID_IP = { .blend_read_data = NULL, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /* *************************************************** */ diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 95a8419b95d..587b9eb1436 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -214,6 +214,8 @@ IDTypeInfo IDType_ID_KE = { .blend_read_data = shapekey_blend_read_data, .blend_read_lib = shapekey_blend_read_lib, .blend_read_expand = shapekey_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; #define KEY_MODE_DUMMY 0 /* use where mode isn't checked for */ diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c index c0eb6b4b134..74f78106be5 100644 --- a/source/blender/blenkernel/intern/lattice.c +++ b/source/blender/blenkernel/intern/lattice.c @@ -203,6 +203,8 @@ IDTypeInfo IDType_ID_LT = { .blend_read_data = lattice_blend_read_data, .blend_read_lib = lattice_blend_read_lib, .blend_read_expand = lattice_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; int BKE_lattice_index_from_uvw(Lattice *lt, const int u, const int v, const int w) diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c index ae6ee71da82..a7094a33752 100644 --- a/source/blender/blenkernel/intern/lib_id.c +++ b/source/blender/blenkernel/intern/lib_id.c @@ -101,6 +101,15 @@ IDTypeInfo IDType_ID_LINK_PLACEHOLDER = { .copy_data = NULL, .free_data = NULL, .make_local = NULL, + .foreach_id = NULL, + .foreach_cache = NULL, + + .blend_write = NULL, + .blend_read_data = NULL, + .blend_read_lib = NULL, + .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /* GS reads the memory pointed at in a specific ordering. diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 949e10d4721..6a560d51362 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -82,6 +82,8 @@ IDTypeInfo IDType_ID_LI = { .blend_read_data = NULL, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; void BKE_library_filepath_set(Main *bmain, Library *lib, const char *filepath) diff --git a/source/blender/blenkernel/intern/light.c b/source/blender/blenkernel/intern/light.c index 4780f0cf208..a47a0c043ff 100644 --- a/source/blender/blenkernel/intern/light.c +++ b/source/blender/blenkernel/intern/light.c @@ -207,6 +207,8 @@ IDTypeInfo IDType_ID_LA = { .blend_read_data = light_blend_read_data, .blend_read_lib = light_blend_read_lib, .blend_read_expand = light_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; Light *BKE_light_add(Main *bmain, const char *name) diff --git a/source/blender/blenkernel/intern/lightprobe.c b/source/blender/blenkernel/intern/lightprobe.c index 31653a9a0ac..0553c070fdf 100644 --- a/source/blender/blenkernel/intern/lightprobe.c +++ b/source/blender/blenkernel/intern/lightprobe.c @@ -105,6 +105,8 @@ IDTypeInfo IDType_ID_LP = { .blend_read_data = lightprobe_blend_read_data, .blend_read_lib = lightprobe_blend_read_lib, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; void BKE_lightprobe_type_set(LightProbe *probe, const short lightprobe_type) diff --git a/source/blender/blenkernel/intern/linestyle.c b/source/blender/blenkernel/intern/linestyle.c index 733a2bcd1e1..69e6535a59f 100644 --- a/source/blender/blenkernel/intern/linestyle.c +++ b/source/blender/blenkernel/intern/linestyle.c @@ -765,6 +765,8 @@ IDTypeInfo IDType_ID_LS = { .blend_read_data = linestyle_blend_read_data, .blend_read_lib = linestyle_blend_read_lib, .blend_read_expand = linestyle_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; static const char *modifier_name[LS_MODIFIER_NUM] = { diff --git a/source/blender/blenkernel/intern/mask.c b/source/blender/blenkernel/intern/mask.c index 1f9f155ee55..04fec1e57c4 100644 --- a/source/blender/blenkernel/intern/mask.c +++ b/source/blender/blenkernel/intern/mask.c @@ -268,6 +268,8 @@ IDTypeInfo IDType_ID_MSK = { .blend_read_data = mask_blend_read_data, .blend_read_lib = mask_blend_read_lib, .blend_read_expand = mask_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; static struct { diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 4a85fab4e18..e892a3f4d53 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -272,6 +272,8 @@ IDTypeInfo IDType_ID_MA = { .blend_read_data = material_blend_read_data, .blend_read_lib = material_blend_read_lib, .blend_read_expand = material_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; void BKE_gpencil_material_attr_init(Material *ma) diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index d2bacb7d3bc..65ec91c57cf 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -202,6 +202,8 @@ IDTypeInfo IDType_ID_MB = { .blend_read_data = metaball_blend_read_data, .blend_read_lib = metaball_blend_read_lib, .blend_read_expand = metaball_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /* Functions */ diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 2d2519ada59..0b854c66456 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -333,6 +333,8 @@ IDTypeInfo IDType_ID_ME = { .blend_read_data = mesh_blend_read_data, .blend_read_lib = mesh_blend_read_lib, .blend_read_expand = mesh_read_expand, + + .blend_read_undo_preserve = NULL, }; enum { diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 40b12d8a777..3a7392bcbe3 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -359,6 +359,8 @@ IDTypeInfo IDType_ID_MC = { .blend_read_data = movieclip_blend_read_data, .blend_read_lib = movieclip_blend_read_lib, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /*********************** movieclip buffer loaders *************************/ diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 80a553ff525..c32e2230ee0 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -853,6 +853,8 @@ IDTypeInfo IDType_ID_NT = { .blend_read_data = ntree_blend_read_data, .blend_read_lib = ntree_blend_read_lib, .blend_read_expand = ntree_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; static void node_add_sockets_from_type(bNodeTree *ntree, bNode *node, bNodeType *ntype) diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 6bfee0194b0..f658594d878 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -538,6 +538,8 @@ IDTypeInfo IDType_ID_OB = { .blend_read_data = NULL, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; void BKE_object_workob_clear(Object *workob) diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index e46c91e4bf4..37637e30d9e 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -146,6 +146,8 @@ IDTypeInfo IDType_ID_PAL = { .blend_read_data = palette_blend_read_data, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; static void paint_curve_copy_data(Main *UNUSED(bmain), @@ -207,6 +209,8 @@ IDTypeInfo IDType_ID_PC = { .blend_read_data = paint_curve_blend_read_data, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; const char PAINT_CURSOR_SCULPT[3] = {255, 100, 100}; diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 71f78592bc5..91cb7f81da2 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -506,6 +506,8 @@ IDTypeInfo IDType_ID_PA = { .blend_read_data = particle_settings_blend_read_data, .blend_read_lib = particle_settings_blend_read_lib, .blend_read_expand = particle_settings_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; unsigned int PSYS_FRAND_SEED_OFFSET[PSYS_FRAND_COUNT]; diff --git a/source/blender/blenkernel/intern/pointcloud.c b/source/blender/blenkernel/intern/pointcloud.c index 78acf7251fa..62c4c4441ba 100644 --- a/source/blender/blenkernel/intern/pointcloud.c +++ b/source/blender/blenkernel/intern/pointcloud.c @@ -184,6 +184,8 @@ IDTypeInfo IDType_ID_PT = { .blend_read_data = pointcloud_blend_read_data, .blend_read_lib = pointcloud_blend_read_lib, .blend_read_expand = pointcloud_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; static void pointcloud_random(PointCloud *pointcloud) diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 6a9fe4615f7..69f4584a359 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -104,6 +104,8 @@ #include "SEQ_sequencer.h" +#include "BLO_read_write.h" + #include "engines/eevee/eevee_lightcache.h" #include "PIL_time.h" @@ -620,6 +622,15 @@ static void scene_foreach_cache(ID *id, user_data); } +static void scene_undo_preserve(BlendLibReader *UNUSED(reader), ID *id_new, ID *id_old) +{ + Scene *scene_new = (Scene *)id_new; + Scene *scene_old = (Scene *)id_old; + + SWAP(View3DCursor, scene_old->cursor, scene_new->cursor); + /* TODO: handle tool settings here too. */ +} + IDTypeInfo IDType_ID_SCE = { .id_code = ID_SCE, .id_filter = FILTER_ID_SCE, @@ -643,6 +654,8 @@ IDTypeInfo IDType_ID_SCE = { .blend_read_data = NULL, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = scene_undo_preserve, }; const char *RE_engine_id_BLENDER_EEVEE = "BLENDER_EEVEE"; diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c index ee2006f1635..0a28ed7e9a1 100644 --- a/source/blender/blenkernel/intern/screen.c +++ b/source/blender/blenkernel/intern/screen.c @@ -293,6 +293,8 @@ IDTypeInfo IDType_ID_SCR = { .blend_read_data = NULL, .blend_read_lib = screen_blend_read_lib, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /* ************ Spacetype/regiontype handling ************** */ diff --git a/source/blender/blenkernel/intern/simulation.cc b/source/blender/blenkernel/intern/simulation.cc index 2e1f8bd581e..6e4ce2eaee2 100644 --- a/source/blender/blenkernel/intern/simulation.cc +++ b/source/blender/blenkernel/intern/simulation.cc @@ -171,6 +171,8 @@ IDTypeInfo IDType_ID_SIM = { /* blend_read_data */ simulation_blend_read_data, /* blend_read_lib */ simulation_blend_read_lib, /* blend_read_expand */ simulation_blend_read_expand, + + /* blend_read_undo_preserve */ NULL, }; void *BKE_simulation_add(Main *bmain, const char *name) diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 2ee48a13454..07532d525bd 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -212,6 +212,8 @@ IDTypeInfo IDType_ID_SO = { .blend_read_data = sound_blend_read_data, .blend_read_lib = sound_blend_read_lib, .blend_read_expand = sound_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; #ifdef WITH_AUDASPACE diff --git a/source/blender/blenkernel/intern/speaker.c b/source/blender/blenkernel/intern/speaker.c index a98093d1893..fabf0bb8971 100644 --- a/source/blender/blenkernel/intern/speaker.c +++ b/source/blender/blenkernel/intern/speaker.c @@ -112,6 +112,8 @@ IDTypeInfo IDType_ID_SPK = { .blend_read_data = speaker_blend_read_data, .blend_read_lib = speaker_blend_read_lib, .blend_read_expand = speaker_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; void *BKE_speaker_add(Main *bmain, const char *name) diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index 93306703686..619eb1ff90f 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -256,6 +256,8 @@ IDTypeInfo IDType_ID_TXT = { .blend_read_data = text_blend_read_data, .blend_read_lib = NULL, .blend_read_expand = NULL, + + .blend_read_undo_preserve = NULL, }; /** \} */ diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 90c4f71ce7a..a77e0ed2b7d 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -224,6 +224,8 @@ IDTypeInfo IDType_ID_TE = { .blend_read_data = texture_blend_read_data, .blend_read_lib = texture_blend_read_lib, .blend_read_expand = texture_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /* Utils for all IDs using those texture slots. */ diff --git a/source/blender/blenkernel/intern/volume.cc b/source/blender/blenkernel/intern/volume.cc index 5e6f0bb42ef..39fed8601df 100644 --- a/source/blender/blenkernel/intern/volume.cc +++ b/source/blender/blenkernel/intern/volume.cc @@ -633,6 +633,8 @@ IDTypeInfo IDType_ID_VO = { /* blend_read_data */ volume_blend_read_data, /* blend_read_lib */ volume_blend_read_lib, /* blend_read_expand */ volume_blend_read_expand, + + /* blend_read_undo_preserve */ NULL, }; void BKE_volume_init_grids(Volume *volume) diff --git a/source/blender/blenkernel/intern/workspace.c b/source/blender/blenkernel/intern/workspace.c index 52420810171..291116556c3 100644 --- a/source/blender/blenkernel/intern/workspace.c +++ b/source/blender/blenkernel/intern/workspace.c @@ -190,6 +190,8 @@ IDTypeInfo IDType_ID_WS = { .blend_read_data = workspace_blend_read_data, .blend_read_lib = workspace_blend_read_lib, .blend_read_expand = workspace_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; /* -------------------------------------------------------------------- */ diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 094557502a3..8fe7653fc25 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -204,6 +204,8 @@ IDTypeInfo IDType_ID_WO = { .blend_read_data = world_blend_read_data, .blend_read_lib = world_blend_read_lib, .blend_read_expand = world_blend_read_expand, + + .blend_read_undo_preserve = NULL, }; World *BKE_world_add(Main *bmain, const char *name) |