i wanted to build my own texture mapped rotating cube from an empty project. haven't gotten that conpleted yet because i spent quite a bit of time exploring what was in the lunarG SDK.
after looking at the DEMOS directory I decided to see what it would take to build that source in another separate project. here's what i wrote down along the way:
Building a basic
vulkan sdk app based on the Vulkan SDK DEMO (not sample)…. cube.c located in the directory:
C:\VulkanSDK\1.0.54.0\Demos
- Actually create a *.c file
instead of a *.cpp file..because there are non MSVC C++ compiler
'features' exploited like init'ing structs without the full
declarations.
- Change to an x64 build
instead of x86 (you can find a way out of this but I don't need a 32 bit
app anymore)
- Add the path to the include
directories to the Vulkan SDK includes: C:\VulkanSDK\1.0.54.0\Include
- Change the character set to
'not set' because they didn't use unicode
- Add a library path: The
library path needs to include the path that points to vulkan-1.lib,
something like: C:\VulkanSDK\1.0.54.0\Lib
- Add the library to the
library line: vulkan-1.lib
- Copy the set of -D flags from
cube.c to the new workspace. I don't know/care exactly what the flags are right now, but
mostly this sorts through the various Oss for WinMain vs. main for
example.
- Copy cube_frag.spv and
cube_vert.spv to the directory. I will look at the source for these
shaders in the future, not right now. This is specifically for the DEMOs.
From what I can tell, [1] is leveraging some default compiler behavior to initialize non initialized values.
To resolve the 'unrsesolved WinMain() see [6]'