[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41522] trunk/blender/source/blender: Depsgraph: add "Dependency Relations" operator to print the dependency graph to
Brecht Van Lommel
brechtvanlommel at pandora.be
Fri Nov 4 14:17:36 CET 2011
Revision: 41522
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41522
Author: blendix
Date: 2011-11-04 13:17:35 +0000 (Fri, 04 Nov 2011)
Log Message:
-----------
Depsgraph: add "Dependency Relations" operator to print the dependency graph to
the console, useful for debugging and understanding the relations.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_depsgraph.h
trunk/blender/source/blender/blenkernel/intern/depsgraph.c
trunk/blender/source/blender/windowmanager/intern/wm_operators.c
Modified: trunk/blender/source/blender/blenkernel/BKE_depsgraph.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_depsgraph.h 2011-11-04 12:53:46 UTC (rev 41521)
+++ trunk/blender/source/blender/blenkernel/BKE_depsgraph.h 2011-11-04 13:17:35 UTC (rev 41522)
@@ -133,6 +133,9 @@
/* callback for editors module to do updates */
void DAG_editors_update_cb(void (*func)(struct Main *bmain, struct ID *id));
+ /* debugging */
+void DAG_print_dependencies(struct Main *bmain, struct Scene *scene, struct Object *ob);
+
#ifdef __cplusplus
}
#endif
Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c 2011-11-04 12:53:46 UTC (rev 41521)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c 2011-11-04 13:17:35 UTC (rev 41522)
@@ -799,6 +799,7 @@
}
static int ugly_hack_sorry= 1; // prevent type check
+static int dag_print_dependencies= 0; // debugging
/* no checking of existence, use dag_find_node first or dag_get_node */
DagNode * dag_add_node (DagForest *forest, void * fob)
@@ -926,7 +927,6 @@
return ((bPoseChannel*)(node->ob))->name;
}
-#if 0
static void dag_node_print_dependencies(DagNode *node)
{
DagAdjList *itA;
@@ -937,7 +937,6 @@
printf(" %s through %s\n", dag_node_name(itA->node), itA->name);
printf("\n");
}
-#endif
static int dag_node_print_dependency_recurs(DagNode *node, DagNode *endnode)
{
@@ -998,6 +997,11 @@
DagNode *node;
DagAdjList *itA;
+ /* debugging print */
+ if(dag_print_dependencies)
+ for(node = dag->DagNode.first; node; node= node->next)
+ dag_node_print_dependencies(node);
+
/* tag nodes unchecked */
for(node = dag->DagNode.first; node; node= node->next)
node->color= DAG_WHITE;
@@ -2834,5 +2838,22 @@
ugly_hack_sorry= 1;
}
+/* ************************ DAG DEBUGGING ********************* */
+void DAG_print_dependencies(Main *bmain, Scene *scene, Object *ob)
+{
+ /* utility for debugging dependencies */
+ dag_print_dependencies= 1;
+ if(ob && (ob->mode & OB_MODE_POSE)) {
+ printf("\nDEPENDENCY RELATIONS for %s\n\n", ob->id.name+2);
+ DAG_pose_sort(ob);
+ }
+ else {
+ printf("\nDEPENDENCY RELATIONS for %s\n\n", scene->id.name+2);
+ DAG_scene_sort(bmain, scene);
+ }
+
+ dag_print_dependencies= 0;
+}
+
Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2011-11-04 12:53:46 UTC (rev 41521)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2011-11-04 13:17:35 UTC (rev 41522)
@@ -3450,6 +3450,28 @@
ot->exec= memory_statistics_exec;
}
+/* ************************** memory statistics for testing ***************** */
+
+static int dependency_relations_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Main *bmain= CTX_data_main(C);
+ Scene *scene= CTX_data_scene(C);
+ Object *ob= CTX_data_active_object(C);
+
+ DAG_print_dependencies(bmain, scene, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+static void WM_OT_dependency_relations(wmOperatorType *ot)
+{
+ ot->name= "Dependency Relations";
+ ot->idname= "WM_OT_dependency_relations";
+ ot->description= "Print dependency graph relations to the console";
+
+ ot->exec= dependency_relations_exec;
+}
+
/* ******************************************************* */
static int wm_ndof_sensitivity_exec(bContext *UNUSED(C), wmOperator *op)
@@ -3532,6 +3554,7 @@
WM_operatortype_append(WM_OT_save_mainfile);
WM_operatortype_append(WM_OT_redraw_timer);
WM_operatortype_append(WM_OT_memory_statistics);
+ WM_operatortype_append(WM_OT_dependency_relations);
WM_operatortype_append(WM_OT_debug_menu);
WM_operatortype_append(WM_OT_splash);
WM_operatortype_append(WM_OT_search_menu);
More information about the Bf-blender-cvs
mailing list