Class Context

Class Documentation

class Context

Declaration: final

Owns a compatible set of platform, presentation, rendering, and resource adapters.

Input can be owned or explicitly borrowed. Owned input is destroyed before resources, renderer, surface, and display, so callbacks detach from a live window. GameRuntime coordinates their initialization and shutdown; this is not a game loop. One context supports one runtime session; stopped adapters are not restarted. Null adapters/owned input or a zero owned worker count throw on construction. Borrowed input must survive runtime cleanup/context lifetime and detach from the display’s live window before its destruction. Adapter use retains its affinity.

Public Functions

Context(std::unique_ptr<CE::Platform::DisplaySystem> display, std::unique_ptr<CE::Rendering::PresentationSurface> surface, std::unique_ptr<CE::Rendering::Renderer> renderer, std::unique_ptr<CE::Rendering::Resources::Provider> resources, CE::Input::System &input, ExecutionOptions execution = ExecutionOptions{})
Context(std::unique_ptr<CE::Platform::DisplaySystem> display, std::unique_ptr<CE::Rendering::PresentationSurface> surface, std::unique_ptr<CE::Rendering::Renderer> renderer, std::unique_ptr<CE::Rendering::Resources::Provider> resources, std::unique_ptr<CE::Input::System> input, ExecutionOptions execution = ExecutionOptions{})
~Context()
Context(const Context&) = delete
Context &operator=(const Context&) = delete
CE::Platform::DisplaySystem &display() const

Declaration: [[nodiscard]]

CE::Platform::Window &window() const

Declaration: [[nodiscard]]

CE::Rendering::PresentationSurface &surface() const

Declaration: [[nodiscard]]

CE::Rendering::Renderer &renderer() const

Declaration: [[nodiscard]]

CE::Rendering::Resources::Provider &resources() const

Declaration: [[nodiscard]]

CE::Input::System &input() const

Declaration: [[nodiscard]]

inline PlatformDispatcher &platform_dispatcher()

Declaration: [[nodiscard]]

inline CE::Diagnostics::DomainId diagnostic_id() const noexcept

Declaration: [[nodiscard]]

CE::Workers::Group make_worker_group(CE::Workers::GroupOptions options = CE::Workers::GroupOptions{})

Declaration: [[nodiscard]]