Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRCompositor_006.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 IVRCompositor interface version 006.
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
20
21
22namespace xrt::state_trackers::openvr {
23
24using namespace vr;
25
26class XRTVRCompositor_006 : public XRTVRCompositor_007, public vr::IVRCompositor_006
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 IVRCompositor_006.
38 return nullptr;
39 }
40
41 ForwardDeclareBase_IVRCompositor(XRTVRCompositor_007);
42
43 Forward_IVRCompositor_GetLastError();
44 Forward_IVRCompositor_SetVSync();
45 Forward_IVRCompositor_GetVSync();
46 Forward_IVRCompositor_SetGamma();
47 Forward_IVRCompositor_GetGamma();
48
49 void
50 SetGraphicsDevice(Compositor_DeviceType eType, void *pDevice) override
51 {
52 openvr_logger logger;
53 OPENVR_LOGGER_INIT(logger);
54
55 OPENVR_LOG_UNIMPLEMENTED(logger, "SetGraphicsDevice(eType=%d, pDevice=%p)", static_cast<int>(eType),
56 static_cast<const void *>(pDevice));
57 }
58
59 Forward_IVRCompositor_WaitGetPoses_008();
60
61 VRCompositorError
62 Submit(Hmd_Eye eEye, void *pTexture, VRTextureBounds_t *pBounds) override
63 {
64 openvr_logger logger;
65 OPENVR_LOGGER_INIT(logger);
66
67 // @todo Track what graphics API they choose in @ref SetGraphicsDevice and use that to submit for the
68 // right texture type. For now we don't really care about IVRCompositor_006 until some apps hits
69 // it.
70
72 logger, "Submit(eEye=%d, pTexture=%p, pBounds=%p) -> VRCompositorError_RequestFailed",
73 VRCompositorError::VRCompositorError_RequestFailed, static_cast<int>(eEye),
74 static_cast<const void *>(pTexture), static_cast<const void *>(pBounds));
75 }
76
77 Forward_IVRCompositor_ClearLastSubmittedFrame();
78 Forward_IVRCompositor_GetFrameTiming();
79 Forward_IVRCompositor_FadeToColor();
80 Forward_IVRCompositor_FadeGrid_026();
81 Forward_IVRCompositor_CompositorBringToFront();
82 Forward_IVRCompositor_CompositorGoToBack();
83 Forward_IVRCompositor_CompositorQuit();
84 Forward_IVRCompositor_IsFullscreen();
85 Forward_IVRCompositor_SetTrackingSpace_008();
86 Forward_IVRCompositor_GetTrackingSpace_008();
87 Forward_IVRCompositor_GetCurrentSceneFocusProcess();
88 Forward_IVRCompositor_CanRenderScene();
89};
90
91}; // namespace xrt::state_trackers::openvr
Implementation of the latest IVRCompositor interface version.
Implementation of the IVRCompositor interface version 007.
Definition XRTVRClientCore.hpp:152
Definition XRTVRCompositor_006.hpp:27
Definition XRTVRCompositor_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