You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
174 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7df2eaa22d | ||
|
571ab663fd | ||
|
ddba27937a | ||
|
f71c20b7f7 | ||
|
8281fca8dc | ||
|
093f3b9818 | ||
|
c8299873fb | ||
|
60e6da65cd | ||
|
08dca3b834 | ||
|
4f12cf4dc9 | ||
|
1d08851c35 | ||
|
a8976086e5 | ||
|
c6a96f3e32 | ||
|
6adf92cebb | ||
|
e27647e4d5 | ||
|
2f3baafeca | ||
|
5e5f21854b | ||
|
6b9d38b61c | ||
|
45157d6bbe | ||
|
3cb1c835bc | ||
|
243a9f7b89 | ||
|
4f532d23bb | ||
|
73d2e2a9e8 | ||
|
7391ecfaa0 | ||
|
295deafca7 | ||
|
2dd175172b | ||
|
5924752fd9 | ||
|
57b298602e | ||
|
52f5a405e9 | ||
|
c92ffa58c0 | ||
|
e741b83080 | ||
|
faf8d49216 | ||
|
08e221b30c | ||
|
c2158ca405 | ||
|
953ae16ca9 | ||
|
066e207750 | ||
|
64e8ae3a61 | ||
|
3d1995983f | ||
|
4705d850ea | ||
|
8bede16222 | ||
|
5c3c83fef5 | ||
|
8c43c80df2 | ||
|
99ddea76c5 | ||
|
6eb4b11c22 | ||
|
5eb1d3c69b | ||
|
70a46a2305 | ||
|
bd04bf9ac0 | ||
|
749dc37048 | ||
|
a15b448623 | ||
|
e460e59354 | ||
|
71bb1a35f5 | ||
|
83d43970e8 | ||
|
0f1aef64bf | ||
|
a40017a010 | ||
|
94419b1dad | ||
|
5d32e6fc71 | ||
|
f10c1d3c42 | ||
|
9aefba7af5 | ||
|
16e6b1c3e3 | ||
|
8a2c526e13 | ||
|
334b3cb393 | ||
|
54ed708c91 | ||
|
1294cf8ca9 | ||
|
5c40d98a8f | ||
|
cc62b92f5e | ||
|
a89e9696d4 | ||
|
5f37cb2071 | ||
|
b4c93af2cb | ||
|
c2b1a0350d | ||
|
70c4687b47 | ||
|
9907ab34d3 | ||
|
cd9936654a | ||
|
87b3c56914 | ||
|
65a09eaaa0 | ||
|
35e6091943 | ||
|
2dff0d6075 | ||
|
fd89a1b64c | ||
|
352d7723f5 | ||
|
4564b0148b | ||
|
56c4a42468 | ||
|
49f61371b2 | ||
|
fa0e389d75 | ||
|
44b04d6d36 | ||
|
64714a825f | ||
|
71b8ace1aa | ||
|
d661521305 | ||
|
6f424b1e0f | ||
|
131c688ab3 | ||
|
27ba45e053 | ||
|
1acbf46fcf | ||
|
dc4a52734f | ||
|
b1d1f3475b | ||
|
00902fdb2f | ||
|
ee7d9bd76b | ||
|
e38a9d7073 | ||
|
cd9e01c9ed | ||
|
ece39ae33d | ||
|
cecff04cad | ||
|
96068c4fe2 | ||
|
8e5acbdae3 | ||
|
07d872e2bc | ||
|
fa8670d547 | ||
|
b71dcee6b2 | ||
|
d77c36c405 | ||
|
853e7bea82 | ||
|
561eb28565 | ||
|
7f8d293595 | ||
|
05f4f2dfaf | ||
|
b7f0807cba | ||
|
424271828e | ||
|
88054b7a21 | ||
|
8d2cdec699 | ||
|
72a52e44c2 | ||
|
79eb485272 | ||
|
51b447a55f | ||
|
0712486b63 | ||
|
95899b69cc | ||
|
52c70bd232 | ||
|
5e9e174e71 | ||
|
0d846617c9 | ||
|
8ae9a00d2e | ||
|
f837e9bbfd | ||
|
1051d1524c | ||
|
60387bee03 | ||
|
686516f539 | ||
|
b6a0bae40b | ||
|
a1979756c6 | ||
|
ab065dcd70 | ||
|
ed798c278d | ||
|
cc990d9a9b | ||
|
c366169c65 | ||
|
6d48c2e282 | ||
|
1f2899cb9f | ||
|
dd46af2590 | ||
|
6197fa1681 | ||
|
0946354641 | ||
|
2354855786 | ||
|
578398f0ab | ||
|
d8d1cf2e35 | ||
|
4b7dbb610b | ||
|
181ad80116 | ||
|
b57004bc38 | ||
|
7fefd606b8 | ||
|
7cbb25d95d | ||
|
1a8a066920 | ||
|
141fc0844c | ||
|
95ff86b496 | ||
|
579d7f8032 | ||
|
84922f9148 | ||
|
402b8c4972 | ||
|
b8b8585286 | ||
|
8064151dce | ||
|
cb89c75141 | ||
|
b4a404a22a | ||
|
38db26b6d9 | ||
|
acd63ecddd | ||
|
1e7df1a0d8 | ||
|
16975cdd43 | ||
|
57dde8e88f | ||
|
e8ef34b3a1 | ||
|
7ffe842cc0 | ||
|
640d075440 | ||
|
49ea937be3 | ||
|
476a9c608e | ||
|
1f66129ef4 | ||
|
1fa34cfef0 | ||
|
f427133a03 | ||
|
fb87fbb11d | ||
|
6914bab984 | ||
|
3ad772bb1f | ||
|
a3bc186a20 | ||
|
d21860deb6 | ||
|
9e9b2716c4 | ||
|
c4a321904d |
@@ -1,74 +0,0 @@
|
||||
From 63e3d8fa86ea5bb6dd9154754d57b680b00533ad Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 24 Mar 2016 02:42:22 +0100
|
||||
Subject: advapi32: Fix return value of RegNotifyChangeKeyValue for pending
|
||||
events.
|
||||
|
||||
Also remove handling for STATUS_TIMEOUT. Is it ever returned?
|
||||
---
|
||||
dlls/advapi32/registry.c | 2 +-
|
||||
dlls/advapi32/tests/registry.c | 28 ++++++++++++++++++++++++++++
|
||||
2 files changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
|
||||
index 7992384..4b3d852 100644
|
||||
--- a/dlls/advapi32/registry.c
|
||||
+++ b/dlls/advapi32/registry.c
|
||||
@@ -2760,7 +2760,7 @@ LSTATUS WINAPI RegNotifyChangeKeyValue( HKEY hkey, BOOL fWatchSubTree,
|
||||
fdwNotifyFilter, fWatchSubTree, NULL, 0,
|
||||
fAsync);
|
||||
|
||||
- if (status && status != STATUS_TIMEOUT)
|
||||
+ if (status && status != STATUS_PENDING)
|
||||
return RtlNtStatusToDosError( status );
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
|
||||
index f877b36..82f5015 100644
|
||||
--- a/dlls/advapi32/tests/registry.c
|
||||
+++ b/dlls/advapi32/tests/registry.c
|
||||
@@ -3452,6 +3452,33 @@ static void test_RegOpenCurrentUser(void)
|
||||
RegCloseKey(key);
|
||||
}
|
||||
|
||||
+static void test_RegNotifyChangeKeyValue(void)
|
||||
+{
|
||||
+ HKEY key, subkey;
|
||||
+ HANDLE event;
|
||||
+ DWORD dwret;
|
||||
+ LONG ret;
|
||||
+
|
||||
+ event = CreateEventW(NULL, FALSE, TRUE, NULL);
|
||||
+ ok(event != NULL, "CreateEvent failed, error %u\n", GetLastError());
|
||||
+ ret = RegCreateKeyA(hkey_main, "TestKey", &key);
|
||||
+ ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ ret = RegNotifyChangeKeyValue(key, TRUE, REG_NOTIFY_CHANGE_NAME, event, TRUE);
|
||||
+ ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ dwret = WaitForSingleObject(event, 0);
|
||||
+ ok(dwret == WAIT_TIMEOUT, "expected WAIT_TIMEOUT, got %u\n", dwret);
|
||||
+
|
||||
+ ret = RegCreateKeyA(key, "SubKey", &subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ dwret = WaitForSingleObject(event, 0);
|
||||
+ ok(dwret == WAIT_OBJECT_0, "expected WAIT_OBJECT_0, got %u\n", dwret);
|
||||
+
|
||||
+ RegDeleteKeyA(key, "");
|
||||
+ RegCloseKey(key);
|
||||
+ CloseHandle(event);
|
||||
+}
|
||||
+
|
||||
START_TEST(registry)
|
||||
{
|
||||
/* Load pointers for functions that are not available in all Windows versions */
|
||||
@@ -3486,6 +3513,7 @@ START_TEST(registry)
|
||||
test_delete_value();
|
||||
test_delete_key_value();
|
||||
test_RegOpenCurrentUser();
|
||||
+ test_RegNotifyChangeKeyValue();
|
||||
|
||||
/* cleanup */
|
||||
delete_key( hkey_main );
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [39863] Fix return value of RegNotifyChangeKeyValue for pending events
|
@@ -1,88 +0,0 @@
|
||||
From 4d0e6bbc00bd49b8dcfce494bd7380c49f58f92b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 28 Jul 2015 18:21:20 +0200
|
||||
Subject: amstream: Implement IAMMediaStream::GetMultiMediaStream.
|
||||
|
||||
---
|
||||
dlls/amstream/mediastream.c | 40 ++++++++++++++++++++++++++++++++--------
|
||||
1 file changed, 32 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c
|
||||
index 947be1e..e4e15d7 100644
|
||||
--- a/dlls/amstream/mediastream.c
|
||||
+++ b/dlls/amstream/mediastream.c
|
||||
@@ -110,9 +110,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetMultiMediaStre
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_DirectDrawMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -271,9 +277,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetMultiM
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_IDirectDrawMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!ppMultiMediaStream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *ppMultiMediaStream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetInformation(IDirectDrawMediaStream *iface,
|
||||
@@ -511,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_AudioMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -672,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", iface, This, multimedia_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", iface, This, multimedia_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multimedia_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multimedia_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetInformation(IAudioMediaStream *iface,
|
||||
--
|
||||
2.4.5
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [37090] Implement AMStream GetMultiMediaStream functions
|
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
From 3a4e938b07407fd58a3a554cc8cbdb2d0b09a3d6 Mon Sep 17 00:00:00 2001
|
||||
From 06fc57e35f3424d17d8e3cb61692d594691674f4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 23 Jan 2016 21:10:37 +0100
|
||||
Subject: ext-ms-win-rtcore-ntuser-sysparams-l1-1-0: Add dll.
|
||||
@@ -33,7 +33,7 @@ index 0000000..18a0b1f
|
||||
+MODULE = ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll
|
||||
diff --git a/dlls/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.spec b/dlls/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.spec
|
||||
new file mode 100644
|
||||
index 0000000..374b961
|
||||
index 0000000..ffb8f5b
|
||||
--- /dev/null
|
||||
+++ b/dlls/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.spec
|
||||
@@ -0,0 +1,20 @@
|
||||
@@ -48,7 +48,7 @@ index 0000000..374b961
|
||||
+@ stdcall GetMonitorInfoW(long ptr) user32.GetMonitorInfoW
|
||||
+@ stdcall GetSysColor(long) user32.GetSysColor
|
||||
+@ stdcall GetSystemMetrics(long) user32.GetSystemMetrics
|
||||
+@ stub IsProcessDPIAware
|
||||
+@ stdcall IsProcessDPIAware() user32.IsProcessDPIAware
|
||||
+@ stdcall MonitorFromPoint(int64 long) user32.MonitorFromPoint
|
||||
+@ stdcall MonitorFromRect(ptr long) user32.MonitorFromRect
|
||||
+@ stdcall MonitorFromWindow(long long) user32.MonitorFromWindow
|
||||
@@ -58,7 +58,7 @@ index 0000000..374b961
|
||||
+@ stdcall SystemParametersInfoA(long long ptr long) user32.SystemParametersInfoA
|
||||
+@ stdcall SystemParametersInfoW(long long ptr long) user32.SystemParametersInfoW
|
||||
diff --git a/tools/make_specfiles b/tools/make_specfiles
|
||||
index bbf2b5e..c1c1860 100755
|
||||
index 43b8dc2..af88f8b 100755
|
||||
--- a/tools/make_specfiles
|
||||
+++ b/tools/make_specfiles
|
||||
@@ -281,6 +281,7 @@ my @dll_groups =
|
||||
|
133
patches/api-ms-win-Stub_DLLs/0026-feclient-Add-stub-dll.patch
Normal file
133
patches/api-ms-win-Stub_DLLs/0026-feclient-Add-stub-dll.patch
Normal file
@@ -0,0 +1,133 @@
|
||||
From 4a8b29b5a4c923cec3a78bd9f43e0fc736721cd7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 12 Apr 2016 01:00:02 +0200
|
||||
Subject: feclient: Add stub dll.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/feclient/Makefile.in | 4 ++++
|
||||
dlls/feclient/feclient.spec | 36 ++++++++++++++++++++++++++++++++++++
|
||||
dlls/feclient/main.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
4 files changed, 86 insertions(+)
|
||||
create mode 100644 dlls/feclient/Makefile.in
|
||||
create mode 100644 dlls/feclient/feclient.spec
|
||||
create mode 100644 dlls/feclient/main.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 98bb7d7..39097d1 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2957,6 +2957,7 @@ WINE_CONFIG_DLL(ext-ms-win-uxtheme-themes-l1-1-0)
|
||||
WINE_CONFIG_DLL(ext-ms-win-xaml-pal-l1-1-0)
|
||||
WINE_CONFIG_DLL(faultrep,,[implib])
|
||||
WINE_CONFIG_TEST(dlls/faultrep/tests)
|
||||
+WINE_CONFIG_DLL(feclient)
|
||||
WINE_CONFIG_DLL(fltlib)
|
||||
WINE_CONFIG_DLL(fltmgr.sys)
|
||||
WINE_CONFIG_DLL(fntcache)
|
||||
diff --git a/dlls/feclient/Makefile.in b/dlls/feclient/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..d3eeefb
|
||||
--- /dev/null
|
||||
+++ b/dlls/feclient/Makefile.in
|
||||
@@ -0,0 +1,4 @@
|
||||
+MODULE = feclient.dll
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ main.c
|
||||
diff --git a/dlls/feclient/feclient.spec b/dlls/feclient/feclient.spec
|
||||
new file mode 100644
|
||||
index 0000000..3620b85
|
||||
--- /dev/null
|
||||
+++ b/dlls/feclient/feclient.spec
|
||||
@@ -0,0 +1,36 @@
|
||||
+@ stub EdpContainerizeFile
|
||||
+@ stub EdpCredentialCreate
|
||||
+@ stub EdpCredentialDelete
|
||||
+@ stub EdpCredentialExists
|
||||
+@ stub EdpCredentialQuery
|
||||
+@ stub EdpDecontainerizeFile
|
||||
+@ stub EdpDplPolicyEnabledForUser
|
||||
+@ stub EdpDplUpgradePinInfo
|
||||
+@ stub EdpDplUpgradeVerifyUser
|
||||
+@ stub EdpDplUserCredentialsSet
|
||||
+@ stub EdpDplUserUnlockComplete
|
||||
+@ stub EdpDplUserUnlockStart
|
||||
+@ stub EdpFree
|
||||
+@ stub EdpGetContainerIdentity
|
||||
+@ stub EdpGetCredServiceState
|
||||
+@ stub EdpQueryCredServiceInfo
|
||||
+@ stub EdpQueryDplEnforcedPolicyOwnerIds
|
||||
+@ stub EdpQueryRevokedPolicyOwnerIds
|
||||
+@ stub EdpRmsClearKeys
|
||||
+@ stub EdpSetCredServiceInfo
|
||||
+@ stub EfsClientCloseFileRaw
|
||||
+@ stub EfsClientDecryptFile
|
||||
+@ stub EfsClientDuplicateEncryptionInfo
|
||||
+@ stub EfsClientEncryptFileEx
|
||||
+@ stub EfsClientFileEncryptionStatus
|
||||
+@ stub EfsClientFreeProtectorList
|
||||
+@ stub EfsClientGetEncryptedFileVersion
|
||||
+@ stub EfsClientOpenFileRaw
|
||||
+@ stub EfsClientQueryProtectors
|
||||
+@ stub EfsClientReadFileRaw
|
||||
+@ stub EfsClientWriteFileRaw
|
||||
+@ stub EfsClientWriteFileWithHeaderRaw
|
||||
+@ stub EfsUtilGetCurrentKey
|
||||
+@ stub FeClientInitialize
|
||||
+@ stub GetLockSessionUnwrappedKey
|
||||
+@ stub GetLockSessionWrappedKey
|
||||
diff --git a/dlls/feclient/main.c b/dlls/feclient/main.c
|
||||
new file mode 100644
|
||||
index 0000000..91aed70
|
||||
--- /dev/null
|
||||
+++ b/dlls/feclient/main.c
|
||||
@@ -0,0 +1,45 @@
|
||||
+/*
|
||||
+ * feclient API
|
||||
+ *
|
||||
+ * Copyright 2016 Michael MĂĽller
|
||||
+ *
|
||||
+ * 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 "config.h"
|
||||
+
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#include "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(feclient);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -0,0 +1,311 @@
|
||||
From a1b20acdf908d93184138869d1fc105c133498ef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 12 Apr 2016 01:02:34 +0200
|
||||
Subject: uiautomationcore: Add dll and stub some functions.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/uiautomationcore/Makefile.in | 5 ++
|
||||
dlls/uiautomationcore/main.c | 117 ++++++++++++++++++++++++++++
|
||||
dlls/uiautomationcore/uiautomationcore.spec | 99 +++++++++++++++++++++++
|
||||
include/uiautomationcoreapi.h | 16 ++++
|
||||
5 files changed, 238 insertions(+)
|
||||
create mode 100644 dlls/uiautomationcore/Makefile.in
|
||||
create mode 100644 dlls/uiautomationcore/main.c
|
||||
create mode 100644 dlls/uiautomationcore/uiautomationcore.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 39097d1..896d413 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3304,6 +3304,7 @@ WINE_CONFIG_TEST(dlls/twain_32/tests)
|
||||
WINE_CONFIG_DLL(typelib.dll16,enable_win16)
|
||||
WINE_CONFIG_DLL(ucrtbase)
|
||||
WINE_CONFIG_TEST(dlls/ucrtbase/tests)
|
||||
+WINE_CONFIG_DLL(uiautomationcore)
|
||||
WINE_CONFIG_DLL(unicows,,[implib])
|
||||
WINE_CONFIG_DLL(updspapi)
|
||||
WINE_CONFIG_DLL(url,,[implib])
|
||||
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..bd6f9d6
|
||||
--- /dev/null
|
||||
+++ b/dlls/uiautomationcore/Makefile.in
|
||||
@@ -0,0 +1,5 @@
|
||||
+MODULE = uiautomationcore.dll
|
||||
+IMPORTS = uuid
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ main.c
|
||||
diff --git a/dlls/uiautomationcore/main.c b/dlls/uiautomationcore/main.c
|
||||
new file mode 100644
|
||||
index 0000000..71fe84c
|
||||
--- /dev/null
|
||||
+++ b/dlls/uiautomationcore/main.c
|
||||
@@ -0,0 +1,117 @@
|
||||
+/*
|
||||
+ * uiautomationcore API
|
||||
+ *
|
||||
+ * Copyright 2016 Michael MĂĽller
|
||||
+ *
|
||||
+ * 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 "config.h"
|
||||
+
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#include "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+#define COBJMACROS
|
||||
+#include "uiautomationcoreapi.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(uiautomation);
|
||||
+
|
||||
+static HRESULT WINAPI dummy_QueryInterface(IUnknown *iface, REFIID iid, void **ppv)
|
||||
+{
|
||||
+ TRACE("(%p, %s, %p)\n", iface, debugstr_guid(iid), ppv);
|
||||
+
|
||||
+ if (!ppv) return E_INVALIDARG;
|
||||
+
|
||||
+ if (!IsEqualIID(&IID_IUnknown, iid))
|
||||
+ {
|
||||
+ FIXME("Unknown interface: %s\n", debugstr_guid(iid));
|
||||
+ *ppv = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
+
|
||||
+ *ppv = iface;
|
||||
+ IUnknown_AddRef((IUnknown *)*ppv);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_AddRef(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_Release(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static const IUnknownVtbl dummy_Vtbl =
|
||||
+{
|
||||
+ dummy_QueryInterface,
|
||||
+ dummy_AddRef,
|
||||
+ dummy_Release,
|
||||
+};
|
||||
+
|
||||
+static IUnknown dummy = { &dummy_Vtbl };
|
||||
+
|
||||
+int WINAPI UiaLookupId(AutomationIdentifierType type, const GUID *guid)
|
||||
+{
|
||||
+ FIXME("(%d, %s)\n", type, debugstr_guid(guid));
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", value);
|
||||
+
|
||||
+ *value = &dummy;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", value);
|
||||
+
|
||||
+ *value = &dummy;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wparam, LPARAM lparam,
|
||||
+ IRawElementProviderSimple *provider)
|
||||
+{
|
||||
+ FIXME("(%p, %lx, %lx, %p): stub\n", hwnd, wparam, lparam, provider);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/uiautomationcore/uiautomationcore.spec b/dlls/uiautomationcore/uiautomationcore.spec
|
||||
new file mode 100644
|
||||
index 0000000..321cd06
|
||||
--- /dev/null
|
||||
+++ b/dlls/uiautomationcore/uiautomationcore.spec
|
||||
@@ -0,0 +1,99 @@
|
||||
+@ stub DllCanUnloadNow
|
||||
+@ stub DllGetClassObject
|
||||
+@ stub DllRegisterServer
|
||||
+@ stub DllUnregisterServer
|
||||
+@ stub DockPattern_SetDockPosition
|
||||
+@ stub ExpandCollapsePattern_Collapse
|
||||
+@ stub ExpandCollapsePattern_Expand
|
||||
+@ stub GridPattern_GetItem
|
||||
+@ stub InvokePattern_Invoke
|
||||
+@ stub ItemContainerPattern_FindItemByProperty
|
||||
+@ stub LegacyIAccessiblePattern_DoDefaultAction
|
||||
+@ stub LegacyIAccessiblePattern_GetIAccessible
|
||||
+@ stub LegacyIAccessiblePattern_Select
|
||||
+@ stub LegacyIAccessiblePattern_SetValue
|
||||
+@ stub MultipleViewPattern_GetViewName
|
||||
+@ stub MultipleViewPattern_SetCurrentView
|
||||
+@ stub RangeValuePattern_SetValue
|
||||
+@ stub ScrollItemPattern_ScrollIntoView
|
||||
+@ stub ScrollPattern_Scroll
|
||||
+@ stub ScrollPattern_SetScrollPercent
|
||||
+@ stub SelectionItemPattern_AddToSelection
|
||||
+@ stub SelectionItemPattern_RemoveFromSelection
|
||||
+@ stub SelectionItemPattern_Select
|
||||
+@ stub SynchronizedInputPattern_Cancel
|
||||
+@ stub SynchronizedInputPattern_StartListening
|
||||
+@ stub TextPattern_GetSelection
|
||||
+@ stub TextPattern_GetVisibleRanges
|
||||
+@ stub TextPattern_RangeFromChild
|
||||
+@ stub TextPattern_RangeFromPoint
|
||||
+@ stub TextPattern_get_DocumentRange
|
||||
+@ stub TextPattern_get_SupportedTextSelection
|
||||
+@ stub TextRange_AddToSelection
|
||||
+@ stub TextRange_Clone
|
||||
+@ stub TextRange_Compare
|
||||
+@ stub TextRange_CompareEndpoints
|
||||
+@ stub TextRange_ExpandToEnclosingUnit
|
||||
+@ stub TextRange_FindAttribute
|
||||
+@ stub TextRange_FindText
|
||||
+@ stub TextRange_GetAttributeValue
|
||||
+@ stub TextRange_GetBoundingRectangles
|
||||
+@ stub TextRange_GetChildren
|
||||
+@ stub TextRange_GetEnclosingElement
|
||||
+@ stub TextRange_GetText
|
||||
+@ stub TextRange_Move
|
||||
+@ stub TextRange_MoveEndpointByRange
|
||||
+@ stub TextRange_MoveEndpointByUnit
|
||||
+@ stub TextRange_RemoveFromSelection
|
||||
+@ stub TextRange_ScrollIntoView
|
||||
+@ stub TextRange_Select
|
||||
+@ stub TogglePattern_Toggle
|
||||
+@ stub TransformPattern_Move
|
||||
+@ stub TransformPattern_Resize
|
||||
+@ stub TransformPattern_Rotate
|
||||
+@ stub UiaAddEvent
|
||||
+@ stub UiaClientsAreListening
|
||||
+@ stub UiaDisconnectAllProviders
|
||||
+@ stub UiaDisconnectProvider
|
||||
+@ stub UiaEventAddWindow
|
||||
+@ stub UiaEventRemoveWindow
|
||||
+@ stub UiaFind
|
||||
+@ stub UiaGetErrorDescription
|
||||
+@ stub UiaGetPatternProvider
|
||||
+@ stub UiaGetPropertyValue
|
||||
+@ stdcall UiaGetReservedMixedAttributeValue(ptr)
|
||||
+@ stdcall UiaGetReservedNotSupportedValue(ptr)
|
||||
+@ stub UiaGetRootNode
|
||||
+@ stub UiaGetRuntimeId
|
||||
+@ stub UiaGetUpdatedCache
|
||||
+@ stub UiaHPatternObjectFromVariant
|
||||
+@ stub UiaHTextRangeFromVariant
|
||||
+@ stub UiaHUiaNodeFromVariant
|
||||
+@ stub UiaHasServerSideProvider
|
||||
+@ stub UiaHostProviderFromHwnd
|
||||
+@ stub UiaIAccessibleFromProvider
|
||||
+@ stdcall UiaLookupId(long ptr)
|
||||
+@ stub UiaNavigate
|
||||
+@ stub UiaNodeFromFocus
|
||||
+@ stub UiaNodeFromHandle
|
||||
+@ stub UiaNodeFromPoint
|
||||
+@ stub UiaNodeFromProvider
|
||||
+@ stub UiaNodeRelease
|
||||
+@ stub UiaPatternRelease
|
||||
+@ stub UiaProviderForNonClient
|
||||
+@ stub UiaProviderFromIAccessible
|
||||
+@ stub UiaRaiseAsyncContentLoadedEvent
|
||||
+@ stub UiaRaiseAutomationEvent
|
||||
+@ stub UiaRaiseAutomationPropertyChangedEvent
|
||||
+@ stub UiaRaiseStructureChangedEvent
|
||||
+@ stub UiaRaiseTextEditTextChangedEvent
|
||||
+@ stub UiaRegisterProviderCallback
|
||||
+@ stub UiaRemoveEvent
|
||||
+@ stdcall UiaReturnRawElementProvider(long long long ptr)
|
||||
+@ stub UiaSetFocus
|
||||
+@ stub UiaTextRangeRelease
|
||||
+@ stub ValuePattern_SetValue
|
||||
+@ stub VirtualizedItemPattern_Realize
|
||||
+@ stub WindowPattern_Close
|
||||
+@ stub WindowPattern_SetWindowVisualState
|
||||
+@ stub WindowPattern_WaitForInputIdle
|
||||
diff --git a/include/uiautomationcoreapi.h b/include/uiautomationcoreapi.h
|
||||
index 340f500..b9107ce 100644
|
||||
--- a/include/uiautomationcoreapi.h
|
||||
+++ b/include/uiautomationcoreapi.h
|
||||
@@ -19,6 +19,8 @@
|
||||
#ifndef _INC_UIAUTOMATIONCOREAPI
|
||||
#define _INC_UIAUTOMATIONCOREAPI
|
||||
|
||||
+#include "uiautomationcore.h"
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -34,6 +36,16 @@ extern "C" {
|
||||
#define UiaAppendRuntimeId 3
|
||||
#define UiaRootObjectId -25
|
||||
|
||||
+typedef enum AutomationIdentifierType
|
||||
+{
|
||||
+ AutomationIdentifierType_Property,
|
||||
+ AutomationIdentifierType_Pattern,
|
||||
+ AutomationIdentifierType_Event,
|
||||
+ AutomationIdentifierType_ControlType,
|
||||
+ AutomationIdentifierType_TextAttribute,
|
||||
+ AutomationIdentifierType_LandmarkType,
|
||||
+} AutomationIdentifierType;
|
||||
+
|
||||
DECLARE_HANDLE(HUIANODE);
|
||||
DECLARE_HANDLE(HUIAPATTERNOBJECT);
|
||||
DECLARE_HANDLE(HUIATEXTRANGE);
|
||||
@@ -41,6 +53,10 @@ DECLARE_HANDLE(HUIAEVENT);
|
||||
|
||||
BOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj);
|
||||
BOOL WINAPI UiaTextRangeRelease(HUIATEXTRANGE hobj);
|
||||
+int WINAPI UiaLookupId(AutomationIdentifierType type, const GUID *guid);
|
||||
+HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value);
|
||||
+HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value);
|
||||
+LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wparam, LPARAM lparam, IRawElementProviderSimple *provider);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -19,7 +19,6 @@ Fixes: Add ext-ms-win-kernel32-package-current-l1-1-0 dll
|
||||
Fixes: Add kernelbase dll
|
||||
Fixes: Add iertutil dll
|
||||
Fixes: Add shcore dll
|
||||
Depends: kernel32-GetFinalPathNameByHandle
|
||||
Depends: kernel32-FreeUserPhysicalPages
|
||||
Fixes: [40451] Add feclient dll
|
||||
Depends: kernel32-GetCurrentPackageFamilyName
|
||||
Depends: combase-RoApi
|
||||
|
@@ -0,0 +1,116 @@
|
||||
From 8113f7a7b3c214b5c9d07a4b6f5b0d97d6f576f1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 12 Jul 2014 23:58:19 +0200
|
||||
Subject: comctl32: Preserve custom colors between subitems. (v2)
|
||||
|
||||
---
|
||||
dlls/comctl32/listview.c | 20 +++++++++-----------
|
||||
dlls/comctl32/tests/listview.c | 27 ++++++++++++++++++++++-----
|
||||
2 files changed, 31 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
|
||||
index 784ca7b..2c4051d 100644
|
||||
--- a/dlls/comctl32/listview.c
|
||||
+++ b/dlls/comctl32/listview.c
|
||||
@@ -1054,7 +1054,7 @@ static void prepaint_setup (const LISTVIEW_INFO *infoPtr, HDC hdc, NMLVCUSTOMDRA
|
||||
COLORREF backcolor, textcolor;
|
||||
|
||||
/* apparently, for selected items, we have to override the returned values */
|
||||
- if (!SubItem)
|
||||
+ if (!SubItem || (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT))
|
||||
{
|
||||
if (lpnmlvcd->nmcd.uItemState & CDIS_SELECTED)
|
||||
{
|
||||
@@ -4767,6 +4767,7 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
while (iterator_next(subitems))
|
||||
{
|
||||
DWORD subitemstage = CDRF_DODEFAULT;
|
||||
+ NMLVCUSTOMDRAW temp_nmlvcd;
|
||||
|
||||
/* We need to query for each subitem, item's data (subitem == 0) is already here at this point */
|
||||
if (subitems->nItem)
|
||||
@@ -4793,19 +4794,16 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
|
||||
if (cdsubitemmode & CDRF_NOTIFYSUBITEMDRAW)
|
||||
subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd);
|
||||
- else
|
||||
- {
|
||||
- nmlvcd.clrTextBk = infoPtr->clrTextBk;
|
||||
- nmlvcd.clrText = infoPtr->clrText;
|
||||
- }
|
||||
|
||||
- if (subitems->nItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW))
|
||||
- prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE);
|
||||
- else if (!(infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT))
|
||||
- prepaint_setup(infoPtr, hdc, &nmlvcd, TRUE);
|
||||
+ /*
|
||||
+ * A selection should neither affect the colors in the post paint notification nor
|
||||
+ * affect the colors of the next drawn subitem. Copy the structure to prevent this.
|
||||
+ */
|
||||
+ temp_nmlvcd = nmlvcd;
|
||||
+ prepaint_setup(infoPtr, hdc, &temp_nmlvcd, subitems->nItem);
|
||||
|
||||
if (!(subitemstage & CDRF_SKIPDEFAULT))
|
||||
- LISTVIEW_DrawItemPart(infoPtr, &lvItem, &nmlvcd, &pos);
|
||||
+ LISTVIEW_DrawItemPart(infoPtr, &lvItem, &temp_nmlvcd, &pos);
|
||||
|
||||
if (subitemstage & CDRF_NOTIFYPOSTPAINT)
|
||||
subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPOSTPAINT, &nmlvcd);
|
||||
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
|
||||
index ed5d9f9..64cc214 100644
|
||||
--- a/dlls/comctl32/tests/listview.c
|
||||
+++ b/dlls/comctl32/tests/listview.c
|
||||
@@ -1823,14 +1823,18 @@ static LRESULT WINAPI cd_wndproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||
clr = GetBkColor(nmlvcd->nmcd.hdc);
|
||||
ok(nmlvcd->clrTextBk == CLR_DEFAULT, "got 0x%x\n", nmlvcd->clrTextBk);
|
||||
ok(nmlvcd->clrText == RGB(0, 255, 0), "got 0x%x\n", nmlvcd->clrText);
|
||||
- if (nmlvcd->iSubItem)
|
||||
- todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
- else
|
||||
- ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
+ if (!(GetWindowLongW(nmhdr->hwndFrom, GWL_STYLE) & LVS_SHOWSELALWAYS))
|
||||
+ {
|
||||
+ if (nmlvcd->iSubItem)
|
||||
+ todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
+ else
|
||||
+ ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
+ }
|
||||
return CDRF_NOTIFYPOSTPAINT;
|
||||
case CDDS_ITEMPOSTPAINT | CDDS_SUBITEM:
|
||||
clr = GetBkColor(nmlvcd->nmcd.hdc);
|
||||
- todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
+ if (!(GetWindowLongW(nmhdr->hwndFrom, GWL_STYLE) & LVS_SHOWSELALWAYS))
|
||||
+ todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
ok(nmlvcd->clrTextBk == CLR_DEFAULT, "got 0x%x\n", nmlvcd->clrTextBk);
|
||||
ok(nmlvcd->clrText == RGB(0, 255, 0), "got 0x%x\n", nmlvcd->clrText);
|
||||
return CDRF_DODEFAULT;
|
||||
@@ -1846,6 +1850,7 @@ static void test_customdraw(void)
|
||||
{
|
||||
HWND hwnd;
|
||||
WNDPROC oldwndproc;
|
||||
+ LVITEMA item;
|
||||
|
||||
hwnd = create_listview_control(LVS_REPORT);
|
||||
|
||||
@@ -1865,6 +1870,18 @@ static void test_customdraw(void)
|
||||
UpdateWindow(hwnd);
|
||||
ok_sequence(sequences, PARENT_CD_SEQ_INDEX, parent_report_cd_seq, "parent customdraw, LVS_REPORT", FALSE);
|
||||
|
||||
+ /* check colors when item is selected */
|
||||
+ SetWindowLongW(hwnd, GWL_STYLE, GetWindowLongW(hwnd, GWL_STYLE) | LVS_SHOWSELALWAYS);
|
||||
+ item.mask = LVIF_STATE;
|
||||
+ item.stateMask = LVIS_SELECTED;
|
||||
+ item.state = LVIS_SELECTED;
|
||||
+ SendMessageA(hwnd, LVM_SETITEMSTATE, 0, (LPARAM)&item);
|
||||
+
|
||||
+ flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
+ InvalidateRect(hwnd, NULL, TRUE);
|
||||
+ UpdateWindow(hwnd);
|
||||
+ ok_sequence(sequences, PARENT_CD_SEQ_INDEX, parent_report_cd_seq, "parent customdraw, LVS_REPORT, selection", FALSE);
|
||||
+
|
||||
DestroyWindow(hwnd);
|
||||
|
||||
hwnd = create_listview_control(LVS_LIST);
|
||||
--
|
||||
2.8.0
|
||||
|
1
patches/comctl32-Listview_DrawItem/definition
Normal file
1
patches/comctl32-Listview_DrawItem/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [38941] Preserve custom colors between subitems for listview control
|
@@ -0,0 +1,74 @@
|
||||
From 022ab9291e3d8c324c7c2dacbfb0b23e234fb4ae Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Tue, 26 Apr 2016 18:28:21 +0800
|
||||
Subject: comdlg32: Postpone setting ofn->lpstrFileTitle to work around an
|
||||
application bug.
|
||||
|
||||
An application in the bug 38400 passes a not initialized ofn->lpstrFileTitle
|
||||
to GetSaveFileNameW(). Basically ofn->lpstrFileTitle points to the stack
|
||||
approximately 428 bytes above the current stack pointer, and since Wine's
|
||||
GetSaveFileNameW() uses more than 4096 bytes one of internal stack frames is
|
||||
guaranteed to be trashed after copying file name to ofn->lpstrFileTitle.
|
||||
---
|
||||
dlls/comdlg32/filedlg.c | 31 ++++++++++++++-----------------
|
||||
1 file changed, 14 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c
|
||||
index 1453396..6a6a093 100644
|
||||
--- a/dlls/comdlg32/filedlg.c
|
||||
+++ b/dlls/comdlg32/filedlg.c
|
||||
@@ -463,6 +463,13 @@ static BOOL GetFileDialog95A(LPOPENFILENAMEA ofn,UINT iDlgType)
|
||||
ret = FALSE;
|
||||
}
|
||||
|
||||
+ /* set the lpstrFileTitle */
|
||||
+ if (ret && ofn->lpstrFile && ofn->lpstrFileTitle)
|
||||
+ {
|
||||
+ LPSTR lpstrFileTitle = PathFindFileNameA(ofn->lpstrFile);
|
||||
+ lstrcpynA(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle);
|
||||
+ }
|
||||
+
|
||||
if (lpstrSavDir)
|
||||
{
|
||||
SetCurrentDirectoryA(lpstrSavDir);
|
||||
@@ -555,6 +562,13 @@ static BOOL GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType)
|
||||
ret = FALSE;
|
||||
}
|
||||
|
||||
+ /* set the lpstrFileTitle */
|
||||
+ if (ret && ofn->lpstrFile && ofn->lpstrFileTitle)
|
||||
+ {
|
||||
+ LPWSTR lpstrFileTitle = PathFindFileNameW(ofn->lpstrFile);
|
||||
+ lstrcpynW(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle);
|
||||
+ }
|
||||
+
|
||||
if (lpstrSavDir)
|
||||
{
|
||||
SetCurrentDirectoryW(lpstrSavDir);
|
||||
@@ -2735,23 +2749,6 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
|
||||
fodInfos->ofnInfos->nFileExtension = (*lpszTemp) ? (lpszTemp - tempFileA) + 1 : 0;
|
||||
}
|
||||
|
||||
- /* set the lpstrFileTitle */
|
||||
- if(fodInfos->ofnInfos->lpstrFileTitle)
|
||||
- {
|
||||
- LPWSTR lpstrFileTitle = PathFindFileNameW(lpstrPathAndFile);
|
||||
- if(fodInfos->unicode)
|
||||
- {
|
||||
- LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
|
||||
- lstrcpynW(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- LPOPENFILENAMEA ofn = (LPOPENFILENAMEA)fodInfos->ofnInfos;
|
||||
- WideCharToMultiByte(CP_ACP, 0, lpstrFileTitle, -1,
|
||||
- ofn->lpstrFileTitle, ofn->nMaxFileTitle, NULL, NULL);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
/* copy currently selected filter to lpstrCustomFilter */
|
||||
if (fodInfos->ofnInfos->lpstrCustomFilter)
|
||||
{
|
||||
--
|
||||
2.8.0
|
||||
|
2
patches/comdlg32-lpstrFileTitle/definition
Normal file
2
patches/comdlg32-lpstrFileTitle/definition
Normal file
@@ -0,0 +1,2 @@
|
||||
Fixes: [38400] Postpone setting lpstrFileTitle in GetSaveFileNameW
|
||||
Fixes: [35200] Postpone setting lpstrFileTitle in GetSaveFileNameA
|
@@ -1,45 +0,0 @@
|
||||
From 9bfa901639b950dbfb16c67fe881f742445b30da Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 27 Feb 2016 00:49:36 +0100
|
||||
Subject: compobj.dll16: StringFromGUID2 must write a char string into the
|
||||
buffer.
|
||||
|
||||
---
|
||||
dlls/compobj.dll16/compobj.c | 13 +++++++++++--
|
||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/compobj.dll16/compobj.c b/dlls/compobj.dll16/compobj.c
|
||||
index 6261c13..9ec8556 100644
|
||||
--- a/dlls/compobj.dll16/compobj.c
|
||||
+++ b/dlls/compobj.dll16/compobj.c
|
||||
@@ -54,6 +54,7 @@ typedef LPCSTR LPCOLESTR16;
|
||||
#define STDMETHOD16(m) HRESULT (STDMETHOD16CALLTYPE *m)
|
||||
#define STDMETHOD16_(t,m) t (STDMETHOD16CALLTYPE *m)
|
||||
|
||||
+#define CHARS_IN_GUID 39
|
||||
|
||||
/***********************************************************************
|
||||
* IMalloc16 interface
|
||||
@@ -689,9 +690,17 @@ HRESULT WINAPI CLSIDFromProgID16(LPCOLESTR16 progid, LPCLSID riid)
|
||||
/******************************************************************************
|
||||
* StringFromGUID2 [COMPOBJ.76]
|
||||
*/
|
||||
-INT WINAPI StringFromGUID216(REFGUID id, LPOLESTR str, INT cmax)
|
||||
+INT WINAPI StringFromGUID216(REFGUID id, LPOLESTR16 str, INT cmax)
|
||||
{
|
||||
- return StringFromGUID2( id, str, cmax );
|
||||
+ static const char format[] = "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}";
|
||||
+
|
||||
+ if (!id || cmax < CHARS_IN_GUID) return 0;
|
||||
+
|
||||
+ sprintf( str, format, id->Data1, id->Data2, id->Data3,
|
||||
+ id->Data4[0], id->Data4[1], id->Data4[2], id->Data4[3],
|
||||
+ id->Data4[4], id->Data4[5], id->Data4[6], id->Data4[7] );
|
||||
+
|
||||
+ return CHARS_IN_GUID;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: Fix implementation of compobj.dll16.StringFromGUID2 function
|
@@ -1,30 +0,0 @@
|
||||
From 4b55f147ef88c192985081fc5a023de2b198cfb1 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 7 Mar 2016 02:40:56 +0100
|
||||
Subject: configure.ac: Fix cross-compiling of 32-bit Wine for OSX.
|
||||
|
||||
---
|
||||
configure.ac | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b57ff6a..fd65810 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -175,6 +175,13 @@ case $host in
|
||||
AC_SUBST(TARGETFLAGS,"-marm")
|
||||
;;
|
||||
i[[3456789]]86*)
|
||||
+ if test "$cross_compiling" = "yes"; then
|
||||
+ CC="$CC -m32"
|
||||
+ CXX="$CXX -m32"
|
||||
+ host_cpu="i386"
|
||||
+ notice_platform="32-bit "
|
||||
+ AC_SUBST(TARGETFLAGS,"-m32")
|
||||
+ fi
|
||||
enable_win16=${enable_win16:-yes}
|
||||
;;
|
||||
esac
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -0,0 +1,24 @@
|
||||
From 46a3f35c38aa4dcb9ca3101fc346fe44fa0d240d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 15 May 2016 17:30:35 +0200
|
||||
Subject: d2d1/tests: Avoid test failure on specific Nvidia graphic cards.
|
||||
|
||||
---
|
||||
dlls/d2d1/tests/d2d1.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
|
||||
index 7f9632f..0961373 100644
|
||||
--- a/dlls/d2d1/tests/d2d1.c
|
||||
+++ b/dlls/d2d1/tests/d2d1.c
|
||||
@@ -1103,6 +1103,7 @@ static void test_bitmap_brush(void)
|
||||
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL);
|
||||
ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
|
||||
match = compare_surface(surface, "393636185359a550d459e1e5f0e25411814f724c");
|
||||
+ todo_wine_if (compare_surface(surface, "f428a7d2f886e33a8be006a831fb38d88b235884"))
|
||||
ok(match, "Surface does not match.\n");
|
||||
|
||||
ID2D1RenderTarget_BeginDraw(rt);
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a408faad22694f7dd6b9e24b3f47ac60fc6f4c4f Mon Sep 17 00:00:00 2001
|
||||
From 26a7497a9fb1184080a1622f6a834bed50d2a239 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Wed, 3 Jun 2015 22:57:21 +0200
|
||||
Subject: winex11.drv: Allow changing the opengl pixel format on the desktop
|
||||
@@ -11,16 +11,74 @@ window will fail because of this limitation. Unless someone comes up with
|
||||
a more correct solution or finds an application that breaks because of this,
|
||||
it seems to be a suitable workaround as it fixes multiple applications.
|
||||
---
|
||||
dlls/d3d9/tests/device.c | 16 ++++++++++++++++
|
||||
dlls/winex11.drv/opengl.c | 5 ++++-
|
||||
2 files changed, 20 insertions(+), 1 deletion(-)
|
||||
dlls/d3d10_1/tests/d3d10_1.c | 14 ++++++++++++--
|
||||
dlls/d3d11/tests/d3d11.c | 20 ++++++++++++++++----
|
||||
dlls/d3d9/tests/device.c | 16 ++++++++++++++++
|
||||
dlls/winex11.drv/opengl.c | 5 ++++-
|
||||
4 files changed, 48 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d10_1/tests/d3d10_1.c b/dlls/d3d10_1/tests/d3d10_1.c
|
||||
index f5b1454..ac21f68 100644
|
||||
--- a/dlls/d3d10_1/tests/d3d10_1.c
|
||||
+++ b/dlls/d3d10_1/tests/d3d10_1.c
|
||||
@@ -226,8 +226,18 @@ static void test_create_device(void)
|
||||
hr = D3D10CreateDeviceAndSwapChain1(NULL, D3D10_DRIVER_TYPE_HARDWARE, NULL, 0,
|
||||
supported_feature_level, D3D10_1_SDK_VERSION, &swapchain_desc, &swapchain, &device);
|
||||
todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "D3D10CreateDeviceAndSwapChain1 returned %#x.\n", hr);
|
||||
- ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
- ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
+ if (SUCCEEDED(hr))
|
||||
+ {
|
||||
+ refcount = IDXGISwapChain_Release(swapchain);
|
||||
+ ok(!refcount, "Swapchain has %u references left.\n", refcount);
|
||||
+ refcount = ID3D10Device1_Release(device);
|
||||
+ ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
+ ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
+ }
|
||||
|
||||
swapchain = (IDXGISwapChain *)0xdeadbeef;
|
||||
device = (ID3D10Device1 *)0xdeadbeef;
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 04a369c..ee506f5 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -805,10 +805,22 @@ static void test_create_device(void)
|
||||
hr = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, NULL, 0, D3D11_SDK_VERSION,
|
||||
&swapchain_desc, &swapchain, &device, &feature_level, &immediate_context);
|
||||
todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "D3D11CreateDeviceAndSwapChain returned %#x.\n", hr);
|
||||
- ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
- ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
- ok(!feature_level, "Got unexpected feature level %#x.\n", feature_level);
|
||||
- ok(!immediate_context, "Got unexpected immediate context pointer %p.\n", immediate_context);
|
||||
+ if (SUCCEEDED(hr))
|
||||
+ {
|
||||
+ refcount = IDXGISwapChain_Release(swapchain);
|
||||
+ ok(!refcount, "Swapchain has %u references left.\n", refcount);
|
||||
+ refcount = ID3D11DeviceContext_Release(immediate_context);
|
||||
+ ok(!refcount, "Immediate context has %u references left.\n", refcount);
|
||||
+ refcount = ID3D11Device_Release(device);
|
||||
+ ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
+ ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
+ ok(!feature_level, "Got unexpected feature level %#x.\n", feature_level);
|
||||
+ ok(!immediate_context, "Got unexpected immediate context pointer %p.\n", immediate_context);
|
||||
+ }
|
||||
|
||||
swapchain = (IDXGISwapChain *)0xdeadbeef;
|
||||
device = (ID3D11Device *)0xdeadbeef;
|
||||
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
|
||||
index 5bf7121..0c2df95 100644
|
||||
index 4302f76..342f8d2 100644
|
||||
--- a/dlls/d3d9/tests/device.c
|
||||
+++ b/dlls/d3d9/tests/device.c
|
||||
@@ -10769,6 +10769,21 @@ static void test_check_device_format(void)
|
||||
IDirect3D9_Release(d3d);
|
||||
@@ -11171,6 +11171,21 @@ static void test_get_render_target_data(void)
|
||||
DestroyWindow(window);
|
||||
}
|
||||
|
||||
+static void test_desktop_window(void)
|
||||
@@ -41,19 +99,19 @@ index 5bf7121..0c2df95 100644
|
||||
START_TEST(device)
|
||||
{
|
||||
WNDCLASSA wc = {0};
|
||||
@@ -10883,6 +10898,7 @@ START_TEST(device)
|
||||
test_resource_priority();
|
||||
test_swapchain_parameters();
|
||||
@@ -11287,6 +11302,7 @@ START_TEST(device)
|
||||
test_check_device_format();
|
||||
test_miptree_layout();
|
||||
test_get_render_target_data();
|
||||
+ test_desktop_window();
|
||||
|
||||
UnregisterClassA("d3d9_test_wc", GetModuleHandleA(NULL));
|
||||
}
|
||||
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
|
||||
index 3d0bd24..845b022 100644
|
||||
index 0f7534e..613d1df 100644
|
||||
--- a/dlls/winex11.drv/opengl.c
|
||||
+++ b/dlls/winex11.drv/opengl.c
|
||||
@@ -1434,12 +1434,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change)
|
||||
@@ -1457,12 +1457,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change)
|
||||
|
||||
TRACE("(%p,%d)\n", hdc, format);
|
||||
|
||||
@@ -71,5 +129,5 @@ index 3d0bd24..845b022 100644
|
||||
if (!fmt)
|
||||
{
|
||||
--
|
||||
2.7.0
|
||||
2.8.0
|
||||
|
||||
|
@@ -1 +0,0 @@
|
||||
Category: stable
|
@@ -0,0 +1,61 @@
|
||||
From a568780e076f43ab5a7f07c4eb963e7777f84255 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 15 May 2016 17:05:15 +0200
|
||||
Subject: d3d9/tests: Avoid test failures on specific Nvidia graphic cards.
|
||||
|
||||
---
|
||||
dlls/d3d9/tests/visual.c | 24 +++++++++++++-----------
|
||||
1 file changed, 13 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index a308311..c3de15e 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -14923,6 +14923,7 @@ static void fp_special_test(void)
|
||||
D3DCOLOR nv40;
|
||||
D3DCOLOR nv50;
|
||||
D3DCOLOR warp;
|
||||
+ D3DCOLOR todo;
|
||||
}
|
||||
vs_body[] =
|
||||
{
|
||||
@@ -14939,17 +14940,17 @@ static void fp_special_test(void)
|
||||
* There are considerable differences between graphics cards in how
|
||||
* these are handled, but pow and nrm never generate INF or NAN on
|
||||
* real hardware. */
|
||||
- {"log", vs_log, sizeof(vs_log), 0x00000000, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000},
|
||||
- {"pow", vs_pow, sizeof(vs_pow), 0x000000ff, 0x000000ff, 0x0000ff00, 0x000000ff, 0x00008000},
|
||||
- {"nrm", vs_nrm, sizeof(vs_nrm), 0x00ff0000, 0x00ff0000, 0x0000ff00, 0x00ff0000, 0x00008000},
|
||||
- {"rcp1", vs_rcp1, sizeof(vs_rcp1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
- {"rcp2", vs_rcp2, sizeof(vs_rcp2), 0x000000ff, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000},
|
||||
- {"rsq1", vs_rsq1, sizeof(vs_rsq1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
- {"rsq2", vs_rsq2, sizeof(vs_rsq2), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
- {"lit", vs_lit, sizeof(vs_lit), 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000},
|
||||
- {"def1", vs_def1, sizeof(vs_def1), 0x000000ff, 0x00007f00, 0x0000ff00, 0x00007f00, 0x00008000},
|
||||
- {"def2", vs_def2, sizeof(vs_def2), 0x00ff0000, 0x00ff7f00, 0x00ff0000, 0x00ff7f00, 0x00ff8000},
|
||||
- {"def3", vs_def3, sizeof(vs_def3), 0x00ff00ff, 0x00ff7f00, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
+ {"log", vs_log, sizeof(vs_log), 0x00000000, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000, ~0U},
|
||||
+ {"pow", vs_pow, sizeof(vs_pow), 0x000000ff, 0x000000ff, 0x0000ff00, 0x000000ff, 0x00008000, ~0U},
|
||||
+ {"nrm", vs_nrm, sizeof(vs_nrm), 0x00ff0000, 0x00ff0000, 0x0000ff00, 0x00ff0000, 0x00008000, ~0U},
|
||||
+ {"rcp1", vs_rcp1, sizeof(vs_rcp1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
+ {"rcp2", vs_rcp2, sizeof(vs_rcp2), 0x000000ff, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000, ~0U},
|
||||
+ {"rsq1", vs_rsq1, sizeof(vs_rsq1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
+ {"rsq2", vs_rsq2, sizeof(vs_rsq2), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
+ {"lit", vs_lit, sizeof(vs_lit), 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, ~0U},
|
||||
+ {"def1", vs_def1, sizeof(vs_def1), 0x000000ff, 0x00007f00, 0x0000ff00, 0x00007f00, 0x00008000, 0x00000000},
|
||||
+ {"def2", vs_def2, sizeof(vs_def2), 0x00ff0000, 0x00ff7f00, 0x00ff0000, 0x00ff7f00, 0x00ff8000, ~0U},
|
||||
+ {"def3", vs_def3, sizeof(vs_def3), 0x00ff00ff, 0x00ff7f00, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
};
|
||||
|
||||
static const DWORD ps_code[] =
|
||||
@@ -15068,6 +15069,7 @@ static void fp_special_test(void)
|
||||
ok(SUCCEEDED(hr), "EndScene failed, hr %#x.\n", hr);
|
||||
|
||||
color = getPixelColor(device, 320, 240);
|
||||
+ todo_wine_if(vs_body[i].todo != ~0U && color_match(color, vs_body[i].todo, 1))
|
||||
ok(color_match(color, vs_body[i].r500, 1)
|
||||
|| color_match(color, vs_body[i].r600, 1)
|
||||
|| color_match(color, vs_body[i].nv40, 1)
|
||||
--
|
||||
2.8.0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user