diff options
6 files changed, 17 insertions, 92 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 69ff9765a93..6bc2706c685 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -189,10 +189,6 @@ void BKE_object_eval_constraints(struct EvaluationContext *eval_ctx, struct Object *ob); void BKE_object_eval_done(struct EvaluationContext *eval_ctx, struct Object *ob); -void BKE_object_eval_modifier(struct EvaluationContext *eval_ctx, - struct Scene *scene, - struct Object *ob, - struct ModifierData *md); void BKE_object_eval_uber_transform(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob); diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c index b4cf9b16247..0c53ee8818a 100644 --- a/source/blender/blenkernel/intern/object_update.c +++ b/source/blender/blenkernel/intern/object_update.c @@ -142,18 +142,6 @@ void BKE_object_eval_done(EvaluationContext *UNUSED(eval_ctx), Object *ob) else ob->transflag &= ~OB_NEG_SCALE; } -void BKE_object_eval_modifier(struct EvaluationContext *eval_ctx, - struct Scene *scene, - struct Object *ob, - struct ModifierData *md) -{ - DEBUG_PRINT("%s on %s\n", __func__, ob->id.name); - (void) eval_ctx; /* Ignored. */ - (void) scene; /* Ignored. */ - (void) ob; /* Ignored. */ - (void) md; /* Ignored. */ -} - void BKE_object_handle_data_update(EvaluationContext *eval_ctx, Scene *scene, Object *ob) diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index db9b895ffda..a95b498280a 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -753,17 +753,8 @@ void DepsgraphNodeBuilder::build_obdata_geom(Scene *scene, Object *ob) // TODO: "Done" operation - /* Modifiers */ + /* Cloyth modifier. */ LINKLIST_FOREACH (ModifierData *, md, &ob->modifiers) { - add_operation_node(&ob->id, - DEG_NODE_TYPE_GEOMETRY, - function_bind(BKE_object_eval_modifier, - _1, - scene, - ob, - md), - DEG_OPCODE_GEOMETRY_MODIFIER, - md->name); if (md->type == eModifierType_Cloth) { build_cloth(scene, ob); } diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index 2726800effd..69f04b20cd8 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -995,21 +995,12 @@ void DepsgraphRelationBuilder::build_driver(ID *id, FCurve *fcu) } } else if (GS(id->name) == ID_OB && strstr(rna_path, "modifiers[")) { - /* modifier driver - connect directly to the modifier */ - char *modifier_name = BLI_str_quoted_substrN(rna_path, "modifiers["); - if (modifier_name) { - OperationKey modifier_key(id, - DEG_NODE_TYPE_GEOMETRY, - DEG_OPCODE_GEOMETRY_MODIFIER, - modifier_name); - if (has_node(modifier_key)) { - add_relation(driver_key, modifier_key, "[Driver -> Modifier]"); - } - else { - printf("Unexisting driver RNA path: %s\n", rna_path); - } - - MEM_freeN(modifier_name); + OperationKey modifier_key(id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_UBEREVAL); + if (has_node(modifier_key)) { + add_relation(driver_key, modifier_key, "[Driver -> Modifier]"); + } + else { + printf("Unexisting driver RNA path: %s\n", rna_path); } } else if (GS(id->name) == ID_KE && strstr(rna_path, "key_blocks[")) { @@ -1326,7 +1317,7 @@ void DepsgraphRelationBuilder::build_particles(Scene *scene, Object *ob) void DepsgraphRelationBuilder::build_cloth(Scene * /*scene*/, Object *object, - ModifierData *md) + ModifierData * /*md*/) { OperationKey cache_key(&object->id, DEG_NODE_TYPE_CACHE, @@ -1335,8 +1326,7 @@ void DepsgraphRelationBuilder::build_cloth(Scene * /*scene*/, /* Cache component affects on modifier. */ OperationKey modifier_key(&object->id, DEG_NODE_TYPE_GEOMETRY, - DEG_OPCODE_GEOMETRY_MODIFIER, - md->name); + DEG_OPCODE_GEOMETRY_UBEREVAL); add_relation(cache_key, modifier_key, "Cloth Cache -> Cloth"); } @@ -1399,24 +1389,16 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje add_relation(obdata_geom_key, geom_key, "Object Geometry Base Data"); /* Modifiers */ - if (ob->modifiers.first) { - OperationKey prev_mod_key; + if (ob->modifiers.first != NULL) { + OperationKey obdata_ubereval_key(&ob->id, + DEG_NODE_TYPE_GEOMETRY, + DEG_OPCODE_GEOMETRY_UBEREVAL); LINKLIST_FOREACH (ModifierData *, md, &ob->modifiers) { const ModifierTypeInfo *mti = modifierType_getInfo((ModifierType)md->type); - OperationKey mod_key(&ob->id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_MODIFIER, md->name); - - if (md->prev) { - /* Stack relation: modifier depends on previous modifier in the stack */ - add_relation(prev_mod_key, mod_key, "Modifier Stack"); - } - else { - /* Stack relation: first modifier depends on the geometry. */ - add_relation(geom_init_key, mod_key, "Modifier Stack"); - } if (mti->updateDepsgraph) { - DepsNodeHandle handle = create_node_handle(mod_key); + DepsNodeHandle handle = create_node_handle(obdata_ubereval_key); mti->updateDepsgraph( md, bmain, @@ -1427,7 +1409,7 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje if (BKE_object_modifier_use_time(ob, md)) { TimeSourceKey time_src_key; - add_relation(time_src_key, mod_key, "Time Source"); + add_relation(time_src_key, obdata_ubereval_key, "Time Source"); /* Hacky fix for T45633 (Animated modifiers aren't updated) * @@ -1437,15 +1419,13 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje /* XXX: Remove this hack when these links are added as part of build_animdata() instead */ if (modifier_dependsOnTime(md) == false && needs_animdata_node(&ob->id)) { ComponentKey animation_key(&ob->id, DEG_NODE_TYPE_ANIMATION); - add_relation(animation_key, mod_key, "Modifier Animation"); + add_relation(animation_key, obdata_ubereval_key, "Modifier Animation"); } } if (md->type == eModifierType_Cloth) { build_cloth(scene, ob, md); } - - prev_mod_key = mod_key; } } @@ -1471,14 +1451,7 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje if (ob->type != OB_ARMATURE) { /* Armatures does no longer require uber node. */ OperationKey obdata_ubereval_key(&ob->id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_UBEREVAL); - if (ob->modifiers.last) { - ModifierData *md = (ModifierData *)ob->modifiers.last; - OperationKey mod_key(&ob->id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_MODIFIER, md->name); - add_relation(mod_key, obdata_ubereval_key, "Object Geometry UberEval"); - } - else { - add_relation(geom_init_key, obdata_ubereval_key, "Object Geometry UberEval"); - } + add_relation(geom_init_key, obdata_ubereval_key, "Object Geometry UberEval"); } if (obdata->tag & LIB_TAG_DOIT) { diff --git a/source/blender/depsgraph/intern/depsgraph_type_defines.cc b/source/blender/depsgraph/intern/depsgraph_type_defines.cc index 8e07caf3e0e..612944dab6e 100644 --- a/source/blender/depsgraph/intern/depsgraph_type_defines.cc +++ b/source/blender/depsgraph/intern/depsgraph_type_defines.cc @@ -97,23 +97,17 @@ static const char *stringify_opcode(eDepsOperation_Code opcode) #define STRINGIFY_OPCODE(name) case DEG_OPCODE_##name: return #name STRINGIFY_OPCODE(OPERATION); STRINGIFY_OPCODE(PLACEHOLDER); - STRINGIFY_OPCODE(NOOP); STRINGIFY_OPCODE(ANIMATION); STRINGIFY_OPCODE(DRIVER); - //STRINGIFY_OPCODE(PROXY); STRINGIFY_OPCODE(TRANSFORM_LOCAL); STRINGIFY_OPCODE(TRANSFORM_PARENT); STRINGIFY_OPCODE(TRANSFORM_CONSTRAINTS); - //STRINGIFY_OPCODE(TRANSFORM_CONSTRAINTS_INIT); - //STRINGIFY_OPCODE(TRANSFORM_CONSTRAINT); - //STRINGIFY_OPCODE(TRANSFORM_CONSTRAINTS_DONE); STRINGIFY_OPCODE(RIGIDBODY_REBUILD); STRINGIFY_OPCODE(RIGIDBODY_SIM); STRINGIFY_OPCODE(TRANSFORM_RIGIDBODY); STRINGIFY_OPCODE(TRANSFORM_FINAL); STRINGIFY_OPCODE(OBJECT_UBEREVAL); STRINGIFY_OPCODE(GEOMETRY_UBEREVAL); - STRINGIFY_OPCODE(GEOMETRY_MODIFIER); STRINGIFY_OPCODE(GEOMETRY_PATH); STRINGIFY_OPCODE(POSE_INIT); STRINGIFY_OPCODE(POSE_DONE); @@ -122,9 +116,6 @@ static const char *stringify_opcode(eDepsOperation_Code opcode) STRINGIFY_OPCODE(BONE_LOCAL); STRINGIFY_OPCODE(BONE_POSE_PARENT); STRINGIFY_OPCODE(BONE_CONSTRAINTS); - //STRINGIFY_OPCODE(BONE_CONSTRAINTS_INIT); - //STRINGIFY_OPCODE(BONE_CONSTRAINT); - //STRINGIFY_OPCODE(BONE_CONSTRAINTS_DONE); STRINGIFY_OPCODE(BONE_READY); STRINGIFY_OPCODE(BONE_DONE); STRINGIFY_OPCODE(PSYS_EVAL); diff --git a/source/blender/depsgraph/intern/depsgraph_types.h b/source/blender/depsgraph/intern/depsgraph_types.h index 2668ff70d7f..c72e93e30ab 100644 --- a/source/blender/depsgraph/intern/depsgraph_types.h +++ b/source/blender/depsgraph/intern/depsgraph_types.h @@ -143,8 +143,6 @@ typedef enum eDepsOperation_Code { // XXX: Placeholder while porting depsgraph code DEG_OPCODE_PLACEHOLDER, - DEG_OPCODE_NOOP, - /* Animation, Drivers, etc. ------------------------ */ /* NLA + Action */ @@ -153,9 +151,6 @@ typedef enum eDepsOperation_Code { /* Driver */ DEG_OPCODE_DRIVER, - /* Proxy Inherit? */ - //DEG_OPCODE_PROXY, - /* Transform --------------------------------------- */ /* Transform entry point - local transforms only */ @@ -166,9 +161,6 @@ typedef enum eDepsOperation_Code { /* Constraints */ DEG_OPCODE_TRANSFORM_CONSTRAINTS, - //DEG_OPCODE_TRANSFORM_CONSTRAINTS_INIT, - //DEG_OPCODE_TRANSFORM_CONSTRAINT, - //DEG_OPCODE_TRANSFORM_CONSTRAINTS_DONE, /* Rigidbody Sim - Perform Sim */ DEG_OPCODE_RIGIDBODY_REBUILD, @@ -188,9 +180,6 @@ typedef enum eDepsOperation_Code { /* XXX: Placeholder - UberEval */ DEG_OPCODE_GEOMETRY_UBEREVAL, - /* Modifier */ - DEG_OPCODE_GEOMETRY_MODIFIER, - /* Curve Objects - Path Calculation (used for path-following tools, */ DEG_OPCODE_GEOMETRY_PATH, @@ -216,9 +205,6 @@ typedef enum eDepsOperation_Code { /* Constraints */ DEG_OPCODE_BONE_CONSTRAINTS, - //DEG_OPCODE_BONE_CONSTRAINTS_INIT, - //DEG_OPCODE_BONE_CONSTRAINT, - //DEG_OPCODE_BONE_CONSTRAINTS_DONE, /* Bone transforms are ready * |