Changeset 756162f in opengl-game
- Timestamp:
- May 1, 2021, 6:26:44 PM (3 years ago)
- Branches:
- feature/imgui-sdl
- Children:
- 9d21aac
- Parents:
- b8072d3 (diff), cb6fabb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - git-author:
- Dmitry Portnoy <dportnoy@…> (05/01/21 18:26:23)
- git-committer:
- Dmitry Portnoy <dportnoy@…> (05/01/21 18:26:44)
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
compile.sh
rb8072d3 r756162f 1 1 # TODO: Figure out why calling this from a makefile gives an error about shopt not being found 2 3 # This section is left here in case there's no easy way to get glslangValidator in the path on a Mac4 5 OS=$(uname)6 7 if [ $OS = "Darwin" ]; then8 VULKAN_SDK_PATH=/Users/dportnoy15/Development/vulkan-sdk-macos-1.1.108.0/macOS9 fi10 2 11 3 cd shaders -
docs/README.txt
rb8072d3 r756162f 1 -------------------- 2 CONTROLS 3 -------------------- 4 5 Use left and right arrow keys to move your ship 6 Use Z and X to fire your left and right lasers at the cubes (asteroids) 7 8 -------------------- 9 VULKAN INSTRUCTIOS 10 -------------------- 11 12 These are the most up-to-date instructions. Use these rather than the ones 13 listed further down, which are for the old OpenGL version of the game 14 15 Windows 16 -------- 17 18 Create an include directory inside the opengl-game folder 19 20 Download GLM and copy the glm folder into your include directory 21 22 Download the 64bit pre-compiledbinaries of GLFW3 23 - Copy lib-vc2019/glfw3.lib into your lib directory 24 - Copy the whole include/GLFW directory into your include directory 25 26 Download the SDL2 pre-built Windows binaries 27 - Copy the SDL2 include folder into /include and rename it SDL2 28 - Copy the contents of lib/x64 to lib 29 30 Download the SDL2_image Visual C++ development libraries from https://www.libsdl.org/projects/SDL_image/ 31 Download the SDL2_ttf Visual C++ development libraries from https://www.libsdl.org/projects/SDL_ttf/ 32 (Might use SDL2_gfx later as well) 33 34 Copy the 64-bit static libraries to the lib directory you created above 35 36 TODO: Figure out how to do static compilation with SDL2 37 38 Since I'm currently using dynamic SDL2 libraries for Windows, some DLLs from sdl2-ttf and sdl2-image 39 40 Download the vulkan sdk 41 - Add the location of the Include folder to the VS2019 project properties under C/C++ -> General -> Addition Include DIrectories 42 - Add the location of the Lib folder to the VS2019 project properties under Linker -> General -> Addition Library DIrectories 43 44 Linux: 45 -------- 46 47 Download the vulkan sdk (make sure VULKAN_SDK_PATH in the makefile points to it) 48 49 sudo apt-get install libxcb1-dev xorg-dev libglm-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev 50 51 source setup-env.sh into your current shell 52 53 mActually, I think now this should work, after following the online instructions for installing Vulkan: 54 sudo apt-get install vulkan-sdk libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libglm-dev 55 (Follow the instructions at https://vulkan.lunarg.com/sdk/home#linux to add the latest Vulkan SDK version to apt-get) 56 (Verify that installing libvulkan-1 is not required) 57 58 make vulkangame && ./vulkangame 59 60 For the sfml version: (these directions need verification) 61 62 sudo apt-get install libglm-dev libsfml-dev 63 64 Currently, the apt-get sfml package doesn't have Vulkan support, so need to install from source as follows: 65 66 Build the library yourself by following the instructions at https://www.sfml-dev.org/tutorials/2.5/compile-with-cmake.php 67 68 sudo apt-get install libfreetype-dev libx11-dev libxrandr-dev libudev-dev libopengl-dev libflac-dev libogg-dev libvorbis-dev libopenal-dev libpthread-stubs0-dev 69 70 sudo apt-get install cmake-qt-gui 71 72 Clone the sfml repo 73 74 OSX 75 -------- 76 77 brew install cmake pkg-config glm sdl2 sdl2_image sdl2_ttf sdl2_gfx 78 (cmake is needed for the python script mentioned below) 79 80 Download the Vulkan SDK from https://vulkan.lunarg.com/sdk/home 81 82 Install it by running this from inside the downloaded folder: 83 sudo ./install_vulkan.py 84 85 make shaders 86 make vulkangame 87 ./vulkangame 88 89 90 INSTRUCTIONS FOR THE SFML VERSION () 91 92 OLD INSTALL INSTRUCTIONS FOR THE OpenGL version (might no longer work) 93 ----------------------------------------------------------------------- 94 1 95 Installation Instructions for Linux 2 96 --------------------------------------- … … 47 141 48 142 49 --------------------50 VULKAN INSTRUCTIOS51 --------------------52 53 Windows54 --------55 56 Create an include directory inside the opengl-game folder57 58 Download GLM and copy the glm folder into your include directory59 60 Download the 64bit pre-compiledbinaries of GLFW361 - Copy lib-vc2019/glfw3.lib into your lib directory62 - Copy the whole include/GLFW directory into your include directory63 64 Download the SDL2 pre-built Windows binaries65 - Copy the SDL2 include folder into /include and rename it SDL266 - Copy the contents of lib/x64 to lib67 68 Download the SDL2_image Visual C++ development libraries from https://www.libsdl.org/projects/SDL_image/69 Download the SDL2_ttf Visual C++ development libraries from https://www.libsdl.org/projects/SDL_ttf/70 (Might use SDL2_gfx later as well)71 72 Copy the 64-bit static libraries to the lib directory you created above73 74 TODO: Figure out how to do static compilation with SDL275 76 Since I'm currently using dynamic SDL2 libraries for Windows, some DLLs from sdl2-ttf and sdl2-image77 78 Download the vulkan sdk79 - Add the location of the Include folder to the VS2019 project properties under C/C++ -> General -> Addition Include DIrectories80 - Add the location of the Lib folder to the VS2019 project properties under Linker -> General -> Addition Library DIrectories81 82 Linux:83 --------84 85 Download the vulkan sdk (make sure VULKAN_SDK_PATH in the makefile points to it)86 87 sudo apt-get install libxcb1-dev xorg-dev libglm-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev88 89 source setup-env.sh into your current shell90 91 Actually, I think now this should work, after following the online instructions for installing Vulkan:92 sudo apt-get install vulkan-sdk libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libglm-dev93 (Follow the instructions at https://vulkan.lunarg.com/sdk/home#linux to add the latest Vulkan SDK version to apt-get)94 (Verify that installing libvulkan-1 is not required)95 96 make vulkangame && ./vulkangame97 98 For the sfml version: (these directions need verification)99 100 sudo apt-get install libglm-dev libsfml-dev101 102 Currently, the apt-get package doesn't have Vulkan support, so need to install from source as follows:103 104 Build the library yourself by following the instructions at https://www.sfml-dev.org/tutorials/2.5/compile-with-cmake.php105 106 sudo apt-get install libfreetype-dev libx11-dev libxrandr-dev libudev-dev libopengl-dev libflac-dev libogg-dev libvorbis-dev libopenal-dev libpthread-stubs0-dev107 108 sudo apt-get install cmake-qt-gui109 110 Clone the sfml repo111 112 OSX113 --------114 115 Download the vulkan sdk (make sure VULKAN_SDK_PATH in the makefile points to it)116 117 brew install sdl2 sdl2_image sdl2_ttf sdl2_gfx118 119 make vulkangame && ./vulkangame120 143 121 144 REFERENCE -
game-gui-sdl.hpp
rb8072d3 r756162f 35 35 #endif 36 36 37 SDL_Window* window; 38 37 39 private: 38 SDL_Window* window;40 // SDL_Window* window; 39 41 int windowWidth, windowHeight; 40 42 const Uint8* keyState; -
makefile
rb8072d3 r756162f 30 30 $(CC) $^ $(DEP) $(CXX_FLAGS) -o $@ -DGLEW_STATIC 31 31 32 ifeq ($(OS),Darwin)33 VULKAN_SDK_PATH = /Users/dportnoy15/Development/vulkan-sdk-macos-1.1.108.0/macOS34 endif35 ifeq ($(OS),Linux)36 VULKAN_SDK_PATH = /home/dportnoy/Desktop/VulkanSDK/1.1.106.0/x86_6437 endif38 39 LIB_PATHS = -I$(VULKAN_SDK_PATH)/include40 ifeq ($(OS),Darwin)41 LIB_PATHS := -Wl,-rpath,$(VULKAN_SDK_PATH)/lib $(LIB_PATHS)42 endif43 ifeq ($(OS),Linux)44 LIB_PATHS =45 endif46 47 32 LIBS = `pkg-config --static --libs sdl2 sdl2_image sdl2_ttf` 48 33 ifeq ($(OS),Darwin) 49 LIBS := $(VULKAN_SDK_PATH)/lib/libvulkan.dylib$(LIBS)34 LIBS := -lvulkan $(LIBS) 50 35 endif 51 36 ifeq ($(OS),Linux) … … 89 74 .PHONY: shaders 90 75 shaders: 91 cd shaders && ../compile.sh && cd ..76 ./compile.sh 92 77 93 78 clean: -
vulkan-game.cpp
rb8072d3 r756162f 853 853 ImGui::NewFrame(); 854 854 855 (this->*currentRenderScreenFn)(gui->getWindowWidth(), gui->getWindowHeight()); 855 int w, h; 856 SDL_GetWindowSize(((GameGui_SDL*)gui)->window, &w, &h); 857 858 // Probably a retina display 859 // TODO: Find a better fix for this. Maybe I should use SDL_Vulkan_GetWindowSize here instead 860 // of SDL_Vulkan_GetDrawableSize 861 if (w < gui->getWindowWidth() && h < gui->getWindowHeight()) { 862 (this->*currentRenderScreenFn)(w, h); 863 } else { 864 (this->*currentRenderScreenFn)(gui->getWindowWidth(), gui->getWindowHeight()); 865 } 856 866 857 867 ImGui::Render();
Note:
See TracChangeset
for help on using the changeset viewer.