[Bf-blender-cvs] [4f5f8622f97] blender-v3.4-release: Fix image datablock losing movie metadata on undo

Brecht Van Lommel noreply at git.blender.org
Mon Nov 14 14:03:16 CET 2022


Commit: 4f5f8622f9771fec916aa8afa885bae6c6b55844
Author: Brecht Van Lommel
Date:   Mon Nov 14 13:14:45 2022 +0100
Branches: blender-v3.4-release
https://developer.blender.org/rB4f5f8622f9771fec916aa8afa885bae6c6b55844

Fix image datablock losing movie metadata on undo

The anims data is a runtime cache similar to the image buffer or GPU texture
and needs to be preserved through undo in the same way.

Found as part of D15042 development.

===================================================================

M	source/blender/blenkernel/intern/image.cc

===================================================================

diff --git a/source/blender/blenkernel/intern/image.cc b/source/blender/blenkernel/intern/image.cc
index 75e3e22afa7..ae05096826b 100644
--- a/source/blender/blenkernel/intern/image.cc
+++ b/source/blender/blenkernel/intern/image.cc
@@ -234,6 +234,11 @@ static void image_foreach_cache(ID *id,
   key.offset_in_ID = offsetof(Image, cache);
   function_callback(id, &key, (void **)&image->cache, 0, user_data);
 
+  key.offset_in_ID = offsetof(Image, anims.first);
+  function_callback(id, &key, (void **)&image->anims.first, 0, user_data);
+  key.offset_in_ID = offsetof(Image, anims.last);
+  function_callback(id, &key, (void **)&image->anims.last, 0, user_data);
+
   auto gputexture_offset = [image](int target, int eye) {
     constexpr size_t base_offset = offsetof(Image, gputexture);
     struct GPUTexture **first = &image->gputexture[0][0];



More information about the Bf-blender-cvs mailing list