Vulkan_Instance contains variables related to persistent vulkan resources like instance, device, queue, swapchain, etc.
Vulkan_Instance is re-iniitalized only during window creation.
Vulkan_Resources contains data specific to current game context, i.e. current level.
Vulkan_Resources can be re-loaded during level change, level exit, etc.
This allows us to provide all functionality in executable file without providing additional data files.
Added bin2hex utility that does [spirv binary->cpp code] conversion.
Idea is based on vkQuake implementation.
This optimization is not important nowdays. Also fast pass was disabled by default in original code.
This change simplifies rendering code since now we have only two shader stage processing functions: generic and sky.
r_renderAPI specifies rendering API to use (0 - opengl, 1 - vulkan).
r_renderAPICompareWindow shows additional window which does the same rendering as the main windows but uses different graphics API.
The idea is to use r_renderAPICompareWindow for debugging to be sure that both APIs render identical/similar pictures.
Test code to draw q3 cinematic.
Bugs to fix when things will settle down a bit: cinematic leaks memory, render_view function invalidates command buffer when multiple scenes are rendered in a single frame.
Removed r_colorbits, use desktop color depth as default value. Nevertheless if there are issues when looking
for corresponding pixel format it is still posible to obtain pixel format with color depth that is different
from desktop color.
No changes to game modules, which means that game UI can still set r_colorbits but it has no effect.