Files
wine-staging/patches/d3drm-starwars/0005-d3drm-IDirect3DRMFrame2-SetPosition.patch
Alistair Leslie-Hughes 31b114a4e3 Added d3drm-starwars patchset
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.
2025-10-16 17:40:42 +11:00

82 lines
3.0 KiB
Diff

From c210f81d3e30136dd970e9c99e6d42225743f35e Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 14:19:14 +1000
Subject: [PATCH] d3drm: IDirect3DRMFrame2 SetPosition
---
dlls/d3drm/frame.c | 31 ++++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c
index 7a5bd18cd33..80d47ce7896 100644
--- a/dlls/d3drm/frame.c
+++ b/dlls/d3drm/frame.c
@@ -1452,28 +1452,37 @@ static HRESULT WINAPI d3drm_frame1_GetParent(IDirect3DRMFrame *iface, IDirect3DR
return d3drm_frame2_GetParent(&frame->IDirect3DRMFrame2_iface, parent);
}
+static HRESULT frame_get_position(struct d3drm_frame *frame, struct d3drm_frame *reference, D3DVECTOR *position)
+{
+ // TODO
+ return S_OK;
+}
+
static HRESULT WINAPI d3drm_frame3_GetPosition(IDirect3DRMFrame3 *iface,
IDirect3DRMFrame3 *reference, D3DVECTOR *position)
{
- FIXME("iface %p, reference %p, position %p stub!\n", iface, reference, position);
-
- return E_NOTIMPL;
+ struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface);
+ struct d3drm_frame *ref = impl_from_IDirect3DRMFrame3(reference);
+ TRACE("iface %p, reference %p, position %p\n", iface, ref, position);
+ return frame_get_position(frame, NULL, position);
}
static HRESULT WINAPI d3drm_frame2_GetPosition(IDirect3DRMFrame2 *iface,
IDirect3DRMFrame *reference, D3DVECTOR *position)
{
- FIXME("iface %p, reference %p, position %p stub!\n", iface, reference, position);
-
- return E_NOTIMPL;
+ struct d3drm_frame *frame = impl_from_IDirect3DRMFrame2(iface);
+ struct d3drm_frame *ref = impl_from_IDirect3DRMFrame(reference);
+ TRACE("iface %p, reference %p, position %p\n", iface, ref, position);
+ return frame_get_position(frame, NULL, position);
}
static HRESULT WINAPI d3drm_frame1_GetPosition(IDirect3DRMFrame *iface,
IDirect3DRMFrame *reference, D3DVECTOR *position)
{
- FIXME("iface %p, reference %p, position %p stub!\n", iface, reference, position);
-
- return E_NOTIMPL;
+ struct d3drm_frame *frame = impl_from_IDirect3DRMFrame(iface);
+ struct d3drm_frame *ref = impl_from_IDirect3DRMFrame(reference);
+ TRACE("iface %p, reference %p, position %p\n", iface, reference, position);
+ return frame_get_position(frame, ref, position);
}
@@ -2449,7 +2458,7 @@ static HRESULT WINAPI d3drm_frame3_SetPosition(IDirect3DRMFrame3 *iface,
{
FIXME("iface %p, reference %p, x %.8e, y %.8e, z %.8e stub!\n", iface, reference, x, y, z);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame2_SetPosition(IDirect3DRMFrame2 *iface,
@@ -2457,7 +2466,7 @@ static HRESULT WINAPI d3drm_frame2_SetPosition(IDirect3DRMFrame2 *iface,
{
FIXME("iface %p, reference %p, x %.8e, y %.8e, z %.8e stub!\n", iface, reference, x, y, z);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame1_SetPosition(IDirect3DRMFrame *iface,
--
2.45.2