webatintel / aquarium

BSD 3-Clause "New" or "Revised" License
23 stars 7 forks source link

Expose Vulkan WSI extensions for future use #176

Closed hujiajie closed 3 years ago

hujiajie commented 3 years ago

Once dawn_bindings is gone, Vulkan WSI extensions will be required for creating swapchains from native windows.

The VK_USEPLATFORM*_KHR macros must be set before the first vulkan.h of each compilation unit, either it's included directly or indirectly. To ensure that, the rule of thumb is to put those defines just before the 3rd-party includes, when any following 3rd-party header potentially uses vulkan.h. For now, the only known user of vulkan.h is VulkanBackend.h.

The X.h workaround is needed anywhere X.h is included by a 3rd-party header. These keywords can be used to find such places:

VK_USE_PLATFORM_XLIB_KHR glfw3native.h

And here happens to be the first hit.