#pragma once #include "../architecture/Plot_Render_Context.h" #include "../architecture/Update_Completion.h" #include "../base/Color.h" #include "../base/Geometry.h" #include #include #include #include namespace renderive { struct Render_Frame_Snapshot { std::shared_ptr context; Size size; Color background_color = Color::black(); std::uint64_t frame_time_ns{}; std::uint64_t previous_frame_time_ns{}; Frame_Lifecycle_Record* frame_metadata{}; std::pmr::vector>* frame_update_states{}; mutable std::shared_ptr timeline_cache = std::make_shared(); [[nodiscard]] bool destroying() const { return !context || context->destroying.load(std::memory_order_acquire); } [[nodiscard]] std::shared_ptr timeline_snapshot( const std::shared_ptr& stream, int time_point_size, int label_tick_interval, bool start_coord_to_end_coord) const; }; } // namespace renderive