Fix T58932: Impossible to influence the particle system
This commit is contained in:
@@ -1847,6 +1847,12 @@ void DepsgraphRelationBuilder::build_particle_settings(ParticleSettings *part)
|
||||
"Particle Texture",
|
||||
DEPSREL_FLAG_FLUSH_USER_EDIT_ONLY);
|
||||
}
|
||||
if (check_id_has_anim_component(&part->id)) {
|
||||
ComponentKey animation_key(&part->id, DEG_NODE_TYPE_ANIMATION);
|
||||
add_relation(animation_key,
|
||||
particle_settings_eval_key,
|
||||
"Particle Settings Animation");
|
||||
}
|
||||
}
|
||||
|
||||
void DepsgraphRelationBuilder::build_particle_system_visualization_object(
|
||||
|
||||
@@ -164,17 +164,16 @@ BLI_INLINE void flush_handle_component_node(IDDepsNode *id_node,
|
||||
return;
|
||||
}
|
||||
comp_node->custom_flags = COMPONENT_STATE_DONE;
|
||||
/* Tag all required operations in component for update. */
|
||||
foreach (OperationDepsNode *op, comp_node->operations) {
|
||||
/* We don't want to flush tags in "upstream" direction for
|
||||
* certain types of operations.
|
||||
*
|
||||
* TODO(sergey): Need a more generic solution for this.
|
||||
*/
|
||||
if (op->opcode == DEG_OPCODE_PARTICLE_SETTINGS_EVAL) {
|
||||
continue;
|
||||
/* Tag all required operations in component for update, unless this is a
|
||||
* special component where we don't want all operations to be tagged.
|
||||
*
|
||||
* TODO(sergey): Make this a more generic solution. */
|
||||
if (comp_node->type != DEG_NODE_TYPE_PARTICLE_SETTINGS &&
|
||||
comp_node->type != DEG_NODE_TYPE_PARTICLE_SYSTEM)
|
||||
{
|
||||
foreach (OperationDepsNode *op, comp_node->operations) {
|
||||
op->flag |= DEPSOP_FLAG_NEEDS_UPDATE;
|
||||
}
|
||||
op->flag |= DEPSOP_FLAG_NEEDS_UPDATE;
|
||||
}
|
||||
/* when some target changes bone, we might need to re-run the
|
||||
* whole IK solver, otherwise result might be unpredictable.
|
||||
|
||||
Reference in New Issue
Block a user