PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
application_internal.h
1#pragma once
2
3#include "pixelbullet/application/application.h"
4
5#include <memory>
6#include <optional>
7#include <utility>
8
9namespace pixelbullet
10{
11class Audio;
12class Filesystem;
13class Graphics;
14class LayerStack;
16class UiFrameLayer;
17class Window;
18
19class ApplicationState
20{
21public:
22 ApplicationState(ApplicationSpecification specification_in, ApplicationLaunchOptions launch_options_in);
23 ~ApplicationState();
24
25 std::unique_ptr<Filesystem> filesystem;
26 std::unique_ptr<GraphicsResourceCache> graphics_resource_cache;
27 std::unique_ptr<Window> window;
28 std::unique_ptr<Graphics> graphics;
29 std::unique_ptr<Audio> audio;
30 std::unique_ptr<LayerStack> layer_stack;
31 UiFrameLayer* ui_frame_layer = nullptr;
32
33 ApplicationSpecification specification;
34 ApplicationLaunchOptions launch_options;
35 bool running = true;
36 bool minimized = false;
37 std::optional<double> last_frame_time_seconds;
38};
39} // namespace pixelbullet
Definition audio.h:25
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 layer.h:17
Definition window.h:30
Definition specification.h:53
Contains configuration options for both the game and the engine.
Definition specification.h:82