Browse Source

Added basic game object class and push constants

Jef Belmans 2 years ago
parent
commit
2490842ebe
35 changed files with 301 additions and 136 deletions
  1. 2 0
      coral_renderer/CMakeLists.txt
  2. 1 0
      coral_renderer/coral_gameobject.cpp
  3. 54 0
      coral_renderer/coral_gameobject.h
  4. 42 8
      coral_renderer/first_app.cpp
  5. 11 2
      coral_renderer/first_app.h
  6. 2 2
      out/build/x64-Debug/.cmake/api/v1/reply/codemodel-v2-dd7c0d3ab377d75ba727.json
  7. 2 2
      out/build/x64-Debug/.cmake/api/v1/reply/index-2023-07-04T17-54-43-0602.json
  8. 1 1
      out/build/x64-Debug/.cmake/api/v1/reply/target-Shaders-Debug-d193690a6c358df9f7c9.json
  9. 20 6
      out/build/x64-Debug/.cmake/api/v1/reply/target-coral_renderer-Debug-4a53fc9937c5c41731fd.json
  10. BIN
      out/build/x64-Debug/.ninja_deps
  11. 63 39
      out/build/x64-Debug/.ninja_log
  12. 2 2
      out/build/x64-Debug/Testing/Temporary/LastTest.log
  13. 9 1
      out/build/x64-Debug/build.ninja
  14. BIN
      out/build/x64-Debug/coral_renderer/CMakeFiles/coral_renderer.dir/vc140.pdb
  15. BIN
      out/build/x64-Debug/coral_renderer/coral_renderer.ilk
  16. BIN
      out/build/x64-Debug/coral_renderer/coral_renderer.pdb
  17. BIN
      out/build/x64-Debug/coral_renderer/shaders/simple_shader.frag.spv
  18. BIN
      out/build/x64-Debug/coral_renderer/shaders/simple_shader.vert.spv
  19. BIN
      out/build/x64-Debug/third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader.pdb
  20. BIN
      out/build/x64-Debug/third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap.pdb
  21. BIN
      out/build/x64-Debug/third_party/GLFW/src/CMakeFiles/glfw.dir/glfw.pdb
  22. 2 2
      out/build/x64-Release/.cmake/api/v1/reply/codemodel-v2-9926e25c7e77137afa1f.json
  23. 2 2
      out/build/x64-Release/.cmake/api/v1/reply/index-2023-07-04T17-15-38-0103.json
  24. 1 1
      out/build/x64-Release/.cmake/api/v1/reply/target-Shaders-Release-faa531a4d7893e11e462.json
  25. 20 6
      out/build/x64-Release/.cmake/api/v1/reply/target-coral_renderer-Release-87c67d57c444935f2ea0.json
  26. BIN
      out/build/x64-Release/.ninja_deps
  27. 37 51
      out/build/x64-Release/.ninja_log
  28. 2 2
      out/build/x64-Release/Testing/Temporary/LastTest.log
  29. 9 1
      out/build/x64-Release/build.ninja
  30. BIN
      out/build/x64-Release/coral_renderer/shaders/simple_shader.frag.spv
  31. BIN
      out/build/x64-Release/coral_renderer/shaders/simple_shader.vert.spv
  32. BIN
      shaders/compiled/simple_shader.frag.spv
  33. BIN
      shaders/compiled/simple_shader.vert.spv
  34. 10 4
      shaders/simple_shader.frag
  35. 9 4
      shaders/simple_shader.vert

+ 2 - 0
coral_renderer/CMakeLists.txt

@@ -15,6 +15,8 @@ add_executable(coral_renderer
     "coral_swapchain.cpp"
     "coral_mesh.h"
     "coral_mesh.cpp"
+    "coral_gameobject.h"
+    "coral_gameobject.cpp"
 )
 
 add_dependencies(coral_renderer Shaders)

+ 1 - 0
coral_renderer/coral_gameobject.cpp

@@ -0,0 +1 @@
+#include "coral_gameobject.h"

+ 54 - 0
coral_renderer/coral_gameobject.h

@@ -0,0 +1,54 @@
+#pragma once
+
+#include "coral_mesh.h"
+
+// STD
+#include <memory>
+
+namespace coral_3d
+{
+	struct TransformComponent
+	{
+		glm::vec3 translation{0.0f, 0.0f, 0.0f};
+		glm::vec3 scale{1.f, 1.f, 1.f};
+
+		glm::mat3 mat3()
+		{ 
+			glm::mat3 scale_mat
+			{
+				{scale.x, 0.f, 0.f},
+				{0.f, scale.y, 0.f},
+				{0.f, 0.f, scale.z}
+			};
+
+			return scale_mat;
+		}
+	};
+
+	class coral_gameobject final
+	{
+	public:
+		using id_t = unsigned int;
+
+		static coral_gameobject create_gameobject()
+		{
+			static id_t current_id = 0;
+			return coral_gameobject{ current_id++ };
+		}
+
+		coral_gameobject(const coral_gameobject&) = delete;
+		coral_gameobject& operator=(const coral_gameobject&) = delete;
+		coral_gameobject(coral_gameobject&&) = default;
+		coral_gameobject& operator=(coral_gameobject&&) = default;
+
+		id_t get_id() const { return id_; }
+
+		std::shared_ptr<coral_mesh> mesh_;
+		glm::vec3 color_{};
+		TransformComponent transform_{};
+
+	private:
+		coral_gameobject(id_t object_id) : id_{ object_id } {}
+		id_t id_;
+	};
+}

+ 42 - 8
coral_renderer/first_app.cpp

@@ -10,7 +10,7 @@ using namespace coral_3d;
 
 first_app::first_app()
 {
-	load_meshes();
+	load_gameobjects();
 	create_pipeline_layout();
 	recreate_swapchain();
 	create_command_buffers();
@@ -32,21 +32,35 @@ void first_app::run()
 	vkDeviceWaitIdle(device_.device());
 }
 
-void first_app::load_meshes()
+void first_app::load_gameobjects()
 {
 	std::vector<Vertex> vertices
 	{
 		{{0.0f, -0.5f, 0.0f}, { 1.0f, 0.0f, 0.0f }},
-		{{-0.5f, 0.5f, 0.0f}, { 0.0f, 1.0f, 0.0f } },
-		{{0.5f,  0.5f, 0.0f}, { 0.0f, 0.0f, 1.0f } },
+		{{-0.5f, 0.5f, 0.0f}, { 0.0f, 1.0f, 0.0f }},
+		{{0.5f,  0.5f, 0.0f}, { 0.0f, 0.0f, 1.0f }},
 	};
 
-	mesh_ = std::make_unique<coral_mesh>(device_, vertices);
+	auto mesh{ std::make_shared<coral_mesh>(device_, vertices) };
+	auto triangle = coral_gameobject::create_gameobject();
+	triangle.mesh_ = mesh;
+	triangle.color_ = { 0.1f, 0.8f, 0.1f };
+	triangle.transform_.translation.x = -.2f;
+
+	gameobjects_.emplace_back(std::move(triangle));
 }
 
 void first_app::create_pipeline_layout()
 {
+	VkPushConstantRange push_constant_range{};
+	push_constant_range.stageFlags = VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT;
+	push_constant_range.offset = 0;
+	push_constant_range.size = sizeof(PushConstant);
+
 	VkPipelineLayoutCreateInfo layout_info{ vkinit::pipeline_layout_ci() };
+	layout_info.pushConstantRangeCount = 1;
+	layout_info.pPushConstantRanges = &push_constant_range;
+
 	if (vkCreatePipelineLayout(device_.device(), &layout_info, nullptr, &pipeline_layout_) != VK_SUCCESS)
 		throw std::runtime_error("ERROR! first_app::create_pipeline_layout() >> Failed to create pipeline layout!");
 }
@@ -168,12 +182,32 @@ void first_app::record_command_buffer(int image_index)
 
 	vkCmdBeginRenderPass(command_buffers_[image_index], &render_pass_info, VK_SUBPASS_CONTENTS_INLINE);
 
-	pipeline_->bind(command_buffers_[image_index]);
-	mesh_->bind(command_buffers_[image_index]);
-	mesh_->draw(command_buffers_[image_index]);
+	render_gameobjects(command_buffers_[image_index]);
 
 	vkCmdEndRenderPass(command_buffers_[image_index]);
 
 	if (vkEndCommandBuffer(command_buffers_[image_index]) != VK_SUCCESS)
 		throw std::runtime_error("ERROR! first_app::create_command_buffers() >> Failed to record command buffer!");
 }
+
+void coral_3d::first_app::render_gameobjects(VkCommandBuffer command_buffer)
+{
+	pipeline_->bind(command_buffer);
+
+	for (auto& obj : gameobjects_)
+	{
+		PushConstant push{};
+		push.offset = obj.transform_.translation;
+		push.color = obj.color_;
+		push.transform = obj.transform_.mat3();
+
+		vkCmdPushConstants(
+			command_buffer,
+			pipeline_layout_,
+			VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
+			0, sizeof(PushConstant), &push);
+
+		obj.mesh_->bind(command_buffer);
+		obj.mesh_->draw(command_buffer);
+	}
+}

+ 11 - 2
coral_renderer/first_app.h

@@ -5,6 +5,7 @@
 #include "coral_swapchain.h"
 #include "coral_window.h"
 #include "coral_mesh.h"
+#include "coral_gameobject.h"
 
 // STD
 #include <memory>
@@ -12,6 +13,13 @@
 
 namespace coral_3d
 {
+	struct PushConstant
+	{
+		alignas(16) glm::mat3 transform;
+		alignas(16) glm::vec3 offset;
+		alignas(16) glm::vec3 color;
+	};
+
 	class first_app final
 	{
 	public:
@@ -27,7 +35,7 @@ namespace coral_3d
 		void run();
 
 	private:
-		void load_meshes();
+		void load_gameobjects();
 		void create_pipeline_layout();
 		void create_pipeline();
 		void create_command_buffers();
@@ -35,6 +43,7 @@ namespace coral_3d
 		void draw_frame();
 		void recreate_swapchain();
 		void record_command_buffer(int image_index);
+		void render_gameobjects(VkCommandBuffer command_buffer);
 
 		coral_window window_{ WIDTH, HEIGHT, "Coral Renderer" };
 		coral_device device_{ window_ };
@@ -42,6 +51,6 @@ namespace coral_3d
 		std::unique_ptr<coral_pipeline> pipeline_;
 		VkPipelineLayout pipeline_layout_;
 		std::vector<VkCommandBuffer> command_buffers_;
-		std::unique_ptr<coral_mesh> mesh_;
+		std::vector<coral_gameobject> gameobjects_;
 	};
 }

+ 2 - 2
out/build/x64-Debug/.cmake/api/v1/reply/codemodel-v2-8309f8584c32333bd27d.json → out/build/x64-Debug/.cmake/api/v1/reply/codemodel-v2-dd7c0d3ab377d75ba727.json

@@ -139,14 +139,14 @@
 				{
 					"directoryIndex" : 1,
 					"id" : "Shaders::@189d46817749ee15bd40",
-					"jsonFile" : "target-Shaders-Debug-9713b874df703b070b85.json",
+					"jsonFile" : "target-Shaders-Debug-d193690a6c358df9f7c9.json",
 					"name" : "Shaders",
 					"projectIndex" : 0
 				},
 				{
 					"directoryIndex" : 1,
 					"id" : "coral_renderer::@189d46817749ee15bd40",
-					"jsonFile" : "target-coral_renderer-Debug-4751cac1473a81c4d049.json",
+					"jsonFile" : "target-coral_renderer-Debug-4a53fc9937c5c41731fd.json",
 					"name" : "coral_renderer",
 					"projectIndex" : 0
 				},

+ 2 - 2
out/build/x64-Debug/.cmake/api/v1/reply/index-2023-07-04T13-14-41-0937.json → out/build/x64-Debug/.cmake/api/v1/reply/index-2023-07-04T17-54-43-0602.json

@@ -26,7 +26,7 @@
 	"objects" : 
 	[
 		{
-			"jsonFile" : "codemodel-v2-8309f8584c32333bd27d.json",
+			"jsonFile" : "codemodel-v2-dd7c0d3ab377d75ba727.json",
 			"kind" : "codemodel",
 			"version" : 
 			{
@@ -108,7 +108,7 @@
 						}
 					},
 					{
-						"jsonFile" : "codemodel-v2-8309f8584c32333bd27d.json",
+						"jsonFile" : "codemodel-v2-dd7c0d3ab377d75ba727.json",
 						"kind" : "codemodel",
 						"version" : 
 						{

+ 1 - 1
out/build/x64-Debug/.cmake/api/v1/reply/target-Shaders-Debug-9713b874df703b070b85.json → out/build/x64-Debug/.cmake/api/v1/reply/target-Shaders-Debug-d193690a6c358df9f7c9.json

@@ -18,7 +18,7 @@
 			{
 				"command" : 0,
 				"file" : 0,
-				"line" : 57,
+				"line" : 59,
 				"parent" : 0
 			}
 		]

+ 20 - 6
out/build/x64-Debug/.cmake/api/v1/reply/target-coral_renderer-Debug-4751cac1473a81c4d049.json → out/build/x64-Debug/.cmake/api/v1/reply/target-coral_renderer-Debug-4a53fc9937c5c41731fd.json

@@ -46,7 +46,7 @@
 			{
 				"command" : 2,
 				"file" : 0,
-				"line" : 20,
+				"line" : 22,
 				"parent" : 0
 			},
 			{
@@ -128,7 +128,8 @@
 				8,
 				10,
 				13,
-				15
+				15,
+				17
 			]
 		}
 	],
@@ -140,11 +141,11 @@
 		},
 		{
 			"backtrace" : 3,
-			"id" : "tinyobjloader::@037116246cbfaaeb5504"
+			"id" : "vkbootstrap::@037116246cbfaaeb5504"
 		},
 		{
 			"backtrace" : 3,
-			"id" : "vkbootstrap::@037116246cbfaaeb5504"
+			"id" : "tinyobjloader::@037116246cbfaaeb5504"
 		},
 		{
 			"backtrace" : 3,
@@ -216,7 +217,8 @@
 				8,
 				10,
 				13,
-				15
+				15,
+				17
 			]
 		},
 		{
@@ -230,7 +232,8 @@
 				9,
 				11,
 				12,
-				14
+				14,
+				16
 			]
 		}
 	],
@@ -323,6 +326,17 @@
 			"compileGroupIndex" : 0,
 			"path" : "coral_renderer/coral_mesh.cpp",
 			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 1,
+			"path" : "coral_renderer/coral_gameobject.h",
+			"sourceGroupIndex" : 1
+		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "coral_renderer/coral_gameobject.cpp",
+			"sourceGroupIndex" : 0
 		}
 	],
 	"type" : "EXECUTABLE"

BIN
out/build/x64-Debug/.ninja_deps


+ 63 - 39
out/build/x64-Debug/.ninja_log

@@ -8,7 +8,7 @@
 39	883	7101797253853157	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	4c5b5a61c74a0503
 75	890	7101797253893155	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	f3bcdc54fc50d40e
 50	918	7101797253953169	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	9c133f055c1c47
-12	1007	7101892568832128	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
+12	988	7101924450531072	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
 84	915	7101797253953169	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	ac4ae588ab2b3867
 80	866	7101797253748007	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	694a8d84a0a6a42f
 65	898	7101797253903152	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	f9e962456dc8d656
@@ -19,50 +19,74 @@
 918	988	7101797255003457	third_party/GLFW/src/glfw3.lib	90fe5d3bf3988c3
 44	874	7101797253798021	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	956df7c8cf242b34
 60	914	7101797253913164	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	b364e0375cf5f3ae
-1013	1279	7101892570664534	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
+958	1147	7101925970042345	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
 217	917	7101797254053199	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	e9ed1005530706e4
-17	999	7101892568757462	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+17	880	7101924449447028	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
 30	1948	7101797264615494	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	1e9e954b98b13f50
 38	1597	7101891512526678	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	64385be2816b800a
-21	1460	7101891511178276	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	429a0363ba93b7c7
+21	1512	7101914378868226	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	429a0363ba93b7c7
 9	24	0	clean	21a4d0550fd2b6b1
 18	910	7101866207942490	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	bedfd30a6102baa8
 1597	1651	7101891513064033	third_party/vkbootstrap.lib	b339a5cc36d209fb
-25	1879	7101891515336887	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f65feb738e17e8d7
+12	1320	7101914586261436	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f65feb738e17e8d7
 4	141	7101850315847728	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	abf5977eb3a7ad06
-21	1013	7101892568893410	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
+5	958	7101925968908874	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
 9	148	7101850315924648	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	668e2527d551a6cf
-33	1586	7101891512436567	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ab6486da48f5e166
-16	896	7101892914187749	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-897	1092	7101892915293917	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
-14	857	7101893157855334	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-858	1034	7101893158881549	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
-21	1554	7101902067294684	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	429a0363ba93b7c7
-36	1605	7101902067820320	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ab6486da48f5e166
-25	1854	7101902070308580	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f65feb738e17e8d7
-20	1155	7101902386661975	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
-15	1272	7101902387794512	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
-29	1135	7101902921461698	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-18	1146	7101902921606785	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
-13	1271	7101902922845310	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
-21	1303	7101902923171303	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	429a0363ba93b7c7
-33	1386	7101902924012738	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ab6486da48f5e166
-25	1613	7101902926255318	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f65feb738e17e8d7
-1614	1869	7101902927995480	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
-17	1471	7101914378446245	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
-13	1481	7101914378553067	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
-30	1496	7101914378689684	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-21	1512	7101914378868226	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	429a0363ba93b7c7
 33	1586	7101914379607641	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ab6486da48f5e166
-12	1320	7101914586261436	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f65feb738e17e8d7
-1320	1613	7101914588159131	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
-4	892	7101915052352115	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-892	1083	7101915053453898	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
-12	852	7101918935666082	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-853	1047	7101918936774076	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
-13	883	7101919273697849	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-884	1097	7101919274921391	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
-20	873	7101924449373298	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
-17	880	7101924449447028	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
-12	988	7101924450531072	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
-988	1175	7101924451627858	coral_renderer/coral_renderer.exe	a2f5951cf56c54b9
+12	134	7101964851368764	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	abf5977eb3a7ad06
+17	134	7101964851423145	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	668e2527d551a6cf
+17	846	7101964921256433	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	c77989e656e646b
+14	919	7101964921971655	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+9	1024	7101964923036947	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
+1024	1274	7101964924572258	coral_renderer/coral_renderer.exe	c94332e8b1cc34e4
+11	806	7101965957957405	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	c77989e656e646b
+8	892	7101965958820094	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+4	993	7101965959828220	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
+993	1177	7101965960878917	coral_renderer/coral_renderer.exe	c94332e8b1cc34e4
+18	1007	7101966436707492	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+13	1104	7101966437677721	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
+1104	1347	7101966439276275	coral_renderer/coral_renderer.exe	c94332e8b1cc34e4
+13	977	7101966709312557	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+978	1168	7101966710427667	coral_renderer/coral_renderer.exe	c94332e8b1cc34e4
+13	900	7101966916024278	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+901	1092	7101966917114630	coral_renderer/coral_renderer.exe	c94332e8b1cc34e4
+13	124	7101970467749869	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	668e2527d551a6cf
+129	1060	7101970477113186	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+125	1161	7101970478128316	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
+1162	1416	7101970479256056	coral_renderer/coral_renderer.exe	c94332e8b1cc34e4
+4	109	7101973221311429	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	668e2527d551a6cf
+3	23	0	clean	21a4d0550fd2b6b1
+12	260	7101973441006803	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.frag.spv	fe5845b8ffa9c1e4
+27	265	7101973441246850	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	668e2527d551a6cf
+22	270	7101973441256850	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	abf5977eb3a7ad06
+17	274	7101973441316871	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.vert.spv	c8f5e229bc7280d6
+68	558	7101973444064144	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	aa414f7e617935ab
+50	578	7101973444184155	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	4c5b5a61c74a0503
+106	588	7101973444304181	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	ac4ae588ab2b3867
+97	595	7101973444374204	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	694a8d84a0a6a42f
+62	602	7101973444224165	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	9c133f055c1c47
+45	609	7101973444424217	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	40de073679fe6a2e
+73	614	7101973444494240	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	b364e0375cf5f3ae
+56	619	7101973444544320	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	956df7c8cf242b34
+79	624	7101973444594317	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	f9e962456dc8d656
+112	625	7101973444659420	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_window.c.obj	a8e8a800f8bba3b2
+85	685	7101973445484462	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	360eb123f11402ca
+91	728	7101973445769622	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	f3bcdc54fc50d40e
+260	753	7101973446079702	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	e21c7032fbb2c637
+270	781	7101973446444418	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	e9ed1005530706e4
+265	789	7101973446534469	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	336c5a07a7e8f201
+789	857	7101973447191803	third_party/GLFW/src/glfw3.lib	90fe5d3bf3988c3
+602	1380	7101973452417223	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	e2dbff82d1c3ba0d
+559	1390	7101973452538406	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	bedfd30a6102baa8
+39	2019	7101973458839719	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	1e9e954b98b13f50
+619	2083	7101973459468086	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	c77989e656e646b
+2019	2087	7101973459447985	third_party/tinyobjloader.lib	c2812261322ebfda
+609	2162	7101973460102600	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	1e16c3634dad8b40
+578	2191	7101973460529835	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	2fa3f3bbdc72680a
+274	2205	7101973460704922	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f207d5295f665d92
+34	2228	7101973460924970	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	64385be2816b800a
+2228	2277	7101973461425969	third_party/vkbootstrap.lib	b339a5cc36d209fb
+588	2367	7101973462331274	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	429a0363ba93b7c7
+614	2403	7101973462696382	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ab6486da48f5e166
+596	2726	7101973465905305	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f65feb738e17e8d7
+2726	2952	7101973467305130	coral_renderer/coral_renderer.exe	c94332e8b1cc34e4

+ 2 - 2
out/build/x64-Debug/Testing/Temporary/LastTest.log

@@ -1,3 +1,3 @@
-Start testing: Jul 04 15:14 Romance Daylight Time
+Start testing: Jul 04 19:54 Romance Daylight Time
 ----------------------------------------------------------
-End testing: Jul 04 15:14 Romance Daylight Time
+End testing: Jul 04 19:54 Romance Daylight Time

+ 9 - 1
out/build/x64-Debug/build.ninja

@@ -171,6 +171,14 @@ build coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj: CXX_COMPI
   TARGET_COMPILE_PDB = coral_renderer\CMakeFiles\coral_renderer.dir\
   TARGET_PDB = coral_renderer\coral_renderer.pdb
 
+build coral_renderer\CMakeFiles\coral_renderer.dir\coral_gameobject.cpp.obj: CXX_COMPILER__coral_renderer_unscanned_Debug C$:\Game$ Development\Visual$ Studio$ Solutions\Coral3D\coral_renderer\coral_gameobject.cpp || cmake_object_order_depends_target_coral_renderer
+  FLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -std:c++latest -MDd /W4 /WX /w
+  INCLUDES = -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\GLFW\include" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\glm" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\vkbootstrap" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\tinyobjloader" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\vma" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\stb_image" -external:IC:\VulkanSDK\1.3.250.0\Include -external:W0
+  OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+  OBJECT_FILE_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+  TARGET_COMPILE_PDB = coral_renderer\CMakeFiles\coral_renderer.dir\
+  TARGET_PDB = coral_renderer\coral_renderer.pdb
+
 
 # =============================================================================
 # Link build statements for EXECUTABLE target coral_renderer
@@ -179,7 +187,7 @@ build coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj: CXX_COMPI
 #############################################
 # Link the executable coral_renderer\coral_renderer.exe
 
-build coral_renderer\coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Debug coral_renderer\CMakeFiles\coral_renderer.dir\main.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_window.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\first_app.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_pipeline.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_device.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\vk_initializers.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_swapchain.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj | C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib third_party\tinyobjloader.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib || coral_renderer\Shaders third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
+build coral_renderer\coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Debug coral_renderer\CMakeFiles\coral_renderer.dir\main.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_window.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\first_app.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_pipeline.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_device.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\vk_initializers.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_swapchain.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_gameobject.cpp.obj | C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib third_party\tinyobjloader.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib || coral_renderer\Shaders third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
   FLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd
   LINK_FLAGS = /machine:x64 /debug /INCREMENTAL /subsystem:console
   LINK_LIBRARIES = C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  third_party\GLFW\src\glfw3.lib  third_party\vkbootstrap.lib  third_party\tinyobjloader.lib  C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib

BIN
out/build/x64-Debug/coral_renderer/CMakeFiles/coral_renderer.dir/vc140.pdb


BIN
out/build/x64-Debug/coral_renderer/coral_renderer.ilk


BIN
out/build/x64-Debug/coral_renderer/coral_renderer.pdb


BIN
out/build/x64-Debug/coral_renderer/shaders/simple_shader.frag.spv


BIN
out/build/x64-Debug/coral_renderer/shaders/simple_shader.vert.spv


BIN
out/build/x64-Debug/third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader.pdb


BIN
out/build/x64-Debug/third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap.pdb


BIN
out/build/x64-Debug/third_party/GLFW/src/CMakeFiles/glfw.dir/glfw.pdb


+ 2 - 2
out/build/x64-Release/.cmake/api/v1/reply/codemodel-v2-ac648e5c53f91b8134f2.json → out/build/x64-Release/.cmake/api/v1/reply/codemodel-v2-9926e25c7e77137afa1f.json

@@ -139,14 +139,14 @@
 				{
 					"directoryIndex" : 1,
 					"id" : "Shaders::@189d46817749ee15bd40",
-					"jsonFile" : "target-Shaders-Release-65cec1358e0fb2f582be.json",
+					"jsonFile" : "target-Shaders-Release-faa531a4d7893e11e462.json",
 					"name" : "Shaders",
 					"projectIndex" : 0
 				},
 				{
 					"directoryIndex" : 1,
 					"id" : "coral_renderer::@189d46817749ee15bd40",
-					"jsonFile" : "target-coral_renderer-Release-dca39ccbb87791bcfff6.json",
+					"jsonFile" : "target-coral_renderer-Release-87c67d57c444935f2ea0.json",
 					"name" : "coral_renderer",
 					"projectIndex" : 0
 				},

+ 2 - 2
out/build/x64-Release/.cmake/api/v1/reply/index-2023-07-04T12-29-44-0246.json → out/build/x64-Release/.cmake/api/v1/reply/index-2023-07-04T17-15-38-0103.json

@@ -26,7 +26,7 @@
 	"objects" : 
 	[
 		{
-			"jsonFile" : "codemodel-v2-ac648e5c53f91b8134f2.json",
+			"jsonFile" : "codemodel-v2-9926e25c7e77137afa1f.json",
 			"kind" : "codemodel",
 			"version" : 
 			{
@@ -108,7 +108,7 @@
 						}
 					},
 					{
-						"jsonFile" : "codemodel-v2-ac648e5c53f91b8134f2.json",
+						"jsonFile" : "codemodel-v2-9926e25c7e77137afa1f.json",
 						"kind" : "codemodel",
 						"version" : 
 						{

+ 1 - 1
out/build/x64-Release/.cmake/api/v1/reply/target-Shaders-Release-65cec1358e0fb2f582be.json → out/build/x64-Release/.cmake/api/v1/reply/target-Shaders-Release-faa531a4d7893e11e462.json

@@ -18,7 +18,7 @@
 			{
 				"command" : 0,
 				"file" : 0,
-				"line" : 57,
+				"line" : 59,
 				"parent" : 0
 			}
 		]

+ 20 - 6
out/build/x64-Release/.cmake/api/v1/reply/target-coral_renderer-Release-dca39ccbb87791bcfff6.json → out/build/x64-Release/.cmake/api/v1/reply/target-coral_renderer-Release-87c67d57c444935f2ea0.json

@@ -46,7 +46,7 @@
 			{
 				"command" : 2,
 				"file" : 0,
-				"line" : 20,
+				"line" : 22,
 				"parent" : 0
 			},
 			{
@@ -128,7 +128,8 @@
 				8,
 				10,
 				13,
-				15
+				15,
+				17
 			]
 		}
 	],
@@ -140,11 +141,11 @@
 		},
 		{
 			"backtrace" : 3,
-			"id" : "vkbootstrap::@037116246cbfaaeb5504"
+			"id" : "tinyobjloader::@037116246cbfaaeb5504"
 		},
 		{
 			"backtrace" : 3,
-			"id" : "tinyobjloader::@037116246cbfaaeb5504"
+			"id" : "vkbootstrap::@037116246cbfaaeb5504"
 		},
 		{
 			"backtrace" : 3,
@@ -216,7 +217,8 @@
 				8,
 				10,
 				13,
-				15
+				15,
+				17
 			]
 		},
 		{
@@ -230,7 +232,8 @@
 				9,
 				11,
 				12,
-				14
+				14,
+				16
 			]
 		}
 	],
@@ -323,6 +326,17 @@
 			"compileGroupIndex" : 0,
 			"path" : "coral_renderer/coral_mesh.cpp",
 			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 1,
+			"path" : "coral_renderer/coral_gameobject.h",
+			"sourceGroupIndex" : 1
+		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "coral_renderer/coral_gameobject.cpp",
+			"sourceGroupIndex" : 0
 		}
 	],
 	"type" : "EXECUTABLE"

BIN
out/build/x64-Release/.ninja_deps


+ 37 - 51
out/build/x64-Release/.ninja_log

@@ -1,59 +1,45 @@
 # ninja log v5
-43	515	7100855575389362	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	a2d560a1e4312b87
+51	585	7101968576661529	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	a2d560a1e4312b87
 10	1624	7100852052033876	vk_renderer/CMakeFiles/vulkan_renderer.dir/main.cpp.obj	e44a32bfa2e07c95
-61	583	7100855576268849	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	f8a96148e57fbac5
-87	559	7100855575866659	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	abcd2eacde575f89
-48	533	7100855575363947	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	50112318efae01fe
-52	556	7100855575942714	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	b267b6f52b0557e
-216	674	7100855577256160	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	2663e4857ff8180d
-1017	1323	7101756922529644	coral_renderer/coral_renderer.exe	a6395eeb94f36c43
-154	1219	7101751385543458	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	b04a92f83a26ca98
-73	503	7100855575293922	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	6c2cec83621ddafc
-57	578	7100855576238736	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	68f7b915a77efee8
-69	507	7100855575379068	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	884400c2fc506c25
-28	623	7100855576714691	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	c45289d746a8bc32
-33	587	7100855576298861	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	59423db8be81fe6
-65	579	7100855576223681	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	99a9a2c52140eb32
-82	617	7100855576639205	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	532aed61a4fce8b6
+74	623	7101968577321719	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	f8a96148e57fbac5
+277	795	7101968579178741	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	abcd2eacde575f89
+57	562	7101968576651531	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	50112318efae01fe
+62	593	7101968576961605	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	b267b6f52b0557e
+283	786	7101968579148730	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	2663e4857ff8180d
+1333	1687	7101970208554647	coral_renderer/coral_renderer.exe	f655b1ed9e317b83
+127	1291	7101970205084471	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	b04a92f83a26ca98
+89	552	7101968576481500	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	6c2cec83621ddafc
+68	578	7101968576821574	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	68f7b915a77efee8
+84	602	7101968577041632	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	884400c2fc506c25
+35	613	7101968577406807	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	c45289d746a8bc32
+40	630	7101968577466864	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	59423db8be81fe6
+78	631	7101968577466864	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	99a9a2c52140eb32
+271	828	7101968579598803	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	532aed61a4fce8b6
 30	3108	7100852066890285	vk_renderer/CMakeFiles/vulkan_renderer.dir/vk_texture.cpp.obj	97e74f432a0b38ea
-38	571	7100855576002725	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	f38aba24622454d4
-674	715	7100855577635956	third_party/GLFW/src/glfw3.lib	90fe5d3bf3988c3
+46	632	7101968577606898	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	f38aba24622454d4
+828	897	7101968580226664	third_party/GLFW/src/glfw3.lib	90fe5d3bf3988c3
 18	258	7100852038349954	vk_renderer/CMakeFiles/vulkan_renderer.dir/vk_initializers.cpp.obj	1a23cbea97f95bc8
-77	616	7100855576629194	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_window.c.obj	527eb72162ba2c60
-12	153	7101751374871499	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.frag.spv	448936cb354b7e2
-175	871	7101751382025806	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	aa9d2c8a14870cfd
-20	1886	7100855589315037	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	862a6e5bff7e48ac
-1886	1925	7100855589753305	third_party/vkbootstrap.lib	b339a5cc36d209fb
-24	2270	7100855593137340	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	7e86ec27a38d2d6c
-2270	2305	7100855593551870	third_party/tinyobjloader.lib	c2812261322ebfda
-16	241	7100855572697851	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.vert.spv	565da56699a6ae9f
-6	20	0	clean	21a4d0550fd2b6b1
-167	1218	7101751385543458	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	547825035d4ce491
+95	724	7101968578387270	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_window.c.obj	527eb72162ba2c60
+10	270	7101968573756798	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.frag.spv	448936cb354b7e2
+593	1306	7101968584350051	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	aa9d2c8a14870cfd
+26	2891	7101968600170036	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	862a6e5bff7e48ac
+2891	2959	7101968600887036	third_party/vkbootstrap.lib	b339a5cc36d209fb
+30	3346	7101968604738411	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	7e86ec27a38d2d6c
+3347	3385	7101968605171370	third_party/tinyobjloader.lib	c2812261322ebfda
+14	277	7101968573896827	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.vert.spv	565da56699a6ae9f
+10	25	0	clean	21a4d0550fd2b6b1
+578	2574	7101968596984859	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	547825035d4ce491
 22	1341	7100852049212694	vk_renderer/CMakeFiles/vulkan_renderer.dir/vk_pipeline.cpp.obj	f2ccefde0539b7f9
 26	1697	7100852052759820	vk_renderer/CMakeFiles/vulkan_renderer.dir/vk_mesh.cpp.obj	19e27ee69060c408
 14	4028	7100852076065734	vk_renderer/CMakeFiles/vulkan_renderer.dir/vk_engine.cpp.obj	2c2e8f4c68659d3e
 4028	4204	7100852077869201	vk_renderer/vulkan_renderer.exe	4a4de8c4dd150dc4
-163	1061	7101751383959997	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	f6aa697f38bcc8c1
-158	892	7101751382273133	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	8f70bdc66a8c898
-23	147	7101751374786118	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	8117d59f521bfb38
-17	154	7101751374871499	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c6f90537dba2deae
-11	1016	7101756919953863	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	73d0ad4b7fd6b8be
-171	2252	7101751395848258	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	54ea3dd64d178489
-13	1241	7101796482428884	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	b04a92f83a26ca98
-18	1297	7101796483005446	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	f6aa697f38bcc8c1
-23	1317	7101796483196618	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	547825035d4ce491
-13	1106	7101796697760818	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	c9cebafec58901df
-1106	1464	7101796700787466	coral_renderer/coral_renderer.exe	46b48affdb39d636
-21	134	7101828950014594	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	8117d59f521bfb38
-134	1435	7101828962610616	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	b04a92f83a26ca98
-138	1484	7101828963429522	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	f6aa697f38bcc8c1
-151	1510	7101828963709605	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	73d0ad4b7fd6b8be
-143	1543	7101828964050193	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	547825035d4ce491
-155	1641	7101828965056591	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	c9cebafec58901df
-147	2319	7101828971832944	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	54ea3dd64d178489
-2319	2618	7101828974349382	coral_renderer/coral_renderer.exe	46b48affdb39d636
-10	912	7101845953773938	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	f6aa697f38bcc8c1
-5	1013	7101845954790120	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	b04a92f83a26ca98
-14	1076	7101845955404846	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	547825035d4ce491
-18	1196	7101845956606118	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	c9cebafec58901df
-1196	1516	7101845959367478	coral_renderer/coral_renderer.exe	46b48affdb39d636
+131	1332	7101970205524782	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	f6aa697f38bcc8c1
+553	1352	7101968584818420	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	8f70bdc66a8c898
+5	127	7101970193471740	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	8117d59f521bfb38
+18	283	7101968573906826	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c6f90537dba2deae
+602	2249	7101968593776873	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	73d0ad4b7fd6b8be
+585	3500	7101968606280340	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	54ea3dd64d178489
+613	2801	7101968599296036	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	c9cebafec58901df
+624	1989	7101968591065934	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	64827c5e097e7ac3
+17	1105	7101970341163279	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	f6aa697f38bcc8c1
+1106	1400	7101970343569400	coral_renderer/coral_renderer.exe	f655b1ed9e317b83

+ 2 - 2
out/build/x64-Release/Testing/Temporary/LastTest.log

@@ -1,3 +1,3 @@
-Start testing: Jul 04 14:29 Romance Daylight Time
+Start testing: Jul 04 19:15 Romance Daylight Time
 ----------------------------------------------------------
-End testing: Jul 04 14:29 Romance Daylight Time
+End testing: Jul 04 19:15 Romance Daylight Time

+ 9 - 1
out/build/x64-Release/build.ninja

@@ -171,6 +171,14 @@ build coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj: CXX_COMPI
   TARGET_COMPILE_PDB = coral_renderer\CMakeFiles\coral_renderer.dir\
   TARGET_PDB = coral_renderer\coral_renderer.pdb
 
+build coral_renderer\CMakeFiles\coral_renderer.dir\coral_gameobject.cpp.obj: CXX_COMPILER__coral_renderer_unscanned_Release C$:\Game$ Development\Visual$ Studio$ Solutions\Coral3D\coral_renderer\coral_gameobject.cpp || cmake_object_order_depends_target_coral_renderer
+  FLAGS = /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -std:c++latest -MD /W4 /WX /w
+  INCLUDES = -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\GLFW\include" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\glm" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\vkbootstrap" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\tinyobjloader" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\vma" -I"C:\Game Development\Visual Studio Solutions\Coral3D\third_party\stb_image" -external:IC:\VulkanSDK\1.3.250.0\Include -external:W0
+  OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+  OBJECT_FILE_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+  TARGET_COMPILE_PDB = coral_renderer\CMakeFiles\coral_renderer.dir\
+  TARGET_PDB = coral_renderer\coral_renderer.pdb
+
 
 # =============================================================================
 # Link build statements for EXECUTABLE target coral_renderer
@@ -179,7 +187,7 @@ build coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj: CXX_COMPI
 #############################################
 # Link the executable coral_renderer\coral_renderer.exe
 
-build coral_renderer\coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Release coral_renderer\CMakeFiles\coral_renderer.dir\main.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_window.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\first_app.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_pipeline.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_device.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\vk_initializers.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_swapchain.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj | C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib third_party\tinyobjloader.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib || coral_renderer\Shaders third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
+build coral_renderer\coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Release coral_renderer\CMakeFiles\coral_renderer.dir\main.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_window.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\first_app.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_pipeline.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_device.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\vk_initializers.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_swapchain.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_mesh.cpp.obj coral_renderer\CMakeFiles\coral_renderer.dir\coral_gameobject.cpp.obj | C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib third_party\tinyobjloader.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib || coral_renderer\Shaders third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
   FLAGS = /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD
   LINK_FLAGS = /machine:x64 /INCREMENTAL:NO /subsystem:console
   LINK_LIBRARIES = C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  third_party\GLFW\src\glfw3.lib  third_party\vkbootstrap.lib  third_party\tinyobjloader.lib  C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib

BIN
out/build/x64-Release/coral_renderer/shaders/simple_shader.frag.spv


BIN
out/build/x64-Release/coral_renderer/shaders/simple_shader.vert.spv


BIN
shaders/compiled/simple_shader.frag.spv


BIN
shaders/compiled/simple_shader.vert.spv


+ 10 - 4
shaders/simple_shader.frag

@@ -1,9 +1,15 @@
 #version 450
 
-layout (location = 0) in vec3 fragColor;
-
 layout (location = 0) out vec4 outColor;
 
-void main() {
-  outColor = vec4(fragColor, 1.0f);
+layout (push_constant) uniform Push
+{
+	mat3 transform;
+	vec3 offset;
+	vec3 color;
+} push;
+
+void main()
+{
+  outColor = vec4(push.color, 1.0f);
 }

+ 9 - 4
shaders/simple_shader.vert

@@ -3,9 +3,14 @@
 layout (location = 0) in vec3 position;
 layout (location = 1) in vec3 color;
 
-layout (location = 0) out vec3 fragColor;
+layout (push_constant) uniform Push
+{
+	mat3 transform;
+	vec3 offset;
+	vec3 color;
+} push;
 
-void main() {
-  gl_Position = vec4(position, 1.0f);
-  fragColor = color;
+void main() 
+{
+	gl_Position = vec4(position + push.offset, 1.0f);
 }