diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | .gitmodules | 12 | ||||
| -rw-r--r-- | Makefile | 267 | ||||
| -rw-r--r-- | assets/shaders/vertex.vert (renamed from assets/shaders/vert.vert) | 0 | ||||
| -rw-r--r-- | config.def.h | 0 | ||||
| -rw-r--r-- | config.mk | 38 | ||||
| -rw-r--r-- | dead.CMakeLists.txt (renamed from CMakeLists.txt) | 0 | ||||
| -rw-r--r-- | editor/editor.cpp | 2 | ||||
| -rw-r--r-- | src/asset-manager.cpp | 2 | ||||
| -rw-r--r-- | src/player-input.hpp | 4 | ||||
| -rw-r--r-- | src/window.cpp | 66 | ||||
| m--------- | sub/bullet3 | 0 | ||||
| m--------- | sub/cgltf | 0 | ||||
| m--------- | sub/imgui | 0 | ||||
| m--------- | sub/stb | 0 |
15 files changed, 356 insertions, 37 deletions
@@ -1,3 +1,3 @@ #compiled shaders: *.spv - +config.h diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..73a00e6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,12 @@ +[submodule "sub/imgui"] + path = sub/imgui + url = https://github.com/ocornut/imgui.git +[submodule "sub/stb"] + path = sub/stb + url = https://github.com/nothings/stb.git +[submodule "sub/cgltf"] + path = sub/cgltf + url = https://github.com/jkuhlmann/cgltf.git +[submodule "sub/bullet3"] + path = sub/bullet3 + url = https://github.com/bulletphysics/bullet3.git diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cfef1ea --- /dev/null +++ b/Makefile @@ -0,0 +1,267 @@ +# pikul_two + +PROJ=pikul_two + +include config.mk + +#echo $@ : $(@F) : $< : $^ +define cc-bin-command + $(CC) -std=c2x -c -o $@ -DNDEBUG -O0 $(CFLAGS) $(INCS) $< +endef +define cc-dbg-command + $(CC) -std=c2x -c -o $@ -DDEBUG -g -O0 $(CFLAGS) $(INCS) $< +endef +define cxx-bin-command + $(CXX) -std=c++23 -c -o $@ -DNDEBUG -O0 $(CXXFLAGS) $(INCS) $< +endef +define cxx-dbg-command + $(CXX) -std=c++23 -c -o $@ -DDEBUG -g -O0 $(CXXFLAGS) $(INCS) $< +endef + +FLG_PKE = -Isub/imgui -Isub/stb -Isub/cgltf -Isub/bullet3/src +FLG_EDT = $(FLG_PKE) -Isrc + +DIR_OBJ=obj +DIR_BIN=bin +DIR_DBG=dbg +DIR_SCR=scratch + +SRC = \ + src/vendor/pkh_include.cpp \ + src/arg-handler.cpp \ + src/camera.cpp \ + src/ecs.cpp \ + src/entities.cpp \ + src/event.cpp \ + src/game.cpp \ + src/game-settings.cpp \ + src/helpers.cpp \ + src/level-types.cpp \ + src/level.cpp \ + src/math-helpers.cpp \ + src/dynamic-array.cpp \ + src/asset-manager.cpp \ + src/physics.cpp \ + src/player-input.cpp \ + src/plugins.cpp \ + src/project.cpp \ + src/project-settings.cpp \ + src/static/cube.cpp \ + src/thread_pool.cpp \ + src/vendor/cgltf-include.cpp \ + src/vendor/stb_image_include.cpp \ + src/vendor/tinyfiledialogs/tinyfiledialogs.c \ + src/window.cpp \ + +DST_SHADERS = \ + $(DIR_OBJ)/vertex.vert.spv \ + $(DIR_OBJ)/present.vert.spv \ + $(DIR_OBJ)/texture.frag.spv \ + $(DIR_OBJ)/present.frag.spv \ + +# Bullet3Collision/libBullet3Collision.a \ + Bullet3Dynamics/libBullet3Dynamics.a \ + Bullet3Geometry/libBullet3Geometry.a \ + Bullet3OpenCL/libBullet3OpenCL_clew.a \ + Bullet3Serialize/Bullet2FileLoader/libBullet2FileLoader.a \ + BulletInverseDynamics/libBulletInverseDynamics.a \ + BulletSoftBody/libBulletSoftBody.a \ + +# DST_BULLET = \ + BulletDynamics/libBulletDynamics.so.3.25 \ + BulletCollision/libBulletCollision.so.3.25 \ + LinearMath/libLinearMath.so.3.25 \ + Bullet3Common/libBullet3Common.so.3.25 \ + +# TMP_BULLET = $(notdir $(DST_BULLET)) +# DST_BULLET_BIN = $(TMP_BULLET:%.so.3.25=$(DIR_BIN)/%.so.3.25) +# DST_BULLET_DBG = $(TMP_BULLET:%.so.3.25=$(DIR_DBG)/%.so.3.25) + +DST_BULLET = \ + BulletDynamics/libBulletDynamics.a \ + BulletCollision/libBulletCollision.a \ + LinearMath/libLinearMath.a \ + Bullet3Common/libBullet3Common.a \ + +DST_BULLET_BIN = $(TMP_BULLET:%.a=$(DIR_BIN)/src/bullet3/%.a) +DST_BULLET_DBG = $(TMP_BULLET:%.a=$(DIR_DBG)/src/bullet3/%.a) + +SRC_C = $(filter %.c,$(SRC)) +SRC_CXX = $(filter %.cpp,$(SRC)) +OBJ = $(SRC_C:%.c=%.o) +SOBJ = $(SRC_C:%.c=%.so) +CXXOBJ = $(SRC_CXX:%.cpp=%.o) +CXXSOBJ = $(SRC_CXX:%.cpp=%.so) +TMP_OUT_OBJ = $(notdir $(OBJ)) +TMP_OUT_SOBJ = $(notdir $(SOBJ)) +TMP_OUT_CXXOBJ = $(notdir $(CXXOBJ)) +TMP_OUT_CXXSOBJ = $(notdir $(CXXSOBJ)) +OUT_OBJ = $(TMP_OUT_OBJ:%.o=$(DIR_OBJ)/%.o) +OUT_SOBJ = $(TMP_OUT_SOBJ:%.so=$(DIR_OBJ)/%.so) +OUT_CXXOBJ = $(TMP_OUT_CXXOBJ:%.o=$(DIR_OBJ)/%.o) +OUT_CXXSOBJ = $(TMP_OUT_CXXSOBJ:%.so=$(DIR_OBJ)/%.so) + +.PHONY: prepare +prepare: + mkdir -p $(DIR_BIN) $(DIR_DBG) $(DIR_OBJ) $(DIR_DBG)/bullet3 $(DIR_BIN)/bullet3 + mkdir -p $(DIR_BIN)/bullet3 $(DIR_BIN)/assets/shaders + mkdir -p $(DIR_DBG)/bullet3 $(DIR_DBG)/assets/shaders + +.PHONY: options +options: prepare .WAIT + @echo "$(PROJ)" build options: + @echo "CFLAGS = $(CFLAGS)" + @echo "CXXFLAGS = $(CXXFLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" + @echo "CC = $(CC)" + @echo "CXX = $(CXX)" + +config.h: + cp config.def.h $@ + +%.h: ; + +$(SRC_C): config.h config.mk +$(SRC_CXX): config.h config.mk + +$(DIR_OBJ)/%.o: sub/imgui/%.cpp + $(cxx-bin-command) -Isub/imgui +$(DIR_OBJ)/%.so: sub/imgui/%.cpp + $(cxx-dbg-command) -Isub/imgui +$(DIR_OBJ)/%.o: sub/imgui/backends/%.cpp + $(cxx-bin-command) -Isub/imgui +$(DIR_OBJ)/%.so: sub/imgui/backends/%.cpp + $(cxx-dbg-command) -Isub/imgui +$(DIR_OBJ)/%.o: sub/imgui/misc/cpp/%.cpp + $(cxx-bin-command) -Isub/imgui +$(DIR_OBJ)/%.so: sub/imgui/misc/cpp/%.cpp + $(cxx-dbg-command) -Isub/imgui + +$(DIR_OBJ)/%.vert.spv: assets/shaders/%.vert + $(GLSLC) $^ -o $@ + cp $@ $(DIR_BIN)/assets/shaders + cp $@ $(DIR_DBG)/assets/shaders +$(DIR_OBJ)/%.frag.spv: assets/shaders/%.frag + $(GLSLC) $^ -o $@ + cp $@ $(DIR_BIN)/assets/shaders + cp $@ $(DIR_DBG)/assets/shaders + +$(DIR_OBJ)/%.o : src/%.c + $(cc-bin-command) $(FLG_PKE) +$(DIR_OBJ)/%.so : src/%.c + $(cc-dbg-command) $(FLG_PKE) +$(DIR_OBJ)/%.o : src/vendor/tinyfiledialogs/%.c + $(cc-bin-command) $(FLG_PKE) +$(DIR_OBJ)/%.so : src/vendor/tinyfiledialogs/%.c + $(cc-dbg-command) $(FLG_PKE) + +$(DIR_OBJ)/%.o : src/%.cpp + $(cxx-bin-command) $(FLG_PKE) +$(DIR_OBJ)/%.so : src/%.cpp + $(cxx-dbg-command) $(FLG_PKE) +$(DIR_OBJ)/%.o : src/static/%.cpp + $(cxx-bin-command) $(FLG_PKE) +$(DIR_OBJ)/%.so : src/static/%.cpp + $(cxx-dbg-command) $(FLG_PKE) +$(DIR_OBJ)/%.o : src/vendor/%.cpp + $(cxx-bin-command) $(FLG_PKE) +$(DIR_OBJ)/%.so : src/vendor/%.cpp + $(cxx-dbg-command) $(FLG_PKE) +$(DIR_OBJ)/%.o : editor/%.cpp + $(cxx-bin-command) $(FLG_EDT) +$(DIR_OBJ)/%.so : editor/%.cpp + $(cxx-dbg-command) $(FLG_EDT) + +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui.o +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_demo.o +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_draw.o +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_tables.o +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_widgets.o +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_impl_glfw.o +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_impl_vulkan.o +$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_stdlib.o + ar rc $@ $^ + ranlib $@ + +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui.so +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_demo.so +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_draw.so +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_tables.so +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_widgets.so +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_impl_glfw.so +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_impl_vulkan.so +$(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_stdlib.so + ar rc $@ $^ + ranlib $@ + +$(DIR_BIN)/libBullet3.a: + $(CMAKE) \ + -DCMAKE_C_FLAGS:STRING="" \ + -DCMAKE_CXX_FLAGS:STRING="" \ + -DCMAKE_BUILD_TYPE:STRING=Release \ + -DBUILD_BULLET2_DEMOS:BOOL=0 \ + -DBUILD_CPU_DEMOS:BOOL=0 \ + -DBUILD_UNIT_TESTS:BOOL=0 \ + -DBUILD_OPENGL3_DEMOS:BOOL=0 \ + -DBUILD_EXTRAS:BOOL=0 \ + -DINSTALL_EXTRA_LIBS:BOOL=0 \ + -DINSTALL_LIBS:BOOL=1 \ + -DINSTALL_CMAKE_FILES:BOOL=0 \ + -DPOSITION_INDEPENDENT_CODE:BOOL=0 \ + -Hsub/bullet3 -B$(DIR_BIN)/bullet3 -G "Unix Makefiles" + $(CMAKE) --build $(DIR_BIN)/bullet3 --target BulletDynamics BulletCollision LinearMath Bullet3Common + ar rc $@ $(DST_BULLET_BIN) + # touch $@ + + +# -LAH to show all cmake variables + +# +# ar rc $@ sub/bullet3/build3/gmake/obj/x64/Debug/Bullet3Collision/*.o +# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/Bullet3Common/*.o +# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/BulletCollision/*.o +# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/BulletDynamics/*.o +# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/LinearMath/*.o +$(DIR_DBG)/libBullet3.a: + (cd sub/bullet3/build3 && ./premake4_linux64 gmake) + ${MAKE} no-demos=1 no-extras=1 no-test=1 config=debug64 -j$$((`nproc`-1)) -C sub/bullet3/build3/gmake \ + BulletCollision Bullet3Collision BulletDynamics LinearMath Bullet3Common + ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/*/*.o + ranlib $@ + +$(DIR_BIN)/libpke.a: $(DST_SHADERS) +$(DIR_BIN)/libpke.a: $(OUT_OBJ) $(OUT_CXXOBJ) +$(DIR_BIN)/libpke.a: + ar rc $@ $(filter %.o,$^) + ranlib $@ + +$(DIR_DBG)/libpke.a: $(DST_SHADERS) +$(DIR_DBG)/libpke.a: $(OUT_SOBJ) $(OUT_CXXSOBJ) +$(DIR_DBG)/libpke.a: + ar rc $@ $(filter %.so,$^) + ranlib $@ + +# $(DST_BULLET_BIN) -L$(PWD)/bin -L$(PWD)/obj +# $(DIR_BIN)/pke-editor: $(DIR_OBJ)/main.o $(DIR_OBJ)/editor.o +$(DIR_BIN)/pke-editor: $(DIR_OBJ)/main.o $(DIR_OBJ)/editor.o +$(DIR_BIN)/pke-editor: $(DIR_BIN)/libpke.a + $(CXX) -v -o $@ -O3 $(CXXFLAGS) $(LDFLAGS) $(FLG_EDT) $^ -Wl,-v + +$(DIR_DBG)/pke-editor: $(DIR_DBG)/libpke.a $(DIR_DBG)/libImgui.a $(DIR_DBG)/libBullet3.a +$(DIR_DBG)/pke-editor: $(DIR_OBJ)/main.so $(DIR_OBJ)/editor.so + @echo $^ + $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -Os $(FLG_EDT) -o $@ + +# pke-dbg: + +.PHONY: print +print: + @echo $(DST_SHADERS) + +.PHONY: clean +clean: + rm -rf .cache + rm -f *.o *.so *.plist config.h + rm -rf $(DIR_BIN) $(DIR_OBJ) $(DIR_DBG) + +.PHONY: dist install uninstall diff --git a/assets/shaders/vert.vert b/assets/shaders/vertex.vert index 57fa219..57fa219 100644 --- a/assets/shaders/vert.vert +++ b/assets/shaders/vertex.vert diff --git a/config.def.h b/config.def.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/config.def.h diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..1dcde1f --- /dev/null +++ b/config.mk @@ -0,0 +1,38 @@ +# pikul_two version +PKE_VERSION=0.1.0 + +# paths +PREFIX = /usr/local +MANPREFIX = $(PREFIX)/share/man + +# exes +PKG_CONFIG = pkg-config +CMAKE = /usr/bin/cmake +GLSLC = /usr/bin/glslc + +# includes and libs +USED_LIBS = \ + vulkan \ + glfw3 \ + glm \ + +INCS = `$(PKG_CONFIG) --cflags $(USED_LIBS)` + +LIBS = -lm `$(PKG_CONFIG) --libs $(USED_LIBS)` -lpthread + +# flags +SHARED_FLAGS = -D_DEFAULT_SOURCE \ + -D_POSIX_C_SOURCE=200809L \ + -DPKE_VERSION=\"$(PKE_VERSION)\" \ + -pedantic \ + -fPIC \ + -pthread \ + +CFLAGS += -Wall $(SHARED_FLAGS) +CXXFLAGS += -Wall $(SHARED_FLAGS) +CPPFLAGS = $(SHARED_FLAGS) +LDFLAGS = $(LIBS) + +# compiler & linker +CC = /usr/bin/gcc +CXX = /usr/bin/g++ diff --git a/CMakeLists.txt b/dead.CMakeLists.txt index ec40e9f..ec40e9f 100644 --- a/CMakeLists.txt +++ b/dead.CMakeLists.txt diff --git a/editor/editor.cpp b/editor/editor.cpp index 8c99096..db82fc0 100644 --- a/editor/editor.cpp +++ b/editor/editor.cpp @@ -569,7 +569,7 @@ void RecordImGuiModalCreateAsset() { } void RecordImGuiEditorWrapper() { - ImGui::DockSpaceOverViewport(nullptr, ImGuiDockNodeFlags_PassthruCentralNode); + ImGui::DockSpaceOverViewport(0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode); ImGui::BeginMainMenuBar(); if (ImGui::BeginMenu("File")) { if (ImGui::MenuItem("New Scene")) { diff --git a/src/asset-manager.cpp b/src/asset-manager.cpp index 2784b1e..fc24a48 100644 --- a/src/asset-manager.cpp +++ b/src/asset-manager.cpp @@ -27,7 +27,7 @@ void AM_Init() { assetThreadPool = PkeThreads_Init(2, 255); AM_Register(EngineDefinedAssets[0], PKE_ASSET_TYPE_SHADER, "assets/shaders/present.vert.spv"); AM_Register(EngineDefinedAssets[1], PKE_ASSET_TYPE_SHADER, "assets/shaders/present.frag.spv"); - AM_Register(EngineDefinedAssets[2], PKE_ASSET_TYPE_SHADER, "assets/shaders/vert.vert.spv"); + AM_Register(EngineDefinedAssets[2], PKE_ASSET_TYPE_SHADER, "assets/shaders/vertex.vert.spv"); AM_Register(EngineDefinedAssets[3], PKE_ASSET_TYPE_SHADER, "assets/shaders/texture.frag.spv"); } diff --git a/src/player-input.hpp b/src/player-input.hpp index e3d3501..392e675 100644 --- a/src/player-input.hpp +++ b/src/player-input.hpp @@ -104,9 +104,7 @@ struct PkeInputAction { const char *name; union { PkeInputEventMask masks[PKE_INPUT_ACTION_MASK_COUNT] = {{}}; - struct { - PkeInputEventMask primaryHash; - }; + PkeInputEventMask primaryHash; }; int32_t eventIndex; }; diff --git a/src/window.cpp b/src/window.cpp index c7963eb..1be148f 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1,3 +1,4 @@ +#include "backends/imgui_impl_vulkan.h" #include "math-helpers.hpp" #include "static/missing-texture.hpp" #define GLFW_INCLUDE_NONE @@ -2263,52 +2264,55 @@ void CreateImGui() { vkCreateDescriptorPool(vkDevice, &descriptorPoolCreateInfo, vkAllocator, &imGuiDescriptorPool); ImGui_ImplGlfw_InitForVulkan(window, true); - ImGui_ImplVulkan_InitInfo initInfo; + ImGui_ImplVulkan_InitInfo initInfo = {}; initInfo.Allocator = vkAllocator; initInfo.CheckVkResultFn = ImGuiCheckVkResult; - initInfo.ColorAttachmentFormat = VkFormat::VK_FORMAT_B8G8R8A8_SRGB; + // initInfo.ColorAttachmentFormat = VkFormat::VK_FORMAT_B8G8R8A8_SRGB; initInfo.DescriptorPool = imGuiDescriptorPool; initInfo.Device = vkDevice; - initInfo.Instance = vkInstance; initInfo.ImageCount = MAX_FRAMES_IN_FLIGHT; - initInfo.MinImageCount = MAX_FRAMES_IN_FLIGHT; + initInfo.Instance = vkInstance; initInfo.MSAASamples = VK_SAMPLE_COUNT_1_BIT; + initInfo.MinImageCount = MAX_FRAMES_IN_FLIGHT; initInfo.PhysicalDevice = vkPhysicalDevice; initInfo.PipelineCache = {}; initInfo.Queue = graphicsQueue; initInfo.QueueFamily = graphicsFamilyIndex; + initInfo.RenderPass = presentRenderPass; initInfo.Subpass = 0; initInfo.UseDynamicRendering = false; - ImGui_ImplVulkan_Init(&initInfo, presentRenderPass); + ImGui_ImplVulkan_Init(&initInfo); // font - { - VkCommandBufferBeginInfo begInfo; - begInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - begInfo.pNext = nullptr; - begInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - begInfo.pInheritanceInfo = {}; - vkBeginCommandBuffer(presentCommandBuffers[0], &begInfo); - - ImGui_ImplVulkan_CreateFontsTexture(presentCommandBuffers[0]); - - vkEndCommandBuffer(presentCommandBuffers[0]); - - VkSubmitInfo submitInfo; - submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - submitInfo.pNext = nullptr; - submitInfo.waitSemaphoreCount = 0; - submitInfo.pWaitSemaphores = nullptr; - submitInfo.pWaitDstStageMask = nullptr; - submitInfo.commandBufferCount = 1; - submitInfo.pCommandBuffers = presentCommandBuffers; - submitInfo.signalSemaphoreCount = 0; - submitInfo.pSignalSemaphores = nullptr; - vkQueueSubmit(graphicsQueue, 1, &submitInfo, nullptr); - vkQueueWaitIdle(graphicsQueue); - } - ImGui_ImplVulkan_DestroyFontUploadObjects(); + // { + // VkCommandBufferBeginInfo begInfo; + // begInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; + // begInfo.pNext = nullptr; + // begInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; + // begInfo.pInheritanceInfo = {}; + // vkBeginCommandBuffer(presentCommandBuffers[0], &begInfo); + + // ImGui_ImplVulkan_CreateFontsTexture(); + // ImGui_ImplVulkan_CreateFontsTexture(presentCommandBuffers[0]); + + // vkEndCommandBuffer(presentCommandBuffers[0]); + + // VkSubmitInfo submitInfo; + // submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; + // submitInfo.pNext = nullptr; + // submitInfo.waitSemaphoreCount = 0; + // submitInfo.pWaitSemaphores = nullptr; + // submitInfo.pWaitDstStageMask = nullptr; + // submitInfo.commandBufferCount = 1; + // submitInfo.pCommandBuffers = presentCommandBuffers; + // submitInfo.signalSemaphoreCount = 0; + // submitInfo.pSignalSemaphores = nullptr; + // vkQueueSubmit(graphicsQueue, 1, &submitInfo, nullptr); + // vkQueueWaitIdle(graphicsQueue); + // } + // ImGui_ImplVulkan_DestroyFontsTexture(); + // ImGui_ImplVulkan_DestroyFontUploadObjects(); } void RecordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex) { diff --git a/sub/bullet3 b/sub/bullet3 new file mode 160000 +Subproject e9c461b0ace140d5c73972760781d94b7b5eee5 diff --git a/sub/cgltf b/sub/cgltf new file mode 160000 +Subproject 7177c019be6c105fd12bc35f249e431314f2bab diff --git a/sub/imgui b/sub/imgui new file mode 160000 +Subproject 3cdf3f9411b20cc877bab399279c9bc450185ef diff --git a/sub/stb b/sub/stb new file mode 160000 +Subproject 5c205738c191bcb0abc65c4febfa9bd25ff3523 |
