#pragma once #include "Frame_Scheduler.h" #include #include #include #include #include #include #include namespace renderive { class Plot_Core; class Timeline_Stream; struct Plot_Render_Context { std::atomic_bool destroying{false}; std::atomic_bool first_resize{true}; std::atomic_bool first_prepare_data{true}; std::atomic_int render_width{0}; std::atomic_int render_height{0}; std::atomic viewport_version{0}; std::atomic background_rgba{0xff000000u}; std::shared_ptr frame_lifecycle_observer; std::mutex performance_update_callback_mutex; std::function performance_update_callback; std::mutex performance_clipboard_callback_mutex; std::function performance_clipboard_callback; std::atomic performance_plot_id{0}; mutable std::mutex performance_plot_name_mutex; std::string performance_plot_name; std::atomic owner{}; }; } // namespace renderive