Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRTrackedCamera.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 latest IVRTrackedCamera_006 interface version.
6 *
7 * @author Beyley Cardellio <ep1cm1n10n123@gmail.com>
8 * @ingroup openvr_interfaces
9 */
10
11#pragma once
12
13#include "openvr_interfaces_unified.h"
14#include "openvr_forward_macros.h"
15
16#include "XRTVRClientCore.hpp"
17
18
19namespace xrt::state_trackers::openvr {
20
21using namespace vr;
22
23class XRTVRTrackedCamera_006 : public vr::IVRTrackedCamera_006
24{
25private:
27
28public:
30
31 virtual ~XRTVRTrackedCamera_006() = default;
32
33 FnTable_IVRTrackedCamera_006();
34
35 const char *
36 GetCameraErrorNameFromEnum(vr::EVRTrackedCameraError eCameraError) override;
37
38 vr::EVRTrackedCameraError
39 HasCamera(vr::TrackedDeviceIndex_t nDeviceIndex, bool *pHasCamera) override;
40
41 vr::EVRTrackedCameraError
42 GetCameraFrameSize(vr::TrackedDeviceIndex_t nDeviceIndex,
43 vr::EVRTrackedCameraFrameType eFrameType,
44 uint32_t *pnWidth,
45 uint32_t *pnHeight,
46 uint32_t *pnFrameBufferSize) override;
47
48 vr::EVRTrackedCameraError
49 GetCameraIntrinsics(vr::TrackedDeviceIndex_t nDeviceIndex,
50 uint32_t nCameraIndex,
51 vr::EVRTrackedCameraFrameType eFrameType,
52 vr::HmdVector2_t *pFocalLength,
53 vr::HmdVector2_t *pCenter) override;
54
55 vr::EVRTrackedCameraError
56 GetCameraProjection(vr::TrackedDeviceIndex_t nDeviceIndex,
57 uint32_t nCameraIndex,
58 vr::EVRTrackedCameraFrameType eFrameType,
59 float flZNear,
60 float flZFar,
61 vr::HmdMatrix44_t *pProjection) override;
62
63 vr::EVRTrackedCameraError
64 AcquireVideoStreamingService(vr::TrackedDeviceIndex_t nDeviceIndex,
65 vr::TrackedCameraHandle_t *pHandle) override;
66
67 vr::EVRTrackedCameraError
68 ReleaseVideoStreamingService(vr::TrackedCameraHandle_t hTrackedCamera) override;
69
70 vr::EVRTrackedCameraError
71 GetVideoStreamFrameBuffer(vr::TrackedCameraHandle_t hTrackedCamera,
72 vr::EVRTrackedCameraFrameType eFrameType,
73 void *pFrameBuffer,
74 uint32_t nFrameBufferSize,
75 vr::CameraVideoStreamFrameHeader_t *pFrameHeader,
76 uint32_t nFrameHeaderSize) override;
77
78 vr::EVRTrackedCameraError
79 GetVideoStreamTextureSize(vr::TrackedDeviceIndex_t nDeviceIndex,
80 vr::EVRTrackedCameraFrameType eFrameType,
81 vr::VRTextureBounds_t *pTextureBounds,
82 uint32_t *pnWidth,
83 uint32_t *pnHeight) override;
84
85 vr::EVRTrackedCameraError
86 GetVideoStreamTextureD3D11(vr::TrackedCameraHandle_t hTrackedCamera,
87 vr::EVRTrackedCameraFrameType eFrameType,
88 void *pD3D11DeviceOrResource,
89 void **ppD3D11ShaderResourceView,
90 vr::CameraVideoStreamFrameHeader_t *pFrameHeader,
91 uint32_t nFrameHeaderSize) override;
92
93 vr::EVRTrackedCameraError
94 GetVideoStreamTextureGL(vr::TrackedCameraHandle_t hTrackedCamera,
95 vr::EVRTrackedCameraFrameType eFrameType,
96 vr::glUInt_t *pglTextureId,
97 vr::CameraVideoStreamFrameHeader_t *pFrameHeader,
98 uint32_t nFrameHeaderSize) override;
99
100 vr::EVRTrackedCameraError
101 ReleaseVideoStreamTextureGL(vr::TrackedCameraHandle_t hTrackedCamera, vr::glUInt_t glTextureId) override;
102
103 void
104 SetCameraTrackingSpace(vr::ETrackingUniverseOrigin eUniverse) override;
105
106 vr::ETrackingUniverseOrigin
107 GetCameraTrackingSpace() override;
108};
109
110} // namespace xrt::state_trackers::openvr
Implementation of the latest IVRClientCore interface version.
Definition XRTVRClientCore.hpp:152
Definition XRTVRTrackedCamera.hpp:24
Definitions missing from C++ header, present in C.
Definition blockqueue.hpp:15