From d8cc434d9e64ec17f8c08a3b8a3d2f907e9640b3 Mon Sep 17 00:00:00 2001 From: David Rose Date: Thu, 23 Sep 2004 23:17:59 +0000 Subject: [PATCH] report levels too --- pandatool/src/text-stats/textMonitor.cxx | 48 ++++++++++++++++++++++-- pandatool/src/text-stats/textMonitor.h | 1 + 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/pandatool/src/text-stats/textMonitor.cxx b/pandatool/src/text-stats/textMonitor.cxx index 8d97822d82..b8fa661499 100644 --- a/pandatool/src/text-stats/textMonitor.cxx +++ b/pandatool/src/text-stats/textMonitor.cxx @@ -18,6 +18,7 @@ #include "textMonitor.h" #include "textStats.h" +#include "pStatCollectorDef.h" #include "indent.h" @@ -95,15 +96,30 @@ new_data(int thread_index, int frame_number) { view.set_to_frame(frame_number); if (view.all_collectors_known()) { + const PStatClientData *client_data = get_client_data(); + nout << "\rThread " - << get_client_data()->get_thread_name(thread_index) + << client_data->get_thread_name(thread_index) << " frame " << frame_number << ", " << view.get_net_value() * 1000.0 << " ms (" << thread_data->get_frame_rate() << " Hz):\n"; const PStatViewLevel *level = view.get_top_level(); int num_children = level->get_num_children(); for (int i = 0; i < num_children; i++) { - show_level(level->get_child(i), 2); + show_ms(level->get_child(i), 2); + } + + int num_toplevel_collectors = client_data->get_num_toplevel_collectors(); + for (int tc = 0; tc < num_toplevel_collectors; tc++) { + int collector = client_data->get_toplevel_collector(tc); + if (client_data->has_collector(collector) && + client_data->get_collector_has_level(collector)) { + + PStatView &level_view = get_level_view(collector, thread_index); + level_view.set_to_frame(frame_number); + const PStatViewLevel *level = level_view.get_top_level(); + show_level(level, 2); + } } } } @@ -139,6 +155,27 @@ is_thread_safe() { return true; } +//////////////////////////////////////////////////////////////////// +// Function: TextMonitor::show_ms +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +void TextMonitor:: +show_ms(const PStatViewLevel *level, int indent_level) { + int collector_index = level->get_collector(); + + const PStatClientData *client_data = get_client_data(); + const PStatCollectorDef &def = client_data->get_collector_def(collector_index); + + indent(nout, indent_level) + << def._name << " = " << level->get_net_value() * 1000.0 << " ms\n" ; + + int num_children = level->get_num_children(); + for (int i = 0; i < num_children; i++) { + show_ms(level->get_child(i), indent_level + 2); + } +} + //////////////////////////////////////////////////////////////////// // Function: TextMonitor::show_level // Access: Public @@ -148,9 +185,12 @@ void TextMonitor:: show_level(const PStatViewLevel *level, int indent_level) { int collector_index = level->get_collector(); + const PStatClientData *client_data = get_client_data(); + const PStatCollectorDef &def = client_data->get_collector_def(collector_index); + indent(nout, indent_level) - << get_client_data()->get_collector_name(collector_index) - << " = " << level->get_net_value() * 1000.0 << " ms\n"; + << def._name << " = " << level->get_net_value() << " " + << def._level_units << "\n"; int num_children = level->get_num_children(); for (int i = 0; i < num_children; i++) { diff --git a/pandatool/src/text-stats/textMonitor.h b/pandatool/src/text-stats/textMonitor.h index bcb84bfb93..a242f357b4 100644 --- a/pandatool/src/text-stats/textMonitor.h +++ b/pandatool/src/text-stats/textMonitor.h @@ -42,6 +42,7 @@ public: virtual void lost_connection(); virtual bool is_thread_safe(); + void show_ms(const PStatViewLevel *level, int indent_level); void show_level(const PStatViewLevel *level, int indent_level); };