Commit: 80b036afab8c2b3c7dabbd270b29daa439d472aa Author: Alexander Gavrilov Date: Tue Apr 23 18:29:36 2019 +0300 Branches: master https://developer.blender.org/rB80b036afab8c2b3c7dabbd270b29daa439d472aa
Depsgraph: make the dependency cycle report more readable. Since it is a continuous cycle, there's no need to repeat the name of the previous bone. Also, dot is a common symbol in object and bone names, so use '/' instead for node nesting. =================================================================== M source/blender/depsgraph/intern/builder/deg_builder_cycle.cc M source/blender/depsgraph/intern/node/deg_node_operation.cc =================================================================== diff --git a/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc b/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc index af5c4e7130b..d11a60b77dd 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc @@ -182,20 +182,16 @@ void solve_cycles(CyclesSolverState *state) OperationNode *to = (OperationNode *)rel->to; eCyclicCheckVisitedState to_state = get_node_visited_state(to); if (to_state == NODE_IN_STACK) { - printf("Dependency cycle detected:\n"); - printf(" '%s' depends on '%s' through '%s'\n", - to->full_identifier().c_str(), - node->full_identifier().c_str(), - rel->name); + string cycle_str = " " + to->full_identifier() + " depends on\n " + + node->full_identifier() + " via '" + rel->name + "'\n"; StackEntry *current = entry; while (current->node != to) { BLI_assert(current != NULL); - printf(" '%s' depends on '%s' through '%s'\n", - current->node->full_identifier().c_str(), - current->from->node->full_identifier().c_str(), - current->via_relation->name); + cycle_str += " " + current->from->node->full_identifier() + " via '" + + current->via_relation->name + "'\n"; current = current->from; } + printf("Dependency cycle detected:\n%s", cycle_str.c_str()); Relation *sacrificial_relation = select_relation_to_murder(rel, entry); sacrificial_relation->flag |= RELATION_FLAG_CYCLIC; ++state->num_cycles; diff --git a/source/blender/depsgraph/intern/node/deg_node_operation.cc b/source/blender/depsgraph/intern/node/deg_node_operation.cc index 54a5ecef35c..154563303ad 100644 --- a/source/blender/depsgraph/intern/node/deg_node_operation.cc +++ b/source/blender/depsgraph/intern/node/deg_node_operation.cc @@ -208,14 +208,11 @@ string OperationNode::identifier() const * used for logging and debug prints. */ string OperationNode::full_identifier() const { - string owner_str = ""; - if (owner->type == NodeType::BONE) { - owner_str = string(owner->owner->name) + "." + owner->name; + string owner_str = owner->owner->name; + if (owner->type == NodeType::BONE || !owner->name.empty()) { + owner_str += "/" + owner->name; } - else { - owner_str = owner->owner->name; - } - return owner_str + "." + identifier(); + return owner_str + "/" + identifier(); } void OperationNode::tag_update(Depsgraph *graph, eUpdateSource source) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs