VTK  9.3.20240328
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
vtkOpenXRManager Class Reference

Singleton class that holds a collection of utility functions and member variables to communicate with the OpenXR runtime. More...

#include <vtkOpenXRManager.h>

Collaboration diagram for vtkOpenXRManager:
[legend]

Classes

struct  Action_t
 
struct  InstanceVersion
 Structure representing OpenXR instance version. More...
 
struct  RenderResources_t
 This struct stores all needed information to render the images and send it to the user We can't make a vector of struct because OpenXR SDK needs an array of XrXXX for xrEnumerate functions. More...
 
struct  Swapchain_t
 Swapchain structure storing information common to all rendering backend. More...
 

Public Types

enum  OutputLevel { DebugOutput = 0 , WarningOutput = 1 , ErrorOutput = 2 }
 
enum  ControllerIndex {
  Inactive = -1 , Left = 0 , Right = 1 , Head = 2 ,
  Generic = 3 , NumberOfControllers = 4
}
 

Public Member Functions

uint32_t GetViewCount ()
 Return the number of OpenXR views (typically one per physical display / eye) More...
 
const std::array< XrPath, 2 > & GetSubactionPaths ()
 
void DestroyActionSets ()
 Iterate over and destroy all action sets that have been created. More...
 
bool ApplyVibration (const Action_t &actionT, int hand, float amplitude=0.5f, float duration=25000000.0f, float frequency=XR_FREQUENCY_UNSPECIFIED)
 Apply haptic vibration action to emit vibration on hand to emit on amplitude 0.0 to 1.0. More...
 
bool XrCheckOutput (OutputLevel level, const XrResult &, const std::string &message)
 Utility function to check the XrResult, print the result message as a debug, warning or error message if the result failed. More...
 
void PrintInstanceProperties ()
 Utility functions to print information about OpenXR manager internal structures. More...
 
void PrintSystemProperties (XrSystemProperties *system_properties)
 Utility functions to print information about OpenXR manager internal structures. More...
 
void PrintSupportedViewConfigs ()
 Utility functions to print information about OpenXR manager internal structures. More...
 
void PrintViewConfigViewInfo (const std::vector< XrViewConfigurationView > &)
 Utility functions to print information about OpenXR manager internal structures. More...
 
bool PrintReferenceSpaces ()
 Utility functions to print information about OpenXR manager internal structures. More...
 
bool Initialize (vtkOpenGLRenderWindow *)
 Initialize the OpenXR SDK to render images in a virtual reality device. More...
 
void Finalize ()
 End the OpenXR session and destroy it and the OpenXR instance. More...
 
std::tuple< uint32_t, uint32_t > GetRecommendedImageRectSize ()
 Return as a tuple the OpenXR recommended texture size to be sent to the device. More...
 
uint32_t GetRecommendedSampleCount ()
 Return the recommended swapchain sample count. More...
 
std::string GetOpenXRPropertiesAsString ()
 Return the OpenXR properties as a string, with format "RuntimeName MAJOR.MINOR.PATCH". More...
 
const XrPosef * GetViewPose (uint32_t eye)
 Returns a pointer to the view pose that contains the view orientation and position for the specified eye, or nullptr if eye exceeds or equals the number of configured views. More...
 
const XrFovf * GetProjectionFov (uint32_t eye)
 Returns a pointer to the projection field of view for the specified eye, or nullptr if eye exceeds or equals the number of configured views. More...
 
bool IsDepthExtensionSupported ()
 Return true if the runtime supports the depth extension. More...
 
bool GetShouldRenderCurrentFrame ()
 Return true if the current frame should be rendered. More...
 
bool BeginSession ()
 Start the OpenXR session. More...
 
const XrSession & GetSession ()
 Return the OpenXR Session. More...
 
const XrInstance & GetXrRuntimeInstance ()
 Return the instance used to communicate with the runtime. More...
 
bool IsSessionRunning ()
 Return true if the OpenXR session is currently running, ie. More...
 
bool WaitAndBeginFrame ()
 This function is used to start a frame. More...
 
bool PrepareRendering (vtkOpenXRRenderWindow *win, void *colorTextureId, void *depthTextureId)
 Prepare the rendering resources for the specified eye and store in colorTextureId and in depthTextureId (if the depth extension is supported) the texture in which we need to draw pixels. More...
 
void ReleaseSwapchainImage (uint32_t eye)
 When the rendering in a swapchain image is done, it must be released with this function. More...
 
bool EndFrame ()
 Submit the composition layers for the predicted display time of the current frame. More...
 
bool PollEvent (XrEventDataBuffer &eventData)
 Store in eventData the result of xrPollEvent. More...
 
XrPath GetXrPath (const std::string &path)
 Get the XrPath from the well-formed string path. More...
 
bool CreateActionSet (const std::string &actionSetName, const std::string &localizedActionSetName)
 Creates an action set and add it to the vector of action sets. More...
 
bool SelectActiveActionSet (unsigned int index)
 Selects the current active action set from the ActionSets vector using its index. More...
 
bool AttachSessionActionSets ()
 Attach all action sets in the ActionSets vector to the session. More...
 
bool CreateOneAction (Action_t &actionT, const std::string &name, const std::string &localizedName)
 Creates one action with name name and localizedName localizedName and store the action handle inside actionT using the selected active action set. More...
 
bool SuggestActions (const std::string &profile, std::vector< XrActionSuggestedBinding > &actionSuggestedBindings)
 Suggest actions stored in actionSuggestedBindings for the interaction profile profile. More...
 
bool SyncActions ()
 Update the action states using the active action set. More...
 
bool UpdateActionData (Action_t &action_t, int hand)
 Update the action data and store it in action_t.States for one hand. More...
 
void SetGraphicsStrategy (vtkOpenXRManagerGraphics *gs)
 Set/Get the rendering backend strategy. More...
 
vtkOpenXRManagerGraphicsGetGraphicsStrategy ()
 Set/Get the rendering backend strategy. More...
 
void SetConnectionStrategy (vtkOpenXRManagerConnection *cs)
 Set/Get the connection strategy. More...
 
vtkOpenXRManagerConnectionGetConnectionStrategy ()
 Set/Get the connection strategy. More...
 
void SetUseDepthExtension (bool value)
 Enable or disable XR_KHR_composition_layer_depth extension even when it is available. More...
 
bool GetUseDepthExtension () const
 Enable or disable XR_KHR_composition_layer_depth extension even when it is available. More...
 

Static Public Member Functions

static InstanceVersion QueryInstanceVersion (vtkOpenXRManagerConnection *cs)
 Utility function to get XrInstance runtime version for given ConnectionStrategy This function creates a XrInstance, which may have a significant runtime overhead. More...
 
static vtkOpenXRManagerGetInstance ()
 Return the singleton instance. More...
 

Protected Member Functions

 vtkOpenXRManager ()
 
 ~vtkOpenXRManager ()=default
 
bool LoadControllerModels ()
 
bool CreateInstance ()
 OpenXR Instance creation. More...
 
std::vector< const char * > SelectExtensions ()
 OpenXR Instance creation. More...
 
void PrintOptionalExtensions ()
 Print the optional extensions which were found and enabled. More...
 
bool CreateSystem ()
 OpenXR System creation. More...
 
bool CreateSystemProperties ()
 Enable system properties such as hand tracking, and choose environment blend modes. More...
 
bool CreateSession ()
 Create the session and pass the GraphicsBinding to the next pointer of the XrSessionCreateInfo. More...
 
bool CreateSwapchains ()
 Swapchaines creation : there is one swapchain per view / display. More...
 
bool CreateConfigViews ()
 There is one configuration view per view, and it contains the recommended texture resolution in pixels and the recommended swapchain samples. More...
 
std::tuple< int64_t, int64_t > SelectSwapchainPixelFormats ()
 During the creation of the swapchains, we need to check the runtime available pixels formats, and we pick the first one from the list of our supported color and depth formats returned by vtkOpenXRManagerGraphics::GetSupportedColorFormats and vtkOpenXRManagerGraphics::GetSupportedDepthFormats. More...
 
Swapchain_t CreateSwapchain (int64_t format, uint32_t width, uint32_t height, uint32_t sampleCount, XrSwapchainCreateFlags createFlags, XrSwapchainUsageFlags usageFlags)
 Create an XrSwapchain handle used to present rendered image to the user with the given parameters for the XrSwapchainCreateInfo structure. More...
 
bool CreateReferenceSpace ()
 Creates the reference space of type ReferenceSpaceType that will be used to locate views. More...
 
bool CreateOneActionSpace (const XrAction &action, const XrPath &subactionPath, const XrPosef &poseInActionSpace, XrSpace &space)
 For pose actions, we must create an action space to locate it. More...
 
bool CreateSubactionPaths ()
 Creates one subaction path for each hand. More...
 
uint32_t WaitAndAcquireSwapchainImage (const XrSwapchain &swapchainHandle)
 When preparing the rendering for an eye, we must ask the runtime for a texture to draw in it. More...
 

Protected Attributes

XrReferenceSpaceType ReferenceSpaceType = XR_REFERENCE_SPACE_TYPE_STAGE
 
XrInstance Instance
 
XrSystemId SystemId
 
XrSession Session
 
XrSessionState SessionState
 
XrSpace ReferenceSpace
 
XrEnvironmentBlendMode EnvironmentBlendMode
 
bool RenderingBackendExtensionSupported = false
 
std::array< XrPath, 2 > SubactionPaths
 
std::vector< XrActionSet > ActionSets
 
XrActionSet * ActiveActionSet = nullptr
 
XrTime PredictedDisplayTime
 Store the frame predicted display time in WaitAndBeginFrame To get the action data at this time and to submit it in EndFrame. More...
 
bool UseDepthExtension = false
 
bool SessionRunning = false
 
bool ShouldRenderCurrentFrame = false
 
bool StorePoseVelocities = false
 
vtkSmartPointer< vtkOpenXRManagerGraphicsGraphicsStrategy
 
vtkSmartPointer< vtkOpenXRManagerConnectionConnectionStrategy
 
struct {
   bool   DepthExtensionSupported { false }
 
   bool   ControllerModelExtensionSupported { false }
 
   bool   UnboundedRefSpaceSupported { false }
 
   bool   SpatialAnchorSupported { false }
 
   bool   HandInteractionSupported { false }
 
   bool   HandTrackingSupported { false }
 
   bool   RemotingSupported { false }
 
OptionalExtensions
 Structure to hold optional extensions loaded with SelectExtensions. More...
 
std::unique_ptr< RenderResources_tRenderResources {}
 

Static Protected Attributes

constexpr static XrFormFactor FormFactor = XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY
 
constexpr static XrViewConfigurationType ViewType = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO
 
constexpr static uint32_t StereoViewCount = 2
 

Detailed Description

Singleton class that holds a collection of utility functions and member variables to communicate with the OpenXR runtime.

vtkOpenXRManager is not a vtkObject, the singleton unique instance gets allocated on the stack the first time vtkOpenXRManager::GetInstance() is called.

Definition at line 33 of file vtkOpenXRManager.h.

Member Enumeration Documentation

◆ OutputLevel

Enumerator
DebugOutput 
WarningOutput 
ErrorOutput 

Definition at line 47 of file vtkOpenXRManager.h.

◆ ControllerIndex

Enumerator
Inactive 
Left 
Right 
Head 
Generic 
NumberOfControllers 

Definition at line 341 of file vtkOpenXRManager.h.

Constructor & Destructor Documentation

◆ vtkOpenXRManager()

vtkOpenXRManager::vtkOpenXRManager ( )
protected

◆ ~vtkOpenXRManager()

vtkOpenXRManager::~vtkOpenXRManager ( )
protecteddefault

Member Function Documentation

◆ GetInstance()

static vtkOpenXRManager& vtkOpenXRManager::GetInstance ( )
inlinestatic

Return the singleton instance.

Definition at line 40 of file vtkOpenXRManager.h.

◆ XrCheckOutput()

bool vtkOpenXRManager::XrCheckOutput ( OutputLevel  level,
const XrResult &  ,
const std::string &  message 
)

Utility function to check the XrResult, print the result message as a debug, warning or error message if the result failed.

◆ QueryInstanceVersion()

static InstanceVersion vtkOpenXRManager::QueryInstanceVersion ( vtkOpenXRManagerConnection cs)
static

Utility function to get XrInstance runtime version for given ConnectionStrategy This function creates a XrInstance, which may have a significant runtime overhead.

◆ PrintInstanceProperties()

void vtkOpenXRManager::PrintInstanceProperties ( )

Utility functions to print information about OpenXR manager internal structures.

◆ PrintSystemProperties()

void vtkOpenXRManager::PrintSystemProperties ( XrSystemProperties *  system_properties)

Utility functions to print information about OpenXR manager internal structures.

◆ PrintSupportedViewConfigs()

void vtkOpenXRManager::PrintSupportedViewConfigs ( )

Utility functions to print information about OpenXR manager internal structures.

◆ PrintViewConfigViewInfo()

void vtkOpenXRManager::PrintViewConfigViewInfo ( const std::vector< XrViewConfigurationView > &  )

Utility functions to print information about OpenXR manager internal structures.

◆ PrintReferenceSpaces()

bool vtkOpenXRManager::PrintReferenceSpaces ( )

Utility functions to print information about OpenXR manager internal structures.

◆ Initialize()

bool vtkOpenXRManager::Initialize ( vtkOpenGLRenderWindow )

Initialize the OpenXR SDK to render images in a virtual reality device.

The helper window must be a vtkWin32OpenGLRenderWindow if the platform is Win32, else a vtkXOpenGLRenderWindow if the platform is X.

◆ Finalize()

void vtkOpenXRManager::Finalize ( )

End the OpenXR session and destroy it and the OpenXR instance.

◆ GetRecommendedImageRectSize()

std::tuple<uint32_t, uint32_t> vtkOpenXRManager::GetRecommendedImageRectSize ( )

Return as a tuple the OpenXR recommended texture size to be sent to the device.

◆ GetRecommendedSampleCount()

uint32_t vtkOpenXRManager::GetRecommendedSampleCount ( )

Return the recommended swapchain sample count.

◆ GetViewCount()

uint32_t vtkOpenXRManager::GetViewCount ( )
inline

Return the number of OpenXR views (typically one per physical display / eye)

Definition at line 122 of file vtkOpenXRManager.h.

◆ GetOpenXRPropertiesAsString()

std::string vtkOpenXRManager::GetOpenXRPropertiesAsString ( )

Return the OpenXR properties as a string, with format "RuntimeName MAJOR.MINOR.PATCH".

◆ GetViewPose()

const XrPosef* vtkOpenXRManager::GetViewPose ( uint32_t  eye)
inline

Returns a pointer to the view pose that contains the view orientation and position for the specified eye, or nullptr if eye exceeds or equals the number of configured views.

This class retains responsibility for the memory pointed to by the return value.

Definition at line 142 of file vtkOpenXRManager.h.

◆ GetProjectionFov()

const XrFovf* vtkOpenXRManager::GetProjectionFov ( uint32_t  eye)
inline

Returns a pointer to the projection field of view for the specified eye, or nullptr if eye exceeds or equals the number of configured views.

This class retains responsibility for the memory pointed to by the return value.

Definition at line 158 of file vtkOpenXRManager.h.

◆ IsDepthExtensionSupported()

bool vtkOpenXRManager::IsDepthExtensionSupported ( )
inline

Return true if the runtime supports the depth extension.

Definition at line 172 of file vtkOpenXRManager.h.

◆ GetShouldRenderCurrentFrame()

bool vtkOpenXRManager::GetShouldRenderCurrentFrame ( )
inline

Return true if the current frame should be rendered.

This value is updated each time we call WaitAndBeginFrame and EndFrame.

Definition at line 181 of file vtkOpenXRManager.h.

◆ BeginSession()

bool vtkOpenXRManager::BeginSession ( )

Start the OpenXR session.

If successful, SessionRunning becomes true.

◆ GetSession()

const XrSession& vtkOpenXRManager::GetSession ( )
inline

Return the OpenXR Session.

Definition at line 196 of file vtkOpenXRManager.h.

◆ GetXrRuntimeInstance()

const XrInstance& vtkOpenXRManager::GetXrRuntimeInstance ( )
inline

Return the instance used to communicate with the runtime.

Definition at line 203 of file vtkOpenXRManager.h.

◆ IsSessionRunning()

bool vtkOpenXRManager::IsSessionRunning ( )
inline

Return true if the OpenXR session is currently running, ie.

the call to BeginSession was successful.

Definition at line 211 of file vtkOpenXRManager.h.

◆ WaitAndBeginFrame()

bool vtkOpenXRManager::WaitAndBeginFrame ( )

This function is used to start a frame.

If the frame should be rendered, then we locate the views to update the view pose and projection for each eye / display

◆ PrepareRendering()

bool vtkOpenXRManager::PrepareRendering ( vtkOpenXRRenderWindow win,
void *  colorTextureId,
void *  depthTextureId 
)

Prepare the rendering resources for the specified eye and store in colorTextureId and in depthTextureId (if the depth extension is supported) the texture in which we need to draw pixels.

win is used to get the right clipping planes for the depth extension. Return true if no error occurred.

◆ ReleaseSwapchainImage()

void vtkOpenXRManager::ReleaseSwapchainImage ( uint32_t  eye)

When the rendering in a swapchain image is done, it must be released with this function.

◆ EndFrame()

bool vtkOpenXRManager::EndFrame ( )

Submit the composition layers for the predicted display time of the current frame.

It must be called at the end of each frame.

◆ PollEvent()

bool vtkOpenXRManager::PollEvent ( XrEventDataBuffer &  eventData)

Store in eventData the result of xrPollEvent.

◆ GetXrPath()

XrPath vtkOpenXRManager::GetXrPath ( const std::string &  path)

Get the XrPath from the well-formed string path.

◆ GetSubactionPaths()

const std::array<XrPath, 2>& vtkOpenXRManager::GetSubactionPaths ( )
inline

Definition at line 263 of file vtkOpenXRManager.h.

◆ CreateActionSet()

bool vtkOpenXRManager::CreateActionSet ( const std::string &  actionSetName,
const std::string &  localizedActionSetName 
)

Creates an action set and add it to the vector of action sets.

◆ SelectActiveActionSet()

bool vtkOpenXRManager::SelectActiveActionSet ( unsigned int  index)

Selects the current active action set from the ActionSets vector using its index.

◆ AttachSessionActionSets()

bool vtkOpenXRManager::AttachSessionActionSets ( )

Attach all action sets in the ActionSets vector to the session.

◆ DestroyActionSets()

void vtkOpenXRManager::DestroyActionSets ( )

Iterate over and destroy all action sets that have been created.

◆ CreateOneAction()

bool vtkOpenXRManager::CreateOneAction ( Action_t actionT,
const std::string &  name,
const std::string &  localizedName 
)

Creates one action with name name and localizedName localizedName and store the action handle inside actionT using the selected active action set.

◆ SuggestActions()

bool vtkOpenXRManager::SuggestActions ( const std::string &  profile,
std::vector< XrActionSuggestedBinding > &  actionSuggestedBindings 
)

Suggest actions stored in actionSuggestedBindings for the interaction profile profile.

◆ SyncActions()

bool vtkOpenXRManager::SyncActions ( )

Update the action states using the active action set.

This function should be called before UpdateActionData

◆ UpdateActionData()

bool vtkOpenXRManager::UpdateActionData ( Action_t action_t,
int  hand 
)

Update the action data and store it in action_t.States for one hand.

For pose actions :

  • we locate its space in the ReferenceSpace space using the PredictedDisplayTime
  • we can store its pose velocity if StorePoseVelocities is true.

◆ ApplyVibration()

bool vtkOpenXRManager::ApplyVibration ( const Action_t actionT,
int  hand,
float  amplitude = 0.5f,
float  duration = 25000000.0f,
float  frequency = XR_FREQUENCY_UNSPECIFIED 
)

Apply haptic vibration action to emit vibration on hand to emit on amplitude 0.0 to 1.0.

duration nanoseconds, default 25ms frequency (hz)

◆ SetGraphicsStrategy()

void vtkOpenXRManager::SetGraphicsStrategy ( vtkOpenXRManagerGraphics gs)
inline

Set/Get the rendering backend strategy.

Definition at line 372 of file vtkOpenXRManager.h.

◆ GetGraphicsStrategy()

vtkOpenXRManagerGraphics* vtkOpenXRManager::GetGraphicsStrategy ( )
inline

Set/Get the rendering backend strategy.

Definition at line 373 of file vtkOpenXRManager.h.

◆ SetConnectionStrategy()

void vtkOpenXRManager::SetConnectionStrategy ( vtkOpenXRManagerConnection cs)
inline

Set/Get the connection strategy.

Definition at line 380 of file vtkOpenXRManager.h.

◆ GetConnectionStrategy()

vtkOpenXRManagerConnection* vtkOpenXRManager::GetConnectionStrategy ( )
inline

Set/Get the connection strategy.

Definition at line 381 of file vtkOpenXRManager.h.

◆ SetUseDepthExtension()

void vtkOpenXRManager::SetUseDepthExtension ( bool  value)
inline

Enable or disable XR_KHR_composition_layer_depth extension even when it is available.

This must be set before vtkOpenXRManager initialization. Do nothing if XR_KHR_composition_layer_depth isn't available.

Depth information is useful for augmented reality devices such as the Hololens 2. When enabled and XR_KHR_composition_layer_depth is available, the depth texture of the render window is submitted to the runtime. The runtime will use this information increase hologram stability of the Hololens 2.

Note: enabling this option without providing the depth information could reduce stability.

Default value: false

Definition at line 400 of file vtkOpenXRManager.h.

◆ GetUseDepthExtension()

bool vtkOpenXRManager::GetUseDepthExtension ( ) const
inline

Enable or disable XR_KHR_composition_layer_depth extension even when it is available.

This must be set before vtkOpenXRManager initialization. Do nothing if XR_KHR_composition_layer_depth isn't available.

Depth information is useful for augmented reality devices such as the Hololens 2. When enabled and XR_KHR_composition_layer_depth is available, the depth texture of the render window is submitted to the runtime. The runtime will use this information increase hologram stability of the Hololens 2.

Note: enabling this option without providing the depth information could reduce stability.

Default value: false

Definition at line 401 of file vtkOpenXRManager.h.

◆ CreateInstance()

bool vtkOpenXRManager::CreateInstance ( )
protected

OpenXR Instance creation.

This is where we select the extensions using SelectExtensions

◆ SelectExtensions()

std::vector<const char*> vtkOpenXRManager::SelectExtensions ( )
protected

OpenXR Instance creation.

This is where we select the extensions using SelectExtensions

◆ PrintOptionalExtensions()

void vtkOpenXRManager::PrintOptionalExtensions ( )
protected

Print the optional extensions which were found and enabled.

◆ CreateSystem()

bool vtkOpenXRManager::CreateSystem ( )
protected

OpenXR System creation.

◆ CreateSystemProperties()

bool vtkOpenXRManager::CreateSystemProperties ( )
protected

Enable system properties such as hand tracking, and choose environment blend modes.

◆ CreateSession()

bool vtkOpenXRManager::CreateSession ( )
protected

Create the session and pass the GraphicsBinding to the next pointer of the XrSessionCreateInfo.

Precondition
CreateGraphicsBinding must be called

◆ CreateSwapchains()

bool vtkOpenXRManager::CreateSwapchains ( )
protected

Swapchaines creation : there is one swapchain per view / display.

This function calls CreateConfigViews

◆ CreateConfigViews()

bool vtkOpenXRManager::CreateConfigViews ( )
protected

There is one configuration view per view, and it contains the recommended texture resolution in pixels and the recommended swapchain samples.

◆ SelectSwapchainPixelFormats()

std::tuple<int64_t, int64_t> vtkOpenXRManager::SelectSwapchainPixelFormats ( )
protected

During the creation of the swapchains, we need to check the runtime available pixels formats, and we pick the first one from the list of our supported color and depth formats returned by vtkOpenXRManagerGraphics::GetSupportedColorFormats and vtkOpenXRManagerGraphics::GetSupportedDepthFormats.

◆ CreateSwapchain()

Swapchain_t vtkOpenXRManager::CreateSwapchain ( int64_t  format,
uint32_t  width,
uint32_t  height,
uint32_t  sampleCount,
XrSwapchainCreateFlags  createFlags,
XrSwapchainUsageFlags  usageFlags 
)
protected

Create an XrSwapchain handle used to present rendered image to the user with the given parameters for the XrSwapchainCreateInfo structure.

◆ CreateReferenceSpace()

bool vtkOpenXRManager::CreateReferenceSpace ( )
protected

Creates the reference space of type ReferenceSpaceType that will be used to locate views.

◆ LoadControllerModels()

bool vtkOpenXRManager::LoadControllerModels ( )
protected

◆ CreateOneActionSpace()

bool vtkOpenXRManager::CreateOneActionSpace ( const XrAction &  action,
const XrPath &  subactionPath,
const XrPosef &  poseInActionSpace,
XrSpace &  space 
)
protected

For pose actions, we must create an action space to locate it.

◆ CreateSubactionPaths()

bool vtkOpenXRManager::CreateSubactionPaths ( )
protected

Creates one subaction path for each hand.

◆ WaitAndAcquireSwapchainImage()

uint32_t vtkOpenXRManager::WaitAndAcquireSwapchainImage ( const XrSwapchain &  swapchainHandle)
protected

When preparing the rendering for an eye, we must ask the runtime for a texture to draw in it.

Member Data Documentation

◆ FormFactor

constexpr static XrFormFactor vtkOpenXRManager::FormFactor = XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY
staticconstexprprotected

Definition at line 519 of file vtkOpenXRManager.h.

◆ ViewType

constexpr static XrViewConfigurationType vtkOpenXRManager::ViewType = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO
staticconstexprprotected

Definition at line 522 of file vtkOpenXRManager.h.

◆ StereoViewCount

constexpr static uint32_t vtkOpenXRManager::StereoViewCount = 2
staticconstexprprotected

Definition at line 525 of file vtkOpenXRManager.h.

◆ ReferenceSpaceType

XrReferenceSpaceType vtkOpenXRManager::ReferenceSpaceType = XR_REFERENCE_SPACE_TYPE_STAGE
protected

Definition at line 530 of file vtkOpenXRManager.h.

◆ Instance

XrInstance vtkOpenXRManager::Instance
protected

Definition at line 533 of file vtkOpenXRManager.h.

◆ SystemId

XrSystemId vtkOpenXRManager::SystemId
protected

Definition at line 536 of file vtkOpenXRManager.h.

◆ Session

XrSession vtkOpenXRManager::Session
protected

Definition at line 538 of file vtkOpenXRManager.h.

◆ SessionState

XrSessionState vtkOpenXRManager::SessionState
protected

Definition at line 539 of file vtkOpenXRManager.h.

◆ ReferenceSpace

XrSpace vtkOpenXRManager::ReferenceSpace
protected

Definition at line 540 of file vtkOpenXRManager.h.

◆ EnvironmentBlendMode

XrEnvironmentBlendMode vtkOpenXRManager::EnvironmentBlendMode
protected

Definition at line 547 of file vtkOpenXRManager.h.

◆ RenderingBackendExtensionSupported

bool vtkOpenXRManager::RenderingBackendExtensionSupported = false
protected

Definition at line 550 of file vtkOpenXRManager.h.

◆ DepthExtensionSupported

bool vtkOpenXRManager::DepthExtensionSupported { false }

Definition at line 559 of file vtkOpenXRManager.h.

◆ ControllerModelExtensionSupported

bool vtkOpenXRManager::ControllerModelExtensionSupported { false }

Definition at line 560 of file vtkOpenXRManager.h.

◆ UnboundedRefSpaceSupported

bool vtkOpenXRManager::UnboundedRefSpaceSupported { false }

Definition at line 561 of file vtkOpenXRManager.h.

◆ SpatialAnchorSupported

bool vtkOpenXRManager::SpatialAnchorSupported { false }

Definition at line 562 of file vtkOpenXRManager.h.

◆ HandInteractionSupported

bool vtkOpenXRManager::HandInteractionSupported { false }

Definition at line 563 of file vtkOpenXRManager.h.

◆ HandTrackingSupported

bool vtkOpenXRManager::HandTrackingSupported { false }

Definition at line 564 of file vtkOpenXRManager.h.

◆ RemotingSupported

bool vtkOpenXRManager::RemotingSupported { false }

Definition at line 565 of file vtkOpenXRManager.h.

◆ 

struct { ... } vtkOpenXRManager::OptionalExtensions

Structure to hold optional extensions loaded with SelectExtensions.

◆ RenderResources

std::unique_ptr<RenderResources_t> vtkOpenXRManager::RenderResources {}
protected

Definition at line 602 of file vtkOpenXRManager.h.

◆ SubactionPaths

std::array<XrPath, 2> vtkOpenXRManager::SubactionPaths
protected

Definition at line 606 of file vtkOpenXRManager.h.

◆ ActionSets

std::vector<XrActionSet> vtkOpenXRManager::ActionSets
protected

Definition at line 608 of file vtkOpenXRManager.h.

◆ ActiveActionSet

XrActionSet* vtkOpenXRManager::ActiveActionSet = nullptr
protected

Definition at line 609 of file vtkOpenXRManager.h.

◆ PredictedDisplayTime

XrTime vtkOpenXRManager::PredictedDisplayTime
protected

Store the frame predicted display time in WaitAndBeginFrame To get the action data at this time and to submit it in EndFrame.

Definition at line 615 of file vtkOpenXRManager.h.

◆ UseDepthExtension

bool vtkOpenXRManager::UseDepthExtension = false
protected

Definition at line 617 of file vtkOpenXRManager.h.

◆ SessionRunning

bool vtkOpenXRManager::SessionRunning = false
protected

Definition at line 618 of file vtkOpenXRManager.h.

◆ ShouldRenderCurrentFrame

bool vtkOpenXRManager::ShouldRenderCurrentFrame = false
protected

Definition at line 624 of file vtkOpenXRManager.h.

◆ StorePoseVelocities

bool vtkOpenXRManager::StorePoseVelocities = false
protected

Definition at line 627 of file vtkOpenXRManager.h.

◆ GraphicsStrategy

vtkSmartPointer<vtkOpenXRManagerGraphics> vtkOpenXRManager::GraphicsStrategy
protected

Definition at line 629 of file vtkOpenXRManager.h.

◆ ConnectionStrategy

vtkSmartPointer<vtkOpenXRManagerConnection> vtkOpenXRManager::ConnectionStrategy
protected

Definition at line 631 of file vtkOpenXRManager.h.


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