16 class VulkanXRInstance :
public VulkanInstance
20 virtual ~VulkanXRInstance();
21 VkResult createVkInstance(
const VkInstanceCreateInfo& create_info)
final override;
22 uint04 setupExtensions(
const char**& extensions)
final override;
24 void initializeXRInstance();
25 void initializeXRSystem();
26 virtual XrResult getVulkanGraphicsRequirements2KHR(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkan2KHR* graphicsRequirements);
27 XrFormFactor formFactor() {
return XrFormFactor::XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY; }
28 XrInstance xrInstance()
const {
return m_xr_instance; }
29 XrSystemId xrSystemID()
const {
return m_system_id; }
32 XrInstance m_xr_instance{ XR_NULL_HANDLE };
33 XrSystemId m_system_id{ XR_NULL_SYSTEM_ID };
42 void autoChoosePhysicalDevice()
override;
44 XrInstance xrInstance()
const {
return vulkanXRInstance()->xrInstance(); }
45 XrSystemId xrSystemID()
const {
return vulkanXRInstance()->xrSystemID(); }
46 const XrGraphicsBindingVulkanKHR& graphicsBinding()
const {
return m_graphicsBinding; }
47 int64_t selectColorSwapchainFormat(
const std::vector<int64_t>& runtimeFormats)
const;
48 virtual VkResult createLogicalDevice(
const VkDeviceCreateInfo& create_info);
51 XrGraphicsBindingVulkanKHR m_graphicsBinding{ XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR };