Horizon is a rendering library written in C++20 using the Vulkan API. The project was written to have near zero impact on Vulkan initialization and use. The project is very simple, but written to be easily expandable.
- API dependant wrapper classes around basic functionality (VertexBuffers, Renderpasses, etc.)
- Easy to use utility classes.
- C++20 compatible compiler
-
Clone the repository:
git clone --recursive https://github.com/ggjorven/Horizon.git cd Horizon
-
Navigate to the scripts folder:
cd scripts/windows
-
(Optional) If you haven't already installed the Vulkan SDK you can install it like this:
./install-vulkansdk.bat
-
Choose what you want it build to:
- Visual Studio 17 2022:
./gen-vs2022.bat
- MinGW make files:
./gen-make.bat
- Visual Studio 17 2022:
-
Clone the repository:
git clone --recursive https://github.com/ggjorven/Horizon.git cd Horizon
-
Navigate to the scripts folder:
cd scripts/linux
-
(Optional) If you haven't already installed the premake5 build system you can install it like this:
chmod +x install-premake5.sh ./install-premake5.sh
-
(Optional) If you haven't already installed the Vulkan SDK you can install it like this:
chmod +x install-vulkansdk.sh ./install-vulkansdk.sh
-
Generate make files:
chmod +x gen-make.sh ./gen-make.sh
-
Visual Studio 17 2022:
-
Navigate to the root of the directory
-
Open the Pulse.sln file
-
Start building in your desired configuration
-
Build files can be in the bin/%Config%-windows/ folder.
-
(Optional) Open a terminal and run the Sandbox project:
./Sandbox.exe
-
-
MinGW Make:
-
Navigate to the root of the directory
-
Open a terminal.
-
Call make with desired configuration (debug, release or dist):
make config=release
-
Build files can be in the bin/%Config%-linux/ folder.
-
(Optional) Open a terminal and run the Sandbox project:
./Sandbox.exe
-
Before you start make sure you have GLFW dependencies installed:
- libx11, libxcursor, libxrandr, libxinerama, libxi
If you don't have these installed we have created a script to help you out. This script works on these architectures (Ubuntu/Debian, Fedora, CentOS/RHEL, Arch).
This scripts can be found in the 'scripts/linux/' folder, then run these commands:
chmod +x install-glfw-dependencies.sh
./install-glfw-dependencies.sh
-
Navigate to the root of the directory
-
Open a terminal
-
Call make with desired configuration (debug, release or dist):
make config=release
-
Build files can be in the bin/%Config%-linux/ folder.
-
(Optional) Open a terminal and run the Sandbox project:
chmod +x Sandbox ./Sandbox
This project is licensed under the Apache 2.0 License. See LICENSE for details.
Contributions are welcome! Please fork the repository and create a pull request with your changes.
Pulse
https://github.com/Ggjorven/Pulsespdlog
https://github.com/gabime/spdlog/stb
https://github.com/nothings/stb.gitglm
https://github.com/icaven/glm.gitvma
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.gitpremake-vscode
https://github.com/peter1745/premake-vscode/tree/maintracy
https://github.com/wolfpld/tracy.git