Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc')
-rw-r--r--source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
index 6346bab1fe8..19022d534b2 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
@@ -41,6 +41,7 @@
#include "DNA_ID.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
+#include "DNA_gpencil_types.h"
#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
@@ -733,6 +734,16 @@ void update_id_after_copy(const Depsgraph *depsgraph,
scene_setup_view_layers_after_remap(depsgraph, id_node, reinterpret_cast<Scene *>(id_cow));
break;
}
+ /* FIXME: This is a temporary fix to update the runtime pointers properly, see T96216. Should
+ * be removed at some point. */
+ case ID_GD: {
+ bGPdata *gpd_cow = (bGPdata *)id_cow;
+ bGPDlayer *gpl = (bGPDlayer *)(gpd_cow->layers.first);
+ if (gpl != nullptr && gpl->runtime.gpl_orig == nullptr) {
+ BKE_gpencil_data_update_orig_pointers((bGPdata *)id_orig, gpd_cow);
+ }
+ break;
+ }
default:
break;
}