19 ivec2 total_size = { 0 };
22 cgv::g2d::irect content_rect;
23 cgv::g2d::irect plot_rect;
25 void update(
const ivec2& parent_size) {
27 content_rect.position =
ivec2(padding, padding);
28 content_rect.size = total_size - 2 * padding;
30 plot_rect = content_rect;
31 plot_rect.
size.y() = 30;
40 bool enabled_only_when_visible =
false;
44 unsigned total_frame_count = 0u;
46 unsigned interval_frame_count = 0u;
48 double interval = 0.25;
50 double last_seconds_since_start = 0.0;
52 double delta_time = 0.0;
54 double running_time = 0.0;
60 total_frame_count = 0u;
61 interval_frame_count = 0u;
62 last_seconds_since_start = 0.0;
67 bool invert_color =
false;
68 bool show_plot =
true;
70 cgv::g2d::generic_2d_renderer bar_renderer;
71 DEFINE_GENERIC_RENDER_DATA_CLASS(bar_geometry, 3,
vec2, position,
vec2, size,
rgb, color);
75 cgv::g2d::shape2d_style border_style, bar_style;
76 cgv::g2d::line2d_style line_style;
80 cgv::g2d::text2d_style text_style, tick_text_style;
81 cgv::g2d::msdf_text_geometry static_text_geometry;
82 cgv::g2d::msdf_text_geometry dynamic_text_geometry;
84 void init_styles()
override;
90 void on_visibility_change()
override;
91 void create_gui_impl()
override;
95 std::string
get_type_name()
const override {
return "performance_monitor"; }
106 void set_invert_color(
bool flag);
108 void enable_monitoring(
bool enabled);
109 void enable_monitoring_only_when_visible(
bool enabled);
base class for all drawables, which is independent of the used rendering API.