vrclient: Add support for DXVK in IVROverlay::SetOverlayTexture

This commit is contained in:
Matt Coffin 2020-08-16 14:31:33 -06:00 committed by Andrew Eikum
parent ed6a644fc3
commit 74b7f33e98
5 changed files with 203 additions and 51 deletions

View File

@ -350,6 +350,30 @@ def ivrmailbox_undoc3(cppname, method):
assert "001" in cppname assert "001" in cppname
return "ivrmailbox_undoc3" return "ivrmailbox_undoc3"
def ivroverlay_set_overlay_texture(cppname, method):
if "001" in cppname:
return "ivroverlay_001_set_overlay_texture"
for version in ["002", "003", "004", "005"]:
if version in cppname:
return "ivroverlay_005_set_overlay_texture"
assert \
"007" in cppname or \
"008" in cppname or \
"010" in cppname or \
"011" in cppname or \
"012" in cppname or \
"013" in cppname or \
"014" in cppname or \
"016" in cppname or \
"017" in cppname or \
"018" in cppname or \
"019" in cppname or \
"020" in cppname or \
"021" in cppname or \
"022" in cppname or \
"024" in cppname
return "ivroverlay_set_overlay_texture"
method_overrides = [ method_overrides = [
("IVRClientCore", "Init", ivrclientcore_init), ("IVRClientCore", "Init", ivrclientcore_init),
("IVRClientCore", "GetGenericInterface", ivrclientcore_get_generic_interface), ("IVRClientCore", "GetGenericInterface", ivrclientcore_get_generic_interface),
@ -364,6 +388,7 @@ method_overrides = [
("IVRRenderModels", "FreeTextureD3D11", ivrrendermodels_free_texture_d3d11), ("IVRRenderModels", "FreeTextureD3D11", ivrrendermodels_free_texture_d3d11),
("IVRRenderModels", "LoadIntoTextureD3D11_Async", ivrrendermodels_load_into_texture_d3d11_async), ("IVRRenderModels", "LoadIntoTextureD3D11_Async", ivrrendermodels_load_into_texture_d3d11_async),
("IVRMailbox", "undoc3", ivrmailbox_undoc3), ("IVRMailbox", "undoc3", ivrmailbox_undoc3),
("IVROverlay", "SetOverlayTexture", ivroverlay_set_overlay_texture),
] ]
method_overrides_data = [ method_overrides_data = [

View File

@ -29,7 +29,6 @@ typedef int
EVRNotificationType, EVRNotificationType,
EVRNotificationError, EVRNotificationError,
EVRNotificationStyle, EVRNotificationStyle,
EVROverlayError,
EGamepadTextInputLineMode, EGamepadTextInputLineMode,
EOverlayDirection, EOverlayDirection,
EColorSpace, EColorSpace,
@ -312,4 +311,9 @@ typedef enum EVRRenderModelError
VRRenderModelError_InvalidTexture = 400, VRRenderModelError_InvalidTexture = 400,
} EVRRenderModelError; } EVRRenderModelError;
typedef enum EVROverlayError
{
VROverlayError_InvalidHandle = 11,
} EVROverlayError;
#endif #endif

View File

@ -744,6 +744,83 @@ static EVRCompositorError ivrcompositor_submit_wined3d(
} }
#ifdef VRCLIENT_HAVE_DXVK #ifdef VRCLIENT_HAVE_DXVK
static Texture_t vrclient_translate_texture_dxvk(Texture_t *texture, struct VRVulkanTextureData_t *vkdata,
IDXGIVkInteropSurface *dxvk_surface, IDXGIVkInteropDevice **p_dxvk_device, VkImageLayout *image_layout,
VkImageCreateInfo *image_info)
{
struct Texture_t vktexture;
VkImage image_handle;
dxvk_surface->lpVtbl->GetDevice(dxvk_surface, p_dxvk_device);
(*p_dxvk_device)->lpVtbl->GetVulkanHandles(*p_dxvk_device, &vkdata->m_pInstance,
&vkdata->m_pPhysicalDevice, &vkdata->m_pDevice);
(*p_dxvk_device)->lpVtbl->GetSubmissionQueue(*p_dxvk_device, &vkdata->m_pQueue, &vkdata->m_nQueueFamilyIndex);
image_info->sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
image_info->pNext = NULL;
dxvk_surface->lpVtbl->GetVulkanImageInfo(dxvk_surface, &image_handle, image_layout, image_info);
load_vk_unwrappers();
vkdata->m_nImage = (uint64_t)image_handle;
vkdata->m_pDevice = get_native_VkDevice(vkdata->m_pDevice);
vkdata->m_pPhysicalDevice = get_native_VkPhysicalDevice(vkdata->m_pPhysicalDevice);
vkdata->m_pInstance = get_native_VkInstance(vkdata->m_pInstance);
vkdata->m_pQueue = get_native_VkQueue(vkdata->m_pQueue);
vkdata->m_nWidth = image_info->extent.width;
vkdata->m_nHeight = image_info->extent.height;
vkdata->m_nFormat = image_info->format;
vkdata->m_nSampleCount = image_info->samples;
vktexture = *texture;
vktexture.handle = vkdata;
vktexture.eType = TextureType_Vulkan;
return vktexture;
}
static EVROverlayError ivroverlay_set_overlay_texture_dxvk(
EVROverlayError (*cpp_func)(void *, VROverlayHandle_t, Texture_t *),
void *linux_side, VROverlayHandle_t overlayHandle, Texture_t *texture,
unsigned int version, IDXGIVkInteropSurface *dxvk_surface)
{
struct VRVulkanTextureData_t vkdata;
IDXGIVkInteropDevice *dxvk_device;
struct Texture_t vktexture;
VkImageLayout image_layout;
VkImageCreateInfo image_info;
VkImageSubresourceRange subresources;
EVRCompositorError err;
vktexture = vrclient_translate_texture_dxvk(texture, &vkdata, dxvk_surface, &dxvk_device, &image_layout, &image_info);
subresources.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
subresources.baseMipLevel = 0;
subresources.levelCount = image_info.mipLevels;
subresources.baseArrayLayer = 0;
subresources.layerCount = image_info.arrayLayers;
dxvk_device->lpVtbl->TransitionSurfaceLayout(dxvk_device, dxvk_surface, &subresources,
image_layout, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
dxvk_device->lpVtbl->FlushRenderingCommands(dxvk_device);
dxvk_device->lpVtbl->LockSubmissionQueue(dxvk_device);
err = cpp_func(linux_side, overlayHandle, &vktexture);
dxvk_device->lpVtbl->ReleaseSubmissionQueue(dxvk_device);
dxvk_device->lpVtbl->TransitionSurfaceLayout(dxvk_device, dxvk_surface, &subresources,
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, image_layout);
dxvk_device->lpVtbl->Release(dxvk_device);
dxvk_surface->lpVtbl->Release(dxvk_surface);
return err;
}
static EVRCompositorError ivrcompositor_submit_dxvk( static EVRCompositorError ivrcompositor_submit_dxvk(
EVRCompositorError (*cpp_func)(void *, EVREye, Texture_t *, VRTextureBounds_t *, EVRSubmitFlags), EVRCompositorError (*cpp_func)(void *, EVREye, Texture_t *, VRTextureBounds_t *, EVRSubmitFlags),
void *linux_side, EVREye eye, Texture_t *texture, VRTextureBounds_t *bounds, EVRSubmitFlags flags, void *linux_side, EVREye eye, Texture_t *texture, VRTextureBounds_t *bounds, EVRSubmitFlags flags,
@ -753,47 +830,19 @@ static EVRCompositorError ivrcompositor_submit_dxvk(
IDXGIVkInteropDevice *dxvk_device; IDXGIVkInteropDevice *dxvk_device;
struct Texture_t vktexture; struct Texture_t vktexture;
VkImage image_handle;
VkImageLayout image_layout; VkImageLayout image_layout;
VkImageCreateInfo image_info; VkImageCreateInfo image_info;
VkImageSubresourceRange subresources; VkImageSubresourceRange subresources;
EVRCompositorError err; EVRCompositorError err;
dxvk_surface->lpVtbl->GetDevice(dxvk_surface, &dxvk_device); vktexture = vrclient_translate_texture_dxvk(texture, &vkdata, dxvk_surface, &dxvk_device, &image_layout, &image_info);
user_data->dxvk_device = dxvk_device; user_data->dxvk_device = dxvk_device;
dxvk_device->lpVtbl->GetVulkanHandles(dxvk_device, &vkdata.m_pInstance,
&vkdata.m_pPhysicalDevice, &vkdata.m_pDevice);
dxvk_device->lpVtbl->GetSubmissionQueue(dxvk_device, &vkdata.m_pQueue, &vkdata.m_nQueueFamilyIndex);
/* DXVK needs this to be initialized correctly */
image_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
image_info.pNext = NULL;
dxvk_surface->lpVtbl->GetVulkanImageInfo(dxvk_surface, &image_handle, &image_layout, &image_info);
load_vk_unwrappers();
vkdata.m_nImage = (uint64_t)image_handle;
vkdata.m_pDevice = get_native_VkDevice(vkdata.m_pDevice);
vkdata.m_pPhysicalDevice = get_native_VkPhysicalDevice(vkdata.m_pPhysicalDevice);
vkdata.m_pInstance = get_native_VkInstance(vkdata.m_pInstance);
vkdata.m_pQueue = get_native_VkQueue(vkdata.m_pQueue);
vkdata.m_nWidth = image_info.extent.width;
vkdata.m_nHeight = image_info.extent.height;
vkdata.m_nFormat = image_info.format;
vkdata.m_nSampleCount = image_info.samples;
if (flags & (Submit_TextureWithPose | Submit_TextureWithDepth)) if (flags & (Submit_TextureWithPose | Submit_TextureWithDepth))
FIXME("Unhandled flags %#x.\n", flags & (Submit_TextureWithPose | Submit_TextureWithDepth)); FIXME("Unhandled flags %#x.\n", flags & (Submit_TextureWithPose | Submit_TextureWithDepth));
vktexture = *texture;
vktexture.handle = &vkdata;
vktexture.eType = TextureType_Vulkan;
subresources.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; subresources.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
subresources.baseMipLevel = 0; subresources.baseMipLevel = 0;
subresources.levelCount = image_info.mipLevels; subresources.levelCount = image_info.mipLevels;
@ -891,6 +940,65 @@ static EVRCompositorError ivrcompositor_submit_vulkan(
return cpp_func(linux_side, eye, tex, bounds, flags); return cpp_func(linux_side, eye, tex, bounds, flags);
} }
EVROverlayError ivroverlay_set_overlay_texture(
EVROverlayError (*cpp_func)(void *, VROverlayHandle_t, Texture_t *),
void *linux_side, VROverlayHandle_t overlayHandle, Texture_t *texture,
unsigned int version)
{
IUnknown *texture_iface;
HRESULT hr;
TRACE("%p, overlayHandle = %#x, texture = %p\n", linux_side, overlayHandle, texture);
switch (texture->eType)
{
case TextureType_DirectX:
TRACE("D3D11\n");
if (!texture->handle) {
WARN("No D3D11 texture %p.\n", texture);
return cpp_func(linux_side, overlayHandle, texture);
}
texture_iface = texture->handle;
#ifdef VRCLIENT_HAVE_DXVK
{
IDXGIVkInteropSurface *dxvk_surface;
if (SUCCEEDED(hr = texture_iface->lpVtbl->QueryInterface(texture_iface, &IID_IDXGIVkInteropSurface, (void **)&dxvk_surface))) {
return ivroverlay_set_overlay_texture_dxvk(cpp_func, linux_side, overlayHandle, texture, version, dxvk_surface);
}
}
#endif
WARN("Invalid D3D11 texture %p.\n", texture);
return cpp_func(linux_side, overlayHandle, texture);
default:
return cpp_func(linux_side, overlayHandle, texture);
}
}
EVROverlayError ivroverlay_005_set_overlay_texture(
EVROverlayError (*cpp_func)(void *, VROverlayHandle_t, GraphicsAPIConvention, void *),
void *linux_side, VROverlayHandle_t overlayHandle, GraphicsAPIConvention api, void *texture,
unsigned int version)
{
/* hopefully no one actually uses this old interface... Vulkan support
* wasn't added until later; how can we pass in a DirectX texture? */
FIXME("unimplemented!\n");
return VROverlayError_InvalidHandle;
}
EVROverlayError ivroverlay_001_set_overlay_texture(
EVROverlayError (*cpp_func)(void *, VROverlayHandle_t, void *),
void *linux_side, VROverlayHandle_t overlayHandle, void *texture,
unsigned int version)
{
/* probably no one actually uses this old interface... */
FIXME("unimplemented!\n");
return VROverlayError_InvalidHandle;
}
EVRCompositorError ivrcompositor_submit( EVRCompositorError ivrcompositor_submit(
EVRCompositorError (*cpp_func)(void *, EVREye, Texture_t *, VRTextureBounds_t *, EVRSubmitFlags), EVRCompositorError (*cpp_func)(void *, EVREye, Texture_t *, VRTextureBounds_t *, EVRSubmitFlags),
void *linux_side, EVREye eye, Texture_t *texture, VRTextureBounds_t *bounds, EVRSubmitFlags flags, void *linux_side, EVREye eye, Texture_t *texture, VRTextureBounds_t *bounds, EVRSubmitFlags flags,

View File

@ -128,7 +128,7 @@ VRCompositorError ivrcompositor_008_submit(
unsigned int version, struct compositor_data *user_data); unsigned int version, struct compositor_data *user_data);
EVRCompositorError ivrcompositor_submit( EVRCompositorError ivrcompositor_submit(
EVRCompositorError (*cpp_func)(void *, EVREye, Texture_t *, VRTextureBounds_t *, EVRSubmitFlags), EVRCompositorError (*cpp_func)(void *, EVREye, Texture_t *, VRTextureBounds_t *, EVRSubmitFlags),
void *linux_side, EVREye eye, Texture_t *texture, VRTextureBounds_t *bounds, EVRSubmitFlags submit_flags, void *linux_side, EVREye eye, Texture_t *texture, VRTextureBounds_t *bounds, EVRSubmitFlags flags,
unsigned int version, struct compositor_data *user_data); unsigned int version, struct compositor_data *user_data);
void ivrcompositor_post_present_handoff(void (*cpp_func)(void *), void ivrcompositor_post_present_handoff(void (*cpp_func)(void *),
@ -155,6 +155,21 @@ void ivrrendermodels_free_texture_d3d11(
void (*cpp_func)(void *, void *), void (*cpp_func)(void *, void *),
void *linux_side, void *dst_texture, unsigned int version); void *linux_side, void *dst_texture, unsigned int version);
EVROverlayError ivroverlay_set_overlay_texture(
EVROverlayError (*cpp_func)(void *, VROverlayHandle_t, Texture_t *),
void *linux_side, VROverlayHandle_t overlayHandle, Texture_t *texture,
unsigned int version);
EVROverlayError ivroverlay_005_set_overlay_texture(
EVROverlayError (*cpp_func)(void *, VROverlayHandle_t, GraphicsAPIConvention, void *),
void *linux_side, VROverlayHandle_t overlayHandle, GraphicsAPIConvention api, void *texture,
unsigned int version);
EVROverlayError ivroverlay_001_set_overlay_texture(
EVROverlayError (*cpp_func)(void *, VROverlayHandle_t, void *),
void *linux_side, VROverlayHandle_t overlayHandle, void *texture,
unsigned int version);
#endif /* __cplusplus */ #endif /* __cplusplus */
#define TRACE WINE_TRACE #define TRACE WINE_TRACE

View File

@ -421,7 +421,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTexture(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTexture(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_024_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_024_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 24);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ClearOverlayTexture, 12)
@ -1210,7 +1210,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTexture(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTexture(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_022_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_022_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 22);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ClearOverlayTexture, 12)
@ -1951,7 +1951,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTexture(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTexture(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_021_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_021_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 21);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ClearOverlayTexture, 12)
@ -2722,7 +2722,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTexture(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTexture(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_020_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_020_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 20);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ClearOverlayTexture, 12)
@ -3515,7 +3515,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTexture(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTexture(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_019_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_019_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 19);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ClearOverlayTexture, 12)
@ -4312,7 +4312,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTexture(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTexture(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_018_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_018_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 18);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ClearOverlayTexture, 12)
@ -5116,7 +5116,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTexture(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTexture(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_017_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_017_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 17);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ClearOverlayTexture, 12)
@ -5908,7 +5908,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTexture(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTexture(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_016_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_016_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 16);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ClearOverlayTexture, 12)
@ -6661,7 +6661,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTexture(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTexture(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_014_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_014_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 14);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ClearOverlayTexture, 12)
@ -7395,7 +7395,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTexture(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTexture(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_013_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_013_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 13);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ClearOverlayTexture, 12)
@ -8083,7 +8083,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTexture(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTexture(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_012_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_012_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 12);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ClearOverlayTexture, 12)
@ -8754,7 +8754,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTexture(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTexture(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_011_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_011_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 11);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ClearOverlayTexture, 12)
@ -9402,7 +9402,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTexture(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTexture(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_010_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_010_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 10);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ClearOverlayTexture, 12)
@ -10014,7 +10014,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayTexture(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayTexture(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_008_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_008_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 8);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ClearOverlayTexture, 12)
@ -10606,7 +10606,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTexture, 16)
EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayTexture(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture) EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayTexture(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_007_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_007_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 7);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ClearOverlayTexture, 12)
@ -11150,7 +11150,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTexture, 20)
VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayTexture(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture) VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayTexture(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_005_SetOverlayTexture(_this->linux_side, ulOverlayHandle, eTextureType, pTexture); return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_005_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 5);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ClearOverlayTexture, 12)
@ -11670,7 +11670,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTexture, 20)
VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayTexture(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture) VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayTexture(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_004_SetOverlayTexture(_this->linux_side, ulOverlayHandle, eTextureType, pTexture); return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_004_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 4);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ClearOverlayTexture, 12)
@ -12147,7 +12147,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTexture, 20)
VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayTexture(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture) VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayTexture(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_003_SetOverlayTexture(_this->linux_side, ulOverlayHandle, eTextureType, pTexture); return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_003_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 3);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ClearOverlayTexture, 12)
@ -12599,7 +12599,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTexture, 20)
VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayTexture(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture) VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayTexture(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_002_SetOverlayTexture(_this->linux_side, ulOverlayHandle, eTextureType, pTexture); return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_002_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 2);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ClearOverlayTexture, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ClearOverlayTexture, 12)
@ -13036,7 +13036,7 @@ DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTexture, 16)
VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayTexture(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, void * pTexture) VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayTexture(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, void * pTexture)
{ {
TRACE("%p\n", _this); TRACE("%p\n", _this);
return cppIVROverlay_IVROverlay_001_SetOverlayTexture(_this->linux_side, ulOverlayHandle, pTexture); return ivroverlay_001_set_overlay_texture(cppIVROverlay_IVROverlay_001_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 1);
} }
DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayRaw, 28) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayRaw, 28)