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>2017-07-20 16:38:48 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-07-20 16:38:48 +0300
commit83b0bf91660c3421fa56a4b7a83f971bf793ffde (patch)
treec36fa83272911857fb7296927af6a43a1d2f50fa /source/blender/blenkernel
parent905366ca7e12400b74c8ab791eb4975158c1dd6c (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.h2
-rw-r--r--source/blender/blenkernel/intern/particle_system.c12
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),