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.
82 lines
3.0 KiB
Diff
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
|
|
|