Doxygen Samurai Engine 0.0.1
Doxygen Samurai Engine Documentation
Loading...
Searching...
No Matches
pikaMain.cpp
Go to the documentation of this file.
1
2#include <filesystem>
3
4
6
7
8#include <editor/editor.h>
9
11
12
13
14static bool shouldClose = false;
15
16int main(int argc, char** argv)
17{
18
19
20#pragma region init global variables stuff
22#pragma endregion
23
24#pragma region log
27
28#pragma endregion
29
30
31#pragma region load dll
32 std::filesystem::path currentPath = std::filesystem::current_path();
33 samurai::LoadedDll loadedDll;
34 SAMURAI_ASSERT(loadedDll.tryToloadDllUntillPossible(0, logs, std::chrono::seconds(5)),
35 "Couldn't load dll");
36#pragma endregion
37
38#pragma region pika imgui id manager
40#pragma endregion
41
42#pragma region push notification manager
43
44#pragma endregion
45
46
47#pragma region init window opengl imgui and context
48#if !SAMURAI_SDL
49 SAMURAI_ASSERT(glfwInit(), "Problem initializing glfw");
50 //glfwSetErrorCallback(error_callback); todo
51 samurai::Window window = {};
52 window.create();
53
54 SAMURAI_ASSERT(gladLoadGL(), "Problem initializing glad");
55
56 //logs.log((const char*)glGetString(GL_VERSION));
57
58
60
61 window.context.glfwMakeContextCurrentPtr = glfwMakeContextCurrent;
62#else
63 SDL_Init(SDL_INIT_EVERYTHING);
64 samurai::Window window = {};
65 window.create();
67 imguiIdsManager.wind = window.context.wind;
68#endif
69#pragma endregion
70
71#pragma region container manager
72
73 samurai::ContainerManager containerManager;
74
75 containerManager.init();
76
77#pragma endregion
78
79#pragma region init dll reaml
80
81 loadedDll.gameplayStart_(window.context);
82
83
84#pragma endregion
85
86
87
88#pragma region shortcuts
89 samurai::ShortcutManager shortcutManager;
90#pragma endregion
91
92#pragma region editor
93
94 samurai::Editor editor;
95
96
97 editor.init(shortcutManager, imguiIdsManager);
98
99#pragma endregion
100
101 auto container = containerManager.createContainer
102 (loadedDll.containerInfo[0], loadedDll, logs, imguiIdsManager, std::string());
103
104
105 while (!shouldClose)
106 {
107 if (window.shouldClose())
108 {
109 shouldClose = true;
110 break;
111 }
112
113
114 #pragma region start imgui
116 #pragma endregion
117
118 #pragma region clear screen
119
120
121#if !SAMURAI_SDL
122 glClear(GL_COLOR_BUFFER_BIT);
123#else
124 SDL_SetRenderDrawColor(window.context.renderer, 0, 0, 0, 255);
125 SDL_RenderClear(window.context.renderer);
126#endif
127
128
129 #pragma endregion
130
131 #pragma region editor stuff
132 editor.update(window.input, shortcutManager, logs,
133 loadedDll, imguiIdsManager, containerManager);
134 #pragma endregion
135
136
137
138 #pragma region container manager
139
140 if (editor.shouldReloadDll)
141 {
142 editor.shouldReloadDll = false;
143 containerManager.reloadDll(loadedDll, window, logs);
144 }
145
146 containerManager.update(loadedDll, window, logs, imguiIdsManager);
147
148 #pragma endregion
149
150 #pragma region end imgui frame
152 #pragma endregion
153
154 #pragma region window update
155 window.update();
156 #pragma endregion
157
158 #pragma region shortcut manager update
159 shortcutManager.update(window.input);
160 #pragma endregion
161
162 editor.saveFlagsData();
163
164
165 window.saveWindowPositions();
166
167 }
168
169 editor.saveFlagsData();
170
171 window.saveWindowPositions();
172
173
174 containerManager.destroyAllContainers(loadedDll, logs);
175
176
177
178
179 //terminate();
180
181 return 0;
182}
#define SAMURAI_ASSERT(expression, comment)
Definition assert.h:40
void initImgui(Context &pikaContext)
Definition gui.cpp:27
void imguiEndFrame(Context pikaContext)
Definition gui.cpp:110
void imguiStartFrame(Context pikaContext)
Definition gui.cpp:93
void initShortcutApi()
static bool shouldClose
Definition pikaMain.cpp:14
int main(int argc, char **argv)
Definition pikaMain.cpp:16
void destroyAllContainers(samurai::LoadedDll &loadedDll, samurai::LogManager &logManager)
void update(samurai::LoadedDll &loadedDll, samurai::Window &window, samurai::LogManager &logs, samurai::samuraiImgui::ImGuiIdsManager &imguiIdManager)
containerId_t createContainer(samurai::ContainerInformation containerInformation, samurai::LoadedDll &loadedDll, samurai::LogManager &logManager, samurai::samuraiImgui::ImGuiIdsManager &imguiIDsManager, std::string &cmd, size_t memoryPos=0)
void reloadDll(samurai::LoadedDll &loadedDll, samurai::Window &window, samurai::LogManager &logs)
GLFWwindow * wind
Definition Context.h:19
glfwMakeContextCurrent_t * glfwMakeContextCurrentPtr
Definition Context.h:18
void saveFlagsData()
Definition editor.cpp:224
void init(samurai::ShortcutManager &shortcutManager, samurai::samuraiImgui::ImGuiIdsManager &imguiIDManager)
Definition editor.cpp:21
bool shouldReloadDll
Definition editor.h:50
void update(const samurai::Input &input, samurai::ShortcutManager &shortcutManager, samurai::LogManager &logs, samurai::LoadedDll &loadedDll, samurai::samuraiImgui::ImGuiIdsManager &imguiIDsManager, samurai::ContainerManager &containerManager)
Definition editor.cpp:54
static constexpr const char * DefaultLogFile
Definition log.h:18
void init(std::string name)
Definition log.cpp:6
void update(const samurai::Input &input)
void saveWindowPositions()
Definition window.cpp:74
bool shouldClose()
Definition window.cpp:94
Input input
Definition window.h:31
void create()
Definition window.cpp:18
samurai::Context context
Definition window.h:26