Skip to content
/ vulkan-seed Public template

πŸŒ‹πŸŒ± A Vulkan starter repo that you could use to get the ball rolling.

License

Notifications You must be signed in to change notification settings

alaingalvan/vulkan-seed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Cover Art

Vulkan Seed

cmake-img License

A Vulkan repo you can use to get started with your own renderer.

Setup

First install:

Then type the following in your terminal.

# πŸ‘ Clone the repo
git clone https://github.com/alaingalvan/vulkan-seed --recurse-submodules

# πŸ’Ώ go inside the folder
cd vulkan-seed

# πŸ‘― If you forget to `recurse-submodules` you can always run:
git submodule update --init

# πŸ‘· Make a build folder
mkdir build
cd build

# πŸ–ΌοΈ To build your Visual Studio solution on Windows x64
cmake .. -A x64

# 🍎 To build your XCode project On Mac OS for Mac OS
cmake .. -G Xcode

# πŸ“± To build your XCode project on Mac OS for iOS / iPad OS / tvOS / watchOS
cmake .. -G Xcode -DCMAKE_SYSTEM_NAME=iOS

# 🐧 To build your .make file on Linux
cmake ..

# πŸ€– To build your Android Studio project for Android
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=$ABI \
-DANDROID_NATIVE_API_LEVEL=$MINSDKVERSION \
-DXWIN_OS=ANDROID

# πŸ”¨ Build on any platform:
cmake --build .

Refer to this blog post on designing C++ libraries and apps for more details on CMake, Git Submodules, etc.

Project Layout

As your project becomes more complex, you'll want to separate files and organize your application to something more akin to a game or renderer, check out this post on game engine architecture and this one on real time renderer architecture for more details.

β”œβ”€ πŸ“‚ external/                    # πŸ‘Ά Dependencies
β”‚  β”œβ”€ πŸ“ crosswindow/                    # πŸ–ΌοΈ OS Windows
β”‚  β”œβ”€ πŸ“ crosswindow-graphics/           # 🎨 Vulkan Surface Creation
β”‚  └─ πŸ“ glm/                            # βž• Linear Algebra
β”œβ”€ πŸ“‚ src/                         # 🌟 Source Files
β”‚  β”œβ”€ πŸ“„ Utils.h                         # βš™οΈ Utilities (Load Files, Check Shaders, etc.)
β”‚  β”œβ”€ πŸ“„ Renderer.h                      # πŸ”Ί Triangle Draw Code
β”‚  β”œβ”€ πŸ“„ Renderer.cpp                    # -
β”‚  └─ πŸ“„ Main.cpp                        # 🏁 Application Main
β”œβ”€ πŸ“„ .gitignore                   # πŸ‘οΈ Ignore certain files in git repo
β”œβ”€ πŸ“„ CMakeLists.txt               # πŸ”¨ Build Script
β”œβ”€ πŸ“„ license.md                   # βš–οΈ Your License (Unlicense)
└─ πŸ“ƒreadme.md                     # πŸ“– Read Me!

About

πŸŒ‹πŸŒ± A Vulkan starter repo that you could use to get the ball rolling.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published