You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-12-15 08:03:15 -08:00
This stops the crash but doesn't show the battle at all. Patchset shows what is needed (as a minimum), to be implemented in order for it to work correctly.
40 lines
1.3 KiB
Diff
40 lines
1.3 KiB
Diff
From 61ed2e5563b365fb0bd4e581d03ca8300cd1b4ee Mon Sep 17 00:00:00 2001
|
|
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
|
Date: Fri, 15 Sep 2023 15:33:13 +1000
|
|
Subject: [PATCH] d3drm: IDirect3DRMMesh Clone semi-stub
|
|
|
|
Needs to copy all members.
|
|
---
|
|
dlls/d3drm/meshbuilder.c | 13 ++++++++++++-
|
|
1 file changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
|
|
index ec2615a016d..3e57fa99435 100644
|
|
--- a/dlls/d3drm/meshbuilder.c
|
|
+++ b/dlls/d3drm/meshbuilder.c
|
|
@@ -2508,9 +2508,20 @@ static ULONG WINAPI d3drm_mesh_Release(IDirect3DRMMesh *iface)
|
|
static HRESULT WINAPI d3drm_mesh_Clone(IDirect3DRMMesh *iface,
|
|
IUnknown *outer, REFIID iid, void **out)
|
|
{
|
|
+ struct d3drm_mesh *mesh = impl_from_IDirect3DRMMesh(iface);
|
|
+ struct d3drm_mesh *meshout;
|
|
+ HRESULT hr;
|
|
+
|
|
FIXME("iface %p, outer %p, iid %s, out %p stub!\n", iface, outer, debugstr_guid(iid), out);
|
|
|
|
- return E_NOTIMPL;
|
|
+ hr = d3drm_mesh_create(&meshout, mesh->d3drm);
|
|
+ if (FAILED(hr))
|
|
+ return hr;
|
|
+
|
|
+ hr = IDirect3DRMMesh_QueryInterface(&meshout->IDirect3DRMMesh_iface, iid, out);
|
|
+ IDirect3DRMMesh_Release(&meshout->IDirect3DRMMesh_iface);
|
|
+
|
|
+ return hr;
|
|
}
|
|
|
|
static HRESULT WINAPI d3drm_mesh_AddDestroyCallback(IDirect3DRMMesh *iface,
|
|
--
|
|
2.45.2
|
|
|