44 void destroy_window(const
std::shared_ptr<
Window>& window,
bool cleanup_backend = false);
51 bool destroy_window_by_title(const
std::
string& title);
56 std::vector<
std::shared_ptr<
Window>> get_windows() const;
62 std::shared_ptr<
Window> find_window(const
std::
string& title) const;
68 std::shared_ptr<
Window> get_window(
size_t index) const;
73 size_t window_count()
const {
return m_windows.size(); }
79 bool any_window_should_close()
const;
85 size_t destroy_closed_windows();
110 void register_frame_hook(
const std::string& name,
111 std::function<
void()> hook);
117 void unregister_frame_hook(
const std::string& name);
140 std::shared_ptr<Window> create_window_internal(
const WindowCreateInfo& create_info);
143 std::atomic<bool> m_should_stop {
false };
148 void remove_from_lookup(
const std::shared_ptr<Window>& window);
160 std::atomic<bool> m_terminate {
false };
void set_terminate()
Set terminate flag to stop event loop thread.
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.