Class System

Inheritance Relationships

Derived Type

Class Documentation

class System

Platform-thread adapter.

State is always available; supported Events/Text channels are independently requested through scoped capture handles. Backends latch capture before pumping and publish the complete poll once. The initialized window is borrowed and must survive callback detachment. Bindings, device queries and polling belong to the platform owner; capture/ focus requests and acquired immutable handles may cross threads.

Subclassed by CE::Platform::GLFW::InputSystem

Public Functions

virtual ~System() = default
virtual void initialize(CE::Platform::Window &window) = 0
virtual void poll() = 0
virtual void deinitialize() = 0
virtual Actions::Bindings &bindings() = 0

Declaration: [[nodiscard]]

inline virtual std::shared_ptr<const Actions::Snapshot> action_snapshot()

Declaration: [[nodiscard]]

virtual DeviceId keyboard_id() const = 0

Declaration: [[nodiscard]]

virtual DeviceId mouse_id() const = 0

Declaration: [[nodiscard]]

virtual DeviceId gamepad_id() const = 0

Declaration: [[nodiscard]]

inline virtual bool supports(Capture::Channel mode) const

Declaration: [[nodiscard]]

inline virtual bool supports_focus() const

Declaration: [[nodiscard]]

Capture::Lease capture(Capture::Channel mode)

Declaration: [[nodiscard]]

Routing::Manager &routing()

Declaration: [[nodiscard]]

virtual std::shared_ptr<const PollSnapshot> poll_snapshot()

Declaration: [[nodiscard]]

Protected Functions

void begin_input_poll()
inline Capture::Collector &capture_buffer()

Declaration: [[nodiscard]]

std::shared_ptr<const PollSnapshot> publish_input(ObservationClock::time_point observed_at = ObservationClock::now())

Declaration: [[nodiscard]]

void discard_captured_input()