Files
wine-staging/patches/d3drm-starwars/0003-d3drm-IDirect3DRMMesh-GetBox-stubs.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

62 lines
2.0 KiB
Diff

From d1beb46198beef65617571b6d4cebf7cf8618188 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 12:56:26 +1000
Subject: [PATCH] d3drm: IDirect3DRMMesh GetBox stubs
---
dlls/d3drm/meshbuilder.c | 4 ++--
dlls/d3drm/tests/d3drm.c | 8 ++++++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index abad81c51ae..2f0fe1df7ba 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -626,7 +626,7 @@ static HRESULT WINAPI d3drm_mesh_builder2_GetBox(IDirect3DRMMeshBuilder2 *iface,
{
FIXME("iface %p, box %p stub!\n", iface, box);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_mesh_builder2_GenerateNormals(IDirect3DRMMeshBuilder2 *iface)
@@ -2594,7 +2594,7 @@ static HRESULT WINAPI d3drm_mesh_GetBox(IDirect3DRMMesh *iface, D3DRMBOX *box)
{
FIXME("iface %p, box %p stub!\n", iface, box);
- return E_NOTIMPL;
+ return D3DRMERR_BOXNOTSET;
}
static HRESULT WINAPI d3drm_mesh_AddGroup(IDirect3DRMMesh *iface, unsigned vertex_count,
diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c
index 5d478f24b1a..72e07dde7a8 100644
--- a/dlls/d3drm/tests/d3drm.c
+++ b/dlls/d3drm/tests/d3drm.c
@@ -449,6 +449,7 @@ static void test_MeshBuilder(void)
DWORD size;
D3DCOLOR color;
IUnknown *unk;
+ D3DRMBOX box;
hr = Direct3DRMCreate(&d3drm);
ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface, hr %#lx\n", hr);
@@ -694,6 +695,13 @@ static void test_MeshBuilder(void)
IDirect3DRMMesh_Release(mesh);
}
+ memset(&box, 0, sizeof(box));
+ hr = IDirect3DRMMeshBuilder_GetBox(pMeshBuilder, &box);
+ ok(hr == D3DRM_OK, "got hr %#lx.\n", hr);
+
+ expect_vector(&box.min, 1.0, 2.0f, 3.0f, 1);
+ expect_vector(&box.max, 6.9f, 8.0f, 8.9f, 1);
+
hr = IDirect3DRMMeshBuilder_Scale(pMeshBuilder, 2, 3 ,4);
ok(hr == D3DRM_OK, "Scale failed returning hr %#lx.\n", hr);
--
2.45.2