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:
-rw-r--r--source/blender/blenkernel/BKE_particle.h5
-rw-r--r--source/blender/blenkernel/intern/particle_system.c20
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_nodes.cc13
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc22
-rw-r--r--source/blender/depsgraph/intern/depsgraph_tag.cc6
-rw-r--r--source/blender/depsgraph/intern/depsgraph_type_defines.cc1
-rw-r--r--source/blender/depsgraph/intern/depsgraph_types.h1
-rw-r--r--source/blender/makesdna/DNA_particle_types.h2
8 files changed, 8 insertions, 62 deletions
diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h
index 2db4126057a..06c74d93e7c 100644
--- a/source/blender/blenkernel/BKE_particle.h
+++ b/source/blender/blenkernel/BKE_particle.h
@@ -485,11 +485,6 @@ typedef struct ParticleRenderData {
struct EvaluationContext;
-void BKE_particle_system_settings_eval(const 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_init(const struct EvaluationContext *eval_ctx,
struct Scene *scene,
struct Object *ob);
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index f27a570ca29..b80eca0ed59 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -4417,24 +4417,16 @@ void BKE_particlesystem_id_loop(ParticleSystem *psys, ParticleSystemIDFunc func,
/* **** Depsgraph evaluation **** */
-void BKE_particle_system_settings_eval(const struct EvaluationContext *UNUSED(eval_ctx),
- ParticleSystem *psys)
-{
- DEG_debug_print_eval(__func__, psys->name, psys);
- psys->recalc |= psys->part->recalc;
-}
-
-void BKE_particle_system_settings_recalc_clear(struct EvaluationContext *UNUSED(eval_ctx),
- ParticleSettings *particle_settings)
-{
- DEG_debug_print_eval(__func__, particle_settings->id.name, particle_settings);
- particle_settings->recalc = 0;
-}
-
void BKE_particle_system_eval_init(const struct EvaluationContext *UNUSED(eval_ctx),
Scene *scene,
Object *ob)
{
DEG_debug_print_eval(__func__, ob->id.name, ob);
+ for (ParticleSystem *psys = ob->particlesystem.first;
+ psys != NULL;
+ psys = psys->next)
+ {
+ psys->recalc |= (psys->part->id.recalc & DEG_TAG_PSYS_ALL);
+ }
BKE_ptcache_object_reset(scene, ob, PTCACHE_RESET_DEPSGRAPH);
}
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index e4652812c50..7d606629acb 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -901,13 +901,6 @@ void DepsgraphNodeBuilder::build_particles(Object *object)
* NOTE: The call itself ensures settings are only build once.
*/
build_particle_settings(part);
- /* Update on particle settings change. */
- add_operation_node(psys_comp,
- function_bind(BKE_particle_system_settings_eval,
- _1,
- psys),
- DEG_OPCODE_PARTICLE_SETTINGS_EVAL,
- psys->name);
/* Particle system evaluation. */
add_operation_node(psys_comp,
NULL,
@@ -951,12 +944,6 @@ void DepsgraphNodeBuilder::build_particle_settings(ParticleSettings *part) {
DEG_NODE_TYPE_PARAMETERS,
NULL,
DEG_OPCODE_PARTICLE_SETTINGS_EVAL);
- add_operation_node(&part->id,
- DEG_NODE_TYPE_PARAMETERS,
- function_bind(BKE_particle_system_settings_recalc_clear,
- _1,
- part),
- DEG_OPCODE_PARTICLE_SETTINGS_RECALC_CLEAR);
}
void DepsgraphNodeBuilder::build_cloth(Object *object)
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index ddb0f809a53..5e25f60e3ac 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -1430,19 +1430,7 @@ void DepsgraphRelationBuilder::build_particles(Object *object)
OperationKey particle_settings_key(&part->id,
DEG_NODE_TYPE_PARAMETERS,
DEG_OPCODE_PARTICLE_SETTINGS_EVAL);
- OperationKey particle_settings_recalc_clear_key(
- &part->id,
- DEG_NODE_TYPE_PARAMETERS,
- DEG_OPCODE_PARTICLE_SETTINGS_RECALC_CLEAR);
- OperationKey psys_settings_key(&object->id,
- DEG_NODE_TYPE_EVAL_PARTICLES,
- DEG_OPCODE_PARTICLE_SETTINGS_EVAL,
- psys->name);
- add_relation(particle_settings_key, psys_settings_key, "Particle Settings Change");
- add_relation(psys_settings_key, psys_key, "Particle Settings Update");
- add_relation(psys_key,
- particle_settings_recalc_clear_key,
- "Particle Settings Recalc Clear");
+ add_relation(particle_settings_key, eval_init_key, "Particle Settings Change");
add_relation(eval_init_key, psys_key, "Init -> PSys");
/* TODO(sergey): Currently particle update is just a placeholder,
* hook it to the ubereval node so particle system is getting updated
@@ -1543,14 +1531,6 @@ void DepsgraphRelationBuilder::build_particle_settings(ParticleSettings *part)
}
/* Animation data relations. */
build_animdata(&part->id);
-
- OperationKey eval_key(&part->id,
- DEG_NODE_TYPE_PARAMETERS,
- DEG_OPCODE_PARTICLE_SETTINGS_EVAL);
- OperationKey recalc_clear_key(&part->id,
- DEG_NODE_TYPE_PARAMETERS,
- DEG_OPCODE_PARTICLE_SETTINGS_RECALC_CLEAR);
- add_relation(eval_key, recalc_clear_key, "Particle Settings Clear Recalc");
}
void DepsgraphRelationBuilder::build_particles_visualization_object(
diff --git a/source/blender/depsgraph/intern/depsgraph_tag.cc b/source/blender/depsgraph/intern/depsgraph_tag.cc
index 1f643dc9615..8f2f6e258fb 100644
--- a/source/blender/depsgraph/intern/depsgraph_tag.cc
+++ b/source/blender/depsgraph/intern/depsgraph_tag.cc
@@ -199,13 +199,7 @@ void depsgraph_tag_to_component_opcode(const ID *id,
* component. Will be nice to get this unified with object,
* but we can survive for now with single exception here.
* Particles needs reconsideration anyway,
- * - We do direct injection of particle settings recalc flag
- * here. This is what we need to do for until particles
- * are switched away from own recalc flag and are using
- * ID->recalc flags instead.
*/
- ParticleSettings *particle_settings = (ParticleSettings *)id;
- particle_settings->recalc |= (tag & DEG_TAG_PSYS_ALL);
*component_type = DEG_NODE_TYPE_PARAMETERS;
}
else {
diff --git a/source/blender/depsgraph/intern/depsgraph_type_defines.cc b/source/blender/depsgraph/intern/depsgraph_type_defines.cc
index 1ae1b52b8d2..15144a8f31f 100644
--- a/source/blender/depsgraph/intern/depsgraph_type_defines.cc
+++ b/source/blender/depsgraph/intern/depsgraph_type_defines.cc
@@ -119,7 +119,6 @@ static const char *stringify_opcode(eDepsOperation_Code opcode)
STRINGIFY_OPCODE(PARTICLE_SYSTEM_EVAL_INIT);
STRINGIFY_OPCODE(PARTICLE_SYSTEM_EVAL);
STRINGIFY_OPCODE(PARTICLE_SETTINGS_EVAL);
- STRINGIFY_OPCODE(PARTICLE_SETTINGS_RECALC_CLEAR);
/* Point Cache. */
STRINGIFY_OPCODE(POINT_CACHE_RESET);
/* Batch cache. */
diff --git a/source/blender/depsgraph/intern/depsgraph_types.h b/source/blender/depsgraph/intern/depsgraph_types.h
index b4a0dde1f35..3aa204490eb 100644
--- a/source/blender/depsgraph/intern/depsgraph_types.h
+++ b/source/blender/depsgraph/intern/depsgraph_types.h
@@ -240,7 +240,6 @@ typedef enum eDepsOperation_Code {
DEG_OPCODE_PARTICLE_SYSTEM_EVAL_INIT,
DEG_OPCODE_PARTICLE_SYSTEM_EVAL,
DEG_OPCODE_PARTICLE_SETTINGS_EVAL,
- DEG_OPCODE_PARTICLE_SETTINGS_RECALC_CLEAR,
/* Point Cache. ------------------------------------- */
DEG_OPCODE_POINT_CACHE_RESET,
diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h
index a7be2e37c4b..5f86ec31d0b 100644
--- a/source/blender/makesdna/DNA_particle_types.h
+++ b/source/blender/makesdna/DNA_particle_types.h
@@ -262,7 +262,7 @@ typedef struct ParticleSettings {
short use_modifier_stack;
short pad5;
- int recalc;
+ int pad8;
float twist;
float pad6;