UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
Openxr_session Class Reference
Collaboration diagram for Openxr_session:
Collaboration graph

Public Member Functions

 Openxr_session (XrInstance instance, XrSystemId systemId, const void *xrGraphicsBindingOpenGL)
 
 ~Openxr_session ()
 
void begin ()
 
XrSession get ()
 

Private Attributes

XrSession session
 

Detailed Description

Definition at line 85 of file openxr_gl.cpp.

Constructor & Destructor Documentation

◆ Openxr_session()

Openxr_session::Openxr_session ( XrInstance instance,
XrSystemId systemId,
const void * xrGraphicsBindingOpenGL )
inline

Definition at line 87 of file openxr_gl.cpp.

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
106 result = xrCreateSession(instance, &session_create_info, &session);
107 if(!XR_SUCCEEDED(result)){
108 throw std::runtime_error("Failed to create OpenXR session!");
109 }
110 }
XrSession session
static class worker_pool instance
Definition worker.cpp:250

References instance, and session.

◆ ~Openxr_session()

Openxr_session::~Openxr_session ( )
inline

Definition at line 112 of file openxr_gl.cpp.

112 {
113 xrDestroySession(session);
114 }

References session.

Member Function Documentation

◆ begin()

void Openxr_session::begin ( )
inline

Definition at line 118 of file openxr_gl.cpp.

118 {
119 XrSessionBeginInfo session_begin_info;
120 session_begin_info.type = XR_TYPE_SESSION_BEGIN_INFO;
121 session_begin_info.next = NULL;
122 session_begin_info.primaryViewConfigurationType = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO;
123 XrResult result = xrBeginSession(session, &session_begin_info);
124 if(!XR_SUCCEEDED(result)){
125 throw std::runtime_error("Failed to begin OpenXR session!");
126 }
127 }

References session.

Referenced by display_xrgl_run().

◆ get()

XrSession Openxr_session::get ( )
inline

Definition at line 116 of file openxr_gl.cpp.

116{ return session; }

References session.

Referenced by display_xrgl_run().

Member Data Documentation

◆ session

XrSession Openxr_session::session
private

Definition at line 129 of file openxr_gl.cpp.

Referenced by Openxr_session(), ~Openxr_session(), begin(), and get().


The documentation for this class was generated from the following file: