32 XrInstance GetInstance()
const {
return m_pInstance; }
33 uint64_t GetSystemId()
const {
return m_SystemId; }
34 XrSession GetSession()
const {
return m_pSession; }
35 XrViewConfigurationType GetViewType()
const {
return m_PrimaryViewConfigurationType; }
36 bool GetDepthComposition()
const;
58 XrSpace GetBaseSpace()
const;
63 XrResult InitSystem();
65 XrResult InitSession();
67 XrResult InitGraphicsPlugin();
68 void DeinitGraphicsPlugin();
69 XrResult InitDebugMessenger();
70 void DeinitInitDebugMessenger();
75 void BeforeUpdatePlugins();
81 void SetHMDCamera(
plCamera* pCamera);
86 static XrPosef ConvertTransform(
const plTransform& tr);
87 static XrQuaternionf ConvertOrientation(
const plQuat& q);
88 static XrVector3f ConvertPosition(
const plVec3& vPos);
89 static plQuat ConvertOrientation(
const XrQuaternionf& q);
90 static plVec3 ConvertPosition(
const XrVector3f& pos);
91 static plMat4 ConvertPoseToMatrix(
const XrPosef& pose);
92 static plGALResourceFormat::Enum ConvertTextureFormat(int64_t format);
98 friend class plOpenXRRemoting;
103 bool m_bValidation =
false;
104 bool m_bDebugUtils =
false;
105 PFN_xrCreateDebugUtilsMessengerEXT pfn_xrCreateDebugUtilsMessengerEXT;
106 PFN_xrDestroyDebugUtilsMessengerEXT pfn_xrDestroyDebugUtilsMessengerEXT;
108 bool m_bD3D11 =
false;
109 PFN_xrGetD3D11GraphicsRequirementsKHR pfn_xrGetD3D11GraphicsRequirementsKHR;
111 bool m_bDepthComposition =
false;
113 bool m_bUnboundedReferenceSpace =
false;
115 bool m_bSpatialAnchor =
false;
116 PFN_xrCreateSpatialAnchorMSFT pfn_xrCreateSpatialAnchorMSFT;
117 PFN_xrCreateSpatialAnchorSpaceMSFT pfn_xrCreateSpatialAnchorSpaceMSFT;
118 PFN_xrDestroySpatialAnchorMSFT pfn_xrDestroySpatialAnchorMSFT;
120 bool m_bHandInteraction =
false;
122 bool m_bHandTracking =
false;
123 PFN_xrCreateHandTrackerEXT pfn_xrCreateHandTrackerEXT;
124 PFN_xrDestroyHandTrackerEXT pfn_xrDestroyHandTrackerEXT;
125 PFN_xrLocateHandJointsEXT pfn_xrLocateHandJointsEXT;
127 bool m_bHandTrackingMesh =
false;
128 PFN_xrCreateHandMeshSpaceMSFT pfn_xrCreateHandMeshSpaceMSFT;
129 PFN_xrUpdateHandMeshMSFT pfn_xrUpdateHandMeshMSFT;
131 bool m_bHolographicWindowAttachment =
false;
133 bool m_bRemoting =
false;
134#ifdef BUILDSYSTEM_ENABLE_OPENXR_REMOTING_SUPPORT
135 PFN_xrRemotingSetContextPropertiesMSFT pfn_xrRemotingSetContextPropertiesMSFT;
136 PFN_xrRemotingConnectMSFT pfn_xrRemotingConnectMSFT;
137 PFN_xrRemotingDisconnectMSFT pfn_xrRemotingDisconnectMSFT;
138 PFN_xrRemotingGetConnectionStateMSFT pfn_xrRemotingGetConnectionStateMSFT;
143 XrInstance m_pInstance = XR_NULL_HANDLE;
144 Extensions m_Extensions;
145#ifdef BUILDSYSTEM_ENABLE_OPENXR_REMOTING_SUPPORT
150 uint64_t m_SystemId = XR_NULL_SYSTEM_ID;
153 XrSession m_pSession = XR_NULL_HANDLE;
154 XrSpace m_pSceneSpace = XR_NULL_HANDLE;
155 XrSpace m_pLocalSpace = XR_NULL_HANDLE;
156 plEventSubscriptionID m_ExecutionEventsId = 0;
157 plEventSubscriptionID m_BeginRenderEventsId = 0;
158 plEventSubscriptionID m_GALdeviceEventsId = 0;
159 XrDebugUtilsMessengerEXT m_pDebugMessenger = XR_NULL_HANDLE;
162 XrEnvironmentBlendMode m_BlendMode = XR_ENVIRONMENT_BLEND_MODE_OPAQUE;
163 XrGraphicsBindingD3D11KHR m_XrGraphicsBindingD3D11{XR_TYPE_GRAPHICS_BINDING_D3D11_KHR};
164 XrFormFactor m_FormFactor{XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY};
165 XrViewConfigurationType m_PrimaryViewConfigurationType{XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO};
170 XrViewState m_ViewState{XR_TYPE_VIEW_STATE};
172 bool m_bProjectionChanged =
true;
173 XrCompositionLayerProjection m_Layer{XR_TYPE_COMPOSITION_LAYER_PROJECTION};
174 XrCompositionLayerProjectionView m_ProjectionLayerViews[2];
175 XrCompositionLayerDepthInfoKHR m_DepthLayerViews[2];
178 bool m_bSessionRunning =
false;
179 bool m_bExitRenderLoop =
false;
180 bool m_bRequestRestart =
false;
181 bool m_bRenderInProgress =
false;
182 XrSessionState m_SessionState{XR_SESSION_STATE_UNKNOWN};
184 XrFrameWaitInfo m_FrameWaitInfo{XR_TYPE_FRAME_WAIT_INFO};
185 XrFrameState m_FrameState{XR_TYPE_FRAME_STATE};
186 XrFrameBeginInfo m_FrameBeginInfo{XR_TYPE_FRAME_BEGIN_INFO};
194 plCamera* m_pCameraToSynchronize =
nullptr;
196 plUInt32 m_uiSettingsModificationCounter = 0;
200 bool m_bPresentDelayed =
false;
Definition RendererFoundationDLL.h:411
virtual plUniquePtr< plActor > CreateActor(plView *pView, plGALMSAASampleCount::Enum msaaCount=plGALMSAASampleCount::None, plUniquePtr< plWindowBase > pCompanionWindow=nullptr, plUniquePtr< plWindowOutputTargetGAL > pCompanionWindowOutput=nullptr)=0
Creates a XR actor by trying to startup an XR session.