Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRRenderModels.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 IVRRenderModels 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
15#include "XRTVRClientCore.hpp"
16
17
18namespace xrt::state_trackers::openvr {
19
20class XRTVRRenderModels_006 : public vr::IVRRenderModels_006
21{
22private:
24
25public:
27
28 virtual ~XRTVRRenderModels_006() = default;
29
30 vr::EVRRenderModelError
31 LoadRenderModel_Async(const char *pchRenderModelName, vr::RenderModel_t **ppRenderModel) override;
32
33 void
34 FreeRenderModel(vr::RenderModel_t *pRenderModel) override;
35
36 vr::EVRRenderModelError
37 LoadTexture_Async(vr::TextureID_t textureId, vr::RenderModel_TextureMap_t **ppTexture) override;
38
39 void
40 FreeTexture(vr::RenderModel_TextureMap_t *pTexture) override;
41
42 vr::EVRRenderModelError
43 LoadTextureD3D11_Async(vr::TextureID_t textureId, void *pD3D11Device, void **ppD3D11Texture2D) override;
44
45 vr::EVRRenderModelError
46 LoadIntoTextureD3D11_Async(vr::TextureID_t textureId, void *pDstTexture) override;
47
48 void
49 FreeTextureD3D11(void *pD3D11Texture2D) override;
50
51 uint32_t
52 GetRenderModelName(uint32_t unRenderModelIndex,
53 VR_OUT_STRING() char *pchRenderModelName,
54 uint32_t unRenderModelNameLen) override;
55
56 uint32_t
57 GetRenderModelCount() override;
58
59
60 uint32_t
61 GetComponentCount(const char *pchRenderModelName) override;
62
63 uint32_t
64 GetComponentName(const char *pchRenderModelName,
65 uint32_t unComponentIndex,
66 VR_OUT_STRING() char *pchComponentName,
67 uint32_t unComponentNameLen) override;
68
69 uint64_t
70 GetComponentButtonMask(const char *pchRenderModelName, const char *pchComponentName) override;
71
72 uint32_t
73 GetComponentRenderModelName(const char *pchRenderModelName,
74 const char *pchComponentName,
75 VR_OUT_STRING() char *pchComponentRenderModelName,
76 uint32_t unComponentRenderModelNameLen) override;
77
78 bool
79 GetComponentStateForDevicePath(const char *pchRenderModelName,
80 const char *pchComponentName,
81 vr::VRInputValueHandle_t devicePath,
82 const vr::RenderModel_ControllerMode_State_t *pState,
83 vr::RenderModel_ComponentState_t *pComponentState) override;
84
85 bool
86 GetComponentState(const char *pchRenderModelName,
87 const char *pchComponentName,
88 const vr::VRControllerState_t *pControllerState,
89 const vr::RenderModel_ControllerMode_State_t *pState,
90 vr::RenderModel_ComponentState_t *pComponentState) override;
91
92 bool
93 RenderModelHasComponent(const char *pchRenderModelName, const char *pchComponentName) override;
94
95 uint32_t
96 GetRenderModelThumbnailURL(const char *pchRenderModelName,
97 VR_OUT_STRING() char *pchThumbnailURL,
98 uint32_t unThumbnailURLLen,
99 vr::EVRRenderModelError *peError) override;
100
101 uint32_t
102 GetRenderModelOriginalPath(const char *pchRenderModelName,
103 VR_OUT_STRING() char *pchOriginalPath,
104 uint32_t unOriginalPathLen,
105 vr::EVRRenderModelError *peError) override;
106
107 const char *
108 GetRenderModelErrorNameFromEnum(vr::EVRRenderModelError error) override;
109};
110
111} // namespace xrt::state_trackers::openvr
Implementation of the latest IVRClientCore interface version.
Definition XRTVRClientCore.hpp:35
Definition XRTVRRenderModels.hpp:21