diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-02-11 17:18:12 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-02-11 17:24:11 +0300 |
commit | 311744696727915b34ef8dca4d8f40d71c4d469d (patch) | |
tree | a246f670e97831ec9288df7a73b6fda2d501a025 /source/blender/depsgraph | |
parent | 51d161a89efc6325a1fbf5afb39c1bfee00d51cb (diff) |
Fix T61362: Hair particles does not appear when rendering
Fix T61406: Particles don't render
Consider initial dependency graph evaluation as a file load.
Is still resetting too much, but that we can solve later.
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc | 14 |
1 files changed, 14 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 959c6318248..32212b0e1c1 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 @@ -58,6 +58,7 @@ extern "C" { #include "DNA_anim_types.h" #include "DNA_armature_types.h" #include "DNA_mesh_types.h" +#include "DNA_modifier_types.h" #include "DNA_scene_types.h" #include "DNA_object_types.h" #include "DNA_particle_types.h" @@ -579,6 +580,18 @@ void update_particle_system_orig_pointers(const Object *object_orig, } } +void set_particle_system_modifiers_loaded(Object *object_cow) +{ + LISTBASE_FOREACH(ModifierData *, md, &object_cow->modifiers) { + if (md->type != eModifierType_ParticleSystem) { + continue; + } + ParticleSystemModifierData *psmd = + reinterpret_cast<ParticleSystemModifierData*>(md); + psmd->flag |= eParticleSystemFlag_file_loaded; + } +} + void update_pose_orig_pointers(const bPose *pose_orig, bPose *pose_cow) { bPoseChannel *pchan_cow = (bPoseChannel *) pose_cow->chanbase.first; @@ -621,6 +634,7 @@ void update_special_pointers(const Depsgraph *depsgraph, } } update_particle_system_orig_pointers(object_orig, object_cow); + set_particle_system_modifiers_loaded(object_cow); break; } case ID_SCE: |