summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--.gitmodules12
-rw-r--r--Makefile267
-rw-r--r--assets/shaders/vertex.vert (renamed from assets/shaders/vert.vert)0
-rw-r--r--config.def.h0
-rw-r--r--config.mk38
-rw-r--r--dead.CMakeLists.txt (renamed from CMakeLists.txt)0
-rw-r--r--editor/editor.cpp2
-rw-r--r--src/asset-manager.cpp2
-rw-r--r--src/player-input.hpp4
-rw-r--r--src/window.cpp66
m---------sub/bullet30
m---------sub/cgltf0
m---------sub/imgui0
m---------sub/stb0
15 files changed, 356 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index e65ceeb..fa1b4ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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