39 virtual
void try_resume(const
void* event) = 0;
46 [[nodiscard]] virtual
bool filter_matches(const
void* event) const = 0;
49 std::coroutine_handle<> m_handle;
50 bool m_is_suspended {};
83 , m_filter(
std::move(filter))
87 ~WindowEventAwaiter()
override;
103 void await_suspend(
std::coroutine_handle<> handle);
108 Core::WindowEvent await_resume();
114 void try_resume(const
void* event) override;
120 [[nodiscard]]
bool filter_matches(const
void* event) const override;
123 Vruta::WindowEventSource& m_source;
124 Vruta::WindowEventFilter m_filter;
125 Core::WindowEvent m_result;
127 friend class Vruta::WindowEventSource;
virtual ~EventAwaiter()=default
EventAwaiter & operator=(const EventAwaiter &)=delete
EventAwaiter(EventAwaiter &&) noexcept=default
EventAwaiter(const EventAwaiter &)=delete
Abstract base for all event-driven awaiters.
WindowEventAwaiter(WindowEventAwaiter &&) noexcept=default
WindowEventAwaiter & operator=(const WindowEventAwaiter &)=delete
WindowEventAwaiter(Vruta::WindowEventSource &source, Vruta::WindowEventFilter filter={})
WindowEventAwaiter(const WindowEventAwaiter &)=delete
Awaiter for suspending on GLFW window input events with optional filtering.
Awaitable stream of GLFW window input events.
Filter criteria for GLFW window input events.