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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-12-14 19:33:36 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-12-14 19:33:54 +0300
commitd3e0d7f0825fbdf503ef82e3f85b11d0faf841e8 (patch)
tree0b5f9cf3db805d5565397feecd305e8adfa8a0bf /source/blender/blenkernel/intern
parentc7cc97c7b909358eac9b0768d1af132f9f6a706c (diff)
Fix broken particle distribution after recent fix
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r--source/blender/blenkernel/intern/library.c7
-rw-r--r--source/blender/blenkernel/intern/mesh.c3
-rw-r--r--source/blender/blenkernel/intern/particle_distribute.c3
3 files changed, 8 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 23d431b9325..84585d3bd64 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -518,13 +518,14 @@ static int id_copy_libmanagement_cb(void *user_data, ID *UNUSED(id_self), ID **i
return IDWALK_RET_NOP;
}
-static void id_copy_clear_runtime_if_needed(ID *id, int UNUSED(flag))
+static void id_copy_clear_runtime_if_needed(ID *id, int flag)
{
if (id == NULL) {
return;
}
- /* TODO(sergey): Think of having a flag which will allow to share runtime
- * fields of the ID.*/
+ if (flag & LIB_ID_COPY_RUNTIME) {
+ return;
+ }
switch ((ID_Type)GS(id->name)) {
case ID_OB:
{
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 635032d15a4..2f198c5b565 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -701,7 +701,8 @@ Mesh *BKE_mesh_copy_for_eval(struct Mesh *source, bool reference)
int flags = (LIB_ID_CREATE_NO_MAIN |
LIB_ID_CREATE_NO_USER_REFCOUNT |
LIB_ID_CREATE_NO_DEG_TAG |
- LIB_ID_COPY_NO_PREVIEW);
+ LIB_ID_COPY_NO_PREVIEW |
+ LIB_ID_COPY_RUNTIME);
if (reference) {
flags |= LIB_ID_COPY_CD_REFERENCE;
diff --git a/source/blender/blenkernel/intern/particle_distribute.c b/source/blender/blenkernel/intern/particle_distribute.c
index bbb8a96dd4d..90d3caa2639 100644
--- a/source/blender/blenkernel/intern/particle_distribute.c
+++ b/source/blender/blenkernel/intern/particle_distribute.c
@@ -925,7 +925,8 @@ static int psys_thread_context_init_distribute(ParticleThreadContext *ctx, Parti
LIB_ID_CREATE_NO_MAIN |
LIB_ID_CREATE_NO_USER_REFCOUNT |
LIB_ID_CREATE_NO_DEG_TAG |
- LIB_ID_COPY_NO_PREVIEW,
+ LIB_ID_COPY_NO_PREVIEW |
+ LIB_ID_COPY_RUNTIME,
false);
BKE_mesh_tessface_ensure(mesh);