43 void destroy_window(const
std::shared_ptr<
Window>& window);
50 bool destroy_window_by_title(const
std::
string& title);
55 std::vector<
std::shared_ptr<
Window>> get_windows() const;
61 std::shared_ptr<
Window> find_window(const
std::
string& title) const;
67 std::shared_ptr<
Window> get_window(
size_t index) const;
72 size_t window_count()
const {
return m_windows.size(); }
78 bool any_window_should_close()
const;
84 size_t destroy_closed_windows();
109 void register_frame_hook(
const std::string& name,
110 std::function<
void()> hook);
116 void unregister_frame_hook(
const std::string& name);
131 std::shared_ptr<Window> create_window_internal(
const WindowCreateInfo& create_info);
134 std::atomic<bool> m_should_stop {
false };
139 void remove_from_lookup(
const std::shared_ptr<Window>& window);
std::vector< std::shared_ptr< Window > > get_processing_windows() const
Get windows registered for processing.
const GraphicsSurfaceInfo & get_config() const
Gets the global graphics configuration.
WindowManager & operator=(const WindowManager &)=delete
WindowManager(const WindowManager &)=delete
std::mutex m_hooks_mutex
Mutex for protecting m_windows and m_window_lookup.
std::vector< std::shared_ptr< Window > > m_windows
WindowManager(WindowManager &&) noexcept=delete
GlobalGraphicsConfig m_config
std::unordered_map< std::string, std::function< void()> > m_frame_hooks
Calls all registered frame hooks.
std::unordered_map< std::string, std::weak_ptr< Window > > m_window_lookup
std::vector< std::shared_ptr< Window > > m_processing_windows
Manages window lifecycle and GLFW event polling.
Platform-agnostic window wrapper.
System-wide configuration for visual stream processing.
Configuration for creating a single window instance.