#ifndef LIB94_BENCH_CORE_WIDGET_HPP #define LIB94_BENCH_CORE_WIDGET_HPP #include #include class core_widget : public Gtk::Widget { public: core_widget(); void clear_all(); void age_all(); void add_new_writes(const std::set &writes); void add_new_reads(const std::set &reads); void add_new_executions(const std::set &executions); void measure_vfunc(Gtk::Orientation orientation, int for_size, int &minimum, int &natural, int &minimum_baseline, int &natural_baseline) const override; void snapshot_vfunc(const Glib::RefPtr &snapshot); float age_scale; std::chrono::nanoseconds last_draw_time; std::mutex mut; private: uint8_t write_values[LIB94_CORE_SIZE]; uint8_t read_values[LIB94_CORE_SIZE]; uint8_t execute_values[LIB94_CORE_SIZE]; std::set to_draw_write; std::set to_draw_read; std::set to_draw_execute; Glib::RefPtr pixbuf; int last_width; int last_height; int scale; int cpr; int xpad; int ypad; void draw(int width, int height); }; #endif