Skip to content

XrBeginFrameOp

XRBeginFrame Operator

The XrBeginFrameOp operator initiates the rendering of a single OpenXR frame. It converts render buffers and events generated by the OpenXR runtime into Holoscan specific events to be consumed by downstream operators. Application specific operators are then expected to render left and right camera views into the given color and depth buffers. Once complete, the buffers must be passed to XrEndFrameOp in order to deliver the frame back to the OpenXR runtime. Note that a single arc xr_frame from XrBeginFrameOp to XrEndFrameOp is required to synchronize the OpenXR calls issued by the two operators.

holoscan::openxr::XrBeginFrameOp

Outputs

Output for camera state - left_camera_pose: camera pose for the left eye - type: nvidia::gxf::Pose3D - right_camera_pose: camera pose for the right eye - type: nvidia::gxf::Pose3D - left_camera_model: camera model for the left eye - type: nvidia::gxf::CameraModel - right_camera_model: camera model for the right eye - type: nvidia::gxf::CameraModel - depth_range: depth range - type: nvidia::gxf::Vector2f

Output for input state - trigger_click: trigger click , values true/false - type: bool - shoulder_click: shoulder click , values true/false - type: bool - trackpad_touch: trackpad touch , values true/false - type: bool - trackpad: trackpad values [x.y] - type: std::array<float, 2> - aim_pose: aim pose for the controller specific for the right hand - type: nvidia::gxf::Pose3D - head_pose: head pose - type: nvidia::gxf::Pose3D - color_buffer: color buffer - type: holoscan::gxf::Entity - depth_buffer: depth buffer - type: holoscan::gxf::Entity

Parameters
  • XrSession: A class that encapsulates a single OpenXR session
  • type: holoscan::openxr::XrSession

Note:

  • XrCudaInteropSwapchain: A class that encapsulates the Vulkan buffers of the OpenXR runtime and compatible CUDA buffer to provide interoperability between ClaraViz and OpenXR