diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-07-20 16:38:48 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-07-20 16:38:48 +0300 |
commit | 83b0bf91660c3421fa56a4b7a83f971bf793ffde (patch) | |
tree | c36fa83272911857fb7296927af6a43a1d2f50fa /source/blender/blenkernel | |
parent | 905366ca7e12400b74c8ab791eb4975158c1dd6c (diff) |
Depsgraph: Solve TODO about more granular particle settings update tagging
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_particle.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index 639aefd029f..f318787d954 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -475,6 +475,8 @@ struct EvaluationContext; void BKE_particle_system_settings_eval(struct EvaluationContext *eval_ctx, struct ParticleSystem *psys); +void BKE_particle_system_settings_recalc_clear(struct EvaluationContext *UNUSED(eval_ctx), + struct ParticleSettings *particle_settings); void BKE_particle_system_eval(struct EvaluationContext *eval_ctx, struct Scene *scene, diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 6fb3bdf325d..3a7ca2caaa4 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -4359,8 +4359,16 @@ void BKE_particle_system_settings_eval(struct EvaluationContext *UNUSED(eval_ctx if (G.debug & G_DEBUG_DEPSGRAPH) { printf("%s on %s (%p)\n", __func__, psys->name, psys); } - /* TODO(sergey): Need to do something more granular here. */ - psys->recalc |= PSYS_RECALC; + psys->recalc |= psys->part->recalc; +} + +void BKE_particle_system_settings_recalc_clear(struct EvaluationContext *UNUSED(eval_ctx), + ParticleSettings *particle_settings) +{ + if (G.debug & G_DEBUG_DEPSGRAPH) { + printf("%s on %s (%p)\n", __func__, particle_settings->id.name, particle_settings); + } + particle_settings->recalc = 0; } void BKE_particle_system_eval(struct EvaluationContext *UNUSED(eval_ctx), |