mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-05-17 17:08:11 +03:00
84 lines
3.2 KiB
C++
84 lines
3.2 KiB
C++
#include "unix_private.h"
|
|
|
|
#if 0
|
|
#pragma makedep unix
|
|
#endif
|
|
|
|
WINE_DEFAULT_DEBUG_CHANNEL(vrclient);
|
|
|
|
static w_VRVulkanTextureData_t *get_vulkan_texture_data( const w_Texture_t *w_texture )
|
|
{
|
|
return (w_VRVulkanTextureData_t *)w_texture->handle;
|
|
}
|
|
|
|
template< typename WTexture >
|
|
static u_Texture_t unwrap_texture_data( const WTexture *w_texture, u_VRVulkanTextureData_t *u_vkdata )
|
|
{
|
|
u_Texture_t u_texture = *w_texture;
|
|
|
|
if (u_texture.eType == TextureType_Vulkan)
|
|
{
|
|
auto *w_vkdata = get_vulkan_texture_data( w_texture );
|
|
|
|
*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;
|
|
}
|
|
|
|
template< typename Params >
|
|
static NTSTATUS IVROverlay_SetOverlayTexture( u_IVROverlay_IVROverlay_001 *iface, Params *params, bool wow64 )
|
|
{
|
|
FIXME("unimplemented!\n");
|
|
params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->pTexture );
|
|
return 0;
|
|
}
|
|
|
|
template< typename Iface, typename Params >
|
|
static NTSTATUS IVROverlay_SetOverlayTexture( Iface *iface, Params *params, bool wow64, bool unimpl )
|
|
{
|
|
FIXME("unimplemented!\n");
|
|
params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, params->eTextureType, params->pTexture );
|
|
return 0;
|
|
}
|
|
|
|
template< typename Iface, typename Params >
|
|
static NTSTATUS IVROverlay_SetOverlayTexture( Iface *iface, Params *params, bool wow64 )
|
|
{
|
|
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;
|
|
}
|
|
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 001, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 002, SetOverlayTexture, false );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 003, SetOverlayTexture, false );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 004, SetOverlayTexture, false );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 005, SetOverlayTexture, false );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 007, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 008, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 010, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 011, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 012, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 013, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 014, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 016, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 017, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 018, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 019, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 020, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 021, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 022, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 024, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 025, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 026, SetOverlayTexture );
|
|
VRCLIENT_UNIX_IMPL( IVROverlay, 027, SetOverlayTexture );
|