This library is a utility which tracks all the required details so that applications
can have a simplified interface to the swapchain.
* Creation - Pass a SwapchainBuilder to specify how the swapchain should be created.
* Recreation - Recreates the swapchain upon request.
* Semaphores - Handles creation and usage of them, a particularly thorny part of swapchain management.
Additional Libraries:
- DelayedDeletionQueue; for easy deletion of objects currently in flight
- ImagelessFramebufferBuilder; for easy creation of imageless framebuffers
The new code lives in VkSwapchainManager.h, so its easier to distinguish the core parts of vk-bootstrap
from the optional.
find_package is used to try to find the Vulkan-Headers, and if they aren't
present, it downloads them with fetch content. This way users don't need
vulkan 'installed' on their system, specifically for windows users.
It also changes the tests to load all the necessary function pointers, that
way we don't need to find the vulkan loader to build the tests.
Make vk-bootstrap capable of loading the vulkan runtime and not need to
link against the library. This improves the usability of vk-bootstrap since
now you don't need the vulkan library on your system to build.
This commit also changes how SystemInfo works so as to allow the dynamic
vulkan loading.
Now there is a concise example of the library in use all the way to presenting.
Needs to be rewritten to remove exceptions, but for first pass its good enough.