A work-in-progress framework and abstraction layer around the Vulkan graphics API. Currently being developed with version
First, make sure that you have the latest version of the Vulkan SDK installed on your system and that the
VULKAN_SDK environment variable is set. The SDK can be installed from LunarG's website.
Plume uses several submodules:
- shaderc for runtime shader compilation (from GLSL to SPIR-V)
- glm for mathematics
- spirv-cross for shader reflection
- stb for image loading
- glfw for cross-platform windowing
After cloning the main repository, run
checkout_and_build_deps.sh which will initialize the aforementioned submodules and setup a few other directories that will be used during the build process. Next, run CMake:
mkdir build cd build cmake .. make
This will build shaderc, glfw, spirv-cross, and plume and create the executable
plume_app in the
For the time being, you must also run a script to compile all shaders in the
assets folder into SPIR-V:
cd assets/shaders python compile_shaders.py .
This script is a slightly modified version of the same Python script that can be found in Sascha Willems' excellent Vulkan examples repository.
More information on working with submodules can be found here.
Plume's syntax, structure, and design patterns were greatly influenced by several major open source projects:
See the Plume C++ style guide for more information.
Many parts of Vulkan have not been implemented in Plume. As such, this project should be considered experimental and breaking changes will happen often.