23 using mem_buf = hpp::small_vector<char, 250>;
36 level::level_enum
level{level::off};
45 level::level_enum
level{level::off};
53 using entries_t = hpp::stack_ringbuffer<log_entry, 1024>;
56 void sink_it_(
const details::log_msg& msg)
override;
75 auto
snapshot_logs(level::level_enum min_level,
size_t max_count, uint64_t after_id = 0) const
82 auto has_new_entries() const ->
bool;
83 void set_has_new_entries(
bool val);
85 auto draw_log(const
log_entry& msg,
int num_lines) ->
bool;
86 void draw_range(const hpp::string_view& formatted,
size_t start,
size_t end);
87 void draw_filter_button(level::level_enum level);
89 std::array<
bool,
size_t(level::n_levels)> enabled_categories_{};
91 mutable std::recursive_mutex entries_mutex_;
95 std::atomic<bool> has_new_entries_ = {
false};
97 std::atomic<int64_t> new_entries_begin_idx_{-1};
99 ImGuiTextFilter filter_;
101 uint64_t current_id_{};
102 hpp::optional<log_entry> selected_log_{};
104 bool clear_on_play_{
true};
105 bool clear_on_recompile_{
true};
auto snapshot_logs(level::level_enum min_level, size_t max_count, uint64_t after_id=0) const -> std::vector< log_snapshot_entry >
Snapshot recent log entries (thread-safe). Newest-last order. Filters by min_level (inclusive) and op...
std::vector< math::vec3 > start