3#include "pixelbullet/core/event.h"
5#include "pixelbullet/window/window_events.h"
7#include "pixelbullet/application/specification.h"
17using ApplicationFactory = std::unique_ptr<Application> (*)(
const ApplicationBootstrap& bootstrap);
19namespace integration::application::runtime
21class ApplicationHostControlBinding;
87 template <
typename T,
typename... Args>
90 static_assert(std::is_base_of<Layer, T>::value,
"T must be derived from Layer");
91 auto layer = std::make_unique<T>(std::forward<Args>(args)...);
92 return static_cast<T*
>(PushLayerImpl(std::move(layer)));
99 template <
typename T,
typename... Args>
102 static_assert(std::is_base_of<Layer, T>::value,
"T must be derived from Layer");
103 auto layer = std::make_unique<T>(std::forward<Args>(args)...);
104 return static_cast<T*
>(PushOverlayImpl(std::move(layer)));
137 void Start() noexcept;
138 void Stop() noexcept;
140 [[nodiscard]]
bool IsRunning() const noexcept;
145 friend class integration::application::runtime::ApplicationHostControlBinding;
172 Layer* PushLayerImpl(std::unique_ptr<Layer> layer);
173 Layer* PushOverlayImpl(std::unique_ptr<Layer> layer);
174 void RegisterUiFrameLayer(Layer* layer);
176 std::unique_ptr<ApplicationState> state_;
Definition application_internal.h:23
Main application class.
Definition application.h:44
Application(ApplicationSpecification specification, const ApplicationBootstrap &bootstrap)
Definition application.cc:71
T * PushLayer(Args &&... args)
Definition application.h:88
void OnEvent(pixelbullet::core::Event &e)
Definition application.cc:341
Window & GetWindow()
Definition application.cc:216
Application & operator=(const Application &)=delete
const ApplicationSpecification & GetSpecification() const
Definition application.cc:211
Application(const Application &)=delete
Audio & GetAudio()
Definition application.cc:228
T * PushOverlay(Args &&... args)
Definition application.h:100
Graphics & GetGraphics()
Definition application.cc:222
virtual ~Application()
Definition application.cc:153
Application & operator=(Application &&)=delete
Application(Application &&)=delete
Definition filesystem.h:20
Definition graphics_resource_cache.h:16
Host-facing graphics subsystem shell.
Definition graphics.h:21
Definition layer_stack.h:12
Definition window_events.h:43
Definition window_events.h:11
Definition specification.h:63
Contains configuration options for both the game and the engine.
Definition specification.h:84