|
Axmol 3.0.0-89d6d9a
|
Optional Vulkan initialization hook for external graphics interop. More...
#include <VulkanInterop.h>
Public Member Functions | |
| virtual void | collectInstanceExtensions (std::vector< std::string > &extensions) |
| Appends required Vulkan instance extensions. | |
| virtual VkPhysicalDevice | selectPhysicalDevice (VkInstance instance, const VkPhysicalDevice *devices, uint32_t deviceCount) |
| Selects or constrains the physical device. | |
| virtual void | collectDeviceExtensions (VkPhysicalDevice physicalDevice, std::vector< std::string > &extensions) |
| Appends required Vulkan device extensions. | |
| virtual void | configureDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures &enabledFeatures, VulkanFeatureChain &featureChain) |
| Enables required or preferred device features. | |
| virtual void | setVulkanBinding (const VulkanBinding &binding) |
| Receives the final Vulkan objects created and owned by the engine. | |
| virtual void | clearVulkanBinding () |
| Called before the engine destroys the Vulkan device/instance. | |
Optional Vulkan initialization hook for external graphics interop.
VulkanInterop is intentionally Vulkan-only and does not depend on OpenXR or any other external runtime. Implementations may live in higher layers, such as platform/openxr, and register themselves before the Vulkan driver is initialized.
Typical responsibilities:
|
inlinevirtual |
Appends required Vulkan instance extensions.
Called before vkCreateInstance().
The implementation should append extension names only. The caller is responsible for deduplication and conversion to const char* arrays.
|
inlinevirtual |
Selects or constrains the physical device.
Called after vkCreateInstance() and vkEnumeratePhysicalDevices(), before the engine applies its normal adapter selection.
Return VK_NULL_HANDLE to let the Vulkan driver use its default adapter selection logic.
|
inlinevirtual |
Appends required Vulkan device extensions.
Called after the final VkPhysicalDevice has been selected, before vkCreateDevice().
The implementation should append extension names only. The caller is responsible for deduplication and conversion to const char* arrays.
|
inlinevirtual |
Enables required or preferred device features.
Called before vkCreateDevice().
Implementations may:
Feature structs pushed into featureChain must remain alive until vkCreateDevice() returns.
|
inlinevirtual |
Receives the final Vulkan objects created and owned by the engine.
Called after vkCreateDevice() and vkGetDeviceQueue().
The implementation must not destroy these handles.
|
inlinevirtual |
Called before the engine destroys the Vulkan device/instance.
Implementations should drop cached Vulkan handles here.