Compare commits

..

133 Commits
v8.1 ... v8.13

Author SHA1 Message Date
Alistair Leslie-Hughes
1942fb8bc1 Release v8.13 2023-07-23 10:38:50 +10:00
Alistair Leslie-Hughes
52f252eeb6 Added d3d12core-D3D12GetInterface patchset 2023-07-22 12:04:20 +10:00
Alistair Leslie-Hughes
8493f61af5 Updated vkd3d-latest patchset 2023-07-22 10:12:24 +10:00
Alistair Leslie-Hughes
6b7e43830c Rebase against 900dfca3899d52f3085c713e26af06aa5aea37a4. 2023-07-18 11:18:33 +10:00
Alistair Leslie-Hughes
4482bd3493 Rebase against 2238658e2f87506c9ccb67de0376f3e3920550db. 2023-07-15 17:07:24 +10:00
Alistair Leslie-Hughes
b285e35fca Rebase against 94d61d1b280d0ef15474c0cf44f534d5d44eba1f. 2023-07-14 11:08:23 +10:00
Alistair Leslie-Hughes
a88d536fba Rebase against fb4d36c66131d1c45ebdcb5d56151e8f7782ebd1. 2023-07-12 08:54:04 +10:00
Alistair Leslie-Hughes
e5cf862a14 Updated vkd3d patchset 2023-07-11 09:11:55 +10:00
Alistair Leslie-Hughes
df9ad11eef Updated windows.networking.connectivity-new-dll patchset 2023-07-11 07:57:44 +10:00
Alistair Leslie-Hughes
94caef272e Updated vkd3d-latest patchset
Squash to 1.8, then everything else.
2023-07-11 07:57:44 +10:00
Alistair Leslie-Hughes
d745d08cd7 Release v8.12 2023-07-09 12:16:45 +10:00
Alistair Leslie-Hughes
a6448966cf Added dinput-scancode patchset 2023-07-08 15:20:31 +10:00
Alistair Leslie-Hughes
01fbf6d356 Rebase against aaf304f2441ebe52834fdda2b8a02a5349d2ca43. 2023-07-08 10:49:44 +10:00
Alistair Leslie-Hughes
e57244a59e Updated vkd3d-latest patchset
Added missed files to patch.
2023-07-07 17:34:56 +10:00
Alistair Leslie-Hughes
fe6a869e0b Updated vkd3d patchset 2023-07-07 16:26:35 +10:00
Alistair Leslie-Hughes
a45cfa1ee2 Rebase against 9617c784b9d7ffa88182c24aa2f110a6867aa67d. 2023-07-07 14:27:32 +10:00
Alistair Leslie-Hughes
abbfbb8e15 Disbale ntdll-Syscall_Emulation patchset
Causing issues with Steam loading.
2023-07-05 13:45:56 +10:00
Alistair Leslie-Hughes
6882ba5e7b Rebase against f4a8ad89d43646a8d109da5747dfb1a92a6d8cd1. 2023-07-05 13:05:46 +10:00
Alistair Leslie-Hughes
b97718a0a9 Rebase against 3d28f9d362e6d9871747231b210c559536bb6dd4. 2023-06-30 08:35:45 +10:00
Alistair Leslie-Hughes
1fe536ee75 Rebase against fca833678f3b2588cc539d04693e7f9d8bca3278. 2023-06-29 08:52:05 +10:00
Alistair Leslie-Hughes
2d8c5f88c3 Updated vkd3d-latest patchset 2023-06-28 16:29:02 +10:00
Alistair Leslie-Hughes
ef85449de2 Rebase against 98b73b5c32fa82218081f0e7668f9836ffe1b55d. 2023-06-28 08:27:58 +10:00
Alistair Leslie-Hughes
d94c192f10 Rebase against 1d281c620d3062c2f30cdf533fe4ac06905a07b8. 2023-06-27 09:25:02 +10:00
Alistair Leslie-Hughes
fcff74d6c6 Release v8.11 2023-06-25 10:25:00 +10:00
Alistair Leslie-Hughes
22ba0ef2a3 Added ntdll_reg_flush patchset 2023-06-24 10:47:34 +10:00
Alistair Leslie-Hughes
95679a2f40 Added winemenubuilder-associations patchset 2023-06-24 09:47:29 +10:00
Alistair Leslie-Hughes
a7a75d0d06 Updated vkd3d-latest to 1.8 2023-06-23 14:16:58 +10:00
Alistair Leslie-Hughes
e930be3974 Rebase against 9285aa5bb1338d8e2c1ac6b95974182b3f4881a9. 2023-06-23 14:14:59 +10:00
Alistair Leslie-Hughes
d7080ec990 Rebase against 81859c9af70aa5ed6da3060488d1815a3607c291. 2023-06-22 14:19:23 +10:00
Alistair Leslie-Hughes
22d9eec489 Rebase against 5da3827d863ae43f8367cdafbeba73cec7cdee3d. 2023-06-21 08:23:37 +10:00
Alistair Leslie-Hughes
eb5a19f4fd Rebase against 272f712b605174e946da1dc65f927a23ee92a572. 2023-06-16 08:55:47 +10:00
Alistair Leslie-Hughes
db6b479557 Rebase against 766448f8ffe51b83105bd0795a5cbc7b8f7c8894. 2023-06-14 10:59:42 +10:00
Alistair Leslie-Hughes
f14d68c258 Drop winemenubuilder-Desktop_Icon_Path patchset 2023-06-13 14:04:26 +10:00
Alistair Leslie-Hughes
117d2b2107 Rebase against c7431990d815e664cf22267142b76cc59f21d192. 2023-06-13 14:03:24 +10:00
Dmitry Timoshkov
8273be2218 Updated gdiplus-Performance-Improvements patchset. 2023-06-13 07:55:27 +10:00
Alistair Leslie-Hughes
adda594159 Release v8.10 2023-06-10 15:46:29 +10:00
Alistair Leslie-Hughes
710e29cc68 Updated vkd3d-latest patchset 2023-06-10 10:59:31 +10:00
Alistair Leslie-Hughes
6c167535e3 Added dnsapi_dns_records patchset 2023-06-09 14:43:49 +10:00
Aida JonikenÄ—
e9b0c33d65 msxml3-FreeThreadedXMLHTTP60: Initialize request_body_size when creating the XML HTTP request.
This fixes a crash in TeamTalk 5.
2023-06-08 12:35:13 -05:00
Alistair Leslie-Hughes
d44a516142 Updated vkd3d-latest patchset 2023-06-08 14:12:14 +10:00
Alistair Leslie-Hughes
453c5cda07 Added oleaut32-default-pic-size patchset 2023-06-08 13:27:09 +10:00
Alistair Leslie-Hughes
d3d87f1a2c Rebase against 07d0f1f0c0bbd744f5f107f82b702a891e41c2eb. 2023-06-08 09:21:24 +10:00
Alistair Leslie-Hughes
42e2a72d37 Added d3dx9-sprite-state patchset 2023-06-07 08:26:53 +10:00
Alistair Leslie-Hughes
d7bbcc7ad9 Updated vkd3d-latest 2023-06-07 08:13:06 +10:00
Alistair Leslie-Hughes
4625289771 Updated vkd3d-latest patchset 2023-06-02 10:31:36 +10:00
Alistair Leslie-Hughes
cda4a1e125 Updated winex11-_NET_ACTIVE_WINDOW patchset 2023-06-02 09:14:30 +10:00
Alistair Leslie-Hughes
1039d808e2 Rebase against 6b0836e3f157318b00effc1de563da4d4b0d16b8. 2023-06-01 14:58:39 +10:00
Alistair Leslie-Hughes
6173bd8b0d Rebase against 7ed63c30e8dee3509c52e11230470be2dcfe6cf5. 2023-05-31 11:01:58 +10:00
Zebediah Figura
ba6e2398d7 Rebase against d0d472bb3e8680e286e404a73fceb29cebe85b73. 2023-05-29 16:33:43 -05:00
Alistair Leslie-Hughes
2dcacd0dbf Release v8.9.1 2023-05-29 07:26:53 +10:00
Alistair Leslie-Hughes
1039396c8e Updated vkd3d-latest patchset
Fix the mingw mac build.
2023-05-28 21:36:15 +10:00
Alistair Leslie-Hughes
f8cc3baab3 Release v8.9 2023-05-28 14:38:27 +10:00
Alistair Leslie-Hughes
7665942477 Added vkd3d-latest patchset 2023-05-28 11:14:22 +10:00
Alistair Leslie-Hughes
0cd181d0ce Rebase against c293cd781fb4b330b7d93171501134f86a5138b8. 2023-05-26 09:22:33 +10:00
Alistair Leslie-Hughes
a580edefe1 Rebase against e10da7ab2e3d151c8347802600862aa608672f6f. 2023-05-25 10:07:30 +10:00
Alistair Leslie-Hughes
fe6cfefe64 Add release script 2023-05-24 12:07:27 +10:00
Alistair Leslie-Hughes
6900845545 Rebase against f266dc094a9b4fbe95792ed706891609901834e3. 2023-05-24 12:06:20 +10:00
Paul Gofman
3e3ebf5cfc Update and reenable ntdll-ForceBottomUpAlloc. 2023-05-19 13:48:16 -06:00
Paul Gofman
f48794a9ce Update and reenable ntdll-Placeholders. 2023-05-19 13:45:49 -06:00
Alistair Leslie-Hughes
27397d1764 Rebase against d54e7cd51db7d3def7dab549a547b1b6bf7573e2. 2023-05-16 10:07:12 +10:00
Alistair Leslie-Hughes
ca7fc8fb51 Release v8.8 2023-05-15 07:49:40 +10:00
Alistair Leslie-Hughes
cc0df4cd1b Rebase against 5662d85e0e95a2715ab3b81c25c89121fc8db34d. 2023-05-13 12:38:27 +10:00
Alistair Leslie-Hughes
8791ceb20d Rebase against 19eab9c0e59201277f359d55ee5747383e014e87. 2023-05-13 07:41:59 +10:00
Alistair Leslie-Hughes
09808df495 Rebase against d2789ef0678619d7c56a9e0c1aaa06f582a41ee3. 2023-05-11 09:29:15 +10:00
Alistair Leslie-Hughes
9c995c8d8e Rebase against de034b36b7fbad0edae0a2700376273c74e48ac6. 2023-05-10 09:48:48 +10:00
Alistair Leslie-Hughes
b72829659d Rebase against 222d20a585c454cb591e3dc539f3bd52427ea30c. 2023-05-07 10:32:15 +10:00
Alistair Leslie-Hughes
88ffa2bda8 Rebase against bd89ab3040e30c11b34a95072d88f635ade03bdc. 2023-05-04 09:58:31 +10:00
Zebediah Figura
2524bc48fe Rebase against 0b9620266f08d57c2db41b934a77b6ce4a94aeda. 2023-05-02 18:03:24 -05:00
Alistair Leslie-Hughes
00ec1171cc Release v8.7 2023-04-29 18:38:56 +10:00
Alistair Leslie-Hughes
277ed0c6fb Rebase against 619e34500fc43f1103fddd91e86d581660d2ae4b. 2023-04-27 09:40:06 +10:00
Alistair Leslie-Hughes
0c2c469c7b Rebase against a500bb72f05058c985511ff35f191565f45cd6c0. 2023-04-26 11:01:51 +10:00
Alistair Leslie-Hughes
7f36a96808 Updated wined3d-WINED3DFMT_B8G8R8X8_UNORM patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=54868
2023-04-20 07:28:44 +10:00
Zebediah Figura
566a2bcdfd Rebase against 9e99c6f66d236101a084b6a3a24c98b5c8677fe5. 2023-04-18 17:32:53 -05:00
Zebediah Figura
4eb322dc41 riched20-IText_Interface: Remove patch 0010 silencing FIXMEs.
If this is desired, it can be easily rewritten and submitted upstream.
2023-04-16 16:19:00 -05:00
Zebediah Figura
182d6c76e3 wined3d-Silence_FIXMEs: Remove patch set.
This would be desirable if we had a known application that needed it, but we don't. If the application ever resurfaces, it will be easy to rewrite and fix upstream.
2023-04-16 16:17:30 -05:00
Zebediah Figura
3e931ce80f ddraw-Silence_FIXMEs: Remove patch set.
This would be desirable if we had a known application that needed it, but we don't. If the application ever resurfaces, it will be easy to rewrite and fix upstream.
2023-04-16 16:17:14 -05:00
Zebediah Figura
716e192182 Release v8.6.1 2023-04-16 12:59:31 -05:00
Zebediah Figura
fba1e773c7 mfplat-streaming-support: Fix rebase. 2023-04-16 12:59:09 -05:00
Zebediah Figura
26a1ee0ee9 Release v8.6 2023-04-15 22:16:28 -05:00
Zebediah Figura
9d65092519 Rebase against 4d610717bbc21d65e41a29f9fe9ab5f2963cf16d. 2023-04-15 18:33:17 -05:00
Zebediah Figura
49dcc78363 Rebase against f512b3c08ccfc9b9c235964002e644e2cbd657cf. 2023-04-12 17:10:01 -05:00
Alistair Leslie-Hughes
64774ec3e5 Rebase against 1546ef3015999ee27066b317773050a5641c2023. 2023-04-12 08:17:52 +10:00
Alistair Leslie-Hughes
4211bac798 Rebase against 9909631f23c037e90fe3ef1ccfeebfff2804d7ed. 2023-04-08 14:18:34 +10:00
Alistair Leslie-Hughes
aaa21bda9c Rebase against e658a30a917b0403a1e8f7ed86a8fc0138d990a8. 2023-04-07 08:28:31 +10:00
Alistair Leslie-Hughes
9d5115a9ee Rebase against b5bc026798c127d5bb4c471d94f7fb5e32b4861c. 2023-04-06 09:14:54 +10:00
Alistair Leslie-Hughes
9cb0330037 Rebase against 64cca153292833151d1adeb185252ca57e2d1625. 2023-04-04 10:40:07 +10:00
Alistair Leslie-Hughes
abe75a7741 Release v8.5 2023-04-01 15:19:47 +11:00
Alistair Leslie-Hughes
be92c5d768 Added ntdll-hidden_file_attr patchset 2023-04-01 11:07:21 +11:00
Alistair Leslie-Hughes
6d45ccd523 Added win32u-GPU_properties patchset 2023-04-01 10:27:27 +11:00
Alistair Leslie-Hughes
6dbab0f2e5 Updated mfplat-streaming-support patchset
Fixes a crash on some videos.
2023-03-29 20:24:12 +11:00
Alistair Leslie-Hughes
e0766792bd Rebase against da0ec7fbbde45126320e15b2bfb00b357b45ffb6. 2023-03-29 13:53:46 +11:00
Alistair Leslie-Hughes
df3886edb6 Rebase against d62e2268d77c237e8430e158bb337958d88486ba. 2023-03-28 18:40:22 +11:00
Alistair Leslie-Hughes
7bcf1f6358 Rebase against 3149d27220acaf276bfa651e040ff006edcd6944. 2023-03-24 09:51:18 +11:00
Zebediah Figura
cd4d265f07 Revert "patchinstall.py: Use --git-dir instead of -C."
This reverts commit cf29ed121d.

This doesn't quite do what I thought it did, and breaks the intended setup.
2023-03-21 00:42:48 -05:00
Zebediah Figura
cf29ed121d patchinstall.py: Use --git-dir instead of -C.
This reportedly works better for nested git trees.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51877
2023-03-20 17:51:52 -05:00
Zebediah Figura
09634de79c dinput-joy-mappings: Restore tests to patch 1.
The patch set is disabled now. We want to make sure that these tests are ported when it's rewritten.
2023-03-20 17:32:58 -05:00
Zebediah Figura
68cc39d3ba Rebase against fd99bd4e247a879e8cb186212d1dc66268aa0888. 2023-03-20 17:32:04 -05:00
Alistair Leslie-Hughes
3a47cfd8a5 Release v8.4 2023-03-18 14:56:06 +11:00
Alistair Leslie-Hughes
fab4cd0932 Rebase against 446da60e78beb321d776b48cdee6f764c81b924b. 2023-03-17 16:05:30 +11:00
Alistair Leslie-Hughes
2ac5cdbf37 Rebase against 7db5431699037d03f26c065a58c400991210c7f7. 2023-03-15 15:06:52 +11:00
Alistair Leslie-Hughes
e3a3dcd0ce Rebase against a8fa80cfb4a1819be12ece459753bc07d4ea8be6. 2023-03-10 16:29:07 +11:00
Alistair Leslie-Hughes
aa36637563 Rebase against 50f5f9af1c27c4380a7489596d20d8048f003365. 2023-03-08 09:45:55 +11:00
Alistair Leslie-Hughes
70958b46d0 Rebase against 45e83cc8c28cece236f1537958f6e21b48193f2c. 2023-03-07 11:24:26 +11:00
Alistair Leslie-Hughes
575f6f67cc Release v8.3 2023-03-05 09:42:43 +11:00
Alistair Leslie-Hughes
9929ac3038 Rebase against e796002ee61bf5dfb2718e8f4fb8fa928ccdc236. 2023-03-04 09:11:01 +11:00
Alistair Leslie-Hughes
cd22a0fb15 Rebase against 10765f2956d6f9fc2d16bb2bec476b12a31786f6. 2023-03-03 14:57:42 +11:00
Alistair Leslie-Hughes
f7b671178c Added vcomp_for_dynamic_init_i8 patchset 2023-03-01 12:48:37 +11:00
Alistair Leslie-Hughes
dc43a031be Rebase against 56db5b0bf1aa6df5edbedbec03e0a1db39d6639b. 2023-03-01 11:25:57 +11:00
Alistair Leslie-Hughes
7b0d44f887 Rebase against 3fb2a5d55e948670222170075f0054a2aabf8d7e. 2023-02-25 19:56:00 +11:00
Alistair Leslie-Hughes
0611b4d10c Rebase against 4d0d7e49b9b33bba023ba67add84486ba4cc8efd. 2023-02-24 10:23:41 +11:00
Zebediah Figura
b9421d8376 ntdll-Heap_Improvements: Remove patch set.
Obviated by the low-fragmentation heap work now upstream.
2023-02-23 11:57:01 -06:00
Zebediah Figura
a11194038c Rebase against 15b176b4f4945d7abfb4adbddc7f140ba1765855. 2023-02-22 15:34:37 -06:00
Zebediah Figura
d8293544f4 patchinstall.py: Pass the wine tree to the "patch" backend. 2023-02-22 15:22:40 -06:00
Alistair Leslie-Hughes
bf7a234e0c Rebase against 2436964d5678956a362a9bef34625885442740f6. 2023-02-21 09:53:38 +11:00
Zebediah Figura
1f76f7faec patchinstall.py: Allow specifying DESTDIR= as an argument. 2023-02-18 23:52:33 -06:00
Alistair Leslie-Hughes
4d98c8839b Release v8.2 2023-02-19 09:16:13 +11:00
Alistair Leslie-Hughes
53e545fe79 Added odbc-remove-unixodbc patchset 2023-02-17 13:38:41 +11:00
Dean M Greer
996b5b4cea macOS.yml: Fix GitHub workflow 2023-02-17 01:21:49 +00:00
Zebediah Figura
c1b4af92f7 patchupdate.py: Delete.
Deprected, replaced by staging/patchinstall.py.

Maintaining the patchinstall.sh script is an annoyance, often missed when modifying patches, which then results in fixup commits. The "new" patchinstall.py script (which has been around for multiple years now) is a complete replacement, and avoids this problem by just generating the list when applying. Precomputing the list is hardly worthwhile anyway.
2023-02-16 14:37:54 -06:00
Zebediah Figura
c542e21406 patchgraph.py: Delete.
This is not nearly interesting enough to keep around.
2023-02-16 14:37:43 -06:00
Alistair Leslie-Hughes
95f5c850de Updated patchinstall.sh for python3 2023-02-16 13:23:29 +11:00
Alistair Leslie-Hughes
daff95e4a0 Rebase against df5f6f66de80085249d392be5efa085e6ee056a0. 2023-02-16 11:43:24 +11:00
Alistair Leslie-Hughes
c920a7b45f Corrected patchinstall.sh 2023-02-14 13:09:39 +11:00
Zebediah Figura
a737381889 Rebase against 25743d46f4103c7345c955b87b4134a065fb5f1d. 2023-02-13 19:27:05 -06:00
Gerald Pfeifer
3367490837 ntdll-Junction_Points: Fix build on FreeBSD 12 2023-02-13 08:21:31 +11:00
Rémi Bernon
b75b4fc0fa Fix ntdll-NtDevicePath patch hunk context. 2023-02-13 07:53:17 +11:00
Rémi Bernon
c1951fe5d2 Replaced winex11-key_translation with winex11-Fixed-scancodes. 2023-02-11 12:34:01 +11:00
Rémi Bernon
7a0d4fb5b3 Port patchupdate.py to Python 3. 2023-02-11 12:17:08 +11:00
Alistair Leslie-Hughes
c26b832223 Added dmime-load-wave patchset 2023-02-11 11:20:39 +11:00
Alistair Leslie-Hughes
0159beff44 Added wined3d-atomic_minmax_merge patchset 2023-02-11 11:20:39 +11:00
Zebediah Figura
87f3369577 Rebase against 9070f0d572e36645f5e5764ef40472f158513d48. 2023-02-10 17:55:25 -06:00
Alistair Leslie-Hughes
86a67397f7 Rebase against a958b5aebfeed4538a4091f49996ae30ee9803fc. 2023-02-07 13:58:00 +11:00
Etienne JUVIGNY
f2f8b949b1 patchinstall.py: Port to python 3. 2023-02-03 16:01:25 -06:00
243 changed files with 53220 additions and 12135 deletions

View File

@@ -33,12 +33,13 @@ jobs:
mkdir $GITHUB_WORKSPACE/wine
cd wine
git init
git fetch git://source.winehq.org/git/wine.git $($GITHUB_WORKSPACE/patches/patchinstall.sh --upstream-commit) --depth=1
git checkout $($GITHUB_WORKSPACE/patches/patchinstall.sh --upstream-commit)
git fetch git://source.winehq.org/git/wine.git $($GITHUB_WORKSPACE/staging/patchinstall.py --upstream-commit) --depth=1
git checkout $($GITHUB_WORKSPACE/staging/patchinstall.py --upstream-commit)
- name: Run patchinstall.sh --all
- name: Run patchinstall.py --all
run: |
$GITHUB_WORKSPACE/patches/patchinstall.sh DESTDIR=$GITHUB_WORKSPACE/wine --all
cd wine
$GITHUB_WORKSPACE/staging/patchinstall.py DESTDIR=. --all
- name: Configure wine64
env:

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
staging/wine
*.pyc
.patchupdate.cache

View File

@@ -0,0 +1,69 @@
From b30d3de1043cef20b57984035968fc78d5fcd2bb Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 22 Jul 2023 10:22:03 +1000
Subject: [PATCH] d3d12core: Add D3D12GetInterface stub
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55135
---
dlls/d3d12core/Makefile.in | 3 +++
dlls/d3d12core/d3d12core.spec | 2 +-
dlls/d3d12core/d3d12core_main.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 1 deletion(-)
create mode 100644 dlls/d3d12core/d3d12core_main.c
diff --git a/dlls/d3d12core/Makefile.in b/dlls/d3d12core/Makefile.in
index 8778b66138b..94d8fd4da00 100644
--- a/dlls/d3d12core/Makefile.in
+++ b/dlls/d3d12core/Makefile.in
@@ -1 +1,4 @@
MODULE = d3d12core.dll
+
+C_SRCS = \
+ d3d12core_main.c
diff --git a/dlls/d3d12core/d3d12core.spec b/dlls/d3d12core/d3d12core.spec
index c9c73bd4ee4..3f3e0a0f2e1 100644
--- a/dlls/d3d12core/d3d12core.spec
+++ b/dlls/d3d12core/d3d12core.spec
@@ -1,2 +1,2 @@
-@ stub D3D12GetInterface
+@ stdcall D3D12GetInterface(ptr ptr ptr)
@ stub D3D12SDKVersion
diff --git a/dlls/d3d12core/d3d12core_main.c b/dlls/d3d12core/d3d12core_main.c
new file mode 100644
index 00000000000..75a083ad276
--- /dev/null
+++ b/dlls/d3d12core/d3d12core_main.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2023 Alistair Leslie-Hughes
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d12core);
+
+HRESULT WINAPI D3D12GetInterface(REFCLSID rclsid, REFIID riid, void **out)
+{
+ FIXME("%d, %s, %p\n", debugstr_guid(rclsid), debugstr_guid(riid), out);
+
+ return E_NOINTERFACE;
+}
--
2.40.1

View File

@@ -0,0 +1 @@
Fixes: [55135] d3d12core: Add D3D12GetInterface stub

View File

@@ -0,0 +1,127 @@
From cf47173eec41f4427248796a781e3aa4463a79db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mu=C5=BCy=C5=82o?= <galtgendo@o2.pl>
Date: Wed, 7 Jun 2023 08:17:59 +1000
Subject: [PATCH] d3dx9: Improve handling of Sprite render states
---
dlls/d3dx9_36/sprite.c | 76 +++++++++++++++++++++++-------------------
1 file changed, 41 insertions(+), 35 deletions(-)
diff --git a/dlls/d3dx9_36/sprite.c b/dlls/d3dx9_36/sprite.c
index 1a072e52cda..0ce2ab977f3 100644
--- a/dlls/d3dx9_36/sprite.c
+++ b/dlls/d3dx9_36/sprite.c
@@ -193,7 +193,7 @@ static HRESULT WINAPI d3dx9_sprite_SetWorldViewLH(ID3DXSprite *iface,
}
/* Helper function */
-static void set_states(struct d3dx9_sprite *object)
+static void set_states(struct d3dx9_sprite *object, DWORD flags)
{
D3DXMATRIX mat;
D3DVIEWPORT9 vp;
@@ -204,32 +204,35 @@ static void set_states(struct d3dx9_sprite *object)
IDirect3DDevice9_SetNPatchMode(object->device, 0.0f);
/* Render states */
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHABLENDENABLE, TRUE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAFUNC, D3DCMP_GREATER);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAREF, 0x00);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHATESTENABLE, object->alphacmp_caps);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_BLENDOP, D3DBLENDOP_ADD);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPING, TRUE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPLANEENABLE, 0);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_BLUE |
- D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_RED);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_CULLMODE, D3DCULL_NONE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ENABLEADAPTIVETESSELLATION, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_FILLMODE, D3DFILL_SOLID);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_FOGENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_LIGHTING, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_RANGEFOGENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SEPARATEALPHABLENDENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SPECULARENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRGBWRITEENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_STENCILENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_VERTEXBLEND, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_WRAP0, 0);
+ if (!(flags & D3DXSPRITE_DONOTMODIFY_RENDERSTATE))
+ {
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHABLENDENABLE, TRUE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAFUNC, D3DCMP_GREATER);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAREF, 0x00);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHATESTENABLE, object->alphacmp_caps);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_BLENDOP, D3DBLENDOP_ADD);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPING, TRUE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPLANEENABLE, 0);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_BLUE |
+ D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_RED);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_CULLMODE, D3DCULL_NONE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ENABLEADAPTIVETESSELLATION, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_FILLMODE, D3DFILL_SOLID);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_FOGENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_LIGHTING, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_RANGEFOGENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SEPARATEALPHABLENDENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SPECULARENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRGBWRITEENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_STENCILENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_VERTEXBLEND, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_WRAP0, 0);
+ }
/* Texture stage states */
IDirect3DDevice9_SetTextureStageState(object->device, 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
@@ -266,12 +269,15 @@ static void set_states(struct d3dx9_sprite *object)
IDirect3DDevice9_SetSamplerState(object->device, 0, D3DSAMP_SRGBTEXTURE, 0);
/* Matrices */
- D3DXMatrixIdentity(&mat);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_WORLD, &mat);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_VIEW, &object->view);
- IDirect3DDevice9_GetViewport(object->device, &vp);
- D3DXMatrixOrthoOffCenterLH(&mat, vp.X+0.5f, (float)vp.Width+vp.X+0.5f, (float)vp.Height+vp.Y+0.5f, vp.Y+0.5f, vp.MinZ, vp.MaxZ);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_PROJECTION, &mat);
+ if (!(flags & D3DXSPRITE_OBJECTSPACE))
+ {
+ D3DXMatrixIdentity(&mat);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_WORLD, &mat);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_VIEW, &object->view);
+ IDirect3DDevice9_GetViewport(object->device, &vp);
+ D3DXMatrixOrthoOffCenterLH(&mat, vp.X+0.5f, (float)vp.Width+vp.X+0.5f, (float)vp.Height+vp.Y+0.5f, vp.Y+0.5f, vp.MinZ, vp.MaxZ);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_PROJECTION, &mat);
+ }
}
static HRESULT WINAPI d3dx9_sprite_Begin(ID3DXSprite *iface, DWORD flags)
@@ -317,7 +323,7 @@ D3DXSPRITE_SORT_TEXTURE: sort by texture (so that it doesn't change too often)
hr=IDirect3DDevice9_BeginStateBlock(This->device);
if(hr!=D3D_OK) return hr;
- set_states(This);
+ set_states(This, flags);
IDirect3DDevice9_SetVertexDeclaration(This->device, This->vdecl);
IDirect3DDevice9_SetStreamSource(This->device, 0, NULL, 0, sizeof(struct sprite_vertex));
@@ -330,7 +336,7 @@ D3DXSPRITE_SORT_TEXTURE: sort by texture (so that it doesn't change too often)
}
/* Apply device state */
- set_states(This);
+ set_states(This, flags);
This->flags=flags;
This->ready=TRUE;
--
2.40.1

View File

@@ -0,0 +1 @@
Fixes: [54034] d3dx9: Improve sprite rendering state handling.

View File

@@ -1,4 +1,4 @@
From f22ce02d880a9a6723d202eaf959d1eaa7a4c3df Mon Sep 17 00:00:00 2001
From 28b0030ac5f486875dff6f5f34779844f1a031cf Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sun, 11 Jan 2015 16:29:30 +0100
Subject: [PATCH] d3dx9_36: Improve D3DXSaveTextureToFile to save simple
@@ -11,23 +11,23 @@ Subject: [PATCH] d3dx9_36: Improve D3DXSaveTextureToFile to save simple
3 files changed, 65 insertions(+), 4 deletions(-)
diff --git a/dlls/d3dx9_36/d3dx9_private.h b/dlls/d3dx9_36/d3dx9_private.h
index 9497343f422..679b57b2626 100644
index 5d8f5b332f8..f1f41c6e4d7 100644
--- a/dlls/d3dx9_36/d3dx9_private.h
+++ b/dlls/d3dx9_36/d3dx9_private.h
@@ -125,6 +125,8 @@ HRESULT lock_surface(IDirect3DSurface9 *surface, const RECT *surface_rect, D3DLO
IDirect3DSurface9 **temp_surface, BOOL write) DECLSPEC_HIDDEN;
@@ -127,6 +127,8 @@ HRESULT lock_surface(IDirect3DSurface9 *surface, const RECT *surface_rect, D3DLO
IDirect3DSurface9 **temp_surface, BOOL write);
HRESULT unlock_surface(IDirect3DSurface9 *surface, const RECT *surface_rect,
IDirect3DSurface9 *temp_surface, BOOL update) DECLSPEC_HIDDEN;
IDirect3DSurface9 *temp_surface, BOOL update);
+HRESULT save_dds_texture_to_memory(ID3DXBuffer **dst_buffer, IDirect3DBaseTexture9 *src_texture,
+ const PALETTEENTRY *src_palette) DECLSPEC_HIDDEN;
+ const PALETTEENTRY *src_palette);
unsigned short float_32_to_16(const float in) DECLSPEC_HIDDEN;
float float_16_to_32(const unsigned short in) DECLSPEC_HIDDEN;
unsigned short float_32_to_16(const float in);
float float_16_to_32(const unsigned short in);
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
index aa9ee891b54..9871d211a7c 100644
index ca40018af24..9ff5b4901b8 100644
--- a/dlls/d3dx9_36/surface.c
+++ b/dlls/d3dx9_36/surface.c
@@ -636,6 +636,68 @@ static HRESULT save_dds_surface_to_memory(ID3DXBuffer **dst_buffer, IDirect3DSur
@@ -650,6 +650,68 @@ static HRESULT save_dds_surface_to_memory(ID3DXBuffer **dst_buffer, IDirect3DSur
return D3D_OK;
}
@@ -97,10 +97,10 @@ index aa9ee891b54..9871d211a7c 100644
const D3DBOX *dst_box, const void *src_data, const D3DBOX *src_box, DWORD filter, D3DCOLOR color_key,
const D3DXIMAGE_INFO *src_info)
diff --git a/dlls/d3dx9_36/texture.c b/dlls/d3dx9_36/texture.c
index 26d07ca9f66..b743d5cfad0 100644
index 2ee79b51f79..7ceef158d07 100644
--- a/dlls/d3dx9_36/texture.c
+++ b/dlls/d3dx9_36/texture.c
@@ -1904,10 +1904,7 @@ HRESULT WINAPI D3DXSaveTextureToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE
@@ -1858,10 +1858,7 @@ HRESULT WINAPI D3DXSaveTextureToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE
if (!dst_buffer || !src_texture) return D3DERR_INVALIDCALL;
if (file_format == D3DXIFF_DDS)
@@ -113,5 +113,5 @@ index 26d07ca9f66..b743d5cfad0 100644
type = IDirect3DBaseTexture9_GetType(src_texture);
switch (type)
--
2.17.1
2.40.1

View File

@@ -1,4 +1,4 @@
From 8c78d1203c965927d0a0e6fcde31dd651cc704db Mon Sep 17 00:00:00 2001
From e9f5c886b6b40ca77eb1dd7f0d21bbdc483b7a95 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 6 Oct 2014 05:06:06 +0200
Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
@@ -9,12 +9,12 @@ Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in
index 22be2612eeb..2e11bb2b62d 100644
index 74647820126..9f0aad2fc4f 100644
--- a/dlls/dbghelp/Makefile.in
+++ b/dlls/dbghelp/Makefile.in
@@ -2,7 +2,7 @@ MODULE = dbghelp.dll
IMPORTLIB = dbghelp
IMPORTS = $(ZLIB_PE_LIBS)
IMPORTS = kernelbase $(ZLIB_PE_LIBS)
EXTRAINCL = $(ZLIB_PE_CFLAGS)
-EXTRADEFS = -D_IMAGEHLP_SOURCE_
+EXTRADEFS = -D_IMAGEHLP_SOURCE_ -DBINDIR="L\"${bindir}\""
@@ -22,17 +22,17 @@ index 22be2612eeb..2e11bb2b62d 100644
C_SRCS = \
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
index 404c7c11dbb..e0779e4e3a7 100644
index a2a60752a68..a2bca11048f 100644
--- a/dlls/dbghelp/elf_module.c
+++ b/dlls/dbghelp/elf_module.c
@@ -1445,6 +1445,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
@@ -1457,6 +1457,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
load_elf.elf_info = elf_info;
ret = search_unix_path(filename, process_getenv(pcs, L"LD_LIBRARY_PATH"), elf_load_file_cb, &load_elf)
+ || search_unix_path(filename, BINDIR, elf_load_file_cb, &load_elf)
|| search_dll_path(pcs, filename, elf_load_file_cb, &load_elf);
|| search_dll_path(pcs, filename, IMAGE_FILE_MACHINE_UNKNOWN, elf_load_file_cb, &load_elf);
}
--
2.34.1
2.40.1

View File

@@ -19,7 +19,7 @@ index 8d608656143..cc8adccf049 100644
+{
+ DDCAPS *caps = ctx;
+
+ switch (format->u1.dwZBufferBitDepth)
+ switch (format->dwZBufferBitDepth)
+ {
+ case 8:
+ caps->dwZBufferBitDepths |= DDBD_8;

View File

@@ -1,4 +1,4 @@
From e2505b43f26d0517aad97c2778958886568ad58b Mon Sep 17 00:00:00 2001
From ee590f3816dd8a60014214cdbd9c34c4489a842b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 30 May 2015 02:55:03 +0200
Subject: [PATCH] ddraw: Allow size and format conversions in
@@ -9,10 +9,10 @@ Subject: [PATCH] ddraw: Allow size and format conversions in
1 file changed, 82 insertions(+), 71 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 421ce68fa1c..b2c674eba7a 100644
index 33f38949c15..099f3e92d98 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -5321,6 +5321,46 @@ static struct ddraw_surface *get_sub_mimaplevel(struct ddraw_surface *surface)
@@ -5473,6 +5473,46 @@ static struct ddraw_surface *get_sub_mimaplevel(struct ddraw_surface *surface)
return impl_from_IDirectDrawSurface7(next_level);
}
@@ -27,22 +27,22 @@ index 421ce68fa1c..b2c674eba7a 100644
+ if (!(format1->dwFlags & DDPF_ALPHA))
+ {
+ /* The RGB and YUV bits are stored in the same fields */
+ if (format1->u1.dwRGBBitCount != format2->u1.dwRGBBitCount)
+ if (format1->dwRGBBitCount != format2->dwRGBBitCount)
+ return FALSE;
+
+ if (format1->u2.dwRBitMask != format2->u2.dwRBitMask)
+ if (format1->dwRBitMask != format2->dwRBitMask)
+ return FALSE;
+
+ if (format1->u3.dwGBitMask != format2->u3.dwGBitMask)
+ if (format1->dwGBitMask != format2->dwGBitMask)
+ return FALSE;
+
+ if (format1->u4.dwBBitMask != format2->u4.dwBBitMask)
+ if (format1->dwBBitMask != format2->dwBBitMask)
+ return FALSE;
+ }
+
+ if (format1->dwFlags & (DDPF_ALPHAPIXELS | DDPF_ALPHA))
+ {
+ if (format1->u5.dwRGBAlphaBitMask != format2->u5.dwRGBAlphaBitMask)
+ if (format1->dwRGBAlphaBitMask != format2->dwRGBAlphaBitMask)
+ return FALSE;
+ }
+ }
@@ -59,7 +59,7 @@ index 421ce68fa1c..b2c674eba7a 100644
/*****************************************************************************
* IDirect3DTexture2::Load
*
@@ -5342,7 +5382,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
@@ -5494,7 +5534,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
{
struct ddraw_surface *dst_surface = impl_from_IDirect3DTexture2(iface);
struct ddraw_surface *src_surface = unsafe_impl_from_IDirect3DTexture2(src_texture);
@@ -68,7 +68,7 @@ index 421ce68fa1c..b2c674eba7a 100644
HRESULT hr;
TRACE("iface %p, src_texture %p.\n", iface, src_texture);
@@ -5355,90 +5395,62 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
@@ -5507,90 +5547,62 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
wined3d_mutex_lock();
@@ -77,7 +77,7 @@ index 421ce68fa1c..b2c674eba7a 100644
-
- if (((src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP)
- != (dst_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP))
- || (src_surface->surface_desc.u2.dwMipMapCount != dst_surface->surface_desc.u2.dwMipMapCount))
- || (src_surface->surface_desc.dwMipMapCount != dst_surface->surface_desc.dwMipMapCount))
- {
- ERR("Trying to load surfaces with different mip-map counts.\n");
- }
@@ -98,8 +98,8 @@ index 421ce68fa1c..b2c674eba7a 100644
- src_pal = src_surface->palette;
-
- if (src_pal)
+ if (compare_format(&src_surface->surface_desc.u4.ddpfPixelFormat,
+ &dst_surface->surface_desc.u4.ddpfPixelFormat))
+ if (compare_format(&src_surface->surface_desc.ddpfPixelFormat,
+ &dst_surface->surface_desc.ddpfPixelFormat))
{
- PALETTEENTRY palent[256];
+ struct ddraw_palette *dst_pal, *src_pal;
@@ -125,7 +125,7 @@ index 421ce68fa1c..b2c674eba7a 100644
- if ((src_desc->dwWidth != dst_desc->dwWidth) || (src_desc->dwHeight != dst_desc->dwHeight))
- {
- /* Should also check for same pixel format, u1.lPitch, ... */
- /* Should also check for same pixel format, lPitch, ... */
- ERR("Error in surface sizes.\n");
- wined3d_mutex_unlock();
- return D3DERR_TEXTURE_LOAD_FAILED;
@@ -175,8 +175,8 @@ index 421ce68fa1c..b2c674eba7a 100644
+ /* Suppress the ALLOCONLOAD flag */
+ dst_surface->surface_desc.ddsCaps.dwCaps &= ~DDSCAPS_ALLOCONLOAD;
- if (dst_surface->surface_desc.u4.ddpfPixelFormat.dwFlags & DDPF_FOURCC)
- memcpy(dst_map_desc.data, src_map_desc.data, src_surface->surface_desc.u1.dwLinearSize);
- if (dst_surface->surface_desc.ddpfPixelFormat.dwFlags & DDPF_FOURCC)
- memcpy(dst_map_desc.data, src_map_desc.data, src_surface->surface_desc.dwLinearSize);
- else
- memcpy(dst_map_desc.data, src_map_desc.data, src_map_desc.row_pitch * src_desc->dwHeight);
+ SetRect(&src_rect, 0, 0, src_surface->surface_desc.dwWidth, src_surface->surface_desc.dwHeight);
@@ -197,7 +197,7 @@ index 421ce68fa1c..b2c674eba7a 100644
}
if (src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP)
@@ -5451,12 +5463,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
@@ -5603,12 +5615,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
else
dst_surface = NULL;
@@ -214,5 +214,5 @@ index 421ce68fa1c..b2c674eba7a 100644
wined3d_mutex_unlock();
--
2.34.1
2.40.1

View File

@@ -1,29 +0,0 @@
From ff117878cb3a0c74a50355ca64ac36c5fe6cee67 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Fri, 10 Mar 2017 22:07:37 +0100
Subject: ddraw: Silence noisy FIXME about unimplemented
D3DPROCESSVERTICES_UPDATEEXTENTS.
---
dlls/ddraw/executebuffer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c
index 393c52c1e2..9b64c687d3 100644
--- a/dlls/ddraw/executebuffer.c
+++ b/dlls/ddraw/executebuffer.c
@@ -302,7 +302,10 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer,
ci->wStart, ci->wDest, ci->dwCount, ci->dwFlags);
if (ci->dwFlags & D3DPROCESSVERTICES_UPDATEEXTENTS)
- FIXME("D3DPROCESSVERTICES_UPDATEEXTENTS not implemented.\n");
+ {
+ static int once;
+ if (!once++) FIXME("D3DPROCESSVERTICES_UPDATEEXTENTS not implemented.\n");
+ }
if (ci->dwFlags & D3DPROCESSVERTICES_NOCOLOR)
FIXME("D3DPROCESSVERTICES_NOCOLOR not implemented.\n");
--
2.11.0

View File

@@ -1,73 +0,0 @@
From 98a9b8337d40c1f6df21227dff3d993f270aef46 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 24 May 2019 16:16:13 +1000
Subject: [PATCH] dinput: Allow mapping of controls based of Genre type.
---
dlls/dinput/device.c | 41 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 40 insertions(+), 1 deletion(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index e826cc89c1e..a4815f24958 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -1741,8 +1741,15 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
/* Count the actions */
for (i = 0; i < format->dwNumActions; i++)
- if (IsEqualGUID( &impl->guid, &format->rgoAction[i].guidInstance ))
+ {
+ if (IsEqualGUID(&impl->guid, &format->rgoAction[i].guidInstance) ||
+ (IsEqualGUID(&IID_NULL, &format->rgoAction[i].guidInstance) &&
+ ((format->rgoAction[i].dwSemantic & format->dwGenre) == format->dwGenre ||
+ (format->rgoAction[i].dwSemantic & 0xff000000) == 0xff000000 /* Any Axis */) ))
+ {
num_actions++;
+ }
+ }
/* Should return DI_NOEFFECT if we dont have any actions and actionformat has not changed */
if (num_actions == 0 && format->dwCRC == new_crc && !(flags & DIDSAM_FORCESAVE)) return DI_NOEFFECT;
@@ -1779,7 +1786,39 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
action++;
}
+ else if ((format->rgoAction[i].dwSemantic & format->dwGenre) == format->dwGenre ||
+ (format->rgoAction[i].dwSemantic & 0xff000000) == 0xff000000 /* Any Axis */)
+ {
+ DWORD obj_id = semantic_to_obj_id(impl, format->rgoAction[i].dwSemantic);
+ DWORD type = DIDFT_GETTYPE(obj_id);
+ DWORD inst = DIDFT_GETINSTANCE(obj_id);
+ LPDIOBJECTDATAFORMAT obj;
+
+ if (type == DIDFT_PSHBUTTON) type = DIDFT_BUTTON;
+ else if (type == DIDFT_RELAXIS) type = DIDFT_AXIS;
+
+ obj = dataformat_to_odf_by_type(df, inst, type);
+ TRACE("obj %p, inst 0x%08lx, type 0x%08lx\n", obj, inst, type);
+ if(obj)
+ {
+ memcpy(&obj_df[action], obj, df->dwObjSize);
+
+ impl->action_map[action].uAppData = format->rgoAction[i].uAppData;
+ impl->action_map[action].offset = offset;
+ obj_df[action].dwOfs = offset;
+ offset += (type & DIDFT_BUTTON) ? 1 : 4;
+
+ action++;
+ }
+ }
+ }
+
+ if (action == 0)
+ {
+ free( obj_df );
+ return DI_NOEFFECT;
}
+ data_format.dwNumObjs = action;
IDirectInputDevice8_SetDataFormat( iface, &data_format );
--
2.33.0

View File

@@ -1,3 +1,5 @@
Fixes: [34108] dinput: Improve support for user Joystick configuration.
Fixes: [47326] dinput: Allow mapping of controls based of genre type.
Fixes: [35815] dinput: Allow remapping of joystick buttons.
# Seeing active work...
Disabled: true

View File

@@ -0,0 +1,34 @@
From b2764b3d21a64c3c194b29b9cb71379456e03b06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 7 Jul 2023 12:44:26 +0200
Subject: [PATCH] dinput: Avoid duplicated objects in keyboard devices.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55205
---
dlls/dinput/keyboard.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index cbcbf94f0f6..3fd75bb10e6 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -265,13 +265,15 @@ static HRESULT keyboard_enum_objects( IDirectInputDevice8W *iface, const DIPROPH
.dwOfs = DIK_ESCAPE,
.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( DIK_ESCAPE ),
};
+ BOOL ret, mapped[0x100] = {0};
DWORD index, i, dik;
- BOOL ret;
for (i = 0, index = 0; i < 512; ++i)
{
if (!GetKeyNameTextW( i << 16, instance.tszName, ARRAY_SIZE(instance.tszName) )) continue;
if (!(dik = map_dik_code( i, 0, subtype, impl->base.dinput->dwVersion ))) continue;
+ if (mapped[dik]) continue;
+ mapped[dik] = TRUE;
instance.dwOfs = dik;
instance.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( dik );
ret = try_enum_object( &impl->base, filter, flags, callback, index++, &instance, context );
--
2.40.1

View File

@@ -0,0 +1,64 @@
From bdf952bf0711a7cf22fee840197234bd413ae611 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 7 Jul 2023 12:45:04 +0200
Subject: [PATCH] dinput: Enumerate lower keyboard scancodes values first.
Windows usually doesn't have scancodes higher than 0x7f, or extended
scancodes higher than 0x17f, but X11 does for several XF86 keys.
We want to enumerate the basic keys first including in the extended
scancode range, so they appear before the XF86 keys in the dinput
device object list.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55205
---
dlls/dinput/keyboard.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index 3fd75bb10e6..1f1db883b80 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -256,6 +256,7 @@ static BOOL try_enum_object( struct dinput_device *impl, const DIPROPHEADER *fil
static HRESULT keyboard_enum_objects( IDirectInputDevice8W *iface, const DIPROPHEADER *filter,
DWORD flags, enum_object_callback callback, void *context )
{
+ static const UINT vsc_base[] = {0, 0x100, 0x80, 0x180};
struct keyboard *impl = impl_from_IDirectInputDevice8W( iface );
BYTE subtype = GET_DIDEVICE_SUBTYPE( impl->base.instance.dwDevType );
DIDEVICEOBJECTINSTANCEW instance =
@@ -266,18 +267,21 @@ static HRESULT keyboard_enum_objects( IDirectInputDevice8W *iface, const DIPROPH
.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( DIK_ESCAPE ),
};
BOOL ret, mapped[0x100] = {0};
- DWORD index, i, dik;
+ DWORD index, i, dik, vsc;
- for (i = 0, index = 0; i < 512; ++i)
+ for (i = 0, index = 0; i < ARRAY_SIZE(vsc_base); ++i)
{
- if (!GetKeyNameTextW( i << 16, instance.tszName, ARRAY_SIZE(instance.tszName) )) continue;
- if (!(dik = map_dik_code( i, 0, subtype, impl->base.dinput->dwVersion ))) continue;
- if (mapped[dik]) continue;
- mapped[dik] = TRUE;
- instance.dwOfs = dik;
- instance.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( dik );
- ret = try_enum_object( &impl->base, filter, flags, callback, index++, &instance, context );
- if (ret != DIENUM_CONTINUE) return DIENUM_STOP;
+ for (vsc = vsc_base[i]; vsc < vsc_base[i] + 0x80; vsc++)
+ {
+ if (!GetKeyNameTextW( vsc << 16, instance.tszName, ARRAY_SIZE(instance.tszName) )) continue;
+ if (!(dik = map_dik_code( vsc, 0, subtype, impl->base.dinput->dwVersion ))) continue;
+ if (mapped[dik]) continue;
+ mapped[dik] = TRUE;
+ instance.dwOfs = dik;
+ instance.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( dik );
+ ret = try_enum_object( &impl->base, filter, flags, callback, index++, &instance, context );
+ if (ret != DIENUM_CONTINUE) return DIENUM_STOP;
+ }
}
return DIENUM_CONTINUE;
--
2.40.1

View File

@@ -0,0 +1,2 @@
Fixes: [55205] dinput: Improve keyboard devices scancode support.
# PR 3264

View File

@@ -0,0 +1,100 @@
From 4b20338821a19304650d1acc1229b0e8615896bc Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 3 Aug 2022 16:25:11 +1000
Subject: [PATCH] dmime: Store WAVE data when Loading.
---
dlls/dmime/segment.c | 56 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 52 insertions(+), 4 deletions(-)
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index bf44c5e73b3..6bf9f3abf0c 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -33,6 +33,10 @@ typedef struct IDirectMusicSegment8Impl {
DMUS_IO_SEGMENT_HEADER header;
IDirectMusicGraph *pGraph;
struct list Tracks;
+
+ PCMWAVEFORMAT wave_format;
+ void *wave_data;
+ int data_size;
} IDirectMusicSegment8Impl;
IDirectMusicSegment8Impl *create_segment(void);
@@ -86,6 +90,9 @@ static ULONG WINAPI IDirectMusicSegment8Impl_Release(IDirectMusicSegment8 *iface
TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) {
+ if (This->wave_data)
+ free(This->wave_data);
+
HeapFree(GetProcessHeap(), 0, This);
DMIME_UnlockModule();
}
@@ -818,6 +825,49 @@ static inline IDirectMusicSegment8Impl *impl_from_IPersistStream(IPersistStream
return CONTAINING_RECORD(iface, IDirectMusicSegment8Impl, dmobj.IPersistStream_iface);
}
+static HRESULT parse_wave_form(IDirectMusicSegment8Impl *This, IStream *stream, const struct chunk_entry *riff)
+{
+ HRESULT hr;
+ struct chunk_entry chunk = {.parent = riff};
+
+ TRACE("Parsing segment wave in %p: %s\n", stream, debugstr_chunk(riff));
+
+ while ((hr = stream_next_chunk(stream, &chunk)) == S_OK) {
+ switch (chunk.id) {
+ case mmioFOURCC('f','m','t',' '): {
+ if (FAILED(hr = stream_chunk_get_data(stream, &chunk, &This->wave_format, chunk.size)))
+ return hr;
+ TRACE("Wave Format tag %d\n", This->wave_format.wf.wFormatTag);
+ break;
+ }
+ case mmioFOURCC('d','a','t','a'): {
+ TRACE("Wave Data size %lu\n", chunk.size);
+ This->wave_data = malloc(chunk.size);
+ This->data_size = chunk.size;
+ if (!This->wave_data)
+ return E_OUTOFMEMORY;
+ if (FAILED(hr = stream_chunk_get_data(stream, &chunk, This->wave_data, chunk.size)))
+ return hr;
+ break;
+ }
+ case FOURCC_LIST: {
+ FIXME("Skipping LIST tag\n");
+ break;
+ }
+ case mmioFOURCC('I','S','F','T'): {
+ FIXME("Skipping ISFT tag\n");
+ break;
+ }
+ case mmioFOURCC('f','a','c','t'): {
+ FIXME("Skipping fact tag\n");
+ break;
+ }
+ }
+ }
+
+ return S_OK;
+}
+
static HRESULT WINAPI seg_IPersistStream_Load(IPersistStream *iface, IStream *stream)
{
IDirectMusicSegment8Impl *This = impl_from_IPersistStream(iface);
@@ -847,10 +897,8 @@ static HRESULT WINAPI seg_IPersistStream_Load(IPersistStream *iface, IStream *st
if (riff.type == DMUS_FOURCC_SEGMENT_FORM)
hr = parse_segment_form(This, stream, &riff);
- else {
- FIXME("WAVE form loading not implemented\n");
- hr = S_OK;
- }
+ else
+ hr = parse_wave_form(This, stream, &riff);
return hr;
}
--
2.39.1

View File

@@ -0,0 +1,157 @@
From 9eccf33cb881c2e847a22a72f1c8d8b10886d531 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 2 Dec 2022 14:41:30 +1100
Subject: [PATCH] dmime: Implement IDirectMusicSegment8 Download
---
dlls/dmime/dmime_private.h | 2 +
dlls/dmime/performance.c | 7 +++
dlls/dmime/segment.c | 87 ++++++++++++++++++++++++++++++++++++--
3 files changed, 93 insertions(+), 3 deletions(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index 7cdc1534866..39f6cdce790 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -71,6 +71,8 @@ extern void set_audiopath_perf_pointer(IDirectMusicAudioPath*,IDirectMusicPerfor
extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
+extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+
/*****************************************************************************
* Auxiliary definitions
*/
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index d69a27540d6..5578c3e523b 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -252,6 +252,13 @@ static inline IDirectMusicPerformance8Impl *impl_from_IDirectMusicPerformance8(I
return CONTAINING_RECORD(iface, IDirectMusicPerformance8Impl, IDirectMusicPerformance8_iface);
}
+IDirectSound *get_dsound_interface(IDirectMusicPerformance8* iface)
+{
+ IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
+ return This->dsound;
+}
+
+
/* IDirectMusicPerformance8 IUnknown part: */
static HRESULT WINAPI IDirectMusicPerformance8Impl_QueryInterface(IDirectMusicPerformance8 *iface,
REFIID riid, void **ppv)
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index 6bf9f3abf0c..0ea0c15c5e0 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -37,6 +37,7 @@ typedef struct IDirectMusicSegment8Impl {
PCMWAVEFORMAT wave_format;
void *wave_data;
int data_size;
+ IDirectSoundBuffer *buffer;
} IDirectMusicSegment8Impl;
IDirectMusicSegment8Impl *create_segment(void);
@@ -90,6 +91,8 @@ static ULONG WINAPI IDirectMusicSegment8Impl_Release(IDirectMusicSegment8 *iface
TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) {
+ if (This->buffer)
+ IDirectSoundBuffer_Release(This->buffer);
if (This->wave_data)
free(This->wave_data);
@@ -559,9 +562,87 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_Compose(IDirectMusicSegment8 *ifa
static HRESULT WINAPI IDirectMusicSegment8Impl_Download(IDirectMusicSegment8 *iface,
IUnknown *pAudioPath)
{
- IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
- FIXME("(%p, %p): stub\n", This, pAudioPath);
- return S_OK;
+ IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+ IDirectMusicPerformance8 *perf;
+ IDirectMusicAudioPath *audio;
+ IDirectSound *dsound;
+ HRESULT hr;
+ DSBUFFERDESC dsbd = {.dwSize = sizeof(dsbd)};
+ void *data;
+ DWORD size;
+ DWORD buffer = 0;
+
+ TRACE("(%p, %p)\n", This, pAudioPath);
+
+ if (!pAudioPath)
+ return E_INVALIDARG;
+
+ if (This->buffer)
+ {
+ TRACE("Using Cached buffer\n");
+ return S_OK;
+ }
+
+ /* pAudioPath can either be IDirectMusicAudioPath or IDirectMusicPerformance */
+ hr = IUnknown_QueryInterface(pAudioPath, &IID_IDirectMusicPerformance8, (void**)&perf);
+ if (FAILED(hr))
+ {
+ TRACE("Checking for IDirectMusicAudioPath interface\n");
+ hr = IUnknown_QueryInterface(pAudioPath, &IID_IDirectMusicAudioPath, (void**)&audio);
+ if (FAILED(hr))
+ {
+ WARN("Cannot query for IDirectMusicAudioPath\n");
+ return E_INVALIDARG;
+ }
+
+ IDirectMusicAudioPath_GetObjectInPath(audio, DMUS_PCHANNEL_ALL, DMUS_PATH_PERFORMANCE, buffer, &GUID_NULL,
+ 0, &IID_IDirectMusicPerformance, (void**)&perf);
+ IDirectMusicAudioPath_Release(audio);
+ }
+
+ if (!perf)
+ {
+ ERR("Failed to get IDirectMusicPerformance interface\n");
+ return E_INVALIDARG;
+ }
+
+ dsound = get_dsound_interface(perf);
+ if (!dsound)
+ {
+ ERR("Failed get_dsound_interface\n");
+ return E_INVALIDARG;
+ }
+
+ if (This->data_size == 0)
+ {
+ FIXME("No wave data skipping\n");
+ return S_OK;
+ }
+
+ dsbd.dwBufferBytes = This->data_size;
+ dsbd.lpwfxFormat = (WAVEFORMATEX*)&This->wave_format;
+
+ hr = IDirectSound_CreateSoundBuffer(dsound, &dsbd, &This->buffer, NULL);
+ if (FAILED(hr))
+ {
+ ERR("IDirectSound_CreateSoundBuffer failed 0x%08lx\n", hr);
+ return E_INVALIDARG;
+ }
+
+ TRACE("CreateSoundBuffer successful\n");
+
+ hr = IDirectSoundBuffer_Lock(This->buffer, 0, This->data_size, &data, &size, NULL, 0, 0);
+ TRACE("IDirectSoundBuffer_Lock hr 0x%08lx\n", hr);
+
+ memcpy(data, This->wave_data, This->data_size);
+
+ hr = IDirectSoundBuffer_Unlock(This->buffer, data, This->data_size, NULL, 0);
+ TRACE("IDirectSoundBuffer_Unlock hr 0x%08lx\n", hr);
+
+ /*hr = IDirectSoundBuffer_Play(This->buffer, 0, 0, 0);
+ TRACE("IDirectSoundBuffer_Play hr 0x%08lx\n", hr);*/
+
+ return S_OK;
}
static HRESULT WINAPI IDirectMusicSegment8Impl_Unload(IDirectMusicSegment8 *iface,
--
2.40.1

View File

@@ -0,0 +1,80 @@
From 8f92585ece53fbcd940fe028dd7ee24d6b854ec3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 12 Dec 2022 15:20:10 +1100
Subject: [PATCH] dmime: Play a sound in IDirectMusicPerformance8 PlaySegmentEx
---
dlls/dmime/dmime_private.h | 1 +
dlls/dmime/performance.c | 25 +++++++++++++++++++------
dlls/dmime/segment.c | 6 ++++++
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index 39f6cdce790..6cd45697e2f 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -72,6 +72,7 @@ extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffe
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+extern IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface);
/*****************************************************************************
* Auxiliary definitions
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 5578c3e523b..03e59e95af3 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -1043,13 +1043,26 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegmentEx(IDirectMusicPer
__int64 i64StartTime, IDirectMusicSegmentState **ppSegmentState, IUnknown *pFrom,
IUnknown *pAudioPath)
{
- IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
+ IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
+ IDirectMusicSegment8 *segment;
+ IDirectSoundBuffer *buffer;
+ HRESULT hr;
- FIXME("(%p, %p, %p, %p, %ld, 0x%s, %p, %p, %p): stub\n", This, pSource, pwzSegmentName,
- pTransition, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState, pFrom, pAudioPath);
- if (ppSegmentState)
- return create_dmsegmentstate(&IID_IDirectMusicSegmentState,(void**)ppSegmentState);
- return S_OK;
+ FIXME("(%p, %p, %p, %p, %ld, 0x%s, %p, %p, %p): semi-stub\n", This, pSource, pwzSegmentName,
+ pTransition, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState, pFrom, pAudioPath);
+
+ hr = IUnknown_QueryInterface(pSource, &IID_IDirectMusicSegment8, (void**)&segment);
+ if (FAILED(hr))
+ return hr;
+
+ buffer = get_segment_buffer(segment);
+
+ if (segment)
+ hr = IDirectSoundBuffer_Play(buffer, 0, 0, 0);
+
+ if (ppSegmentState)
+ return create_dmsegmentstate(&IID_IDirectMusicSegmentState,(void**)ppSegmentState);
+ return S_OK;
}
static HRESULT WINAPI IDirectMusicPerformance8Impl_StopEx(IDirectMusicPerformance8 *iface,
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index 0ea0c15c5e0..b21f93bbfc6 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -47,6 +47,12 @@ static inline IDirectMusicSegment8Impl *impl_from_IDirectMusicSegment8(IDirectMu
return CONTAINING_RECORD(iface, IDirectMusicSegment8Impl, IDirectMusicSegment8_iface);
}
+IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface)
+{
+ IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+ return This->buffer;
+}
+
static HRESULT WINAPI IDirectMusicSegment8Impl_QueryInterface(IDirectMusicSegment8 *iface,
REFIID riid, void **ret_iface)
{
--
2.40.1

View File

@@ -0,0 +1,13 @@
Fixes: [48220] dmime: Handle basic loading of Wave files and playing them.
Fixes: [61322] dmine: No Sound in Black Rockman Shooter.
Fixes: [34751] dmime: Aura: Fate of the Ages: sounds aren't played, but music works fine
Fixes: [9027] dmime: No sound for rise of nations - all versions.
# Also
# - Cloning Clyde demo
# Doesnt fix
# The following are known not to work, at the moment.
# [31586] : Myst sounds (Voices)
# [30969] : Tron 2.0 Background music
# [32896] : Serious Sam: The Random Encounter

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