From 17644c7bbffe10b7efcb662f3636b4c4992eb4f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Wed, 27 Sep 2023 08:32:39 +0200 Subject: [PATCH] vrclient: Use manual methods for IVRSystem overrides. CW-Bug-Id: #22729 --- vrclient_x64/gen_wrapper.py | 48 +++-- vrclient_x64/vrclient_x64/vrclient_main.c | 23 -- vrclient_x64/vrclient_x64/vrclient_private.h | 13 -- vrclient_x64/vrclient_x64/vrsystem_manual.c | 212 +++++++++++++++++-- vrclient_x64/vrclient_x64/winIVRSystem.c | 128 ++--------- 5 files changed, 240 insertions(+), 184 deletions(-) diff --git a/vrclient_x64/gen_wrapper.py b/vrclient_x64/gen_wrapper.py index 63076c55..b014294c 100755 --- a/vrclient_x64/gen_wrapper.py +++ b/vrclient_x64/gen_wrapper.py @@ -254,6 +254,23 @@ all_sources = {} all_versions = {} +MANUAL_METHODS = { + "IVRSystem_GetDXGIOutputInfo": True, + "IVRSystem_GetOutputDevice": lambda ver, abi: ver > 16, +} + + +def is_manual_method(klass, method, abi): + version = re.search(r'(\d+)$', klass.version) + + key = f'{klass.spelling}_{method.name}' + needs_manual = MANUAL_METHODS.get(key, False) + + if callable(needs_manual) and version: + return needs_manual(int(version[0]), abi) + return needs_manual + + def ivrclientcore_is_hmd_present(cppname, method): return "ivrclientcore_is_hmd_present" @@ -268,20 +285,6 @@ def ivrclientcore_get_generic_interface(cppname, method): def ivrclientcore_cleanup(cppname, method): return "ivrclientcore_cleanup" -def ivrsystem_get_dxgi_output_info(cppname, method): - arguments = list(method.get_arguments()) - param_count = len(arguments) - return { - 1: "get_dxgi_output_info", - 2: "get_dxgi_output_info2" - }.get(param_count, "unhandled_get_dxgi_output_info_method") - -def ivrsystem_get_output_device(cppname, method): - #introduced in 016, changed in 017 - if "016" in cppname: - return "ivrsystem_016_get_output_device" - return "ivrsystem_get_output_device" - def ivrcompositor_submit(cppname, method): if "005" in cppname: return "ivrcompositor_005_submit" @@ -363,8 +366,6 @@ method_overrides = [ ("IVRClientCore", "Init", ivrclientcore_init), ("IVRClientCore", "GetGenericInterface", ivrclientcore_get_generic_interface), ("IVRClientCore", "Cleanup", ivrclientcore_cleanup), - ("IVRSystem", "GetDXGIOutputInfo", ivrsystem_get_dxgi_output_info), - ("IVRSystem", "GetOutputDevice", ivrsystem_get_output_device), ("IVRCompositor", "Submit", ivrcompositor_submit), ("IVRCompositor", "SetSkyboxOverride", ivrcompositor_set_skybox_override), ("IVRCompositor", "PostPresentHandoff", ivrcompositor_post_present_handoff), @@ -664,7 +665,7 @@ def handle_thiscall_wrapper(klass, method, out): out(f'DEFINE_THISCALL_WRAPPER({name}, {size})\n') -def handle_method_c(method, classname, winclassname, cppname, iface_version, out): +def handle_method_c(klass, method, winclassname, cppname, out): returns_void = method.result_type.kind == TypeKind.VOID returns_record = method.result_type.get_canonical().kind == TypeKind.RECORD @@ -682,6 +683,10 @@ def handle_method_c(method, classname, winclassname, cppname, iface_version, out params = ['struct w_steam_iface *_this'] + params names = ['_this'] + names + if is_manual_method(klass, method, 'w'): + out(f'extern {ret}__thiscall {winclassname}_{method.name}({", ".join(params)});\n\n') + return + out(f'{ret}__thiscall {winclassname}_{method.name}({", ".join(params)})\n') out(u'{\n') @@ -715,7 +720,7 @@ def handle_method_c(method, classname, winclassname, cppname, iface_version, out is_method_overridden = False for classname_pattern, methodname, override_generator in method_overrides: - if method.name == methodname and classname_pattern in classname: + if method.name == methodname and classname_pattern in klass.spelling: fn_name = override_generator(cppname, method) if fn_name: out("%s(%s_%s, " % (fn_name, cppname, method.name)) @@ -733,9 +738,9 @@ def handle_method_c(method, classname, winclassname, cppname, iface_version, out out(", ".join([param_call(p, n) for p, n in zip(params, names)])) if is_method_overridden: - out(f', {iface_version[iface_version.find("_") + 1:].lstrip("0")}') + out(f', {klass.version[klass.version.find("_") + 1:].lstrip("0")}') for classname_pattern, user_data_type, _ in method_overrides_data: - if classname_pattern in classname: + if classname_pattern in klass.spelling: out(u', &_this->user_data') break out(u');\n') @@ -831,8 +836,7 @@ def handle_class(klass): for method in klass.methods: if type(method) is Destructor: continue - else: - handle_method_c(method, klass.spelling, winclassname, cppname, klass.version, out) + handle_method_c(klass, method, winclassname, cppname, out) out(f'extern vtable_ptr {winclassname}_vtable;\n\n') out(u'#ifndef __GNUC__\n') diff --git a/vrclient_x64/vrclient_x64/vrclient_main.c b/vrclient_x64/vrclient_x64/vrclient_main.c index 06f6c555..1e51bc86 100644 --- a/vrclient_x64/vrclient_x64/vrclient_main.c +++ b/vrclient_x64/vrclient_x64/vrclient_main.c @@ -679,29 +679,6 @@ void ivrclientcore_cleanup(void (*cpp_func)(void *), void *linux_side, destroy_compositor_data(); } -void get_dxgi_output_info(void *cpp_func, void *linux_side, - int32_t *adapter_idx, unsigned int version) -{ - TRACE("%p\n", adapter_idx); - *adapter_idx = 0; -} - -void get_dxgi_output_info2(void *cpp_func, void *linux_side, - int32_t *adapter_idx, int32_t *output_idx, unsigned int version) -{ - TRACE("%p, %p\n", adapter_idx, output_idx); - *adapter_idx = 0; - *output_idx = 0; -} - -void ivrsystem_016_get_output_device( - void (*cpp_func)(void *, uint64_t *, ETextureType), - void *linux_side, uint64_t *out_device, ETextureType type, - unsigned int version) -{ - cpp_func(linux_side, out_device, type); -} - struct submit_data { void *linux_side; diff --git a/vrclient_x64/vrclient_x64/vrclient_private.h b/vrclient_x64/vrclient_x64/vrclient_private.h index bfb7fc66..2b1e3ca7 100644 --- a/vrclient_x64/vrclient_x64/vrclient_private.h +++ b/vrclient_x64/vrclient_x64/vrclient_private.h @@ -99,19 +99,6 @@ void *ivrclientcore_get_generic_interface(void *(*cpp_func)(void *, const char * void ivrclientcore_cleanup(void (*cpp_func)(void *), void *linux_side, unsigned int version, struct client_core_data *user_data); -void get_dxgi_output_info(void *cpp_func, void *linux_side, - int32_t *adapter_idx, unsigned int version); -void get_dxgi_output_info2(void *cpp_func, void *linux_side, - int32_t *adapter_idx, int32_t *output_idx, unsigned int version); -void ivrsystem_016_get_output_device( - void (*cpp_func)(void *, uint64_t *, ETextureType), - void *linux_side, uint64_t *out_device, ETextureType type, - unsigned int version); -void ivrsystem_get_output_device( - void (*cpp_func)(void *, uint64_t *, ETextureType, VkInstance_T *), - void *linux_side, uint64_t *out_device, ETextureType type, - VkInstance_T *wrapped_instance, unsigned int version); - void ivrcompositor_005_submit( void (*cpp_func)(void *, Hmd_Eye, void *, Compositor_TextureBounds *), void *linux_side, Hmd_Eye eye, const void *texture, Compositor_TextureBounds *bounds, diff --git a/vrclient_x64/vrclient_x64/vrsystem_manual.c b/vrclient_x64/vrclient_x64/vrsystem_manual.c index 7b69347b..8174b6e0 100644 --- a/vrclient_x64/vrclient_x64/vrsystem_manual.c +++ b/vrclient_x64/vrclient_x64/vrsystem_manual.c @@ -6,32 +6,204 @@ #include "winbase.h" #include "wine/debug.h" +#include "dxvk-interop.h" #include "vrclient_defs.h" #include "vrclient_private.h" #include "flatapi.h" #include "struct_converters.h" +#include "cppIVRSystem_IVRSystem_003.h" +#include "cppIVRSystem_IVRSystem_004.h" +#include "cppIVRSystem_IVRSystem_005.h" +#include "cppIVRSystem_IVRSystem_006.h" +#include "cppIVRSystem_IVRSystem_009.h" +#include "cppIVRSystem_IVRSystem_010.h" +#include "cppIVRSystem_IVRSystem_011.h" +#include "cppIVRSystem_IVRSystem_012.h" +#include "cppIVRSystem_IVRSystem_014.h" +#include "cppIVRSystem_IVRSystem_015.h" +#include "cppIVRSystem_IVRSystem_016.h" +#include "cppIVRSystem_IVRSystem_017.h" +#include "cppIVRSystem_IVRSystem_019.h" +#include "cppIVRSystem_IVRSystem_020.h" +#include "cppIVRSystem_IVRSystem_021.h" +#include "cppIVRSystem_IVRSystem_022.h" -void ivrsystem_get_output_device( void (*cpp_func)( void *, uint64_t *, ETextureType, VkInstance_T * ), - void *linux_side, uint64_t *out_device, ETextureType type, - VkInstance_T *wrapped_instance, unsigned int version ) +WINE_DEFAULT_DEBUG_CHANNEL(vrclient); + +static VkInstance_T *unwrap_instance( ETextureType type, VkInstance_T *instance ) { - switch (type) - { - case TextureType_Vulkan: - { - VkInstance_T *native_instance; - - native_instance = get_native_VkInstance( wrapped_instance ); - - cpp_func( linux_side, out_device, type, native_instance ); - - *out_device = (uint64_t)(intptr_t) - get_wrapped_VkPhysicalDevice( wrapped_instance, (VkPhysicalDevice_T *)(intptr_t)*out_device ); - - return; - } - default: cpp_func( linux_side, out_device, type, wrapped_instance ); return; - } + if (type == TextureType_Vulkan) return get_native_VkInstance( instance ); + return instance; +} + +static uint64_t wrap_device( ETextureType type, VkInstance_T *instance, uint64_t device ) +{ + if (type == TextureType_Vulkan) + { + VkPhysicalDevice_T *phys_device = (VkPhysicalDevice_T *)( intptr_t)device; + return (uint64_t)( intptr_t)get_wrapped_VkPhysicalDevice( instance, phys_device ); + } + + return device; +} + +void __thiscall winIVRSystem_IVRSystem_003_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex, + int32_t *pnAdapterOutputIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; + *pnAdapterOutputIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_004_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex, + int32_t *pnAdapterOutputIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; + *pnAdapterOutputIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_005_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex, + int32_t *pnAdapterOutputIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; + *pnAdapterOutputIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_006_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex, + int32_t *pnAdapterOutputIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; + *pnAdapterOutputIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_009_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_010_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_011_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_012_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_014_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_015_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_016_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_017_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_017_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, + ETextureType textureType, VkInstance_T *pInstance ) +{ + VkInstance_T *native_instance = unwrap_instance( textureType, pInstance ); + + TRACE( "%p\n", _this ); + + cppIVRSystem_IVRSystem_017_GetOutputDevice( _this->u_iface, pnDevice, textureType, native_instance ); + *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); +} + +void __thiscall winIVRSystem_IVRSystem_019_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_019_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, + ETextureType textureType, VkInstance_T *pInstance ) +{ + VkInstance_T *native_instance = unwrap_instance( textureType, pInstance ); + + TRACE( "%p\n", _this ); + + cppIVRSystem_IVRSystem_019_GetOutputDevice( _this->u_iface, pnDevice, textureType, native_instance ); + *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); +} + +void __thiscall winIVRSystem_IVRSystem_020_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_020_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, + ETextureType textureType, VkInstance_T *pInstance ) +{ + VkInstance_T *native_instance = unwrap_instance( textureType, pInstance ); + + TRACE( "%p\n", _this ); + + cppIVRSystem_IVRSystem_020_GetOutputDevice( _this->u_iface, pnDevice, textureType, native_instance ); + *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); +} + +void __thiscall winIVRSystem_IVRSystem_021_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_021_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, + ETextureType textureType, VkInstance_T *pInstance ) +{ + VkInstance_T *native_instance = unwrap_instance( textureType, pInstance ); + + TRACE( "%p\n", _this ); + + cppIVRSystem_IVRSystem_021_GetOutputDevice( _this->u_iface, pnDevice, textureType, native_instance ); + *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); +} + +void __thiscall winIVRSystem_IVRSystem_022_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; +} + +void __thiscall winIVRSystem_IVRSystem_022_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, + ETextureType textureType, VkInstance_T *pInstance ) +{ + VkInstance_T *native_instance = unwrap_instance( textureType, pInstance ); + + TRACE( "%p\n", _this ); + + cppIVRSystem_IVRSystem_022_GetOutputDevice( _this->u_iface, pnDevice, textureType, native_instance ); + *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); } diff --git a/vrclient_x64/vrclient_x64/winIVRSystem.c b/vrclient_x64/vrclient_x64/winIVRSystem.c index 885a7e0e..c5f597ba 100644 --- a/vrclient_x64/vrclient_x64/winIVRSystem.c +++ b/vrclient_x64/vrclient_x64/winIVRSystem.c @@ -118,11 +118,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_003_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_003_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info2(cppIVRSystem_IVRSystem_003_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, pnAdapterOutputIndex, 3); -} +extern void __thiscall winIVRSystem_IVRSystem_003_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex); bool __thiscall winIVRSystem_IVRSystem_003_AttachToWindow(struct w_steam_iface *_this, void *hWnd) { @@ -560,11 +556,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_004_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_004_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info2(cppIVRSystem_IVRSystem_004_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, pnAdapterOutputIndex, 4); -} +extern void __thiscall winIVRSystem_IVRSystem_004_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex); bool __thiscall winIVRSystem_IVRSystem_004_AttachToWindow(struct w_steam_iface *_this, void *hWnd) { @@ -985,11 +977,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_005_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_005_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info2(cppIVRSystem_IVRSystem_005_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, pnAdapterOutputIndex, 5); -} +extern void __thiscall winIVRSystem_IVRSystem_005_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex); bool __thiscall winIVRSystem_IVRSystem_005_AttachToWindow(struct w_steam_iface *_this, void *hWnd) { @@ -1425,11 +1413,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_006_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_006_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info2(cppIVRSystem_IVRSystem_006_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, pnAdapterOutputIndex, 6); -} +extern void __thiscall winIVRSystem_IVRSystem_006_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex); bool __thiscall winIVRSystem_IVRSystem_006_AttachToWindow(struct w_steam_iface *_this, void *hWnd) { @@ -1902,11 +1886,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_009_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_009_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_009_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 9); -} +extern void __thiscall winIVRSystem_IVRSystem_009_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); bool __thiscall winIVRSystem_IVRSystem_009_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -2393,11 +2373,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_010_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_010_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_010_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 10); -} +extern void __thiscall winIVRSystem_IVRSystem_010_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); bool __thiscall winIVRSystem_IVRSystem_010_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -2920,11 +2896,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_011_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_011_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_011_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 11); -} +extern void __thiscall winIVRSystem_IVRSystem_011_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); bool __thiscall winIVRSystem_IVRSystem_011_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -3445,11 +3417,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_012_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_012_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_012_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 12); -} +extern void __thiscall winIVRSystem_IVRSystem_012_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); bool __thiscall winIVRSystem_IVRSystem_012_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -3955,11 +3923,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_014_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_014_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_014_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 14); -} +extern void __thiscall winIVRSystem_IVRSystem_014_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); bool __thiscall winIVRSystem_IVRSystem_014_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -4465,11 +4429,7 @@ int32_t __thiscall winIVRSystem_IVRSystem_015_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_015_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_015_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 15); -} +extern void __thiscall winIVRSystem_IVRSystem_015_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); bool __thiscall winIVRSystem_IVRSystem_015_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -4976,16 +4936,12 @@ int32_t __thiscall winIVRSystem_IVRSystem_016_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_016_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_016_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 16); -} +extern void __thiscall winIVRSystem_IVRSystem_016_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); void __thiscall winIVRSystem_IVRSystem_016_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType) { TRACE("%p\n", _this); - ivrsystem_016_get_output_device(cppIVRSystem_IVRSystem_016_GetOutputDevice, _this->u_iface, pnDevice, textureType, 16); + cppIVRSystem_IVRSystem_016_GetOutputDevice(_this->u_iface, pnDevice, textureType); } bool __thiscall winIVRSystem_IVRSystem_016_IsDisplayOnDesktop(struct w_steam_iface *_this) @@ -5495,17 +5451,9 @@ int32_t __thiscall winIVRSystem_IVRSystem_017_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_017_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_017_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 17); -} +extern void __thiscall winIVRSystem_IVRSystem_017_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -void __thiscall winIVRSystem_IVRSystem_017_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance) -{ - TRACE("%p\n", _this); - ivrsystem_get_output_device(cppIVRSystem_IVRSystem_017_GetOutputDevice, _this->u_iface, pnDevice, textureType, pInstance, 17); -} +extern void __thiscall winIVRSystem_IVRSystem_017_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance); bool __thiscall winIVRSystem_IVRSystem_017_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -6016,17 +5964,9 @@ int32_t __thiscall winIVRSystem_IVRSystem_019_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_019_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_019_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 19); -} +extern void __thiscall winIVRSystem_IVRSystem_019_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -void __thiscall winIVRSystem_IVRSystem_019_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance) -{ - TRACE("%p\n", _this); - ivrsystem_get_output_device(cppIVRSystem_IVRSystem_019_GetOutputDevice, _this->u_iface, pnDevice, textureType, pInstance, 19); -} +extern void __thiscall winIVRSystem_IVRSystem_019_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance); bool __thiscall winIVRSystem_IVRSystem_019_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -6560,17 +6500,9 @@ int32_t __thiscall winIVRSystem_IVRSystem_020_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_020_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_020_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 20); -} +extern void __thiscall winIVRSystem_IVRSystem_020_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -void __thiscall winIVRSystem_IVRSystem_020_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance) -{ - TRACE("%p\n", _this); - ivrsystem_get_output_device(cppIVRSystem_IVRSystem_020_GetOutputDevice, _this->u_iface, pnDevice, textureType, pInstance, 20); -} +extern void __thiscall winIVRSystem_IVRSystem_020_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance); bool __thiscall winIVRSystem_IVRSystem_020_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -7113,17 +7045,9 @@ int32_t __thiscall winIVRSystem_IVRSystem_021_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_021_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_021_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 21); -} +extern void __thiscall winIVRSystem_IVRSystem_021_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -void __thiscall winIVRSystem_IVRSystem_021_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance) -{ - TRACE("%p\n", _this); - ivrsystem_get_output_device(cppIVRSystem_IVRSystem_021_GetOutputDevice, _this->u_iface, pnDevice, textureType, pInstance, 21); -} +extern void __thiscall winIVRSystem_IVRSystem_021_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance); bool __thiscall winIVRSystem_IVRSystem_021_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -7657,17 +7581,9 @@ int32_t __thiscall winIVRSystem_IVRSystem_022_GetD3D9AdapterIndex(struct w_steam return _ret; } -void __thiscall winIVRSystem_IVRSystem_022_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex) -{ - TRACE("%p\n", _this); - get_dxgi_output_info(cppIVRSystem_IVRSystem_022_GetDXGIOutputInfo, _this->u_iface, pnAdapterIndex, 22); -} +extern void __thiscall winIVRSystem_IVRSystem_022_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -void __thiscall winIVRSystem_IVRSystem_022_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance) -{ - TRACE("%p\n", _this); - ivrsystem_get_output_device(cppIVRSystem_IVRSystem_022_GetOutputDevice, _this->u_iface, pnDevice, textureType, pInstance, 22); -} +extern void __thiscall winIVRSystem_IVRSystem_022_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, ETextureType textureType, VkInstance_T *pInstance); bool __thiscall winIVRSystem_IVRSystem_022_IsDisplayOnDesktop(struct w_steam_iface *_this) {