Skip to content

Commit 805e3a4

Browse files
authored
heavy refactor of initilization (#84)
- refactor vkinit functions - fix some resizing issues
1 parent 8f7e7ac commit 805e3a4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1253
-643
lines changed

Engine/Engine.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Engine::~Engine()
3232
{
3333
vkDeviceWaitIdle(mp_renderer->GetDevice());
3434

35-
mp_renderer->cleanSwapchain();
35+
mp_renderer->clean_swapchain();
3636

3737
mp_scene->CleanRessources(mp_renderer);
3838
mp_scene.reset();
@@ -145,7 +145,7 @@ void Engine::BindKeyToFunc(const int& key, std::function<void()>& func, const Ac
145145
mp_controller->SetKeyToFunc(key, func, type);
146146
}
147147

148-
const std::shared_ptr<Camera> Engine::GetMainCamera()
148+
std::shared_ptr<Camera> Engine::GetMainCamera() const
149149
{
150150
return mp_main_camera;
151151
}
@@ -175,9 +175,9 @@ void Engine::RenderUI(UI& ui)
175175
m_UIs.push_back(&ui);
176176
}
177177

178-
void Engine::RemoveUI(UI& ui)
178+
void Engine::RemoveUI(const UI& ui)
179179
{
180-
for (auto it = m_UIs.begin(); it != m_UIs.end(); it++)
180+
for (auto it = m_UIs.begin(); it != m_UIs.end(); ++it)
181181
{
182182
if (*it == &ui)
183183
{
@@ -187,7 +187,7 @@ void Engine::RemoveUI(UI& ui)
187187
}
188188
}
189189

190-
const bool& Engine::shouldClose()
190+
bool Engine::shouldClose() const
191191
{
192192
return glfwWindowShouldClose(&mp_window->getHandle());
193193
}
@@ -196,8 +196,8 @@ void Engine::update()
196196
{
197197
glfwPollEvents();
198198

199-
std::chrono::time_point<std::chrono::high_resolution_clock> current_time = std::chrono::high_resolution_clock::now();
200-
float delta_time = std::chrono::duration<float, std::chrono::seconds::period>(current_time - m_last_time).count();
199+
const std::chrono::time_point<std::chrono::high_resolution_clock> current_time = std::chrono::high_resolution_clock::now();
200+
const float delta_time = std::chrono::duration<float, std::chrono::seconds::period>(current_time - m_last_time).count();
201201

202202
mp_controller->Update(delta_time);
203203

@@ -213,9 +213,9 @@ void Engine::update()
213213

214214
mp_scene->Update(frame);
215215

216-
mp_renderer->BeginRecordCommandBuffers(mp_renderer->GetCommandBuffer(frame), mp_renderer->GetFrameBuffer(frame));
216+
mp_renderer->begin_render(frame);
217217
mp_scene->Render(mp_renderer->GetCommandBuffer(frame), frame);
218-
mp_renderer->EndRecordCommandBuffers(mp_renderer->GetCommandBuffer(frame));
218+
mp_renderer->end_render(frame);
219219

220220
mp_scene->Clean(frame);
221221
mp_renderer->SetUpdated(frame);

Engine/Engine.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class Engine
3838
void BindKeyToFunc(const int& key, std::function<void()>& func, const ActionType& type = ActionType::R3D_PRESS);
3939

4040
// CAMERA
41-
const std::shared_ptr<Camera> GetMainCamera();
41+
std::shared_ptr<Camera> GetMainCamera() const;
4242

4343
// VIEWING
4444
void SetWireframeMode();
@@ -47,9 +47,9 @@ class Engine
4747
void SetColorMode(const ColorMode color_map);
4848

4949
void RenderUI(UI& ui);
50-
void RemoveUI(UI& ui);
50+
void RemoveUI(const UI& ui);
5151

52-
const bool& shouldClose();
52+
bool shouldClose() const;
5353

5454
private:
5555
std::unique_ptr<Window> mp_window;

Engine/Engine.vcxproj

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,25 @@
5555
<ClCompile Include="Engine.cpp" />
5656
<ClCompile Include="graphics\Math.cpp" />
5757
<ClCompile Include="Logger.cpp" />
58+
<ClCompile Include="renderer\callback.cpp" />
59+
<ClCompile Include="renderer\helper.cpp" />
60+
<ClCompile Include="renderer\pipeline.cpp" />
5861
<ClCompile Include="renderer\Renderer.cpp" />
62+
<ClCompile Include="renderer\vbuffer.cpp" />
63+
<ClCompile Include="renderer\vcommandbuffer.cpp" />
64+
<ClCompile Include="renderer\vdescriptorset.cpp" />
5965
<ClCompile Include="renderer\vdevices.cpp" />
66+
<ClCompile Include="renderer\vframebuffer.cpp" />
67+
<ClCompile Include="renderer\vimage.cpp" />
6068
<ClCompile Include="renderer\vinstance.cpp" />
69+
<ClCompile Include="renderer\vrenderpass.cpp" />
6170
<ClCompile Include="renderer\vshader.cpp" />
6271
<ClCompile Include="renderer\vsurface.cpp" />
72+
<ClCompile Include="renderer\vswapchain.cpp" />
6373
<ClCompile Include="renderer\vsync_obj.cpp" />
6474
<ClCompile Include="renderer\VulkanBuffer.cpp" />
65-
<ClCompile Include="renderer\VulkanCommandBuffer.cpp" />
66-
<ClCompile Include="renderer\VulkanCommandPool.cpp" />
6775
<ClCompile Include="renderer\VulkanDescriptor.cpp" />
6876
<ClCompile Include="renderer\VulkanPipeline.cpp" />
69-
<ClCompile Include="renderer\VulkanRenderPass.cpp" />
70-
<ClCompile Include="renderer\VulkanSwapchain.cpp" />
7177
<ClCompile Include="ui\ConsoleUI.cpp" />
7278
<ClCompile Include="ui\UI.cpp" />
7379
<ClCompile Include="ui\Watcher.cpp" />
@@ -103,20 +109,28 @@
103109
<ClInclude Include="graphics\Vertex.h" />
104110
<ClInclude Include="Logger.h" />
105111
<ClInclude Include="log_type.h" />
112+
<ClInclude Include="renderer\callback.h" />
106113
<ClInclude Include="renderer\frame.h" />
114+
<ClInclude Include="renderer\helper.h" />
107115
<ClInclude Include="renderer\parameters.h" />
116+
<ClInclude Include="renderer\pipeline.h" />
117+
<ClInclude Include="renderer\render.h" />
108118
<ClInclude Include="renderer\Renderer.h" />
119+
<ClInclude Include="renderer\iswapchain.h" />
120+
<ClInclude Include="renderer\vbuffer.h" />
121+
<ClInclude Include="renderer\vcommandbuffer.h" />
122+
<ClInclude Include="renderer\vdescriptorset.h" />
123+
<ClInclude Include="renderer\vframebuffer.h" />
124+
<ClInclude Include="renderer\vimage.h" />
109125
<ClInclude Include="renderer\vinstance.h" />
126+
<ClInclude Include="renderer\vrenderpass.h" />
110127
<ClInclude Include="renderer\vshader.h" />
111128
<ClInclude Include="renderer\vsurface.h" />
129+
<ClInclude Include="renderer\vswapchain.h" />
112130
<ClInclude Include="renderer\vsync_obj.h" />
113131
<ClInclude Include="renderer\VulkanBuffer.h" />
114-
<ClInclude Include="renderer\VulkanCommandBuffer.h" />
115-
<ClInclude Include="renderer\VulkanCommandPool.h" />
116132
<ClInclude Include="renderer\VulkanDescriptor.h" />
117133
<ClInclude Include="renderer\VulkanPipeline.h" />
118-
<ClInclude Include="renderer\VulkanRenderPass.h" />
119-
<ClInclude Include="renderer\VulkanSwapchain.h" />
120134
<ClInclude Include="ui\ConsoleUI.h" />
121135
<ClInclude Include="ui\UI.h" />
122136
<ClInclude Include="ui\Watcher.h" />
@@ -133,7 +147,7 @@
133147
<ClInclude Include="renderer\queue_family.h" />
134148
<ClInclude Include="renderer\swapchain_details.h" />
135149
<ClInclude Include="renderer\vdevices.h" />
136-
<ClInclude Include="renderer\interface.h" />
150+
<ClInclude Include="renderer\ihardware.h" />
137151
</ItemGroup>
138152
<ItemGroup>
139153
<None Include="ClassDiagram.cd" />

Engine/Engine.vcxproj.filters

Lines changed: 95 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,18 @@
2828
<Filter Include="Engine\renderer">
2929
<UniqueIdentifier>{fc06610a-7ac2-4f0f-b638-951b5eff3bd8}</UniqueIdentifier>
3030
</Filter>
31+
<Filter Include="Engine\renderer\types">
32+
<UniqueIdentifier>{f3e3473b-cdcf-41cb-9b21-daffc534426b}</UniqueIdentifier>
33+
</Filter>
34+
<Filter Include="Engine\renderer\hardware">
35+
<UniqueIdentifier>{c08b9ff5-11d7-40f4-bac1-16823a923614}</UniqueIdentifier>
36+
</Filter>
37+
<Filter Include="Engine\renderer\swapchain">
38+
<UniqueIdentifier>{194b00b0-2548-4fe1-8830-be83c872e1c0}</UniqueIdentifier>
39+
</Filter>
40+
<Filter Include="Engine\renderer\render">
41+
<UniqueIdentifier>{5e1a27b0-312e-4894-a2ea-2d7d8d59fac9}</UniqueIdentifier>
42+
</Filter>
3143
</ItemGroup>
3244
<ItemGroup>
3345
<ClCompile Include="Logger.cpp">
@@ -96,43 +108,59 @@
96108
<ClCompile Include="renderer\VulkanBuffer.cpp">
97109
<Filter>Engine\renderer</Filter>
98110
</ClCompile>
99-
<ClCompile Include="renderer\VulkanCommandBuffer.cpp">
100-
<Filter>Engine\renderer</Filter>
101-
</ClCompile>
102-
<ClCompile Include="renderer\VulkanCommandPool.cpp">
103-
<Filter>Engine\renderer</Filter>
104-
</ClCompile>
105111
<ClCompile Include="renderer\VulkanDescriptor.cpp">
106112
<Filter>Engine\renderer</Filter>
107113
</ClCompile>
108114
<ClCompile Include="renderer\VulkanPipeline.cpp">
109115
<Filter>Engine\renderer</Filter>
110116
</ClCompile>
111-
<ClCompile Include="renderer\VulkanRenderPass.cpp">
112-
<Filter>Engine\renderer</Filter>
113-
</ClCompile>
114-
<ClCompile Include="renderer\VulkanSwapchain.cpp">
115-
<Filter>Engine\renderer</Filter>
116-
</ClCompile>
117117
<ClCompile Include="ui\UI.cpp">
118118
<Filter>Engine\UI</Filter>
119119
</ClCompile>
120120
<ClCompile Include="ui\Watcher.cpp">
121121
<Filter>Engine\UI</Filter>
122122
</ClCompile>
123+
<ClCompile Include="renderer\callback.cpp" />
123124
<ClCompile Include="renderer\vdevices.cpp">
124-
<Filter>Engine\renderer</Filter>
125+
<Filter>Engine\renderer\hardware</Filter>
125126
</ClCompile>
126127
<ClCompile Include="renderer\vinstance.cpp">
127-
<Filter>Engine\renderer</Filter>
128+
<Filter>Engine\renderer\hardware</Filter>
129+
</ClCompile>
130+
<ClCompile Include="renderer\vsurface.cpp">
131+
<Filter>Engine\renderer\hardware</Filter>
132+
</ClCompile>
133+
<ClCompile Include="renderer\vswapchain.cpp">
134+
<Filter>Engine\renderer\swapchain</Filter>
135+
</ClCompile>
136+
<ClCompile Include="renderer\vframebuffer.cpp">
137+
<Filter>Engine\renderer\swapchain</Filter>
138+
</ClCompile>
139+
<ClCompile Include="renderer\vdescriptorset.cpp">
140+
<Filter>Engine\renderer\swapchain</Filter>
141+
</ClCompile>
142+
<ClCompile Include="renderer\vrenderpass.cpp">
143+
<Filter>Engine\renderer\swapchain</Filter>
144+
</ClCompile>
145+
<ClCompile Include="renderer\vcommandbuffer.cpp">
146+
<Filter>Engine\renderer\swapchain</Filter>
128147
</ClCompile>
129148
<ClCompile Include="renderer\vshader.cpp">
149+
<Filter>Engine\renderer\render</Filter>
150+
</ClCompile>
151+
<ClCompile Include="renderer\vimage.cpp">
152+
<Filter>Engine\renderer\render</Filter>
153+
</ClCompile>
154+
<ClCompile Include="renderer\vsync_obj.cpp">
130155
<Filter>Engine\renderer</Filter>
131156
</ClCompile>
132-
<ClCompile Include="renderer\vsurface.cpp">
157+
<ClCompile Include="renderer\helper.cpp">
133158
<Filter>Engine\renderer</Filter>
134159
</ClCompile>
135-
<ClCompile Include="renderer\vsync_obj.cpp">
160+
<ClCompile Include="renderer\pipeline.cpp">
161+
<Filter>Engine\renderer</Filter>
162+
</ClCompile>
163+
<ClCompile Include="renderer\vbuffer.cpp">
136164
<Filter>Engine\renderer</Filter>
137165
</ClCompile>
138166
</ItemGroup>
@@ -236,77 +264,92 @@
236264
<ClInclude Include="renderer\VulkanBuffer.h">
237265
<Filter>Engine\renderer</Filter>
238266
</ClInclude>
239-
<ClInclude Include="renderer\VulkanCommandBuffer.h">
240-
<Filter>Engine\renderer</Filter>
241-
</ClInclude>
242-
<ClInclude Include="renderer\VulkanCommandPool.h">
243-
<Filter>Engine\renderer</Filter>
244-
</ClInclude>
245267
<ClInclude Include="renderer\VulkanDescriptor.h">
246268
<Filter>Engine\renderer</Filter>
247269
</ClInclude>
248270
<ClInclude Include="renderer\VulkanPipeline.h">
249271
<Filter>Engine\renderer</Filter>
250272
</ClInclude>
251-
<ClInclude Include="renderer\VulkanRenderPass.h">
252-
<Filter>Engine\renderer</Filter>
253-
</ClInclude>
254-
<ClInclude Include="renderer\VulkanSwapchain.h">
255-
<Filter>Engine\renderer</Filter>
256-
</ClInclude>
257273
<ClInclude Include="ui\UI.h">
258274
<Filter>Engine\UI</Filter>
259275
</ClInclude>
260276
<ClInclude Include="ui\Watcher.h">
261277
<Filter>Engine\UI</Filter>
262278
</ClInclude>
263-
<ClInclude Include="renderer\vdevices.h">
264-
<Filter>Engine\renderer</Filter>
265-
</ClInclude>
266279
<ClInclude Include="renderer\extensions.h">
267280
<Filter>Engine\renderer</Filter>
268281
</ClInclude>
269-
<ClInclude Include="renderer\interface.h">
282+
<ClInclude Include="renderer\parameters.h">
270283
<Filter>Engine\renderer</Filter>
271284
</ClInclude>
285+
<ClInclude Include="version.h">
286+
<Filter>Source</Filter>
287+
</ClInclude>
288+
<ClInclude Include="log_type.h">
289+
<Filter>Source</Filter>
290+
</ClInclude>
291+
<ClInclude Include="renderer\frame.h">
292+
<Filter>Engine\renderer\types</Filter>
293+
</ClInclude>
294+
<ClInclude Include="renderer\iswapchain.h">
295+
<Filter>Engine\renderer\types</Filter>
296+
</ClInclude>
297+
<ClInclude Include="renderer\ihardware.h">
298+
<Filter>Engine\renderer\types</Filter>
299+
</ClInclude>
272300
<ClInclude Include="renderer\queue_family.h">
273-
<Filter>Engine\renderer</Filter>
301+
<Filter>Engine\renderer\types</Filter>
274302
</ClInclude>
275303
<ClInclude Include="renderer\swapchain_details.h">
304+
<Filter>Engine\renderer\types</Filter>
305+
</ClInclude>
306+
<ClInclude Include="renderer\render.h">
307+
<Filter>Engine\renderer\types</Filter>
308+
</ClInclude>
309+
<ClInclude Include="renderer\callback.h">
276310
<Filter>Engine\renderer</Filter>
277311
</ClInclude>
278-
<ClInclude Include="renderer\parameters.h">
312+
<ClInclude Include="renderer\vbuffer.h">
279313
<Filter>Engine\renderer</Filter>
280314
</ClInclude>
281-
<ClInclude Include="version.h">
282-
<Filter>Source</Filter>
315+
<ClInclude Include="renderer\vdevices.h">
316+
<Filter>Engine\renderer\hardware</Filter>
283317
</ClInclude>
284318
<ClInclude Include="renderer\vinstance.h">
285-
<Filter>Engine\renderer</Filter>
319+
<Filter>Engine\renderer\hardware</Filter>
286320
</ClInclude>
287-
<ClInclude Include="renderer\frame.h">
288-
<Filter>Engine\renderer</Filter>
321+
<ClInclude Include="renderer\vsurface.h">
322+
<Filter>Engine\renderer\hardware</Filter>
289323
</ClInclude>
290-
<ClInclude Include="renderer\vshader.h">
291-
<Filter>Engine\renderer</Filter>
324+
<ClInclude Include="renderer\vswapchain.h">
325+
<Filter>Engine\renderer\swapchain</Filter>
292326
</ClInclude>
293-
<ClInclude Include="log_type.h">
294-
<Filter>Source</Filter>
327+
<ClInclude Include="renderer\vframebuffer.h">
328+
<Filter>Engine\renderer\swapchain</Filter>
295329
</ClInclude>
296-
<ClInclude Include="renderer\vsurface.h">
297-
<Filter>Engine\renderer</Filter>
330+
<ClInclude Include="renderer\vdescriptorset.h">
331+
<Filter>Engine\renderer\swapchain</Filter>
332+
</ClInclude>
333+
<ClInclude Include="renderer\vrenderpass.h">
334+
<Filter>Engine\renderer\swapchain</Filter>
335+
</ClInclude>
336+
<ClInclude Include="renderer\vcommandbuffer.h">
337+
<Filter>Engine\renderer\swapchain</Filter>
338+
</ClInclude>
339+
<ClInclude Include="renderer\vshader.h">
340+
<Filter>Engine\renderer\render</Filter>
341+
</ClInclude>
342+
<ClInclude Include="renderer\vimage.h">
343+
<Filter>Engine\renderer\render</Filter>
298344
</ClInclude>
299345
<ClInclude Include="renderer\vsync_obj.h">
300346
<Filter>Engine\renderer</Filter>
301347
</ClInclude>
302-
<ClInclude Include="Includes\graphics\CameraUBO.h">
303-
<Filter>Engine\Graphics</Filter>
304-
</ClInclude>
305-
<ClInclude Include="Includes\graphics\SceneUBO.h">
306-
<Filter>Engine\Graphics</Filter>
348+
<ClInclude Include="renderer\helper.h">
349+
<Filter>Engine\renderer</Filter>
307350
</ClInclude>
308-
<ClInclude Include="Includes\graphics\LightProperties.h">
309-
<Filter>Engine\Graphics</Filter>
351+
<ClInclude Include="renderer\pipeline.h">
352+
<Filter>Engine\renderer</Filter>
310353
</ClInclude>
311354
</ItemGroup>
312355
<ItemGroup>

Engine/cameras/Camera.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ Camera::Camera()
1515
m_ubo.fill({ {}, {}, {} });
1616
}
1717

18-
Camera::~Camera()
19-
{
20-
}
21-
2218
void Camera::UpdateUBO(const float& width, const float& height, const int32_t frame)
2319
{
2420
m_ubo[frame].position = m_position;

Engine/cameras/Camera.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class Camera
1515
{
1616
public:
1717
Camera();
18-
~Camera();
18+
~Camera() = default;
1919

2020
void UpdateUBO(const float& width, const float& height, const int32_t frame);
2121
void UpdatePosition(const float& dt);

0 commit comments

Comments
 (0)