From 032226bd508b0ce4e6402615f63a2a4fe568a985 Mon Sep 17 00:00:00 2001 From: Sargates Date: Fri, 1 Mar 2024 19:22:40 -0600 Subject: [PATCH] Added showcase to README. Updated Makefile --- Makefile | 54 ++++++++++++++++++++++-------------------------- README.md | 17 ++++++++++++++- images/demo.png | Bin 0 -> 51568 bytes 3 files changed, 41 insertions(+), 30 deletions(-) create mode 100644 images/demo.png diff --git a/Makefile b/Makefile index d8b7811..ff3b050 100644 --- a/Makefile +++ b/Makefile @@ -4,19 +4,17 @@ all: windows run # Function that expands to all files recursively rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)) -# All `.cpp` files in `src` directory +# Directory where all source files are stored SRC_DIR := src -SRC_FILES := $(call rwildcard,$(SRC_DIR)/,*.cpp) +# All source files stored in $SRC_DIR +SRC_FILES := $(shell find $(SRC_DIR) -name '*.cpp') # Directory to store `.o` files OBJ_DIR := obj -# These two lines compile all object files from updated `.cpp` files, I do not understand this -OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(filter $(SRC_DIR)/%.cpp,$(SRC_FILES))) \ - $(patsubst %.cpp,$(OBJ_DIR)/%.o,$(filter-out $(SRC_DIR)/%.cpp,$(SRC_FILES))) -INCLUDE_DIR := include -HEADER_FILES := $(call rwildcard,$(INCLUDE_DIR)/,*.hpp) - -# Rule for compiling source files -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(HEADER_FILES) + +# Create string repr of object files from source files +OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES)) +# Rule for compiling object files based on changes in the source files +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp @echo -n "$@ " @mkdir -p $(@D) @$(CXX) -c $< -o $@ $(CXXFLAGS) @@ -24,18 +22,17 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(HEADER_FILES) SHADER_DIR := shaders SHADER_OUT_DIR := obj -SHADER_VERT_FILES := $(call rwildcard,$(SHADER_DIR)/,*.vert) -SHADER_FRAG_FILES := $(call rwildcard,$(SHADER_DIR)/,*.frag) +SHADER_VERT_FILES := $(shell find $(SHADER_DIR) -name '*.vert') +SHADER_FRAG_FILES := $(shell find $(SHADER_DIR) -name '*.frag') + -SHADER_VERT_SPIRV_FILES := $(patsubst $(SHADER_DIR)/%.vert,$(SHADER_OUT_DIR)/%.vert.spv,$(filter $(SHADER_DIR)/%.vert,$(SHADER_VERT_FILES))) \ - $(patsubst %.vert,$(SHADER_OUT_DIR)/%.vert.spv,$(filter-out $(SHADER_DIR)/%.vert,$(SHADER_VERT_FILES))) +SHADER_VERT_SPIRV_FILES := $(patsubst $(SHADER_DIR)/%.vert,$(SHADER_OUT_DIR)/%.vert.spv,$(SHADER_VERT_FILES)) $(SHADER_OUT_DIR)/%.vert.spv: $(SHADER_DIR)/%.vert @echo "Compiling Vertex Shaders" @mkdir -p $(@D) @$(GLSLC) -c $< -o $@ -SHADER_FRAG_SPIRV_FILES := $(patsubst $(SHADER_DIR)/%.frag,$(SHADER_OUT_DIR)/%.frag.spv,$(filter $(SHADER_DIR)/%.frag,$(SHADER_FRAG_FILES))) \ - $(patsubst %.frag,$(SHADER_OUT_DIR)/%.frag.spv,$(filter-out $(SHADER_DIR)/%.frag,$(SHADER_FRAG_FILES))) +SHADER_FRAG_SPIRV_FILES := $(patsubst $(SHADER_DIR)/%.frag,$(SHADER_OUT_DIR)/%.frag.spv,$(SHADER_FRAG_FILES)) $(SHADER_OUT_DIR)/%.frag.spv: $(SHADER_DIR)/%.frag @echo "Compiling Fragment Shaders" @mkdir -p $(@D) @@ -50,6 +47,7 @@ PROGRAM := main program: $(OBJ_FILES) @echo "" @echo "Object Files Compiled!" + @echo "" @echo "Compiling Executable..." $(CXX) $^ -o $(PROGRAM) $(CXXFLAGS) @@ -59,45 +57,43 @@ windows: @$(MAKE) shaders \ GLSLC="./bin/glslc.exe" \ --no-print-directory - @echo "Shaders Compiled!" @echo -n "Compiling Object Files: " @$(MAKE) program \ CXX="x86_64-w64-mingw32-g++" \ CXXFLAGS="-I include -L lib/x86_64-w64-mingw32 -lopengl32 -lglfw3dll -lvulkan -std=c++20" \ --no-print-directory + @echo "" linux: @echo "Making game for Linux" @$(MAKE) shaders \ GLSLC="./bin/glslc" \ --no-print-directory - @echo "Shaders Compiled!" @echo -n "Compiling Object Files: " @$(MAKE) program \ CXX="g++" \ CXXFLAGS="-I include -L lib/x86_64-linux-gnu -lglfw3 -lvulkan -lGL -std=c++20" \ --no-print-directory - + @echo "" shaders: $(SHADER_VERT_SPIRV_FILES) $(SHADER_FRAG_SPIRV_FILES) - @echo "Compiling Shaders: GLSLC = $(GLSLC)" - -# shaders-linux: + @echo "Shaders Compiled!" test: - @echo $(SRC_FILES) - @echo $(OBJ_FILES) - @echo $(SHADER_VERT_FILES) - @echo $(SHADER_FRAG_FILES) - @echo $(SHADER_VERT_SPIRV_FILES) - @echo $(SHADER_FRAG_SPIRV_FILES) + @echo " SRC_FILES: $(SRC_FILES)" + @echo " OBJ_FILES: $(OBJ_FILES)" + @echo " SHADER_VERT_FILES: $(SHADER_VERT_FILES)" + @echo " SHADER_FRAG_FILES: $(SHADER_FRAG_FILES)" + @echo "SHADER_VERT_SPIRV_FILES: $(SHADER_VERT_SPIRV_FILES)" + @echo "SHADER_FRAG_SPIRV_FILES: $(SHADER_FRAG_SPIRV_FILES)" run: @# Uses wildcard to be platform independant -- might cause unintended behavior - ./$(PROGRAM)* + @echo ">>> Starting Program" + @./$(PROGRAM)* clean: @rm -rf $(PROGRAM) $(PROGRAM).exe $(OBJ_DIR) diff --git a/README.md b/README.md index 3653a89..2683ce1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,20 @@ # Vulkan-Engine-cpp -This is a game engine prototype I'm creating by following [this tutorial](https://www.youtube.com/playlist?list=PL8327DO66nu9qYVKLDmdLW_84-yE4auCR) +This program uses Vulkan to render inside of a GLFW window and requires your computer to be compatible with Vulkan. \ +This is a game engine prototype I'm creating by following [this tutorial](https://www.youtube.com/playlist?list=PL8327DO66nu9qYVKLDmdLW_84-yE4auCR). \ +All libraries and headers are included so it should be as plug and play as possible. Makefile can cross-compile to a Windows executable using MinGW. \ +Uses C++20 by default. +## Download/Execution +Just pull, `cd` into the repo, and call `make`. Default directive is to build for Windows, run `make linux` to build +for linux. + +## Dependencies +Everything needed is included. Your computer must support the Vulkan API. \ +To compile for Windows, as stated above, a MinGW compiler is required. *The included GLFW library is built for MinGW not MSVC*. \ +The MinGW compiler that I'm using is from the Ubuntu 22.04 package manager (jammy) on WSL. +If you're using Msys2 or w64devkit you will probably need to modify the make file directly to change which binary is being executed. + +### Showcase: +[](images/demo.png) diff --git a/images/demo.png b/images/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..54bbb49ea9e29e1f0e2cc3d59b417c662f054cad GIT binary patch literal 51568 zcmeGEc|4T;`vwkQL`9)Ul%!2cL;NBVaA60M1+?L zV;ClKVE=9t44XxR|AupC!;vwUds*;{&)a0*E{tBa>@z$NaN23G6T>pD&YQFsgvUaj z`wx3#m?#VV=X>Fiaty;>3LeLW8{!h}w)>deouG{VP=c-KyRYead zq|ALV_s>80|5|Y&VZ|1AUGHmbs-C&7D+FRnuaRO_J){zfJb& za5D}MJ&-CoIcga+Vwov7`Ajahh#l=)J^FU|ai*4Seq-O9z;}l??>G>%csO=E&av*W zSpV5Ek8{g>WQLcoNLW#5n-I3QTB@CUxy(ftYZ;%g4Gb6^lSo);1PFvU++ z^P>+HTP`}izpE4_^<5Bv>sv`T?tnOTMJ!S2{hX zYPydWMBo^4$8}!aA8PBEY8%!Iy6Qg`HoWcaT2tqV!his41)nbimg7nlJ)1Cg!t24s z?b4R3Mx?*wVc3LMFUKg}sZQY>cPxn8XY*p2)W*pghm(Zw^8DDkB|Dj}U%x+pv2J7w zmf-Kd!{cgmw|8~CR_9Bjz^|^=T4Pp9?ef`H=BCaSo-%)2>Yvy-m&A6OpFn0PZ7QlC1l9nqQGduM)0h;aEFHB7>U;~QBx_GLOp{M>RZxZbZJ z^S)MV7I&JXGpb+ml^wokdhodlx5}e>`n^j~My^?h_x<76X1+PgH2ljX?lXvA&zP6Y z&7YY1MkV>p+9~!Q&xl=U_%vS1>G*pnUog0yCTS5gye%kTl%*2*<^2th z+9VqfHn&TqSli##OFoFZEogh|Sn^n$*6>}fLnHsgDwPWx1C55~IWhaDJmgHrzP#q% zoR-T!vkRN`L2K?G4}16reK(Y|7h@LHPj*B)X@B^fSrl~oN#D22cZyDH%Vu$ns@wfa z>7SdcC(bu-EB;~>?$R7LxtxAaHE`6cP7b>vH~ZKM!+SaNvAqeek4TkZmX~d}U=u#i zF2y)?aQ_*M3+Skg?=#%ImTTl3*k}GEda7M+vi<#=fn%=mmV-sPS%qz7)Unx9&lR-o zN9(!YJ5JB>I>2L=; zoW!&yf~t}gp9FSQIt7h71?A^vRSNdRX>#5=$sM--Iz`i&W;I{e;f%Hgj-KHRQyFbK zqU^&)+-ZeDAOEdOZjvvh1?@gjVDQ(757|ck^;pr=hl>%-URbo^pzrm{;=>OtzxZB{ z!xB8?in#5~+|hm96Qe!cFD?V$f+l0Q{?puB-E_@?yK CE7|AE06V6wGJLtI^4b^ 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�Mt*y(r+SHpCtPlnq}6zq$JTK=02+FVi?pIO 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 literal 0 HcmV?d00001