Personal Vulkan wrapper using
- Vulkan
- GLFW
- glm
- ImGui
- glslang
- SPIRV-Cross
- tinyobjloader
- spdlog
- Vulkan wrapper
- Window creation
- ImGui integration
- GLSL Shader compile
- Shader reflection
- Vulkan SDK
- CMake
# For Windows
cmake . --preset vs
- Create project
mkdir project_name
cd project_name
git init
git submodule add https://github.com/yknishidate/reactive.git
- Add
main.cpp
project_name/
- reactive/
- main.cpp
class HelloApp : public App {
public:
HelloApp()
: App({
.width = 1280,
.height = 720,
.title = "HelloGraphics",
}) {}
};
int main() {
try {
HelloApp app{};
app.run();
} catch (const std::exception& e) {
spdlog::error(e.what());
}
}
- Add
CMakeLists.txt
project_name/
- reactive/
- main.cpp
- CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(project_name LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(REACTIVE_BUILD_SAMPLES OFF CACHE BOOL "" FORCE) # Remove samples
add_subdirectory(reactive) # Add Reactive
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} PUBLIC
reactive
)
target_include_directories(${PROJECT_NAME} PUBLIC
${PROJECT_SOURCE_DIR}
reactive/include
)
- Run cmake
# change to your vcpkg path
cmake . -B build -D CMAKE_TOOLCHAIN_FILE=.\reactive\vcpkg\scripts\buildsystems\vcpkg.cmake