[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