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