Pioneer
Loading...
Searching...
No Matches
EditorApp.h
Go to the documentation of this file.
1// Copyright © 2008-2024 Pioneer Developers. See AUTHORS.txt for details
2// Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3
4#pragma once
5
7#include "core/TaskGraph.h"
8
9namespace argh {
10 class parser;
11} // namespace argh
12
13namespace Graphics {
14 class Renderer;
15} // namespace Graphics
16
17namespace Editor {
18 class Modal;
19
20 class EditorApp : public GuiApplication {
21 public:
22 EditorApp();
23 ~EditorApp();
24
25 static EditorApp *Get();
26
27 void Initialize(argh::parser &cmdline);
28
30
31 void SetAppName(std::string_view name);
32
33 template<typename T, typename ...Args>
35 {
36 T *modal = new T(this, args...);
37 PushModalInternal(modal);
38 return RefCountedPtr<T>(modal);
39 }
40
41 protected:
42 void OnStartup() override;
43 void OnShutdown() override;
44
45 void PreUpdate() override;
46 void PostUpdate() override;
47
48 friend class LoadingPhase;
49 std::vector<TaskSet::Handle> &GetLoadingTasks() { return m_loadingTasks; }
50
51 private:
52 void PushModalInternal(Modal *m);
53
54 std::vector<TaskSet::Handle> m_loadingTasks;
55 Graphics::Renderer *m_renderer;
56
57 std::vector<RefCountedPtr<Modal>> m_modalStack;
58 std::unique_ptr<IniConfig> m_editorCfg;
59
60 std::string m_appName;
61 };
62
64 public:
67 m_app(app)
68 {}
69
70 protected:
71 void Update(float dt) override;
72
73 private:
74 EditorApp *m_app;
75 float minRuntime = 1.f;
76 };
77
78} // namespace Editor
Definition: Application.h:21
Lifecycle()
Definition: Application.h:23
Definition: Application.h:16
Definition: EditorApp.h:20
EditorApp()
Definition: EditorApp.cpp:27
void OnShutdown() override
Definition: EditorApp.cpp:134
void SetAppName(std::string_view name)
Definition: EditorApp.cpp:81
std::vector< TaskSet::Handle > & GetLoadingTasks()
Definition: EditorApp.h:49
void PostUpdate() override
Definition: EditorApp.cpp:154
void OnStartup() override
Definition: EditorApp.cpp:91
~EditorApp()
Definition: EditorApp.cpp:32
void Initialize(argh::parser &cmdline)
Definition: EditorApp.cpp:42
static EditorApp * Get()
Definition: EditorApp.cpp:36
RefCountedPtr< T > PushModal(Args &&...args)
Definition: EditorApp.h:34
void AddLoadingTask(TaskSet::Handle handle)
Definition: EditorApp.cpp:76
void PreUpdate() override
Definition: EditorApp.cpp:148
Definition: EditorApp.h:63
LoadingPhase(EditorApp *app)
Definition: EditorApp.h:65
void Update(float dt) override
Definition: EditorApp.cpp:188
Definition: Modal.h:15
Definition: Renderer.h:45
Definition: GuiApplication.h:27
Definition: RefCounted.h:36
Definition: ActionBinder.h:14
Definition: Background.h:14
Definition: EditorApp.h:9
Definition: TaskGraph.h:99