Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRSystem_003.hpp
Go to the documentation of this file.
1// Copyright 2026, Beyley Cardellio
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Implementation of the IVRSystem interface version 003.
6 *
7 * @author Beyley Cardellio <ep1cm1n10n123@gmail.com>
8 * @ingroup openvr_interfaces
9 */
10
11#pragma once
12
14
15#include "openvr_interfaces_unified.h"
16#include "openvr_forward_macros.h"
17
19#include "XRTVRSystem_007.hpp"
20
21
22namespace xrt::state_trackers::openvr {
23
24using namespace vr;
25
26class XRTVRSystem_003 : public XRTVRSystem_007, public vr::IVRSystem_003
27{
28public:
29 // @todo Remove when clang-format is updated in CI
30 // clang-format off
32 // clang-format on
33
34 void *
35 getFnTable()
36 {
37 // No FnTable available for IVRSystem_003.
38 return nullptr;
39 }
40
41 ForwardDeclareBase_IVRSystem(XRTVRSystem_007);
42
43 Forward_IVRSystem_GetWindowBounds();
44 Forward_IVRSystem_GetRecommendedRenderTargetSize();
45 Forward_IVRSystem_GetEyeOutputViewport();
46 Forward_IVRSystem_GetProjectionMatrix_007();
47 Forward_IVRSystem_GetProjectionRaw_007();
48 Forward_IVRSystem_ComputeDistortion_007();
49 Forward_IVRSystem_GetEyeToHeadTransform_007();
50 Forward_IVRSystem_GetTimeSinceLastVsync();
51 Forward_IVRSystem_GetD3D9AdapterIndex();
52 Forward_IVRSystem_GetDXGIOutputInfo_007();
53 Forward_IVRSystem_AttachToWindow();
54 Forward_IVRSystem_GetDeviceToAbsoluteTrackingPose_007();
55 Forward_IVRSystem_ResetSeatedZeroPose();
56 Forward_IVRSystem_GetSeatedZeroPoseToStandingAbsoluteTrackingPose();
57
58 bool
59 LoadRenderModel(const char *pchRenderModelName, RenderModel_t *pRenderModel) override
60 {
61 openvr_logger logger;
62 OPENVR_LOGGER_INIT(logger);
63
64 OPENVR_LOG_UNIMPLEMENTED_RET(logger, "LoadRenderModel(pchRenderModelName=%s, pRenderModel=%p) -> false",
65 false, pchRenderModelName, static_cast<const void *>(pRenderModel));
66 }
67
68 void
69 FreeRenderModel(RenderModel_t *pRenderModel) override
70 {
71 openvr_logger logger;
72 OPENVR_LOGGER_INIT(logger);
73
74 OPENVR_LOG_UNIMPLEMENTED(logger, "FreeRenderModel(pRenderModel=%p)",
75 static_cast<const void *>(pRenderModel));
76 }
77
78 Forward_IVRSystem_GetTrackedDeviceClass_007();
79 Forward_IVRSystem_IsTrackedDeviceConnected();
80 Forward_IVRSystem_GetBoolTrackedDeviceProperty_007();
81 Forward_IVRSystem_GetFloatTrackedDeviceProperty_007();
82 Forward_IVRSystem_GetInt32TrackedDeviceProperty_007();
83 Forward_IVRSystem_GetUint64TrackedDeviceProperty_007();
84 Forward_IVRSystem_GetMatrix34TrackedDeviceProperty_007();
85 Forward_IVRSystem_GetStringTrackedDeviceProperty_007();
86 Forward_IVRSystem_GetPropErrorNameFromEnum_007();
87 Forward_IVRSystem_PollNextEvent_010();
88 Forward_IVRSystem_PollNextEventWithPose_007();
89 Forward_IVRSystem_GetEventTypeNameFromEnum();
90 Forward_IVRSystem_GetHiddenAreaMesh_007();
91 Forward_IVRSystem_GetControllerState_012();
92 Forward_IVRSystem_GetControllerStateWithPose_007();
93 Forward_IVRSystem_TriggerHapticPulse();
94 Forward_IVRSystem_GetButtonIdNameFromEnum();
95 Forward_IVRSystem_GetControllerAxisTypeNameFromEnum();
96
97 bool
98 HandleControllerOverlayInteractionAsMouse(const vr::Compositor_OverlaySettings &overlaySettings,
99 vr::HmdVector2_t vecWindowClientPositionOnScreen,
100 vr::HmdVector2_t vecWindowClientSize,
101 vr::TrackedDeviceIndex_t unControllerDeviceIndex,
102 vr::EVRControllerEventOutputType eOutputType) override
103 {
104 openvr_logger logger;
105 OPENVR_LOGGER_INIT(logger);
106
108 logger,
109 "HandleControllerOverlayInteractionAsMouse(overlaySettings=?, vecWindowClientPositionOnScreen=?, "
110 "vecWindowClientSize=?, unControllerDeviceIndex=%llu, eOutputType=%d) -> false",
111 false, static_cast<unsigned long long>(unControllerDeviceIndex), static_cast<int>(eOutputType));
112 }
113
114 Forward_IVRSystem_CaptureInputFocus();
115 Forward_IVRSystem_ReleaseInputFocus();
116 Forward_IVRSystem_IsInputFocusCapturedByAnotherProcess();
117};
118
119}; // namespace xrt::state_trackers::openvr
Implementation of the latest IVRSystem interface version.
Implementation of the IVRSystem interface version 007.
Definition XRTVRClientCore.hpp:152
Definition XRTVRSystem_003.hpp:27
Definition XRTVRSystem_007.hpp:27
Definitions missing from C++ header, present in C.
Definition blockqueue.hpp:15
Logging functions.
#define OPENVR_LOG_UNIMPLEMENTED(logger, fmt,...)
Specialized macro for logging an unimplemented function.
Definition openvr_logger.hpp:51
#define OPENVR_LOG_UNIMPLEMENTED_RET(logger, fmt, ret,...)
Specialized macro for logging an unimplemented function and returning a value.
Definition openvr_logger.hpp:57
Definition openvr_logger.hpp:30