SystemInfo will be the way for users to know what is and isn't available on their system.
Currently, it only has booleans for if validation layers and debug messenger are available,
but more could be added in the future.
whether you select a compute/transfer queue that can alias and one that cannot.
It is due to some hardware having dedicated compute or dedicated transfer but not both.
Also added some todo's for what to test.
Premise is to let the easy creation of a compute or transfer queue.
If the user supplies a custom list they want to use, defer to that.
Else, enable the basic requirements and be on your merry way.
Allocators only complicated the interface and likely aren't needed. They
are useful on other function calls, but none of the ones here mattered.
A constructor was added to swapchain that has all the handles it needs.
This way users don't have to pass in the vkb::Device struct to use the
swapchain builder
Before it only had 1 priority even if there were multiple queues.
Now it creates a vector of priorities so it shouldn't cause issues.
It also means logic to setup actual priority values can be put in place
in the future
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.