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);
82 template <
typename T,
typename... Args>
85 static_assert(std::is_base_of<Layer, T>::value,
"T must be derived from Layer");
86 auto layer = std::make_unique<T>(std::forward<Args>(args)...);
87 return static_cast<T*
>(PushLayerImpl(std::move(layer)));
94 template <
typename T,
typename... Args>
97 static_assert(std::is_base_of<Layer, T>::value,
"T must be derived from Layer");
98 auto layer = std::make_unique<T>(std::forward<Args>(args)...);
99 return static_cast<T*
>(PushOverlayImpl(std::move(layer)));
132 void Start() noexcept;
133 void Stop() noexcept;
135 [[nodiscard]]
bool IsRunning() const noexcept;
165 Layer* PushLayerImpl(std::unique_ptr<Layer> layer);
166 Layer* PushOverlayImpl(std::unique_ptr<Layer> layer);
167 void RegisterUiFrameLayer(Layer* layer);
169 std::unique_ptr<ApplicationState> state_;
Definition application_internal.h:20
Main application class.
Definition application.h:39
Application(ApplicationSpecification specification, const ApplicationBootstrap &bootstrap)
Definition application.cc:71
T * PushLayer(Args &&... args)
Definition application.h:83
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:95
Graphics & GetGraphics()
Definition application.cc:222
virtual ~Application()
Definition application.cc:153
Application & operator=(Application &&)=delete
Application(Application &&)=delete
Definition filesystem.h:19
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:61
Contains configuration options for both the game and the engine.
Definition specification.h:82