Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRTrackedCamera_004.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 IVRTrackedCamera interface version 004.
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
20
21namespace xrt::state_trackers::openvr {
22
23using namespace vr;
24
25class XRTVRTrackedCamera_004 : public XRTVRTrackedCamera_006, public vr::IVRTrackedCamera_004
26{
27public:
28 // @todo Remove when clang-format is updated in CI
29 // clang-format off
31 // clang-format on
32
33 FnTable_IVRTrackedCamera_004();
34
35 ForwardDeclareBase_IVRTrackedCamera(XRTVRTrackedCamera_006);
36
37 Forward_IVRTrackedCamera_GetCameraErrorNameFromEnum();
38 Forward_IVRTrackedCamera_HasCamera_006();
39 Forward_IVRTrackedCamera_GetCameraFrameSize();
40
41 vr::EVRTrackedCameraError
42 GetCameraIntrinsics(vr::TrackedDeviceIndex_t nDeviceIndex,
43 vr::EVRTrackedCameraFrameType eFrameType,
44 vr::HmdVector2_t *pFocalLength,
45 vr::HmdVector2_t *pCenter) override
46 {
47 openvr_logger logger;
48 OPENVR_LOGGER_INIT(logger);
49
51 logger, "GetCameraIntrinsics(nDeviceIndex=%llu, eFrameType=%d, pFocalLength=%p, pCenter=%p)", {},
52 static_cast<unsigned long long>(nDeviceIndex), static_cast<int>(eFrameType),
53 static_cast<const void *>(pFocalLength), static_cast<const void *>(pCenter));
54 }
55
56 vr::EVRTrackedCameraError
57 GetCameraProjection(vr::TrackedDeviceIndex_t nDeviceIndex,
58 vr::EVRTrackedCameraFrameType eFrameType,
59 float flZNear,
60 float flZFar,
61 vr::HmdMatrix44_t *pProjection) override
62 {
63 openvr_logger logger;
64 OPENVR_LOGGER_INIT(logger);
65
67 logger,
68 "GetCameraProjection(nDeviceIndex=%llu, eFrameType=%d, flZNear=%f, flZFar=%f, pProjection=%p)", {},
69 static_cast<unsigned long long>(nDeviceIndex), static_cast<int>(eFrameType), flZNear, flZFar,
70 static_cast<const void *>(pProjection));
71 }
72
73 Forward_IVRTrackedCamera_AcquireVideoStreamingService();
74 Forward_IVRTrackedCamera_ReleaseVideoStreamingService();
75 Forward_IVRTrackedCamera_GetVideoStreamFrameBuffer();
76 Forward_IVRTrackedCamera_GetVideoStreamTextureSize();
77 Forward_IVRTrackedCamera_GetVideoStreamTextureD3D11();
78 Forward_IVRTrackedCamera_GetVideoStreamTextureGL();
79 Forward_IVRTrackedCamera_ReleaseVideoStreamTextureGL();
80};
81
82}; // namespace xrt::state_trackers::openvr
Implementation of the latest IVRTrackedCamera_006 interface version.
Definition XRTVRClientCore.hpp:152
Definition XRTVRTrackedCamera_004.hpp:26
Definition XRTVRTrackedCamera.hpp:24
Definitions missing from C++ header, present in C.
Definition blockqueue.hpp:15
Logging functions.
#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