33 #ifndef vtkOpenXRRenderWindow_h
34 #define vtkOpenXRRenderWindow_h
36 #include "vtkRenderingOpenXRModule.h"
46 VTK_ABI_NAMESPACE_BEGIN
129 uint32_t GetDeviceHandleForOpenXRHandle(uint32_t
index);
147 std::string& GetCurrentInteractionProfile(uint32_t);
157 void SetModelsManifestDirectory(
const std::string& path);
180 vtkSetMacro(UseDepthExtension,
bool);
181 vtkGetMacro(UseDepthExtension,
bool);
198 vtkSetMacro(EnableSceneUnderstanding,
bool);
199 vtkGetMacro(EnableSceneUnderstanding,
bool);
219 std::uint16_t Major{};
220 std::uint16_t Minor{};
221 std::uint32_t Patch{};
236 bool CreateFramebuffers(uint32_t viewCount = 2)
override;
238 bool BindTextureToFramebuffer(FramebufferDesc& framebufferDesc);
239 void RenderFramebuffer(FramebufferDesc& framebufferDesc)
override;
241 virtual void RenderOneEye(uint32_t eye);
247 std::array<bool, 2> ModelsActiveState = {
true,
true };
254 std::unique_ptr<vtkInternals> Internal;
256 bool UseDepthExtension =
false;
257 bool EnableSceneUnderstanding =
false;
260 VTK_ABI_NAMESPACE_END
represent and manipulate 4x4 transformation matrices
virtual void RenderModels()=0
Render the controller and base station models.
vtkNew< vtkMatrix4x4 > TempMatrix4x4
vtkTypeBool GetEventPending() override
Check to see if a mouse button has been pressed or mouse wheel activated.
void AddRenderer(vtkRenderer *) override
Add a renderer to the list of renderers.
abstract specification for renderers
vtkRenderWindowInteractor * MakeRenderWindowInteractor() override=0
Create an interactor to control renderers in this window.
virtual void Finalize()
Finalize the rendering process.
platform-independent render window interaction including picking and frame rate control.
static vtkOpenGLRenderWindow * New()
Structure representing OpenXR instance version.
const char * ReportCapabilities() override
Get report of capabilities for the render window.
void Initialize() override
Initialize the rendering window.
virtual void StereoUpdate()
Update the system, if needed, due to stereo rendering.
vtkEventDataDevice
platform-independent event data structures
virtual bool GetSizeFromAPI()=0
Attempt to get the size of the display from the API and store it in this->Size.
void SetModelActiveState(const int hand, bool state)
Set the active state (active: true / inactive: false) of the specified hand.
void Render() override
Overridden to not release resources that would interfere with an external application's rendering...
virtual void StereoRenderComplete()
Handles work required once both views have been rendered when using stereo rendering.
OpenXR manager connection no-op implementation.
virtual void UpdateHMDMatrixPose()
Update the HMD pose.
vtkOpenXRSceneObserver is a wrapper around OpenXR scene understanding extensions
void StereoMidpoint() override
Intermediate method performs operations required between the rendering of the left and right eye...