vrclient: Use manual method for IVRTrackedCamera_GetVideoStreamFrame.

This commit is contained in:
Rémi Bernon 2023-10-05 14:28:29 +02:00 committed by Arkadiusz Hiler
parent e9aeba85f2
commit f5ef49cf29
5 changed files with 24 additions and 19 deletions

View File

@ -81,14 +81,6 @@ NTSTATUS IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedTime( void *
return 0;
}
NTSTATUS IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame( void *args )
{
struct IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame_params *params = (struct IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame_params *)args;
struct u_IVRTrackedCamera_IVRTrackedCamera_001 *iface = (struct u_IVRTrackedCamera_IVRTrackedCamera_001 *)params->linux_side;
params->_ret = (const w_CameraVideoStreamFrame_t_0914 *)iface->GetVideoStreamFrame( params->nDeviceIndex );
return 0;
}
NTSTATUS IVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame( void *args )
{
struct IVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame_params *params = (struct IVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame_params *)args;

View File

@ -244,6 +244,7 @@ MANUAL_METHODS = {
"IVRMailbox_undoc3": lambda ver, abi: abi == 'u',
"IVROverlay_SetOverlayTexture": True,
"IVRInput_GetDigitalActionData": lambda ver, abi: abi == 'w' and ver > 3,
"IVRTrackedCamera_GetVideoStreamFrame": True,
}

View File

@ -114,3 +114,11 @@ NTSTATUS vrclient_VRClientCoreFactory( void *args )
params->_ret = p_VRClientCoreFactory( params->name, params->return_code );
return 0;
}
NTSTATUS IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame( void *args )
{
struct IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame_params *params = (struct IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame_params *)args;
struct u_IVRTrackedCamera_IVRTrackedCamera_001 *iface = (struct u_IVRTrackedCamera_IVRTrackedCamera_001 *)params->linux_side;
*(w_CameraVideoStreamFrame_t_0914 *)params->_ret = *iface->GetVideoStreamFrame( params->nDeviceIndex );
return 0;
}

View File

@ -516,3 +516,17 @@ bool __thiscall winIVRClientCore_IVRClientCore_003_BIsHmdPresent( struct w_steam
return TRUE;
}
const w_CameraVideoStreamFrame_t_0914 * __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame(struct w_steam_iface *_this, uint32_t nDeviceIndex)
{
static w_CameraVideoStreamFrame_t_0914 w_frame;
struct IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame_params params =
{
.linux_side = _this->u_iface,
.nDeviceIndex = nDeviceIndex,
._ret = &w_frame,
};
TRACE("%p\n", _this);
VRCLIENT_CALL( IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame, &params );
return params._ret;
}

View File

@ -154,17 +154,7 @@ float __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedT
return params._ret;
}
const w_CameraVideoStreamFrame_t_0914 * __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame(struct w_steam_iface *_this, uint32_t nDeviceIndex)
{
struct IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame_params params =
{
.linux_side = _this->u_iface,
.nDeviceIndex = nDeviceIndex,
};
TRACE("%p\n", _this);
VRCLIENT_CALL( IVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame, &params );
return params._ret;
}
extern const w_CameraVideoStreamFrame_t_0914 * __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame(struct w_steam_iface *_this, uint32_t nDeviceIndex);
bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame(struct w_steam_iface *_this, uint32_t nDeviceIndex, const w_CameraVideoStreamFrame_t_0914 *pFrameImage)
{