90 {
91 XrSessionCreateInfo session_create_info = {};
92 session_create_info.type = XR_TYPE_SESSION_CREATE_INFO;
93 session_create_info.next = xrGraphicsBindingOpenGL;
94 session_create_info.systemId = systemId;
95
96 XrResult result;
97
98 PFN_xrGetOpenGLGraphicsRequirementsKHR pfnGetOpenGLGraphicsRequirementsKHR = nullptr;
99 result = xrGetInstanceProcAddr(
instance,
"xrGetOpenGLGraphicsRequirementsKHR",
100 reinterpret_cast<PFN_xrVoidFunction*>(&pfnGetOpenGLGraphicsRequirementsKHR));
101
102 XrGraphicsRequirementsOpenGLKHR graphicsRequirements{};
103 graphicsRequirements.type = XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR;
104 result = pfnGetOpenGLGraphicsRequirementsKHR(
instance, systemId, &graphicsRequirements);
105
107 if(!XR_SUCCEEDED(result)){
108 throw std::runtime_error("Failed to create OpenXR session!");
109 }
110 }
static class worker_pool instance