3#include <cgv/media/color_scheme.h>
5#include <cgv/utils/stopwatch.h>
6#include <cgv_g2d/generic_2d_renderer.h>
7#include <cgv_g2d/msdf_text_geometry.h>
8#include <cgv_overlay/themed_canvas_overlay.h>
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;
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);
117#include <cgv/config/lib_end.h>
reference counted pointer, which can work together with types that are derived from ref_counted,...
themed_canvas_overlay()
creates an overlay in the bottom left corner with zero size using a canvas for 2d drawing
base class for all drawables, which is independent of the used rendering API.
A trivial stop watch class for time measurement.
Helper functions to convert numeric types into strings using std streams.
this header is dependency free
cgv::media::color< float, cgv::media::RGB > rgb
declare rgb color type with 32 bit components
cgv::math::fvec< int32_t, 2 > ivec2
declare type of 2d 32 bit integer vectors
cgv::math::fvec< float, 2 > vec2
declare type of 2d single precision floating point vectors