From cd561adae9a11b280926f1bfdb5701b548452f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 2 Oct 2023 21:10:40 +0200 Subject: [PATCH] vrclient: Unwrap IVROverlay_SetOverlayTexture vulkan objects on the unix side. CW-Bug-Id: #22729 --- vrclient_x64/Makefile.in | 1 + vrclient_x64/gen_wrapper.py | 2 +- .../cppIVROverlay_IVROverlay_001.cpp | 8 - .../cppIVROverlay_IVROverlay_002.cpp | 8 - .../cppIVROverlay_IVROverlay_003.cpp | 8 - .../cppIVROverlay_IVROverlay_004.cpp | 8 - .../cppIVROverlay_IVROverlay_005.cpp | 8 - .../cppIVROverlay_IVROverlay_007.cpp | 8 - .../cppIVROverlay_IVROverlay_008.cpp | 8 - .../cppIVROverlay_IVROverlay_010.cpp | 8 - .../cppIVROverlay_IVROverlay_011.cpp | 8 - .../cppIVROverlay_IVROverlay_012.cpp | 8 - .../cppIVROverlay_IVROverlay_013.cpp | 8 - .../cppIVROverlay_IVROverlay_014.cpp | 8 - .../cppIVROverlay_IVROverlay_016.cpp | 8 - .../cppIVROverlay_IVROverlay_017.cpp | 8 - .../cppIVROverlay_IVROverlay_018.cpp | 8 - .../cppIVROverlay_IVROverlay_019.cpp | 8 - .../cppIVROverlay_IVROverlay_020.cpp | 8 - .../cppIVROverlay_IVROverlay_021.cpp | 8 - .../cppIVROverlay_IVROverlay_022.cpp | 8 - .../cppIVROverlay_IVROverlay_024.cpp | 8 - .../cppIVROverlay_IVROverlay_025.cpp | 8 - .../cppIVROverlay_IVROverlay_026.cpp | 8 - .../cppIVROverlay_IVROverlay_027.cpp | 8 - .../vrclient_x64/unix_vroverlay_manual.cpp | 276 ++++++++++++++++++ vrclient_x64/vrclient_x64/vroverlay_manual.c | 41 --- 27 files changed, 278 insertions(+), 226 deletions(-) create mode 100644 vrclient_x64/vrclient_x64/unix_vroverlay_manual.cpp diff --git a/vrclient_x64/Makefile.in b/vrclient_x64/Makefile.in index cb70d833..a7dbe80f 100644 --- a/vrclient_x64/Makefile.in +++ b/vrclient_x64/Makefile.in @@ -145,6 +145,7 @@ SOURCES = \ vrclient_x64/json_converter.cpp \ vrclient_x64/jsoncpp.cpp \ vrclient_x64/unix_vrcompositor_manual.cpp \ + vrclient_x64/unix_vroverlay_manual.cpp \ vrclient_x64/unix_vrrendermodels_manual.cpp \ vrclient_x64/unix_vrsystem_manual.cpp \ vrclient_x64/unixlib.cpp \ diff --git a/vrclient_x64/gen_wrapper.py b/vrclient_x64/gen_wrapper.py index 24947836..aa0bb252 100755 --- a/vrclient_x64/gen_wrapper.py +++ b/vrclient_x64/gen_wrapper.py @@ -236,7 +236,7 @@ MANUAL_METHODS = { "IVRRenderModels_LoadRenderModel_Async": True, "IVRRenderModels_FreeRenderModel": lambda ver, abi: ver > 1, "IVRMailbox_undoc3": lambda ver, abi: abi == 'w', - "IVROverlay_SetOverlayTexture": lambda ver, abi: abi == 'w', + "IVROverlay_SetOverlayTexture": True, "IVRInput_GetDigitalActionData": lambda ver, abi: abi == 'w' and ver > 3, } diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_001.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_001.cpp index f51c6319..2538d269 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_001.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_001.cpp @@ -268,14 +268,6 @@ NTSTATUS IVROverlay_IVROverlay_001_HandleControllerOverlayInteractionAsMouse( vo return 0; } -NTSTATUS IVROverlay_IVROverlay_001_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_001_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_001_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_001 *iface = (struct u_IVROverlay_IVROverlay_001 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_001_SetOverlayRaw( void *args ) { struct IVROverlay_IVROverlay_001_SetOverlayRaw_params *params = (struct IVROverlay_IVROverlay_001_SetOverlayRaw_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_002.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_002.cpp index 2d16dd95..698845ae 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_002.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_002.cpp @@ -268,14 +268,6 @@ NTSTATUS IVROverlay_IVROverlay_002_HandleControllerOverlayInteractionAsMouse( vo return 0; } -NTSTATUS IVROverlay_IVROverlay_002_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_002_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_002_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_002 *iface = (struct u_IVROverlay_IVROverlay_002 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_002_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_002_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_002_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_003.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_003.cpp index 44319425..9312d987 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_003.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_003.cpp @@ -292,14 +292,6 @@ NTSTATUS IVROverlay_IVROverlay_003_HandleControllerOverlayInteractionAsMouse( vo return 0; } -NTSTATUS IVROverlay_IVROverlay_003_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_003_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_003_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_003 *iface = (struct u_IVROverlay_IVROverlay_003 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_003_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_003_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_003_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_004.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_004.cpp index c2c9cc24..e7c217f4 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_004.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_004.cpp @@ -308,14 +308,6 @@ NTSTATUS IVROverlay_IVROverlay_004_HandleControllerOverlayInteractionAsMouse( vo return 0; } -NTSTATUS IVROverlay_IVROverlay_004_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_004_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_004_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_004 *iface = (struct u_IVROverlay_IVROverlay_004 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_004_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_004_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_004_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_005.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_005.cpp index 1eb0fb0a..3a4b653c 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_005.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_005.cpp @@ -316,14 +316,6 @@ NTSTATUS IVROverlay_IVROverlay_005_IsFocusOverlay( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_005_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_005_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_005_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_005 *iface = (struct u_IVROverlay_IVROverlay_005 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_005_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_005_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_005_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_007.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_007.cpp index fa60863a..4cc03fdf 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_007.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_007.cpp @@ -348,14 +348,6 @@ NTSTATUS IVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_007_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_007_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_007_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_007 *iface = (struct u_IVROverlay_IVROverlay_007 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_007_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_007_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_007_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_008.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_008.cpp index 3c6d2490..c952581e 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_008.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_008.cpp @@ -356,14 +356,6 @@ NTSTATUS IVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_008_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_008_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_008_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_008 *iface = (struct u_IVROverlay_IVROverlay_008 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_008_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_008_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_008_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_010.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_010.cpp index a74aaaeb..a6811352 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_010.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_010.cpp @@ -373,14 +373,6 @@ NTSTATUS IVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_010_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_010_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_010_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_010 *iface = (struct u_IVROverlay_IVROverlay_010 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_010_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_010_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_010_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_011.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_011.cpp index cc3a7f26..47bef88d 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_011.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_011.cpp @@ -389,14 +389,6 @@ NTSTATUS IVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_011_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_011_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_011_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_011 *iface = (struct u_IVROverlay_IVROverlay_011 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_011_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_011_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_011_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_012.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_012.cpp index 0f65a391..5e5c0a6c 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_012.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_012.cpp @@ -389,14 +389,6 @@ NTSTATUS IVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_012_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_012_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_012_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_012 *iface = (struct u_IVROverlay_IVROverlay_012 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_012_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_012_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_012_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_013.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_013.cpp index d5b8a1a8..fd673773 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_013.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_013.cpp @@ -421,14 +421,6 @@ NTSTATUS IVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_013_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_013_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_013_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_013 *iface = (struct u_IVROverlay_IVROverlay_013 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_013_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_013_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_013_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_014.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_014.cpp index 360c800c..e991ebd9 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_014.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_014.cpp @@ -421,14 +421,6 @@ NTSTATUS IVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_014_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_014_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_014_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_014 *iface = (struct u_IVROverlay_IVROverlay_014 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_014_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_014_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_014_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_016.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_016.cpp index 9d0f2f45..bbb7ea30 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_016.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_016.cpp @@ -461,14 +461,6 @@ NTSTATUS IVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_016_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_016_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_016_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_016 *iface = (struct u_IVROverlay_IVROverlay_016 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_016_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_016_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_016_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_017.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_017.cpp index 65f221dd..711b2943 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_017.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_017.cpp @@ -477,14 +477,6 @@ NTSTATUS IVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_017_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_017_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_017_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_017 *iface = (struct u_IVROverlay_IVROverlay_017 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_017_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_017_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_017_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_018.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_018.cpp index f368325e..806bf310 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_018.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_018.cpp @@ -469,14 +469,6 @@ NTSTATUS IVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_018_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_018_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_018_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_018 *iface = (struct u_IVROverlay_IVROverlay_018 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_018_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_018_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_018_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_019.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_019.cpp index 9490490b..3ed25caf 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_019.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_019.cpp @@ -469,14 +469,6 @@ NTSTATUS IVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_019_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_019_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_019_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_019 *iface = (struct u_IVROverlay_IVROverlay_019 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_019_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_019_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_019_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_020.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_020.cpp index bbf53ea2..3c23fb48 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_020.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_020.cpp @@ -453,14 +453,6 @@ NTSTATUS IVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_020_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_020_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_020_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_020 *iface = (struct u_IVROverlay_IVROverlay_020 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_020_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_020_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_020_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_021.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_021.cpp index e3e1be20..f12fe975 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_021.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_021.cpp @@ -421,14 +421,6 @@ NTSTATUS IVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform( void *args ) return 0; } -NTSTATUS IVROverlay_IVROverlay_021_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_021_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_021_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_021 *iface = (struct u_IVROverlay_IVROverlay_021 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_021_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_021_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_021_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_022.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_022.cpp index 00e0d45b..a2eb59fd 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_022.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_022.cpp @@ -485,14 +485,6 @@ NTSTATUS IVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride( void *arg return 0; } -NTSTATUS IVROverlay_IVROverlay_022_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_022_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_022_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_022 *iface = (struct u_IVROverlay_IVROverlay_022 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_022_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_022_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_022_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_024.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_024.cpp index e3c61d2f..1e1ac418 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_024.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_024.cpp @@ -453,14 +453,6 @@ NTSTATUS IVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride( void *arg return 0; } -NTSTATUS IVROverlay_IVROverlay_024_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_024_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_024_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_024 *iface = (struct u_IVROverlay_IVROverlay_024 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_024_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_024_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_024_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_025.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_025.cpp index 6b364c82..340be82e 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_025.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_025.cpp @@ -461,14 +461,6 @@ NTSTATUS IVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride( void *arg return 0; } -NTSTATUS IVROverlay_IVROverlay_025_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_025_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_025_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_025 *iface = (struct u_IVROverlay_IVROverlay_025 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_025_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_025_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_025_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_026.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_026.cpp index a936d026..073f888d 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_026.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_026.cpp @@ -485,14 +485,6 @@ NTSTATUS IVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride( void *arg return 0; } -NTSTATUS IVROverlay_IVROverlay_026_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_026_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_026_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_026 *iface = (struct u_IVROverlay_IVROverlay_026 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_026_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_026_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_026_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_027.cpp b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_027.cpp index ec421ca5..78f96053 100644 --- a/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_027.cpp +++ b/vrclient_x64/vrclient_x64/cppIVROverlay_IVROverlay_027.cpp @@ -469,14 +469,6 @@ NTSTATUS IVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride( void *arg return 0; } -NTSTATUS IVROverlay_IVROverlay_027_SetOverlayTexture( void *args ) -{ - struct IVROverlay_IVROverlay_027_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_027_SetOverlayTexture_params *)args; - struct u_IVROverlay_IVROverlay_027 *iface = (struct u_IVROverlay_IVROverlay_027 *)params->linux_side; - params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); - return 0; -} - NTSTATUS IVROverlay_IVROverlay_027_ClearOverlayTexture( void *args ) { struct IVROverlay_IVROverlay_027_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_027_ClearOverlayTexture_params *)args; diff --git a/vrclient_x64/vrclient_x64/unix_vroverlay_manual.cpp b/vrclient_x64/vrclient_x64/unix_vroverlay_manual.cpp new file mode 100644 index 00000000..05faaea1 --- /dev/null +++ b/vrclient_x64/vrclient_x64/unix_vroverlay_manual.cpp @@ -0,0 +1,276 @@ +#include "unix_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vrclient); + +static u_Texture_t unwrap_texture_data( const w_Texture_t *w_texture, u_VRVulkanTextureData_t *u_vkdata ) +{ + u_Texture_t u_texture = *w_texture; + + if (u_texture.eType == TextureType_Vulkan) + { + w_VRVulkanTextureData_t *w_vkdata = (w_VRVulkanTextureData_t *)w_texture->handle; + + *u_vkdata = *w_vkdata; + u_vkdata->m_pDevice = p_get_native_VkDevice( w_vkdata->m_pDevice ); + u_vkdata->m_pPhysicalDevice = p_get_native_VkPhysicalDevice( w_vkdata->m_pPhysicalDevice ); + u_vkdata->m_pInstance = p_get_native_VkInstance( w_vkdata->m_pInstance ); + u_vkdata->m_pQueue = p_get_native_VkQueue( w_vkdata->m_pQueue ); + + u_texture.handle = u_vkdata; + } + + return u_texture; +} + +NTSTATUS IVROverlay_IVROverlay_001_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_001_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_001_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_001 *iface = (struct u_IVROverlay_IVROverlay_001 *)params->linux_side; + + FIXME("unimplemented!\n"); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_002_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_002_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_002_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_002 *iface = (struct u_IVROverlay_IVROverlay_002 *)params->linux_side; + + FIXME("unimplemented!\n"); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_003_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_003_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_003_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_003 *iface = (struct u_IVROverlay_IVROverlay_003 *)params->linux_side; + + FIXME("unimplemented!\n"); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_004_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_004_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_004_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_004 *iface = (struct u_IVROverlay_IVROverlay_004 *)params->linux_side; + + FIXME("unimplemented!\n"); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_005_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_005_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_005_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_005 *iface = (struct u_IVROverlay_IVROverlay_005 *)params->linux_side; + + FIXME("unimplemented!\n"); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_007_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_007_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_007_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_007 *iface = (struct u_IVROverlay_IVROverlay_007 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_008_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_008_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_008_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_008 *iface = (struct u_IVROverlay_IVROverlay_008 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_010_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_010_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_010_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_010 *iface = (struct u_IVROverlay_IVROverlay_010 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_011_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_011_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_011_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_011 *iface = (struct u_IVROverlay_IVROverlay_011 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_012_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_012_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_012_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_012 *iface = (struct u_IVROverlay_IVROverlay_012 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_013_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_013_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_013_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_013 *iface = (struct u_IVROverlay_IVROverlay_013 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_014_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_014_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_014_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_014 *iface = (struct u_IVROverlay_IVROverlay_014 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_016_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_016_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_016_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_016 *iface = (struct u_IVROverlay_IVROverlay_016 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_017_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_017_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_017_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_017 *iface = (struct u_IVROverlay_IVROverlay_017 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_018_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_018_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_018_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_018 *iface = (struct u_IVROverlay_IVROverlay_018 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_019_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_019_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_019_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_019 *iface = (struct u_IVROverlay_IVROverlay_019 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_020_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_020_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_020_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_020 *iface = (struct u_IVROverlay_IVROverlay_020 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_021_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_021_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_021_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_021 *iface = (struct u_IVROverlay_IVROverlay_021 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_022_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_022_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_022_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_022 *iface = (struct u_IVROverlay_IVROverlay_022 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_024_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_024_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_024_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_024 *iface = (struct u_IVROverlay_IVROverlay_024 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_025_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_025_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_025_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_025 *iface = (struct u_IVROverlay_IVROverlay_025 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_026_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_026_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_026_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_026 *iface = (struct u_IVROverlay_IVROverlay_026 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} + +NTSTATUS IVROverlay_IVROverlay_027_SetOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_027_SetOverlayTexture_params *params = (struct IVROverlay_IVROverlay_027_SetOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_027 *iface = (struct u_IVROverlay_IVROverlay_027 *)params->linux_side; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( params->pTexture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, &host_texture ); + return 0; +} diff --git a/vrclient_x64/vrclient_x64/vroverlay_manual.c b/vrclient_x64/vrclient_x64/vroverlay_manual.c index 12fb5126..0e22211a 100644 --- a/vrclient_x64/vrclient_x64/vroverlay_manual.c +++ b/vrclient_x64/vrclient_x64/vroverlay_manual.c @@ -44,11 +44,6 @@ static void load_overlay_texture_dxvk( const w_Texture_t *texture, struct set_ov state->texture = vrclient_translate_texture_dxvk( texture, &state->vkdata, state->dxvk_surface, &state->dxvk_device, &state->image_layout, &image_info ); - state->vkdata.m_pDevice = get_native_VkDevice( state->vkdata.m_pDevice ); - state->vkdata.m_pPhysicalDevice = get_native_VkPhysicalDevice( state->vkdata.m_pPhysicalDevice ); - state->vkdata.m_pInstance = get_native_VkInstance( state->vkdata.m_pInstance ); - state->vkdata.m_pQueue = get_native_VkQueue( state->vkdata.m_pQueue ); - state->subresources.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; state->subresources.baseMipLevel = 0; state->subresources.levelCount = image_info.mipLevels; @@ -72,24 +67,6 @@ static void free_unix_overlay_texture_dxvk( struct set_overlay_texture_state *st state->dxvk_surface->lpVtbl->Release( state->dxvk_surface ); } -static void load_overlay_texture_vulkan( const w_Texture_t *texture, struct set_overlay_texture_state *state ) -{ - w_VRVulkanTextureData_t *their_vkdata; - - TRACE( "texture = %p\n", texture ); - - their_vkdata = texture->handle; - - state->vkdata = *their_vkdata; - state->vkdata.m_pDevice = get_native_VkDevice( their_vkdata->m_pDevice ); - state->vkdata.m_pPhysicalDevice = get_native_VkPhysicalDevice( their_vkdata->m_pPhysicalDevice ); - state->vkdata.m_pInstance = get_native_VkInstance( their_vkdata->m_pInstance ); - state->vkdata.m_pQueue = get_native_VkQueue( their_vkdata->m_pQueue ); - - state->texture = *texture; - state->texture.handle = &state->vkdata; -} - uint32_t __thiscall winIVROverlay_IVROverlay_001_SetOverlayTexture( struct w_steam_iface *_this, uint64_t ulOverlayHandle, void *pTexture ) { @@ -148,7 +125,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_007_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_007_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -169,7 +145,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_008_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_008_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -190,7 +165,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_010_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_010_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -211,7 +185,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_011_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_011_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -232,7 +205,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_012_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_012_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -253,7 +225,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_013_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_013_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -274,7 +245,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_014_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_014_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -295,7 +265,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_016_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_016_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -316,7 +285,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_017_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_017_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -337,7 +305,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_018_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_018_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -358,7 +325,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_019_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_019_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -379,7 +345,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_020_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_020_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -400,7 +365,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_021_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_021_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -421,7 +385,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_022_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_022_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -442,7 +405,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_024_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_024_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -463,7 +425,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_025_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_025_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -484,7 +445,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_026_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_026_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); @@ -505,7 +465,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_027_SetOverlayTexture( struct w_ste TRACE( "%p\n", _this ); if (pTexture->eType == TextureType_DirectX) load_overlay_texture_dxvk( pTexture, &state ); - if (pTexture->eType == TextureType_Vulkan) load_overlay_texture_vulkan( pTexture, &state ); VRCLIENT_CALL( IVROverlay_IVROverlay_027_SetOverlayTexture, ¶ms ); if (pTexture->eType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state );