Compare commits

...

83 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
b6ba963ad0 Release v11.0-rc1 2025-12-06 13:30:28 +11:00
Alistair Leslie-Hughes
8ea0f4968f Updated vkd3d-latest patchset 2025-12-06 13:22:49 +11:00
Elizabeth Figura
217f208541 Rebase against a3d49dbc8db25fdd5907b497f7993d214bf8d0b8. 2025-12-05 15:26:09 -06:00
Alistair Leslie-Hughes
54f4c57fd6 Release v10.20 2025-11-29 19:52:45 +11:00
Alistair Leslie-Hughes
0c0b6c45da Updated vkd3d-latest patchset 2025-11-29 17:43:56 +11:00
Alistair Leslie-Hughes
da6c42770b Rebase against f5944829dc8620b48f8ebde59a9ee8a7734a7f8d. 2025-11-27 13:39:58 +11:00
Elizabeth Figura
b7f859e90d Rebase against f41f67806b9d630e7fbb0e31e3a166e84212dc9b. 2025-11-25 18:00:38 -06:00
Alistair Leslie-Hughes
463f0b7936 Rebase against 8bbc65df51c7c62c9b62a7b92bfd288ba51a2d8f. 2025-11-25 13:17:53 +11:00
Elizabeth Figura
959925fc2f Rebase against f49b8aec794913f94b30ffbe44dbbafc13eb723b. 2025-11-19 15:49:54 -06:00
Alistair Leslie-Hughes
3e92d6c89c Updated vkd3d-latest patchset 2025-11-19 09:34:47 +11:00
Alistair Leslie-Hughes
3bb1cddffc Rebase against 19816afd8ca5f86e23f8e6d7f10b0bfe61326786. 2025-11-19 09:33:59 +11:00
Elizabeth Figura
4741f1abc6 Rebase against 6a966678e89c0c2090b7684a1c2ebfb0a295b9a8. 2025-11-17 16:36:15 -06:00
Alistair Leslie-Hughes
0229597809 Release v10.19 2025-11-15 17:49:50 +11:00
Alistair Leslie-Hughes
3392f477c5 Fixed upstream
Commit b5ec5e6bcfff3dfb005e906a8002572788774b01.
2025-11-15 17:49:15 +11:00
Alistair Leslie-Hughes
e97aabbb86 Updated vkd3d-latest patchset 2025-11-15 16:50:06 +11:00
Elizabeth Figura
ed8a24d79b Rebase against fe1175af410d04f806dda770502d0476a8ccbef6. 2025-11-14 15:26:34 -06:00
Elizabeth Figura
2bf94fc85b Rebase against 76e7e90c3679766ac327b138e3269fb61ead6e4a. 2025-11-13 15:54:44 -06:00
Elizabeth Figura
3950dc0efe ntdll-Junction_Points: Remove support for making reparse points real symlinks.
This is not a priority upstream, and is unlikely to happen.
2025-11-12 11:30:25 -06:00
Elizabeth Figura
635849c3ed ntdll-Junction_Points: Remove hardcoded results for reparse point size and NtReadFile().
As tests show these are actually incorrect; reparse points can contain arbitrary data.
2025-11-12 11:30:25 -06:00
Elizabeth Figura
4ee9edf610 Rebase against 9250ecc5a6a64c73aada0ea751815412f7f00410. 2025-11-12 11:30:25 -06:00
Alistair Leslie-Hughes
514e3884c5 Rebase against 9250ecc5a6a64c73aada0ea751815412f7f00410. 2025-11-12 14:13:39 +11:00
Elizabeth Figura
ece1fa8409 Rebase against 7ca2f577e43a6ecea8c2362d347722f00ef14cb1. 2025-11-10 17:31:32 -06:00
Alistair Leslie-Hughes
e61b45155f Rebase against b448a8ba7b619c082f639f1b61987bf5c0f322fd. 2025-11-07 09:50:06 +11:00
Alistair Leslie-Hughes
66e568f047 Updated vkd3d-latest patchset
Squash and rebase.
2025-11-05 10:33:30 +11:00
Alistair Leslie-Hughes
ef9ef7bf9d Rebase against 839f8fc3e0302980772e1d31f5b761446cdf8406. 2025-11-05 10:27:02 +11:00
Elizabeth Figura
2d58cc0eb9 Rebase against 82275b13a24613947d1da00cd85209dbfaf5465f. 2025-11-03 17:58:34 -06:00
Alistair Leslie-Hughes
23267ac0b6 Release v10.18 2025-11-01 18:31:18 +11:00
Alistair Leslie-Hughes
c8c2492b13 Rebase against cd858d59d6532a0cf624ff1dabc57a370deb43bf. 2025-10-31 15:17:38 +11:00
Alistair Leslie-Hughes
6e5b36c9ee Rebase against bc5f39ebf5fa3e936ad8fea726441b88716724c4. 2025-10-31 07:05:53 +11:00
Alistair Leslie-Hughes
bbcdf55b0a Updated vkd3d-latest patchset 2025-10-30 07:44:02 +11:00
Alistair Leslie-Hughes
314769efdc Rebase against 38938bdb6f752cb68d13d833be97d0c524fe827e. 2025-10-28 10:29:18 +11:00
Alistair Leslie-Hughes
fa2f323344 Rebase against 606d2f48bf8149bf45153f11ef3501eece20762c. 2025-10-25 17:34:41 +11:00
Alistair Leslie-Hughes
0ce7cd10bf Rebase against 606d2f48bf8149bf45153f11ef3501eece20762c. 2025-10-25 12:06:45 +11:00
Alistair Leslie-Hughes
f12010f53d Rebase against ff187dc851c1d9f992049688a7e7190b83250ae4. 2025-10-24 10:28:06 +11:00
Alistair Leslie-Hughes
194b2de8dc Rebase against 833f57698015a9e0c9d0606d8a99254c36c9b9d8. 2025-10-24 08:11:18 +11:00
Alistair Leslie-Hughes
3a65c61aab Rebase against ff5b9971b3a1794043ecc75e639e91a8776e169b. 2025-10-22 11:58:27 +11:00
Alistair Leslie-Hughes
f686957b39 Release v10.17 2025-10-18 17:20:02 +11:00
Alistair Leslie-Hughes
d472acd179 Added wininet-proxy_username patchset 2025-10-18 16:02:56 +11:00
Alistair Leslie-Hughes
c9ec1b4c08 Updated vkd3d-latest patchset 2025-10-18 15:16:39 +11:00
Alistair Leslie-Hughes
588afb2427 Rebase against d62035da4aa91327c6e38a2c8a66b829eb0983ed. 2025-10-18 15:15:14 +11:00
Alistair Leslie-Hughes
efcf9f948e Rebase against d76b59d5c021ea5da49d1e1430c1d33bee874418. 2025-10-17 09:57:01 +11:00
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
Alistair Leslie-Hughes
866ca1e24a Added iccvid_decomp_begin patchset 2025-10-16 17:30:02 +11:00
Alistair Leslie-Hughes
79283b4b8e Updated vkd3d-latest patchset 2025-10-16 17:29:22 +11:00
Elizabeth Figura
7c674a599b Rebase against 486f33ee64121d0331fb3e943791ec42bd98ef51. 2025-10-15 16:46:31 -05:00
Elizabeth Figura
ec458fc7ae Rebase against 2827471c57299793d8e0868679184f8d762a5309. 2025-10-09 16:25:30 -05:00
Alistair Leslie-Hughes
6f356eb1f5 Rebase against c1bafaa02329442df1aba576e2884c0ab699f76e. 2025-10-09 09:42:39 +11:00
Alistair Leslie-Hughes
672a2bae70 Rebase against dc34fef45d491516fa8eaee45b2ae40faa7b0bfe. 2025-10-08 08:50:17 +11:00
Elizabeth Figura
52f1f289f0 Rebase against 7e62997aff603a69e67d270465088ff2ac3132d4. 2025-10-06 16:45:13 -05:00
Alistair Leslie-Hughes
265554a9da Release v10.16 2025-10-04 19:48:02 +10:00
Elizabeth Figura
38d4b8ca78 Rebase against 01269452e0fbb1f081d506bd64996590a553e2b9. 2025-10-03 16:39:15 -05:00
Elizabeth Figura
9c06e8eab3 Rebase against 192d335facd5ec6ff2b9acec615efff16385a416. 2025-10-01 16:58:46 -05:00
Elizabeth Figura
78a888cd3d user32-FlashWindowEx: Remove patch.
This was fixed upstream by d4b2865eb7f2612e52b3fee6ae121e59c2d28296.

Although some parts of the patch still apply and are orthogonal to the change, tests show they're not correct either.
2025-10-01 15:44:21 -05:00
Elizabeth Figura
1f7871a75c user32-ListBox_Size: Remove patch set.
Upstreamed by 57791a5b1a5429a31711f4cd746846d8fee4b798; omitted from the last rebase.
2025-09-30 20:10:45 -05:00
Alistair Leslie-Hughes
815194acd6 Updated vkd3d-latest patchset 2025-10-01 07:52:38 +10:00
Alistair Leslie-Hughes
7e9e516c71 Rebase against bcd3e1a4de9d6efb177b932a937412bfb962d149. 2025-10-01 07:52:38 +10:00
Alistair Leslie-Hughes
ea30d81923 Updated vkd3d-latest patchset 2025-09-30 09:16:55 +10:00
Alistair Leslie-Hughes
a8cce16566 Rebase against 7fb9d22a7932aaf32383ecebb59487d57a503754. 2025-09-30 07:46:22 +10:00
Elizabeth Figura
20ba4773d6 Rebase against 8da914b27c9939ecf511001bcac1a6c74e7edde0. 2025-09-21 16:54:15 -05:00
Alistair Leslie-Hughes
64988e15df Rebase against fc70990d579a74974c6e4f1550f892188114f5cf. 2025-09-20 09:13:49 +10:00
Alistair Leslie-Hughes
1a739efaa4 Updated vkd3d-latest patchset 2025-09-20 09:13:49 +10:00
Alistair Leslie-Hughes
27156e4a6e Updated d3dx11_43-D3DX11CreateTextureFromMemory patchset
Thanks Connor McAdams.
2025-09-20 07:17:19 +10:00
Alistair Leslie-Hughes
112b476921 Added d3dx9-setrawvalue patchset 2025-09-20 07:14:13 +10:00
Alistair Leslie-Hughes
2465e06751 Updated vkd3d-latest patchset 2025-09-19 09:30:04 +10:00
Elizabeth Figura
0e9c421030 Rebase against 0abb419016e3a38e36ba0bdfe9c0497a29a86fcf. 2025-09-18 17:22:54 -05:00
Elizabeth Figura
04570cc4c7 Rebase against 915a1e6fc76943913a77b71446c72dc13eadc1a0. 2025-09-17 16:46:56 -05:00
Elizabeth Figura
c062a34be3 Rebase against 58407c404938f5e83a4ab2a6fa7b7a75ad2b5e85. 2025-09-16 17:03:19 -05:00
Elizabeth Figura
42ab95dc1f ntdll-NtSetLdtEntries: Restore the parts that were not yet upstreamed. 2025-09-16 13:45:16 -05:00
Alistair Leslie-Hughes
e1dea6b9ac vkd3d-latest patchset
Squash
2025-09-16 08:43:37 +10:00
Alistair Leslie-Hughes
74477d5d72 Rebase against 7d26649f6375cd8bf765405237c85933c58e8de8. 2025-09-16 08:37:45 +10:00
Alistair Leslie-Hughes
978b387c1c Release v10.15 2025-09-13 15:52:12 +10:00
Alistair Leslie-Hughes
01d377c9ef d3dx11_43-D3DX11CreateTextureFromMemory - Rebased and Enabled
Fix crashes with the HighFleet (patch 2)
Fix drawing issue with Puyo Puyo Tetris (patch 3).
2025-09-13 08:18:38 +10:00
Elizabeth Figura
317665ee20 Rebase against e3c9d3ac76b223073253667e2447e1cbc407ac97. 2025-09-11 17:44:08 -05:00
Alistair Leslie-Hughes
3d1b6a4bc0 Added msxml3_encode_gb2312 patchset 2025-09-11 09:48:29 +10:00
Alistair Leslie-Hughes
e33772ec34 Rebase against 92e6124a9855b1c398b2822c2679df4ec3e38b83. 2025-09-11 08:23:25 +10:00
Alistair Leslie-Hughes
342cfbc5de Updated vkd3d-latest patchset 2025-09-11 07:01:32 +10:00
Alistair Leslie-Hughes
91b4afcd38 Rebase against c20abdb856139f156ceab0afbb8454e0ad79f0a4. 2025-09-10 07:47:02 +10:00
Alistair Leslie-Hughes
5f55fc20dc Updated winedevice-Default_Drivers patchset
Corrected setting subsystem.
Updated Makefile to include .spec file.
2025-09-09 18:40:22 +10:00
Alistair Leslie-Hughes
3714d05e91 Updated odbc32-fixes patchset 2025-09-08 09:54:01 +10:00
Alistair Leslie-Hughes
39778538c2 Added d3dx9_animation_TrackDesc patchset 2025-09-07 07:47:55 +10:00
Elizabeth Figura
0c15cda214 Rebase against e6df334f178a9b0058fdee0326c5901082efd0d2. 2025-09-06 16:20:19 -05:00
Alistair Leslie-Hughes
858b0697d2 Updated vkd3d-latest patchset 2025-09-03 08:10:33 +10:00
Alistair Leslie-Hughes
0394bb10be Rebase against a3385359f06e291a46364381b2a4ddea81d7cc45. 2025-09-02 07:45:17 +10:00
234 changed files with 16006 additions and 20207 deletions

View File

@@ -1,4 +1,4 @@
From 3dc4a148d7c91afea8f589f47daca82c5c27b7c1 Mon Sep 17 00:00:00 2001
From efd5485d5026fceb01c7a25bb47a780505adea68 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
1 file changed, 19 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 74eb1b7f500..95639558155 100644
index c20d6a5d87b..717f321bc6e 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -43,6 +43,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -20,7 +20,7 @@ index 74eb1b7f500..95639558155 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3870,6 +3871,7 @@ void WINAPI LdrShutdownProcess(void)
@@ -3879,6 +3880,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
@@ -28,7 +28,7 @@ index 74eb1b7f500..95639558155 100644
/******************************************************************
* RtlExitUserProcess (NTDLL.@)
@@ -4366,6 +4368,9 @@ static void release_address_space(void)
@@ -4388,6 +4390,9 @@ static void release_address_space(void)
*/
void loader_init( CONTEXT *context, void **entry )
{
@@ -38,9 +38,9 @@ index 74eb1b7f500..95639558155 100644
static int attach_done;
NTSTATUS status;
ULONG_PTR cookie, port = 0;
@@ -4455,6 +4460,20 @@ void loader_init( CONTEXT *context, void **entry )
arm64ec_thread_init();
#endif
@@ -4485,6 +4490,20 @@ void loader_init( CONTEXT *context, void **entry )
}
wm = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress );
+ /* This hunk occasionally applies in the wrong place;
+ * add a comment here to try to prevent that. */
@@ -60,5 +60,5 @@ index 74eb1b7f500..95639558155 100644
NtCurrentTeb()->FlsSlots = fls_alloc_data();
--
2.47.2
2.51.0

View File

@@ -1,43 +0,0 @@
From 9cf09446b0bf5da7988d1ba30c24d392c7a01f4b Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Tue, 12 Nov 2019 18:13:20 +0800
Subject: [PATCH] comctl32: Bump version to 6.0.
An application that I have here checks comctl32.dll version information
and refuses to run, changing DLL version to 6.0 makes it run.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/comctl32/comctl32.rc | 2 +-
include/commctrl.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/comctl32.rc b/dlls/comctl32/comctl32.rc
index 2c62dbe2720..473de211c67 100644
--- a/dlls/comctl32/comctl32.rc
+++ b/dlls/comctl32/comctl32.rc
@@ -113,7 +113,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#define WINE_FILEDESCRIPTION_STR "Wine Common Controls"
#define WINE_FILENAME_STR "comctl32.dll"
-#define WINE_FILEVERSION COMCTL32_VERSION,81,4704,1100
+#define WINE_FILEVERSION COMCTL32_VERSION,0,4704,1100
#include "wine/wine_common_ver.rc"
diff --git a/include/commctrl.h b/include/commctrl.h
index 235704a76dd..5a67c1284a0 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -59,7 +59,7 @@ enum _LI_METRIC
WINCOMMCTRLAPI HRESULT WINAPI LoadIconWithScaleDown(HINSTANCE, const WCHAR *, int, int, HICON *);
WINCOMMCTRLAPI HRESULT WINAPI LoadIconMetric(HINSTANCE, const WCHAR *, int, HICON *);
-#define COMCTL32_VERSION 5 /* dll version */
+#define COMCTL32_VERSION 6 /* dll version */
#define ICC_LISTVIEW_CLASSES 0x00000001 /* listview, header */
#define ICC_TREEVIEW_CLASSES 0x00000002 /* treeview, tooltips */
--
2.47.2

View File

@@ -0,0 +1,109 @@
From 4abe3ab87631c7bb6144437ff2e1473030d033cb Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 12:13:11 +1000
Subject: [PATCH] d3drm: IDirect3DRMMeshBuilder2 Clone stub
---
dlls/d3drm/meshbuilder.c | 85 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 83 insertions(+), 2 deletions(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 27e76c1cf25..0c765d77281 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -402,9 +402,90 @@ static ULONG WINAPI d3drm_mesh_builder2_Release(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder2_Clone(IDirect3DRMMeshBuilder2 *iface,
IUnknown *outer, REFIID iid, void **out)
{
- FIXME("iface %p, outer %p, iid %s, out %p stub!\n", iface, outer, debugstr_guid(iid), out);
+ struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder2(iface);
+ struct d3drm_mesh_builder *mesh2;
+ HRESULT hr;
- return E_NOTIMPL;
+ FIXME("iface %p, outer %p, iid %s, out %p Semi-stub\n", iface, outer, debugstr_guid(iid), out);
+
+ if (outer)
+ FIXME("outer currently ignored\n");
+
+ *out = NULL;
+
+ hr = d3drm_mesh_builder_create(&mesh2, mesh_builder->d3drm);
+ if(SUCCEEDED(hr))
+ {
+ mesh2->nb_vertices = mesh_builder->nb_vertices;
+ mesh2->vertices_size = mesh_builder->vertices_size;
+ if (mesh_builder->vertices && mesh_builder->nb_vertices)
+ {
+ if (!d3drm_array_reserve((void **)&mesh2->vertices, &mesh_builder->vertices_size, mesh_builder->nb_vertices,
+ sizeof(*mesh_builder->vertices)))
+ {
+ IDirect3DRMMeshBuilder2_Release(&mesh2->IDirect3DRMMeshBuilder2_iface);
+ return E_OUTOFMEMORY;
+ }
+ memcpy(mesh2->vertices, mesh_builder->vertices, mesh_builder->nb_vertices * sizeof(*mesh_builder->vertices));
+ }
+
+ mesh2->nb_normals = mesh_builder->nb_normals;
+ mesh2->normals_size = mesh_builder->normals_size;
+ if (mesh_builder->normals && mesh_builder->nb_normals)
+ {
+ if (!d3drm_array_reserve((void **)&mesh2->normals, &mesh_builder->normals_size,
+ mesh_builder->nb_vertices, sizeof(*mesh_builder->normals)))
+ {
+ IDirect3DRMMeshBuilder2_Release(&mesh2->IDirect3DRMMeshBuilder2_iface);
+ return E_OUTOFMEMORY;
+ }
+ memcpy(mesh2->normals, mesh_builder->normals, mesh_builder->nb_normals * sizeof(*mesh_builder->normals));
+ }
+
+ mesh2->nb_faces = mesh_builder->nb_faces;
+ mesh2->face_data_size = mesh_builder->face_data_size;
+ if (mesh_builder->pFaceData && mesh_builder->face_data_size)
+ {
+ mesh2->pFaceData = malloc(mesh_builder->face_data_size * 2);
+ if(!mesh2->pFaceData)
+ {
+ IDirect3DRMMeshBuilder2_Release(&mesh2->IDirect3DRMMeshBuilder2_iface);
+ return E_OUTOFMEMORY;
+ }
+ memcpy(mesh2->pFaceData, mesh_builder->pFaceData, mesh_builder->face_data_size * 2);
+ }
+
+ mesh2->nb_coords2d = mesh_builder->nb_coords2d;
+ if (mesh_builder->pCoords2d && mesh_builder->nb_coords2d)
+ {
+ mesh2->pCoords2d = calloc(mesh_builder->nb_coords2d, sizeof(*mesh_builder->pCoords2d));
+ if (!mesh2->pCoords2d)
+ {
+ IDirect3DRMMeshBuilder2_Release(&mesh2->IDirect3DRMMeshBuilder2_iface);
+ return E_OUTOFMEMORY;
+ }
+ memcpy(mesh2->pCoords2d, mesh_builder->pCoords2d, mesh_builder->nb_coords2d * sizeof(*mesh_builder->pCoords2d));
+ }
+
+ mesh2->color = mesh_builder->color;
+ mesh2->material = mesh_builder->material;
+ if (mesh2->material)
+ IDirect3DRMTexture2_AddRef(mesh2->material);
+ mesh2->texture = mesh_builder->texture;
+ if (mesh2->texture)
+ IDirect3DRMTexture2_AddRef(mesh2->texture);
+ mesh2->nb_materials = mesh_builder->nb_materials;
+ if (mesh2->nb_materials > 0)
+ FIXME("materials NOT copied yet\n");
+ //struct mesh_material *materials;
+ //DWORD *material_indices;
+ mesh2->quality = mesh_builder->quality;
+
+ hr = IDirect3DRMMeshBuilder2_QueryInterface(&mesh2->IDirect3DRMMeshBuilder2_iface, iid, out);
+ IDirect3DRMMeshBuilder2_Release(&mesh2->IDirect3DRMMeshBuilder3_iface);
+ }
+
+ return hr;
}
static HRESULT WINAPI d3drm_mesh_builder2_AddDestroyCallback(IDirect3DRMMeshBuilder2 *iface,
--
2.45.2

View File

@@ -0,0 +1,27 @@
From 689dad471ce391ed9cfcbc91a4b6c2a00c21b7d8 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 12:31:55 +1000
Subject: [PATCH] d3drm: IDirect3DRMMeshBuilder2 AddFaces stub
---
dlls/d3drm/meshbuilder.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 0c765d77281..abad81c51ae 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -679,7 +679,9 @@ static HRESULT WINAPI d3drm_mesh_builder2_AddFaces(IDirect3DRMMeshBuilder2 *ifac
FIXME("iface %p, vertex_count %lu, vertices %p, normal_count %lu, normals %p, face_data %p, array %p stub!\n",
iface, vertex_count, vertices, normal_count, normals, face_data, array);
- return E_NOTIMPL;
+ if (array)
+ *array = NULL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_mesh_builder2_ReserveSpace(IDirect3DRMMeshBuilder2 *iface,
--
2.45.2

View File

@@ -0,0 +1,61 @@
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

View File

@@ -0,0 +1,25 @@
From cfe0cdc509a8a69d151034aa0f709bdf556983c3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 13:01:03 +1000
Subject: [PATCH] d3drm: IDirect3DRMMeshBuilder2 Translate
---
dlls/d3drm/meshbuilder.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 2f0fe1df7ba..8f9a3cb71a7 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -612,7 +612,7 @@ static HRESULT WINAPI d3drm_mesh_builder2_Translate(IDirect3DRMMeshBuilder2 *ifa
{
FIXME("iface %p, tx %.8e, ty %.8e, tz %.8e stub!\n", iface, tx, ty, tz);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_mesh_builder2_SetColorSource(IDirect3DRMMeshBuilder2 *iface, D3DRMCOLORSOURCE source)
--
2.45.2

View File

@@ -0,0 +1,81 @@
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

View File

@@ -0,0 +1,25 @@
From 15f7fb029e62d7027ab6f0d5546a40bef4630daa Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 14:24:46 +1000
Subject: [PATCH] d3drm: IDirect3DRMFrame2 LookAt
---
dlls/d3drm/frame.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c
index 80d47ce7896..f908ea8dfdf 100644
--- a/dlls/d3drm/frame.c
+++ b/dlls/d3drm/frame.c
@@ -1800,7 +1800,7 @@ static HRESULT WINAPI d3drm_frame2_LookAt(IDirect3DRMFrame2 *iface, IDirect3DRMF
{
FIXME("iface %p, target %p, reference %p, constraint %#x stub!\n", iface, target, reference, constraint);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame1_LookAt(IDirect3DRMFrame *iface, IDirect3DRMFrame *target,
--
2.45.2

View File

@@ -0,0 +1,25 @@
From 92465f0808020ded4857ff303476a4d65ad90d0a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 14:56:56 +1000
Subject: [PATCH] d3drm: IDirect3DRMFrame2 GetOrientation
---
dlls/d3drm/frame.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c
index f908ea8dfdf..2044ba8a2cb 100644
--- a/dlls/d3drm/frame.c
+++ b/dlls/d3drm/frame.c
@@ -1680,7 +1680,7 @@ static HRESULT WINAPI d3drm_frame2_GetOrientation(IDirect3DRMFrame2 *iface,
{
FIXME("iface %p, reference %p, dir %p, up %p stub!\n", iface, reference, dir, up);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame1_GetOrientation(IDirect3DRMFrame *iface,
--
2.45.2

View File

@@ -0,0 +1,42 @@
From fd8a5b167eee739e678b7d306bc70ccab1e33e33 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 15:21:26 +1000
Subject: [PATCH] d3drm: IDirect3DRMFrame2 Move
---
dlls/d3drm/frame.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c
index 2044ba8a2cb..375413af1d7 100644
--- a/dlls/d3drm/frame.c
+++ b/dlls/d3drm/frame.c
@@ -1815,14 +1815,14 @@ static HRESULT WINAPI d3drm_frame3_Move(IDirect3DRMFrame3 *iface, D3DVALUE delta
{
FIXME("iface %p, delta %.8e stub!\n", iface, delta);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame2_Move(IDirect3DRMFrame2 *iface, D3DVALUE delta)
{
FIXME("iface %p, delta %.8e stub!\n", iface, delta);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame1_Move(IDirect3DRMFrame *iface, D3DVALUE delta)
@@ -2483,7 +2483,7 @@ static HRESULT WINAPI d3drm_frame3_SetRotation(IDirect3DRMFrame3 *iface,
FIXME("iface %p, reference %p, x %.8e, y %.8e, z %.8e, theta %.8e stub!\n",
iface, reference, x, y, z, theta);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame2_SetRotation(IDirect3DRMFrame2 *iface,
--
2.45.2

View File

@@ -0,0 +1,27 @@
From eed9eef5f7dda1c86dd59aa284f158ba33008480 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 4 Jun 2022 14:48:54 +1000
Subject: [PATCH] d3drm: SetBufferCount Fake success
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=43180
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/d3drm/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3drm/device.c b/dlls/d3drm/device.c
index 1a433746224..fe85784ee63 100644
--- a/dlls/d3drm/device.c
+++ b/dlls/d3drm/device.c
@@ -783,7 +783,7 @@ static HRESULT WINAPI d3drm_device3_SetBufferCount(IDirect3DRMDevice3 *iface, DW
{
FIXME("iface %p, count %lu stub!\n", iface, count);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_device2_SetBufferCount(IDirect3DRMDevice2 *iface, DWORD count)
--
2.45.2

View File

@@ -0,0 +1,117 @@
From 5da19416de998bfc236534d0e333c2c0454fdace Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 13 Jun 2022 17:21:45 +1000
Subject: [PATCH] d3drm: AddVertext creates a Coordinates list
---
dlls/d3drm/d3drm_private.h | 2 +-
dlls/d3drm/meshbuilder.c | 6 ++++-
dlls/d3drm/tests/d3drm.c | 48 ++++++++++++++++++++++++++++++++++++++
3 files changed, 54 insertions(+), 2 deletions(-)
diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h
index e07efa1c799..53d2d76d18a 100644
--- a/dlls/d3drm/d3drm_private.h
+++ b/dlls/d3drm/d3drm_private.h
@@ -161,7 +161,7 @@ struct d3drm_mesh_builder
DWORD nb_faces;
DWORD face_data_size;
void *pFaceData;
- DWORD nb_coords2d;
+ SIZE_T nb_coords2d;
struct coords_2d *pCoords2d;
D3DCOLOR color;
IDirect3DRMMaterial2 *material;
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 8f9a3cb71a7..70ab332359c 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -1232,7 +1232,7 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
mesh_builder->nb_coords2d = *(DWORD*)ptr;
- TRACE("MeshTextureCoords: nb_coords2d = %ld\n", mesh_builder->nb_coords2d);
+ TRACE("MeshTextureCoords: nb_coords2d = %Iu\n", mesh_builder->nb_coords2d);
mesh_builder->pCoords2d = calloc(mesh_builder->nb_coords2d, sizeof(*mesh_builder->pCoords2d));
memcpy(mesh_builder->pCoords2d, ptr + sizeof(DWORD), mesh_builder->nb_coords2d * sizeof(*mesh_builder->pCoords2d));
@@ -1949,6 +1949,10 @@ static int WINAPI d3drm_mesh_builder3_AddVertex(IDirect3DRMMeshBuilder3 *iface,
mesh_builder->vertices[mesh_builder->nb_vertices].y = y;
mesh_builder->vertices[mesh_builder->nb_vertices].z = z;
+ if (!d3drm_array_reserve((void **)&mesh_builder->pCoords2d, &mesh_builder->nb_coords2d,
+ mesh_builder->nb_coords2d + 1, sizeof(*mesh_builder->pCoords2d)))
+ return 0;
+
return mesh_builder->nb_vertices++;
}
diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c
index 72e07dde7a8..778ab2546db 100644
--- a/dlls/d3drm/tests/d3drm.c
+++ b/dlls/d3drm/tests/d3drm.c
@@ -851,6 +851,53 @@ static void test_Mesh(void)
IDirect3DRM_Release(d3drm);
}
+static void test_Mesh_Vertices(void)
+{
+ HRESULT hr;
+ IDirect3DRM *d3drm;
+ IDirect3DRM2 *d3drm2;
+ IDirect3DRMMesh *mesh;
+ IDirect3DRMMeshBuilder2 *builder;
+ D3DVALUE u, v;
+ int idx;
+
+ hr = Direct3DRMCreate(&d3drm);
+ ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface, hr %#lx\n", hr);
+
+ if (FAILED(hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM2, (void **)&d3drm2)))
+ {
+ win_skip("Cannot get IDirect3DRM2 interface, hr %#lx, skipping tests\n", hr);
+ IDirect3DRM_Release(d3drm);
+ return;
+ }
+
+ hr = IDirect3DRM_CreateMesh(d3drm, &mesh);
+ ok(hr == D3DRM_OK, "Cannot get IDirect3DRMMesh interface, hr %#lx\n", hr);
+
+ hr = IDirect3DRM2_CreateMeshBuilder(d3drm2, &builder);
+ ok(hr == S_OK, "got hr %#lx\n", hr);
+
+ idx = IDirect3DRMMeshBuilder_AddVertex(builder, -2.95f, 0.0f, 2.95f);
+ ok(idx == 0, "got hr %d\n", idx);
+
+ hr = IDirect3DRMMeshBuilder_SetTextureCoordinates(builder, 0, 0.0f, 0.0f);
+ ok(hr == S_OK, "got hr %#lx\n", hr);
+
+ idx = IDirect3DRMMeshBuilder_AddVertex(builder, -2.95f, 0.0f, 2.95f);
+ ok(idx == 1, "got hr %d\n", idx);
+
+ hr = IDirect3DRMMeshBuilder_GetTextureCoordinates(builder, idx, &u, &v);
+ ok(hr == S_OK, "got hr %#lx\n", hr);
+ ok(u == 0.0f, "got hr %.8e\n", u);
+ ok(v == 0.0f, "got hr %.8e\n", v);
+
+ IDirect3DRMMeshBuilder_Release(builder);
+ IDirect3DRMMesh_Release(mesh);
+
+ IDirect3DRM2_Release(d3drm2);
+ IDirect3DRM_Release(d3drm);
+}
+
static void test_Face(void)
{
HRESULT hr;
@@ -8243,6 +8290,7 @@ START_TEST(d3drm)
test_MeshBuilder();
test_MeshBuilder3();
test_Mesh();
+ test_Mesh_Vertices();
test_Face();
test_Frame();
test_Device();
--
2.45.2

View File

@@ -0,0 +1,39 @@
From ca13260b9498991535cb5544cd75716055ef3c8d Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 13 Jun 2022 17:53:37 +1000
Subject: [PATCH] d3drm: IDirect3DRMFace2 AddVertexAndNormalIndexed
---
dlls/d3drm/face.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/d3drm/face.c b/dlls/d3drm/face.c
index 34810894e13..ce75c68bb59 100644
--- a/dlls/d3drm/face.c
+++ b/dlls/d3drm/face.c
@@ -206,9 +206,11 @@ static HRESULT WINAPI d3drm_face1_AddVertex(IDirect3DRMFace *iface, D3DVALUE x,
static HRESULT WINAPI d3drm_face1_AddVertexAndNormalIndexed(IDirect3DRMFace *iface,
DWORD vertex, DWORD normal)
{
- FIXME("iface %p, vertex %lu, normal %lu stub!\n", iface, vertex, normal);
+ struct d3drm_face *face = impl_from_IDirect3DRMFace(iface);
- return E_NOTIMPL;
+ TRACE("iface %p, vertex %lu, normal %lu stub!\n", iface, vertex, normal);
+
+ return IDirect3DRMFace2_AddVertexAndNormalIndexed(&face->IDirect3DRMFace2_iface, vertex, normal);
}
static HRESULT WINAPI d3drm_face2_SetColorRGB(IDirect3DRMFace2 *iface, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
@@ -477,7 +479,7 @@ static HRESULT WINAPI d3drm_face2_AddVertexAndNormalIndexed(IDirect3DRMFace2 *if
{
FIXME("iface %p, vertex %lu, normal %lu stub!\n", iface, vertex, normal);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_face2_SetTexture(IDirect3DRMFace2 *iface, IDirect3DRMTexture3 *texture)
--
2.45.2

View File

@@ -0,0 +1,39 @@
From 024440f60adfa202d2b828d7a01f22afcae8115b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 13 Jun 2022 17:57:01 +1000
Subject: [PATCH] d3drm: IDirect3DRMFace SetTexture
---
dlls/d3drm/face.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/d3drm/face.c b/dlls/d3drm/face.c
index ce75c68bb59..d5e9c424a00 100644
--- a/dlls/d3drm/face.c
+++ b/dlls/d3drm/face.c
@@ -256,9 +256,11 @@ static HRESULT WINAPI d3drm_face1_SetColor(IDirect3DRMFace *iface, D3DCOLOR colo
static HRESULT WINAPI d3drm_face1_SetTexture(IDirect3DRMFace *iface, IDirect3DRMTexture *texture)
{
- FIXME("iface %p, texture %p stub!\n", iface, texture);
+ struct d3drm_face *face = impl_from_IDirect3DRMFace(iface);
- return E_NOTIMPL;
+ TRACE("iface %p, texture %p\n", iface, texture);
+
+ return IDirect3DRMFace2_SetTexture(&face->IDirect3DRMFace2_iface, (IDirect3DRMTexture3 *)texture);
}
static HRESULT WINAPI d3drm_face1_SetTextureCoordinates(IDirect3DRMFace *iface,
@@ -486,7 +488,7 @@ static HRESULT WINAPI d3drm_face2_SetTexture(IDirect3DRMFace2 *iface, IDirect3DR
{
FIXME("iface %p, texture %p stub!\n", iface, texture);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_face2_SetTextureCoordinates(IDirect3DRMFace2 *iface,
--
2.45.2

View File

@@ -0,0 +1,38 @@
From bcf0490e2858412f0635564c9401525c808fca11 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 13 Jun 2022 18:00:42 +1000
Subject: [PATCH] d3drm: IDirect3DRMMeshBuilder2 SetPerspective
---
dlls/d3drm/meshbuilder.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 70ab332359c..1b9edab8559 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -761,9 +761,10 @@ static HRESULT WINAPI d3drm_mesh_builder2_SetQuality(IDirect3DRMMeshBuilder2 *if
static HRESULT WINAPI d3drm_mesh_builder2_SetPerspective(IDirect3DRMMeshBuilder2 *iface, BOOL enable)
{
- FIXME("iface %p, enable %#x stub!\n", iface, enable);
+ struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder2(iface);
+ TRACE("iface %p, enable %#x\n", iface, enable);
- return E_NOTIMPL;
+ return IDirect3DRMMeshBuilder3_SetPerspective(&mesh_builder->IDirect3DRMMeshBuilder3_iface, enable);
}
static HRESULT WINAPI d3drm_mesh_builder2_SetVertex(IDirect3DRMMeshBuilder2 *iface,
@@ -1847,7 +1848,7 @@ static HRESULT WINAPI d3drm_mesh_builder3_SetPerspective(IDirect3DRMMeshBuilder3
{
FIXME("iface %p, enable %#x stub!\n", iface, enable);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_mesh_builder3_SetVertex(IDirect3DRMMeshBuilder3 *iface,
--
2.45.2

View File

@@ -0,0 +1,38 @@
From d5853bbfca7e77f2218382dcd5ebe34367584e3c Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 13 Jun 2022 18:05:39 +1000
Subject: [PATCH] d3drm: IDirect3DRMMeshBuilder2 GenerateNormals
---
dlls/d3drm/meshbuilder.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 1b9edab8559..1befe032c70 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -631,9 +631,10 @@ static HRESULT WINAPI d3drm_mesh_builder2_GetBox(IDirect3DRMMeshBuilder2 *iface,
static HRESULT WINAPI d3drm_mesh_builder2_GenerateNormals(IDirect3DRMMeshBuilder2 *iface)
{
- FIXME("iface %p stub!\n", iface);
+ struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder2(iface);
+ TRACE("iface %p\n", iface);
- return E_NOTIMPL;
+ return IDirect3DRMMeshBuilder3_GenerateNormals(&mesh_builder->IDirect3DRMMeshBuilder3_iface, 0, 0);
}
static D3DRMCOLORSOURCE WINAPI d3drm_mesh_builder2_GetColorSource(IDirect3DRMMeshBuilder2 *iface)
@@ -1710,7 +1711,7 @@ static HRESULT WINAPI d3drm_mesh_builder3_GenerateNormals(IDirect3DRMMeshBuilder
{
FIXME("iface %p, crease %.8e, flags %#lx stub!\n", iface, crease, flags);
- return E_NOTIMPL;
+ return S_OK;
}
static D3DRMCOLORSOURCE WINAPI d3drm_mesh_builder3_GetColorSource(IDirect3DRMMeshBuilder3 *iface)
--
2.45.2

View File

@@ -0,0 +1,164 @@
From 4e64334180165d4a5fa44e9aa30bb301195a631f Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 13 Jun 2022 19:23:43 +1000
Subject: [PATCH] d3drm: Implement IDirect3DRMViewport Pick
---
dlls/d3drm/viewport.c | 129 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 127 insertions(+), 2 deletions(-)
diff --git a/dlls/d3drm/viewport.c b/dlls/d3drm/viewport.c
index 821eb1ff12c..f6d824b6488 100644
--- a/dlls/d3drm/viewport.c
+++ b/dlls/d3drm/viewport.c
@@ -822,20 +822,145 @@ static HRESULT WINAPI d3drm_viewport1_GetPlane(IDirect3DRMViewport *iface,
return d3drm_viewport2_GetPlane(&viewport->IDirect3DRMViewport2_iface, left, right, bottom, top);
}
+struct d3drm_picked_array
+{
+ IDirect3DRMPickedArray IDirect3DRMPickedArray_iface;
+ LONG ref;
+ ULONG size;
+};
+
+static inline struct d3drm_picked_array *impl_from_IDirect3DRMPickedArray(IDirect3DRMPickedArray *iface)
+{
+ return CONTAINING_RECORD(iface, struct d3drm_picked_array, IDirect3DRMPickedArray_iface);
+}
+
+static HRESULT WINAPI d3drm_picked_array_QueryInterface(IDirect3DRMPickedArray *iface, REFIID riid, void **out)
+{
+ TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
+
+ if (IsEqualGUID(riid, &IID_IDirect3DRMPickedArray)
+ || IsEqualGUID(riid, &IID_IUnknown))
+ {
+ IDirect3DRMPickedArray_AddRef(iface);
+ *out = iface;
+ return S_OK;
+ }
+
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
+
+ *out = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI d3drm_picked_array_AddRef(IDirect3DRMPickedArray *iface)
+{
+ struct d3drm_picked_array *array = impl_from_IDirect3DRMPickedArray(iface);
+ ULONG refcount = InterlockedIncrement(&array->ref);
+
+ TRACE("%p increasing refcount to %lu.\n", iface, refcount);
+
+ return refcount;
+}
+
+static ULONG WINAPI d3drm_picked_array_Release(IDirect3DRMPickedArray *iface)
+{
+ struct d3drm_picked_array *array = impl_from_IDirect3DRMPickedArray(iface);
+ ULONG refcount = InterlockedDecrement(&array->ref);
+// ULONG i;
+
+ TRACE("%p decreasing refcount to %lu.\n", iface, refcount);
+
+ if (!refcount)
+ {
+/* for (i = 0; i < array->size; ++i)
+ {
+ IDirect3DRMVisual_Release(array->visuals[i]);
+ }*/
+ //free(array->visuals);
+ free(array);
+ }
+
+ return refcount;
+}
+
+static DWORD WINAPI d3drm_picked_array_GetSize(IDirect3DRMPickedArray *iface)
+{
+ struct d3drm_picked_array *array = impl_from_IDirect3DRMPickedArray(iface);
+
+ TRACE("iface %p.\n", iface);
+
+ return array->size;
+}
+
+static HRESULT WINAPI d3drm_picked_array_GetPick(IDirect3DRMPickedArray *iface,
+ DWORD index, IDirect3DRMVisual **visual, IDirect3DRMFrameArray **frame_array,
+ D3DRMPICKDESC *pick_desc)
+{
+ struct d3drm_picked_array *array = impl_from_IDirect3DRMPickedArray(iface);
+
+ TRACE("iface %p, index %lu, visual %p, frame_array %p, pick_desc %p.\n", iface, index,
+ visual, frame_array, pick_desc);
+
+ //if (!visual)
+ return D3DRMERR_BADVALUE;
+
+ /*if (index >= array->size)
+ {
+ *visual = NULL;
+ return D3DRMERR_BADVALUE;
+ }
+
+ IDirect3DRMVisual_AddRef(array->visuals[index]);
+ *visual = array->visuals[index];
+
+ return D3DRM_OK;*/
+}
+
+static const struct IDirect3DRMPickedArrayVtbl d3drm_picked_array_vtbl =
+{
+ d3drm_picked_array_QueryInterface,
+ d3drm_picked_array_AddRef,
+ d3drm_picked_array_Release,
+ d3drm_picked_array_GetSize,
+ d3drm_picked_array_GetPick,
+};
+
static HRESULT WINAPI d3drm_viewport2_Pick(IDirect3DRMViewport2 *iface,
LONG x, LONG y, IDirect3DRMPickedArray **visuals)
{
+ struct d3drm_picked_array *array;
FIXME("iface %p, x %ld, y %ld, visuals %p stub!\n", iface, x, y, visuals);
- return E_NOTIMPL;
+ if (!(array = calloc(1, sizeof(*array))))
+ return E_OUTOFMEMORY;
+
+ array->IDirect3DRMPickedArray_iface.lpVtbl = &d3drm_picked_array_vtbl;
+ array->ref = 1;
+ array->size = 0;
+
+ *visuals = &array->IDirect3DRMPickedArray_iface;
+
+ return S_OK;
}
static HRESULT WINAPI d3drm_viewport1_Pick(IDirect3DRMViewport *iface,
LONG x, LONG y, IDirect3DRMPickedArray **visuals)
{
+ struct d3drm_picked_array *array;
+// unsigned int i;
+
FIXME("iface %p, x %ld, y %ld, visuals %p stub!\n", iface, x, y, visuals);
- return E_NOTIMPL;
+ if (!(array = calloc(1, sizeof(*array))))
+ return E_OUTOFMEMORY;
+
+ array->IDirect3DRMPickedArray_iface.lpVtbl = &d3drm_picked_array_vtbl;
+ array->ref = 1;
+ array->size = 0;
+
+ *visuals = &array->IDirect3DRMPickedArray_iface;
+
+ return S_OK;
}
static BOOL WINAPI d3drm_viewport2_GetUniformScaling(IDirect3DRMViewport2 *iface)
--
2.45.2

View File

@@ -0,0 +1,25 @@
From 3e1521e42f9ba77074be3caa8041f9844ca8dc71 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 15 Sep 2023 15:14:28 +1000
Subject: [PATCH] d3drm: IDirect3DRMMesh SetGroupMapping fake success.
---
dlls/d3drm/meshbuilder.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 1befe032c70..ec2615a016d 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -2715,7 +2715,7 @@ static HRESULT WINAPI d3drm_mesh_SetGroupMapping(IDirect3DRMMesh *iface, D3DRMGR
{
FIXME("iface %p, id %#lx, value %#lx stub!\n", iface, id, value);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI d3drm_mesh_SetGroupQuality(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value)
--
2.45.2

View File

@@ -0,0 +1,39 @@
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

View File

@@ -0,0 +1,93 @@
From ec155c69fa91896ed148f17934872b59a9809dfe Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 13 May 2022 14:56:03 +1000
Subject: [PATCH] d3drm: IDirect3DRMFrame2 SetSceneBackgroundImage
---
dlls/d3drm/d3drm_private.h | 1 +
dlls/d3drm/frame.c | 38 +++++++++++++++++++++++++++++++-------
2 files changed, 32 insertions(+), 7 deletions(-)
diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h
index 2fb6bafe951..31fdd4984a1 100644
--- a/dlls/d3drm/d3drm_private.h
+++ b/dlls/d3drm/d3drm_private.h
@@ -81,6 +81,7 @@ struct d3drm_frame
IDirect3DRMFrame3 IDirect3DRMFrame3_iface;
IDirect3DRM *d3drm;
LONG ref;
+ IUnknown *backgroundimage;
struct d3drm_frame *parent;
SIZE_T nb_children;
SIZE_T children_size;
diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c
index 3e33e9e65b7..edd79996b36 100644
--- a/dlls/d3drm/frame.c
+++ b/dlls/d3drm/frame.c
@@ -608,6 +608,8 @@ static ULONG WINAPI d3drm_frame3_Release(IDirect3DRMFrame3 *iface)
if (!refcount)
{
+ if (frame->backgroundimage)
+ IUnknown_Release(frame->backgroundimage);
d3drm_object_cleanup((IDirect3DRMObject *)&frame->IDirect3DRMFrame_iface, &frame->obj);
for (i = 0; i < frame->nb_children; ++i)
{
@@ -2231,25 +2233,47 @@ static HRESULT WINAPI d3drm_frame1_SetSceneBackgroundDepth(IDirect3DRMFrame *ifa
static HRESULT WINAPI d3drm_frame3_SetSceneBackgroundImage(IDirect3DRMFrame3 *iface,
IDirect3DRMTexture3 *texture)
{
- FIXME("iface %p, texture %p stub!\n", iface, texture);
+ struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface);
+ IUnknown *unk = NULL;
- return E_NOTIMPL;
+ TRACE("iface %p, texture %p\n", iface, texture);
+
+ if (texture)
+ IDirect3DRMTexture3_QueryInterface(texture, &IID_IUnknown, (void**)&unk);
+
+ if (frame->backgroundimage)
+ IUnknown_Release(frame->backgroundimage);
+
+ frame->backgroundimage = unk;
+
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame2_SetSceneBackgroundImage(IDirect3DRMFrame2 *iface,
IDirect3DRMTexture *texture)
{
- FIXME("iface %p, texture %p stub!\n", iface, texture);
+ struct d3drm_frame *frame = impl_from_IDirect3DRMFrame2(iface);
+ IUnknown *unk = NULL;
- return E_NOTIMPL;
+ TRACE("iface %p, texture %p\n", iface, texture);
+
+ if (texture)
+ IDirect3DRMTexture_QueryInterface(texture, &IID_IUnknown, (void**)&unk);
+
+ if (frame->backgroundimage)
+ IUnknown_Release(frame->backgroundimage);
+
+ frame->backgroundimage = unk;
+
+ return S_OK;
}
static HRESULT WINAPI d3drm_frame1_SetSceneBackgroundImage(IDirect3DRMFrame *iface,
IDirect3DRMTexture *texture)
{
- FIXME("iface %p, texture %p stub!\n", iface, texture);
-
- return E_NOTIMPL;
+ struct d3drm_frame *frame = impl_from_IDirect3DRMFrame(iface);
+ TRACE("iface %p, texture %p\n", iface, texture);
+ return d3drm_frame2_SetSceneBackgroundImage(&frame->IDirect3DRMFrame2_iface, texture);
}
static HRESULT WINAPI d3drm_frame3_SetSceneFogEnable(IDirect3DRMFrame3 *iface, BOOL enable)
--
2.35.1

Some files were not shown because too many files have changed in this diff Show More