mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against b2aa984743cb568f8e6a634a1536bf65950167db.
This commit is contained in:
parent
0af6df6bc0
commit
a110e490b8
11
README.md
11
README.md
@ -39,13 +39,14 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
**Bug fixes and features included in the next upcoming release [9]:**
|
||||
**Bug fixes and features included in the next upcoming release [10]:**
|
||||
|
||||
* Add implementation for kernel32.GetNumaProcessorNode ([Wine Bug #38660](https://bugs.winehq.org/show_bug.cgi?id=38660))
|
||||
* Allow to enable/disable InsertMode in wineconsole settings ([Wine Bug #38697](https://bugs.winehq.org/show_bug.cgi?id=38697))
|
||||
* Allow to set pixel format for desktop window
|
||||
* Implement mscoree._CorValidateImage for mono runtime ([Wine Bug #38662](https://bugs.winehq.org/show_bug.cgi?id=38662))
|
||||
* Implement proper handling of CLI .NET images in Wine library loader ([Wine Bug #38661](https://bugs.winehq.org/show_bug.cgi?id=38661))
|
||||
* Multiple applications needs better NtQueryInformationJobObject stub ([Wine Bug #38658](https://bugs.winehq.org/show_bug.cgi?id=38658))
|
||||
* Multiple applications needs better NtQueryInformationJobObject stub
|
||||
* Set NamedPipeState to FILE_PIPE_CLOSING_STATE on broken pipe in NtQueryInformationFile
|
||||
* Support for AT_ROUND_TO_PAGE flag in NtMapViewOfSection
|
||||
* Support for NtSetInformationFile class FileLinkInformation
|
||||
@ -79,7 +80,7 @@ for more details.*
|
||||
* Add stub for d3d11.D3D11CreateDeviceAndSwapChain ([Wine Bug #33153](https://bugs.winehq.org/show_bug.cgi?id=33153))
|
||||
* Add stub for fltlib.FilterLoad ([Wine Bug #38435](https://bugs.winehq.org/show_bug.cgi?id=38435))
|
||||
* Add stub for gdiplus.GdipCreateEffect ([Wine Bug #32163](https://bugs.winehq.org/show_bug.cgi?id=32163))
|
||||
* Add stub for iphlpapi.ConvertInterfaceLuidToGuid ([Wine Bug #38576](https://bugs.winehq.org/show_bug.cgi?id=38576))
|
||||
* ~~Add stub for iphlpapi.ConvertInterfaceLuidToGuid~~ ([Wine Bug #38576](https://bugs.winehq.org/show_bug.cgi?id=38576))
|
||||
* Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode) ([Wine Bug #38493](https://bugs.winehq.org/show_bug.cgi?id=38493))
|
||||
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
|
||||
* Add stub for ntoskrnl.ExDeleteResourceLite
|
||||
@ -101,7 +102,7 @@ for more details.*
|
||||
* Allow special characters in pipe names ([Wine Bug #28995](https://bugs.winehq.org/show_bug.cgi?id=28995))
|
||||
* Allow to cancel a file operation via progress callback ([Wine Bug #22690](https://bugs.winehq.org/show_bug.cgi?id=22690))
|
||||
* Allow to edit winecfg library override by double clicking
|
||||
* Allow to enable/disable InsertMode in wineconsole settings ([Wine Bug #36704](https://bugs.winehq.org/show_bug.cgi?id=36704))
|
||||
* ~~Allow to enable/disable InsertMode in wineconsole settings~~ ([Wine Bug #36704](https://bugs.winehq.org/show_bug.cgi?id=36704))
|
||||
* Allow to open files/directories without any access rights in order to query attributes
|
||||
* Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. ([Wine Bug #12652](https://bugs.winehq.org/show_bug.cgi?id=12652))
|
||||
* ~~Also handle '\r' as whitespace in wbemprox queries~~
|
||||
@ -265,7 +266,7 @@ for more details.*
|
||||
* Support for NVIDIA video encoder library (nvencodeapi)
|
||||
* Support for NtQuerySection ([Wine Bug #37338](https://bugs.winehq.org/show_bug.cgi?id=37338))
|
||||
* Support for NtSetInformationFile class FileDispositionInformation ([Wine Bug #30397](https://bugs.winehq.org/show_bug.cgi?id=30397))
|
||||
* Support for ObjectTypeInformation class support in NtQueryObject
|
||||
* ~~Support for ObjectTypeInformation class support in NtQueryObject~~
|
||||
* Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495))
|
||||
* Support for RtlDecompressBuffer ([Wine Bug #37449](https://bugs.winehq.org/show_bug.cgi?id=37449))
|
||||
* Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 0f3dd71c9bb44c82e1dd38bd2c4eb929bb163685 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 28 May 2015 22:43:27 +0200
|
||||
Subject: iphlpapi: Add stub for ConvertInterfaceLuidToGuid.
|
||||
|
||||
---
|
||||
dlls/iphlpapi/iphlpapi.spec | 2 +-
|
||||
dlls/iphlpapi/iphlpapi_main.c | 9 +++++++++
|
||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/iphlpapi/iphlpapi.spec b/dlls/iphlpapi/iphlpapi.spec
|
||||
index 228f64f..d7a52b7 100644
|
||||
--- a/dlls/iphlpapi/iphlpapi.spec
|
||||
+++ b/dlls/iphlpapi/iphlpapi.spec
|
||||
@@ -15,7 +15,7 @@
|
||||
#@ stub ConvertInterfaceGuidToLuid
|
||||
#@ stub ConvertInterfaceIndexToLuid
|
||||
#@ stub ConvertInterfaceLuidToAlias
|
||||
-#@ stub ConvertInterfaceLuidToGuid
|
||||
+@ stdcall ConvertInterfaceLuidToGuid( ptr ptr )
|
||||
#@ stub ConvertInterfaceLuidToIndex
|
||||
#@ stub ConvertInterfaceLuidToNameA
|
||||
#@ stub ConvertInterfaceLuidToNameW
|
||||
diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
|
||||
index 3eaefab..d3bb853 100644
|
||||
--- a/dlls/iphlpapi/iphlpapi_main.c
|
||||
+++ b/dlls/iphlpapi/iphlpapi_main.c
|
||||
@@ -2658,3 +2658,12 @@ ULONG WINAPI GetTcp6Table2(PMIB_TCP6TABLE2 table, PULONG size, BOOL order)
|
||||
FIXME("pTcp6Table2 %p, size %p, order %d: stub\n", table, size, order);
|
||||
return ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
+
|
||||
+/******************************************************************
|
||||
+ * ConvertInterfaceLuidToGuid (IPHLPAPI.@)
|
||||
+ */
|
||||
+DWORD WINAPI ConvertInterfaceLuidToGuid(const NET_LUID *luid, GUID *guid)
|
||||
+{
|
||||
+ FIXME("luid %p, guid %p: stub\n", luid, guid);
|
||||
+ return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
+}
|
||||
--
|
||||
2.4.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [38576] Add stub for iphlpapi.ConvertInterfaceLuidToGuid
|
@ -1,25 +0,0 @@
|
||||
From 725ae5202ae6206606a330d3799fb620a09dc8f9 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 4 Jun 2015 16:12:58 +0200
|
||||
Subject: ntdll/tests: Don't call lstrlenW on non-null-terminated buffer.
|
||||
|
||||
---
|
||||
dlls/ntdll/tests/directory.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/directory.c b/dlls/ntdll/tests/directory.c
|
||||
index 21aa31f..730b0f1 100644
|
||||
--- a/dlls/ntdll/tests/directory.c
|
||||
+++ b/dlls/ntdll/tests/directory.c
|
||||
@@ -350,7 +350,7 @@ static void test_NtQueryDirectoryFile_case(void)
|
||||
}
|
||||
|
||||
mask.Buffer = testmask;
|
||||
- mask.Length = mask.MaximumLength = lstrlenW(testmask) * sizeof(WCHAR);
|
||||
+ mask.Length = mask.MaximumLength = sizeof(testmask);
|
||||
pNtQueryDirectoryFile(dirh, NULL, NULL, NULL, &io, data, data_size,
|
||||
FileBothDirectoryInformation, TRUE, &mask, FALSE);
|
||||
ok(U(io).Status == STATUS_SUCCESS, "failed to query directory; status %x\n", U(io).Status);
|
||||
--
|
||||
2.4.2
|
||||
|
@ -55,7 +55,7 @@ version()
|
||||
echo "Copyright (C) 2014-2015 the Wine Staging project authors."
|
||||
echo ""
|
||||
echo "Patchset to be applied on upstream Wine:"
|
||||
echo " commit 9ce9ba30ead7560065c3179796eea81066b3b346"
|
||||
echo " commit b2aa984743cb568f8e6a634a1536bf65950167db"
|
||||
echo ""
|
||||
}
|
||||
|
||||
@ -130,7 +130,6 @@ patch_enable_all ()
|
||||
enable_gdiplus_GdipCreateRegionRgnData="$1"
|
||||
enable_imagehlp_BindImageEx="$1"
|
||||
enable_imagehlp_ImageLoad="$1"
|
||||
enable_iphlpapi_ConvertInterfaceLuidToGuid="$1"
|
||||
enable_iphlpapi_TCP_Table="$1"
|
||||
enable_kernel32_CompareStringEx="$1"
|
||||
enable_kernel32_CopyFileEx="$1"
|
||||
@ -164,7 +163,6 @@ patch_enable_all ()
|
||||
enable_ntdll_DOS_Attributes="$1"
|
||||
enable_ntdll_DVD_Read_Size="$1"
|
||||
enable_ntdll_DeviceType_Systemroot="$1"
|
||||
enable_ntdll_Directory_Test="$1"
|
||||
enable_ntdll_DllRedirects="$1"
|
||||
enable_ntdll_Exception="$1"
|
||||
enable_ntdll_FileDispositionInformation="$1"
|
||||
@ -210,7 +208,6 @@ patch_enable_all ()
|
||||
enable_server_JobObjects="$1"
|
||||
enable_server_Key_State="$1"
|
||||
enable_server_Misc_ACL="$1"
|
||||
enable_server_ObjectTypeInformation="$1"
|
||||
enable_server_OpenProcess="$1"
|
||||
enable_server_PeekMessage="$1"
|
||||
enable_server_Realtime_Priority="$1"
|
||||
@ -462,9 +459,6 @@ patch_enable ()
|
||||
imagehlp-ImageLoad)
|
||||
enable_imagehlp_ImageLoad="$2"
|
||||
;;
|
||||
iphlpapi-ConvertInterfaceLuidToGuid)
|
||||
enable_iphlpapi_ConvertInterfaceLuidToGuid="$2"
|
||||
;;
|
||||
iphlpapi-TCP_Table)
|
||||
enable_iphlpapi_TCP_Table="$2"
|
||||
;;
|
||||
@ -564,9 +558,6 @@ patch_enable ()
|
||||
ntdll-DeviceType_Systemroot)
|
||||
enable_ntdll_DeviceType_Systemroot="$2"
|
||||
;;
|
||||
ntdll-Directory_Test)
|
||||
enable_ntdll_Directory_Test="$2"
|
||||
;;
|
||||
ntdll-DllRedirects)
|
||||
enable_ntdll_DllRedirects="$2"
|
||||
;;
|
||||
@ -702,9 +693,6 @@ patch_enable ()
|
||||
server-Misc_ACL)
|
||||
enable_server_Misc_ACL="$2"
|
||||
;;
|
||||
server-ObjectTypeInformation)
|
||||
enable_server_ObjectTypeInformation="$2"
|
||||
;;
|
||||
server-OpenProcess)
|
||||
enable_server_OpenProcess="$2"
|
||||
;;
|
||||
@ -1723,13 +1711,9 @@ if test "$enable_server_ACL_Compat" -eq 1; then
|
||||
fi
|
||||
|
||||
if test "$enable_server_Inherited_ACLs" -eq 1; then
|
||||
if test "$enable_server_ObjectTypeInformation" -gt 1; then
|
||||
abort "Patchset server-ObjectTypeInformation disabled, but server-Inherited_ACLs depends on that."
|
||||
fi
|
||||
if test "$enable_server_Stored_ACLs" -gt 1; then
|
||||
abort "Patchset server-Stored_ACLs disabled, but server-Inherited_ACLs depends on that."
|
||||
fi
|
||||
enable_server_ObjectTypeInformation=1
|
||||
enable_server_Stored_ACLs=1
|
||||
fi
|
||||
|
||||
@ -1840,13 +1824,6 @@ if test "$enable_kernel32_CopyFileEx" -eq 1; then
|
||||
enable_ntdll_FileDispositionInformation=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
|
||||
if test "$enable_server_File_Permissions" -gt 1; then
|
||||
abort "Patchset server-File_Permissions disabled, but ntdll-FileDispositionInformation depends on that."
|
||||
fi
|
||||
enable_server_File_Permissions=1
|
||||
fi
|
||||
|
||||
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
|
||||
if test "$enable_kernel32_SetFileCompletionNotificationMode" -gt 1; then
|
||||
abort "Patchset kernel32-SetFileCompletionNotificationMode disabled, but kernel32-SetFileInformationByHandle depends on that."
|
||||
@ -1854,6 +1831,13 @@ if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
|
||||
enable_kernel32_SetFileCompletionNotificationMode=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
|
||||
if test "$enable_server_File_Permissions" -gt 1; then
|
||||
abort "Patchset server-File_Permissions disabled, but ntdll-FileDispositionInformation depends on that."
|
||||
fi
|
||||
enable_server_File_Permissions=1
|
||||
fi
|
||||
|
||||
if test "$enable_dxva2_Video_Decoder" -eq 1; then
|
||||
if test "$enable_winecfg_Staging" -gt 1; then
|
||||
abort "Patchset winecfg-Staging disabled, but dxva2-Video_Decoder depends on that."
|
||||
@ -2056,23 +2040,6 @@ if test "$enable_Staging" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-Misc_ACL
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#15980] GetSecurityInfo returns NULL DACL for process object
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c
|
||||
# |
|
||||
if test "$enable_server_Misc_ACL" -eq 1; then
|
||||
patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch
|
||||
patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch
|
||||
(
|
||||
echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },';
|
||||
echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-CreateProcess_ACLs
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2092,6 +2059,23 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-Misc_ACL
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#15980] GetSecurityInfo returns NULL DACL for process object
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c
|
||||
# |
|
||||
if test "$enable_server_Misc_ACL" -eq 1; then
|
||||
patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch
|
||||
patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch
|
||||
(
|
||||
echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },';
|
||||
echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset advapi32-LsaLookupSids
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -2935,21 +2919,6 @@ if test "$enable_imagehlp_ImageLoad" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset iphlpapi-ConvertInterfaceLuidToGuid
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38576] Add stub for iphlpapi.ConvertInterfaceLuidToGuid
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/iphlpapi/iphlpapi.spec, dlls/iphlpapi/iphlpapi_main.c
|
||||
# |
|
||||
if test "$enable_iphlpapi_ConvertInterfaceLuidToGuid" -eq 1; then
|
||||
patch_apply iphlpapi-ConvertInterfaceLuidToGuid/0001-iphlpapi-Add-stub-for-ConvertInterfaceLuidToGuid.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "iphlpapi: Add stub for ConvertInterfaceLuidToGuid.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset iphlpapi-TCP_Table
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2977,36 +2946,6 @@ if test "$enable_kernel32_CompareStringEx" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-SetFileCompletionNotificationMode
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38493] Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode)
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec, dlls/kernel32/file.c,
|
||||
# | dlls/kernel32/kernel32.spec, include/winbase.h
|
||||
# |
|
||||
if test "$enable_kernel32_SetFileCompletionNotificationMode" -eq 1; then
|
||||
patch_apply kernel32-SetFileCompletionNotificationMode/0001-kernel32-Implement-SetFileCompletionNotificationMode.patch
|
||||
(
|
||||
echo '+ { "Olivier F. R. Dierick", "kernel32: Implement SetFileCompletionNotificationModes as a stub.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-SetFileInformationByHandle
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/file.c, include/winbase.h
|
||||
# |
|
||||
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
|
||||
patch_apply kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch
|
||||
patch_apply kernel32-SetFileInformationByHandle/0002-kernel32-Implement-SetFileInformationByHandle.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
|
||||
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-File_Permissions
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -3070,6 +3009,36 @@ if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-SetFileCompletionNotificationMode
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38493] Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode)
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec, dlls/kernel32/file.c,
|
||||
# | dlls/kernel32/kernel32.spec, include/winbase.h
|
||||
# |
|
||||
if test "$enable_kernel32_SetFileCompletionNotificationMode" -eq 1; then
|
||||
patch_apply kernel32-SetFileCompletionNotificationMode/0001-kernel32-Implement-SetFileCompletionNotificationMode.patch
|
||||
(
|
||||
echo '+ { "Olivier F. R. Dierick", "kernel32: Implement SetFileCompletionNotificationModes as a stub.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-SetFileInformationByHandle
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/file.c, include/winbase.h
|
||||
# |
|
||||
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
|
||||
patch_apply kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch
|
||||
patch_apply kernel32-SetFileInformationByHandle/0002-kernel32-Implement-SetFileInformationByHandle.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
|
||||
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-CopyFileEx
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -3575,18 +3544,6 @@ if test "$enable_ntdll_DeviceType_Systemroot" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Directory_Test
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/tests/directory.c
|
||||
# |
|
||||
if test "$enable_ntdll_Directory_Test" -eq 1; then
|
||||
patch_apply ntdll-Directory_Test/0001-ntdll-tests-Don-t-call-lstrlenW-on-non-null-terminat.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "ntdll/tests: Don'\''t call lstrlenW on non-null-terminated buffer.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-DllRedirects
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4271,27 +4228,6 @@ if test "$enable_server_Stored_ACLs" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-ObjectTypeInformation
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/om.c, dlls/ntdll/tests/om.c, server/change.c, server/completion.c, server/directory.c, server/file.c,
|
||||
# | server/handle.c, server/object.h, server/protocol.def
|
||||
# |
|
||||
if test "$enable_server_ObjectTypeInformation" -eq 1; then
|
||||
patch_apply server-ObjectTypeInformation/0001-ntdll-Implemenent-ObjectTypeInformation-class-suppor.patch
|
||||
patch_apply server-ObjectTypeInformation/0002-ntdll-tests-Add-a-few-more-ObjectTypeInformation-tes.patch
|
||||
patch_apply server-ObjectTypeInformation/0003-server-Fix-type-name-of-IoCompletion.patch
|
||||
patch_apply server-ObjectTypeInformation/0004-server-Fix-type-name-of-File.patch
|
||||
patch_apply server-ObjectTypeInformation/0005-server-Fix-type-name-of-directory-file.patch
|
||||
(
|
||||
echo '+ { "Qian Hong", "ntdll: Implemenent ObjectTypeInformation class support in NtQueryObject.", 2 },';
|
||||
echo '+ { "Qian Hong", "ntdll/tests: Add a few more ObjectTypeInformation tests.", 1 },';
|
||||
echo '+ { "Qian Hong", "server: Fix type name of IoCompletion.", 1 },';
|
||||
echo '+ { "Qian Hong", "server: Fix type name of File.", 1 },';
|
||||
echo '+ { "Qian Hong", "server: Fix type name of directory file.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-Inherited_ACLs
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -4384,9 +4320,6 @@ fi
|
||||
|
||||
# Patchset server-JobObjects
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38658] Multiple applications needs better NtQueryInformationJobObject stub
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/tests/process.c, dlls/ntdll/sync.c, server/process.c
|
||||
# |
|
||||
@ -5062,7 +4995,7 @@ fi
|
||||
# Patchset wineconsole-Insert_Mode
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#36704] Allow to enable/disable InsertMode in wineconsole settings
|
||||
# | * [#38697] Allow to enable/disable InsertMode in wineconsole settings
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * programs/wineconsole/dialog.c, programs/wineconsole/registry.c, programs/wineconsole/winecon_private.h,
|
||||
@ -5112,6 +5045,33 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-wined3d_swapchain_present
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/swapchain.c
|
||||
# |
|
||||
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
|
||||
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Multisampling
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h
|
||||
# |
|
||||
if test "$enable_wined3d_Multisampling" -eq 1; then
|
||||
patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch
|
||||
(
|
||||
echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Revert_PixelFormat
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -5146,18 +5106,6 @@ if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-resource_check_usage
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/resource.c
|
||||
# |
|
||||
if test "$enable_wined3d_resource_check_usage" -eq 1; then
|
||||
patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch
|
||||
(
|
||||
echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-UnhandledBlendFactor
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -5170,30 +5118,15 @@ if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-wined3d_swapchain_present
|
||||
# Patchset wined3d-resource_check_usage
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/swapchain.c
|
||||
# | * dlls/wined3d/resource.c
|
||||
# |
|
||||
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
|
||||
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
|
||||
if test "$enable_wined3d_resource_check_usage" -eq 1; then
|
||||
patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Multisampling
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h
|
||||
# |
|
||||
if test "$enable_wined3d_Multisampling" -eq 1; then
|
||||
patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch
|
||||
(
|
||||
echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },';
|
||||
echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
|
@ -1,3 +1,2 @@
|
||||
Depends: server-Stored_ACLs
|
||||
Depends: server-ObjectTypeInformation
|
||||
Fixes: [34406] Support for inherited file ACLs
|
||||
|
@ -1,3 +1,3 @@
|
||||
Fixes: [38658] Multiple applications needs better NtQueryInformationJobObject stub
|
||||
Fixes: Multiple applications needs better NtQueryInformationJobObject stub
|
||||
Depends: server-OpenProcess
|
||||
Depends: server-Misc_ACL
|
||||
|
@ -1,205 +0,0 @@
|
||||
From f9347e49de382cb0fd257333f23a5cbc4a8b1de5 Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Tue, 2 Jun 2015 22:09:48 +0800
|
||||
Subject: ntdll: Implemenent ObjectTypeInformation class support in
|
||||
NtQueryObject. (try 2)
|
||||
|
||||
---
|
||||
dlls/ntdll/om.c | 36 ++++++++++++++++++++++++++++++++++++
|
||||
dlls/ntdll/tests/om.c | 22 +++++++++++-----------
|
||||
server/directory.c | 5 -----
|
||||
server/handle.c | 18 ++++++++++++++++++
|
||||
server/object.h | 5 +++++
|
||||
server/protocol.def | 9 +++++++++
|
||||
6 files changed, 79 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/om.c b/dlls/ntdll/om.c
|
||||
index b337444..5acc3cd 100644
|
||||
--- a/dlls/ntdll/om.c
|
||||
+++ b/dlls/ntdll/om.c
|
||||
@@ -150,6 +150,42 @@ NTSTATUS WINAPI NtQueryObject(IN HANDLE handle,
|
||||
SERVER_END_REQ;
|
||||
}
|
||||
break;
|
||||
+ case ObjectTypeInformation:
|
||||
+ {
|
||||
+ OBJECT_TYPE_INFORMATION *p = ptr;
|
||||
+
|
||||
+ SERVER_START_REQ( get_object_typename )
|
||||
+ {
|
||||
+ req->handle = wine_server_obj_handle( handle );
|
||||
+ if (len > sizeof(*p)) wine_server_set_reply( req, p + 1, len - sizeof(*p) );
|
||||
+ status = wine_server_call( req );
|
||||
+ if (status == STATUS_SUCCESS)
|
||||
+ {
|
||||
+ if (!reply->total) /* no name */
|
||||
+ {
|
||||
+ if (sizeof(*p) > len) status = STATUS_INFO_LENGTH_MISMATCH;
|
||||
+ else memset( p, 0, sizeof(*p) );
|
||||
+ if (used_len) *used_len = sizeof(*p);
|
||||
+ }
|
||||
+ else if (sizeof(*p) + reply->total + sizeof(WCHAR) > len)
|
||||
+ {
|
||||
+ if (used_len) *used_len = sizeof(*p) + reply->total + sizeof(WCHAR);
|
||||
+ status = STATUS_INFO_LENGTH_MISMATCH;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ULONG res = wine_server_reply_size( reply );
|
||||
+ p->TypeName.Buffer = (WCHAR *)(p + 1);
|
||||
+ p->TypeName.Length = res;
|
||||
+ p->TypeName.MaximumLength = res + sizeof(WCHAR);
|
||||
+ p->TypeName.Buffer[res / sizeof(WCHAR)] = 0;
|
||||
+ if (used_len) *used_len = sizeof(*p) + p->TypeName.MaximumLength;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ SERVER_END_REQ;
|
||||
+ }
|
||||
+ break;
|
||||
case ObjectDataInformation:
|
||||
{
|
||||
OBJECT_DATA_INFORMATION* p = ptr;
|
||||
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
|
||||
index a7ac95f..945effa 100644
|
||||
--- a/dlls/ntdll/tests/om.c
|
||||
+++ b/dlls/ntdll/tests/om.c
|
||||
@@ -690,8 +690,8 @@ static void test_query_object(void)
|
||||
|
||||
len = 0;
|
||||
status = pNtQueryObject( handle, ObjectTypeInformation, buffer, 0, &len );
|
||||
- todo_wine ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
|
||||
- todo_wine ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
+ ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
|
||||
+ ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
|
||||
len = 0;
|
||||
status = pNtQueryObject( handle, ObjectNameInformation, buffer, sizeof(UNICODE_STRING), &len );
|
||||
@@ -700,8 +700,8 @@ static void test_query_object(void)
|
||||
|
||||
len = 0;
|
||||
status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(OBJECT_TYPE_INFORMATION), &len );
|
||||
- todo_wine ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
|
||||
- todo_wine ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
+ ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
|
||||
+ ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
|
||||
len = 0;
|
||||
status = pNtQueryObject( handle, ObjectNameInformation, buffer, sizeof(buffer), &len );
|
||||
@@ -722,17 +722,17 @@ static void test_query_object(void)
|
||||
len = 0;
|
||||
memset( buffer, 0, sizeof(buffer) );
|
||||
status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
- todo_wine ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
- todo_wine ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
+ ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
+ ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
str = (UNICODE_STRING *)buffer;
|
||||
- todo_wine ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
- todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_event, sizeof(type_event) ),
|
||||
+ ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
+ ok( str->Buffer && !memcmp( str->Buffer, type_event, sizeof(type_event) ),
|
||||
"wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
|
||||
len -= sizeof(WCHAR);
|
||||
status = pNtQueryObject( handle, ObjectTypeInformation, buffer, len, &len );
|
||||
- todo_wine ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
|
||||
- todo_wine ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
+ ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
|
||||
+ ok( len >= sizeof(OBJECT_TYPE_INFORMATION) + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
|
||||
|
||||
pNtClose( handle );
|
||||
|
||||
@@ -777,7 +777,7 @@ static void test_query_object(void)
|
||||
len = 0;
|
||||
memset( buffer, 0, sizeof(buffer) );
|
||||
status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
- todo_wine ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
+ ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
todo_wine ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
str = (UNICODE_STRING *)buffer;
|
||||
expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
diff --git a/server/directory.c b/server/directory.c
|
||||
index 471b844..4fd7c6c 100644
|
||||
--- a/server/directory.c
|
||||
+++ b/server/directory.c
|
||||
@@ -41,11 +41,6 @@
|
||||
|
||||
#define HASH_SIZE 7 /* default hash size */
|
||||
|
||||
-struct object_type
|
||||
-{
|
||||
- struct object obj; /* object header */
|
||||
-};
|
||||
-
|
||||
static void object_type_dump( struct object *obj, int verbose );
|
||||
static struct object_type *object_type_get_type( struct object *obj );
|
||||
|
||||
diff --git a/server/handle.c b/server/handle.c
|
||||
index 5043ff7..3fc608d 100644
|
||||
--- a/server/handle.c
|
||||
+++ b/server/handle.c
|
||||
@@ -650,6 +650,24 @@ DECL_HANDLER(get_object_info)
|
||||
release_object( obj );
|
||||
}
|
||||
|
||||
+DECL_HANDLER(get_object_typename)
|
||||
+{
|
||||
+ struct object *obj;
|
||||
+ struct object_type *type;
|
||||
+ const WCHAR *name;
|
||||
+
|
||||
+ if (!(obj = get_handle_obj( current->process, req->handle, 0, NULL ))) return;
|
||||
+
|
||||
+ reply->total = 0;
|
||||
+ if ((type = obj->ops->get_type( obj )))
|
||||
+ {
|
||||
+ if ((name = get_object_name( &type->obj, &reply->total )))
|
||||
+ set_reply_data( name, min( reply->total, get_reply_max_size() ) );
|
||||
+ release_object( type );
|
||||
+ }
|
||||
+ release_object( obj );
|
||||
+}
|
||||
+
|
||||
DECL_HANDLER(set_security_object)
|
||||
{
|
||||
data_size_t sd_size = get_req_data_size();
|
||||
diff --git a/server/object.h b/server/object.h
|
||||
index b59811f..bf956e1 100644
|
||||
--- a/server/object.h
|
||||
+++ b/server/object.h
|
||||
@@ -105,6 +105,11 @@ struct object
|
||||
#endif
|
||||
};
|
||||
|
||||
+struct object_type
|
||||
+{
|
||||
+ struct object obj; /* object header */
|
||||
+};
|
||||
+
|
||||
struct wait_queue_entry
|
||||
{
|
||||
struct list entry;
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 9c4dab4..7d2a345 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3325,6 +3325,15 @@ enum coords_relative
|
||||
@END
|
||||
|
||||
|
||||
+/* Query object type name information */
|
||||
+@REQ(get_object_typename)
|
||||
+ obj_handle_t handle; /* handle to the object */
|
||||
+@REPLY
|
||||
+ data_size_t total; /* needed size for type name */
|
||||
+ VARARG(typename,unicode_str); /* type name */
|
||||
+@END
|
||||
+
|
||||
+
|
||||
/* Unlink a named object */
|
||||
@REQ(unlink_object)
|
||||
obj_handle_t handle; /* handle to the object */
|
||||
--
|
||||
2.4.2
|
||||
|
@ -1,117 +0,0 @@
|
||||
From 43ed4ed6ee16114f8b313cf1f7d717c51bb08df6 Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Tue, 2 Jun 2015 22:10:06 +0800
|
||||
Subject: ntdll/tests: Add a few more ObjectTypeInformation tests.
|
||||
|
||||
---
|
||||
dlls/ntdll/tests/om.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 67 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
|
||||
index 945effa..8470238 100644
|
||||
--- a/dlls/ntdll/tests/om.c
|
||||
+++ b/dlls/ntdll/tests/om.c
|
||||
@@ -54,6 +54,7 @@ static NTSTATUS (WINAPI *pNtCreateKeyedEvent)( HANDLE *, ACCESS_MASK, const OBJE
|
||||
static NTSTATUS (WINAPI *pNtOpenKeyedEvent)( HANDLE *, ACCESS_MASK, const OBJECT_ATTRIBUTES * );
|
||||
static NTSTATUS (WINAPI *pNtWaitForKeyedEvent)( HANDLE, const void *, BOOLEAN, const LARGE_INTEGER * );
|
||||
static NTSTATUS (WINAPI *pNtReleaseKeyedEvent)( HANDLE, const void *, BOOLEAN, const LARGE_INTEGER * );
|
||||
+static NTSTATUS (WINAPI *pNtCreateIoCompletion)(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, ULONG);
|
||||
|
||||
#define KEYEDEVENT_WAIT 0x0001
|
||||
#define KEYEDEVENT_WAKE 0x0002
|
||||
@@ -674,12 +675,16 @@ static void test_query_object(void)
|
||||
'\\','t','e','s','t','_','e','v','e','n','t'};
|
||||
static const WCHAR type_event[] = {'E','v','e','n','t'};
|
||||
static const WCHAR type_file[] = {'F','i','l','e'};
|
||||
+ static const WCHAR type_iocompletion[] = {'I','o','C','o','m','p','l','e','t','i','o','n'};
|
||||
+ static const WCHAR type_directory[] = {'D','i','r','e','c','t','o','r','y'};
|
||||
+ static const WCHAR type_section[] = {'S','e','c','t','i','o','n'};
|
||||
HANDLE handle;
|
||||
char buffer[1024];
|
||||
NTSTATUS status;
|
||||
ULONG len, expected_len;
|
||||
UNICODE_STRING *str;
|
||||
- char dir[MAX_PATH];
|
||||
+ char dir[MAX_PATH], tmp_path[MAX_PATH], file1[MAX_PATH + 16];
|
||||
+ LARGE_INTEGER size;
|
||||
|
||||
handle = CreateEventA( NULL, FALSE, FALSE, "test_event" );
|
||||
|
||||
@@ -786,6 +791,66 @@ static void test_query_object(void)
|
||||
"wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
|
||||
pNtClose( handle );
|
||||
+
|
||||
+ GetTempPathA(MAX_PATH, tmp_path);
|
||||
+ GetTempFileNameA(tmp_path, "foo", 0, file1);
|
||||
+ handle = CreateFileA(file1, GENERIC_WRITE | DELETE, 0, NULL, CREATE_ALWAYS, 0, 0);
|
||||
+ len = 0;
|
||||
+ memset( buffer, 0, sizeof(buffer) );
|
||||
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
+ ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
+ todo_wine ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
+ str = (UNICODE_STRING *)buffer;
|
||||
+ expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
+ todo_wine ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
+ todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
|
||||
+ "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
+ DeleteFileA( file1 );
|
||||
+ pNtClose( handle );
|
||||
+
|
||||
+ status = pNtCreateIoCompletion( &handle, IO_COMPLETION_ALL_ACCESS, NULL, 0 );
|
||||
+ ok( status == STATUS_SUCCESS, "NtCreateIoCompletion failed %x\n", status);
|
||||
+ len = 0;
|
||||
+ memset( buffer, 0, sizeof(buffer) );
|
||||
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
+ ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
+ ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
+ str = (UNICODE_STRING *)buffer;
|
||||
+ expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
+ ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
+ todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_iocompletion, sizeof(type_iocompletion) ),
|
||||
+ "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
+ pNtClose( handle );
|
||||
+
|
||||
+ status = pNtCreateDirectoryObject( &handle, DIRECTORY_QUERY, NULL );
|
||||
+ ok(status == STATUS_SUCCESS, "Failed to create Directory %08x\n", status);
|
||||
+ len = 0;
|
||||
+ memset( buffer, 0, sizeof(buffer) );
|
||||
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
+ ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
+ ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
+ str = (UNICODE_STRING *)buffer;
|
||||
+ expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
+ ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
+ ok( str->Buffer && !memcmp( str->Buffer, type_directory, sizeof(type_directory) ),
|
||||
+ "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
+ pNtClose( handle );
|
||||
+
|
||||
+ size.u.LowPart = 256;
|
||||
+ size.u.HighPart = 0;
|
||||
+ status = pNtCreateSection( &handle, SECTION_MAP_WRITE, NULL, &size, PAGE_READWRITE, SEC_COMMIT, 0 );
|
||||
+ ok( status == STATUS_SUCCESS , "NtCreateSection returned %x\n", status );
|
||||
+ len = 0;
|
||||
+ memset( buffer, 0, sizeof(buffer) );
|
||||
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
+ ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
+ ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
+ str = (UNICODE_STRING *)buffer;
|
||||
+ expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
+ ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
+ ok( str->Buffer && !memcmp( str->Buffer, type_section, sizeof(type_section) ),
|
||||
+ "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
+ pNtClose( handle );
|
||||
}
|
||||
|
||||
static void test_type_mismatch(void)
|
||||
@@ -1164,6 +1229,7 @@ START_TEST(om)
|
||||
pNtOpenKeyedEvent = (void *)GetProcAddress(hntdll, "NtOpenKeyedEvent");
|
||||
pNtWaitForKeyedEvent = (void *)GetProcAddress(hntdll, "NtWaitForKeyedEvent");
|
||||
pNtReleaseKeyedEvent = (void *)GetProcAddress(hntdll, "NtReleaseKeyedEvent");
|
||||
+ pNtCreateIoCompletion = (void *)GetProcAddress(hntdll, "NtCreateIoCompletion");
|
||||
|
||||
test_case_sensitive();
|
||||
test_namespace_pipe();
|
||||
--
|
||||
2.4.2
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 91dff1ddeeec333d99dced491b362ada546a73f7 Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Tue, 2 Jun 2015 22:10:14 +0800
|
||||
Subject: server: Fix type name of IoCompletion.
|
||||
|
||||
---
|
||||
dlls/ntdll/tests/om.c | 2 +-
|
||||
server/completion.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
|
||||
index 8470238..b7ef99e 100644
|
||||
--- a/dlls/ntdll/tests/om.c
|
||||
+++ b/dlls/ntdll/tests/om.c
|
||||
@@ -818,7 +818,7 @@ static void test_query_object(void)
|
||||
str = (UNICODE_STRING *)buffer;
|
||||
expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
- todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_iocompletion, sizeof(type_iocompletion) ),
|
||||
+ ok( str->Buffer && !memcmp( str->Buffer, type_iocompletion, sizeof(type_iocompletion) ),
|
||||
"wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
pNtClose( handle );
|
||||
|
||||
diff --git a/server/completion.c b/server/completion.c
|
||||
index 0c26c37..77c72cc 100644
|
||||
--- a/server/completion.c
|
||||
+++ b/server/completion.c
|
||||
@@ -109,7 +109,7 @@ static void completion_dump( struct object *obj, int verbose )
|
||||
|
||||
static struct object_type *completion_get_type( struct object *obj )
|
||||
{
|
||||
- static const WCHAR name[] = {'C','o','m','p','l','e','t','i','o','n'};
|
||||
+ static const WCHAR name[] = {'I','o','C','o','m','p','l','e','t','i','o','n'};
|
||||
static const struct unicode_str str = { name, sizeof(name) };
|
||||
return get_object_type( &str );
|
||||
}
|
||||
--
|
||||
2.4.2
|
||||
|
@ -1,67 +0,0 @@
|
||||
From b5241b8f1a33a215b4695bcf7b5abc7e9967c347 Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Tue, 2 Jun 2015 22:10:25 +0800
|
||||
Subject: server: Fix type name of File.
|
||||
|
||||
---
|
||||
dlls/ntdll/tests/om.c | 6 +++---
|
||||
server/file.c | 10 +++++++++-
|
||||
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
|
||||
index b7ef99e..1fa9c47 100644
|
||||
--- a/dlls/ntdll/tests/om.c
|
||||
+++ b/dlls/ntdll/tests/om.c
|
||||
@@ -799,11 +799,11 @@ static void test_query_object(void)
|
||||
memset( buffer, 0, sizeof(buffer) );
|
||||
status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
- todo_wine ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
+ ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
str = (UNICODE_STRING *)buffer;
|
||||
expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
- todo_wine ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
- todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
|
||||
+ ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
+ ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
|
||||
"wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
DeleteFileA( file1 );
|
||||
pNtClose( handle );
|
||||
diff --git a/server/file.c b/server/file.c
|
||||
index 792bbe0..e70304f 100644
|
||||
--- a/server/file.c
|
||||
+++ b/server/file.c
|
||||
@@ -64,6 +64,7 @@ struct file
|
||||
static unsigned int generic_file_map_access( unsigned int access );
|
||||
|
||||
static void file_dump( struct object *obj, int verbose );
|
||||
+static struct object_type *file_get_type( struct object *obj );
|
||||
static struct fd *file_get_fd( struct object *obj );
|
||||
static struct security_descriptor *file_get_sd( struct object *obj );
|
||||
static int file_set_sd( struct object *obj, const struct security_descriptor *sd, unsigned int set_info );
|
||||
@@ -77,7 +78,7 @@ static const struct object_ops file_ops =
|
||||
{
|
||||
sizeof(struct file), /* size */
|
||||
file_dump, /* dump */
|
||||
- no_get_type, /* get_type */
|
||||
+ file_get_type, /* get_type */
|
||||
add_queue, /* add_queue */
|
||||
remove_queue, /* remove_queue */
|
||||
default_fd_signaled, /* signaled */
|
||||
@@ -273,6 +274,13 @@ static void file_dump( struct object *obj, int verbose )
|
||||
fprintf( stderr, "File fd=%p\n", file->fd );
|
||||
}
|
||||
|
||||
+static struct object_type *file_get_type( struct object *obj )
|
||||
+{
|
||||
+ static const WCHAR name[] = {'F','i','l','e'};
|
||||
+ static const struct unicode_str str = { name, sizeof(name) };
|
||||
+ return get_object_type( &str );
|
||||
+}
|
||||
+
|
||||
static int file_get_poll_events( struct fd *fd )
|
||||
{
|
||||
struct file *file = get_fd_user( fd );
|
||||
--
|
||||
2.4.2
|
||||
|
@ -1,66 +0,0 @@
|
||||
From 66b8b246b653b67230e6cd030b0733da1fb2de5b Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Tue, 2 Jun 2015 22:10:37 +0800
|
||||
Subject: server: Fix type name of directory file.
|
||||
|
||||
---
|
||||
dlls/ntdll/tests/om.c | 6 +++---
|
||||
server/change.c | 10 +++++++++-
|
||||
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
|
||||
index 1fa9c47..0f9008a 100644
|
||||
--- a/dlls/ntdll/tests/om.c
|
||||
+++ b/dlls/ntdll/tests/om.c
|
||||
@@ -783,11 +783,11 @@ static void test_query_object(void)
|
||||
memset( buffer, 0, sizeof(buffer) );
|
||||
status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
|
||||
ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
|
||||
- todo_wine ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
+ ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
|
||||
str = (UNICODE_STRING *)buffer;
|
||||
expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
|
||||
- todo_wine ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
- todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
|
||||
+ ok( len >= expected_len, "unexpected len %u\n", len );
|
||||
+ ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
|
||||
"wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
|
||||
|
||||
pNtClose( handle );
|
||||
diff --git a/server/change.c b/server/change.c
|
||||
index 11d9b93..59d1819 100644
|
||||
--- a/server/change.c
|
||||
+++ b/server/change.c
|
||||
@@ -148,13 +148,14 @@ static struct security_descriptor *dir_get_sd( struct object *obj );
|
||||
static int dir_set_sd( struct object *obj, const struct security_descriptor *sd,
|
||||
unsigned int set_info );
|
||||
static void dir_dump( struct object *obj, int verbose );
|
||||
+static struct object_type *dir_get_type( struct object *obj );
|
||||
static void dir_destroy( struct object *obj );
|
||||
|
||||
static const struct object_ops dir_ops =
|
||||
{
|
||||
sizeof(struct dir), /* size */
|
||||
dir_dump, /* dump */
|
||||
- no_get_type, /* get_type */
|
||||
+ dir_get_type, /* get_type */
|
||||
add_queue, /* add_queue */
|
||||
remove_queue, /* remove_queue */
|
||||
default_fd_signaled, /* signaled */
|
||||
@@ -250,6 +251,13 @@ static void dir_dump( struct object *obj, int verbose )
|
||||
fprintf( stderr, "Dirfile fd=%p filter=%08x\n", dir->fd, dir->filter );
|
||||
}
|
||||
|
||||
+static struct object_type *dir_get_type( struct object *obj )
|
||||
+{
|
||||
+ static const WCHAR name[] = {'F','i','l','e'};
|
||||
+ static const struct unicode_str str = { name, sizeof(name) };
|
||||
+ return get_object_type( &str );
|
||||
+}
|
||||
+
|
||||
/* enter here directly from SIGIO signal handler */
|
||||
void do_change_notify( int unix_fd )
|
||||
{
|
||||
--
|
||||
2.4.2
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Support for ObjectTypeInformation class support in NtQueryObject
|
@ -1 +1 @@
|
||||
Fixes: [36704] Allow to enable/disable InsertMode in wineconsole settings
|
||||
Fixes: [38697] Allow to enable/disable InsertMode in wineconsole settings
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a322b70c446dcd49facd2c6987a70b289c4678d1 Mon Sep 17 00:00:00 2001
|
||||
From 3f7a369ba516a2ebe970a5160293d190f806f65e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sun, 7 Apr 2013 17:53:43 +0200
|
||||
Subject: wined3d: Send primitive type updates through the command stream
|
||||
@ -11,10 +11,10 @@ Subject: wined3d: Send primitive type updates through the command stream
|
||||
4 files changed, 40 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 0525a59..a7ba2b4 100644
|
||||
index f385449..8a28c40 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -67,6 +67,7 @@ enum wined3d_cs_op
|
||||
@@ -68,6 +68,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_SET_PS_CONSTS_F,
|
||||
WINED3D_CS_OP_GLFINISH,
|
||||
WINED3D_CS_OP_SET_BASE_VERTEX_INDEX,
|
||||
@ -22,7 +22,7 @@ index 0525a59..a7ba2b4 100644
|
||||
WINED3D_CS_OP_STOP,
|
||||
};
|
||||
|
||||
@@ -297,6 +298,12 @@ struct wined3d_cs_set_base_vertex_index
|
||||
@@ -307,6 +308,12 @@ struct wined3d_cs_set_base_vertex_index
|
||||
UINT base_vertex_index;
|
||||
};
|
||||
|
||||
@ -35,7 +35,7 @@ index 0525a59..a7ba2b4 100644
|
||||
/* FIXME: The list synchronization probably isn't particularly fast. */
|
||||
static void wined3d_cs_list_enqueue(struct wined3d_cs_list *list, struct wined3d_cs_block *block)
|
||||
{
|
||||
@@ -952,9 +959,6 @@ static UINT wined3d_cs_exec_transfer_stateblock(struct wined3d_cs *cs, const voi
|
||||
@@ -977,9 +984,6 @@ static UINT wined3d_cs_exec_transfer_stateblock(struct wined3d_cs *cs, const voi
|
||||
|
||||
/* Don't memcpy the entire struct, we'll remove single items as we add dedicated
|
||||
* ops for setting states */
|
||||
@ -45,7 +45,7 @@ index 0525a59..a7ba2b4 100644
|
||||
memcpy(cs->state.vs_consts_b, op->state.vs_consts_b, sizeof(cs->state.vs_consts_b));
|
||||
memcpy(cs->state.vs_consts_i, op->state.vs_consts_i, sizeof(cs->state.vs_consts_i));
|
||||
|
||||
@@ -975,8 +979,6 @@ void wined3d_cs_emit_transfer_stateblock(struct wined3d_cs *cs, const struct win
|
||||
@@ -1000,8 +1004,6 @@ void wined3d_cs_emit_transfer_stateblock(struct wined3d_cs *cs, const struct win
|
||||
|
||||
/* Don't memcpy the entire struct, we'll remove single items as we add dedicated
|
||||
* ops for setting states */
|
||||
@ -54,7 +54,7 @@ index 0525a59..a7ba2b4 100644
|
||||
memcpy(op->state.vs_consts_b, state->vs_consts_b, sizeof(op->state.vs_consts_b));
|
||||
memcpy(op->state.vs_consts_i, state->vs_consts_i, sizeof(op->state.vs_consts_i));
|
||||
|
||||
@@ -1321,6 +1323,32 @@ void wined3d_cs_emit_set_base_vertex_index(struct wined3d_cs *cs,
|
||||
@@ -1434,6 +1436,32 @@ void wined3d_cs_emit_set_base_vertex_index(struct wined3d_cs *cs,
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ index 0525a59..a7ba2b4 100644
|
||||
+ prev = cs->state.gl_primitive_type;
|
||||
+
|
||||
+ if (op->gl_primitive_type == GL_POINTS || prev == GL_POINTS)
|
||||
+ device_invalidate_state(cs->device, STATE_POINT_SIZE_ENABLE);
|
||||
+ device_invalidate_state(cs->device, STATE_POINT_ENABLE);
|
||||
+
|
||||
+ cs->state.gl_primitive_type = op->gl_primitive_type;
|
||||
+
|
||||
@ -87,7 +87,7 @@ index 0525a59..a7ba2b4 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_FENCE */ wined3d_cs_exec_fence,
|
||||
@@ -1354,6 +1382,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -1468,6 +1496,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_SET_PS_CONSTS_F */ wined3d_cs_exec_set_ps_consts_f,
|
||||
/* WINED3D_CS_OP_GLFINISH */ wined3d_cs_exec_glfinish,
|
||||
/* WINED3D_CS_OP_SET_BASE_VERTEX_INDEX */ wined3d_cs_exec_set_base_vertex_index,
|
||||
@ -96,10 +96,10 @@ index 0525a59..a7ba2b4 100644
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index a80784b..e87a52c 100644
|
||||
index 939d525..49ec1dc 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3348,7 +3348,6 @@ void CDECL wined3d_device_set_primitive_type(struct wined3d_device *device,
|
||||
@@ -3377,7 +3377,6 @@ void CDECL wined3d_device_set_primitive_type(struct wined3d_device *device,
|
||||
enum wined3d_primitive_type primitive_type)
|
||||
{
|
||||
GLenum gl_primitive_type, prev;
|
||||
@ -107,19 +107,19 @@ index a80784b..e87a52c 100644
|
||||
TRACE("device %p, primitive_type %s\n", device, debug_d3dprimitivetype(primitive_type));
|
||||
|
||||
gl_primitive_type = gl_primitive_type_from_d3d(primitive_type);
|
||||
@@ -3356,8 +3355,8 @@ void CDECL wined3d_device_set_primitive_type(struct wined3d_device *device,
|
||||
@@ -3385,8 +3384,8 @@ void CDECL wined3d_device_set_primitive_type(struct wined3d_device *device,
|
||||
device->update_state->gl_primitive_type = gl_primitive_type;
|
||||
if (device->recording)
|
||||
device->recording->changed.primitive_type = TRUE;
|
||||
- else if (gl_primitive_type != prev && (gl_primitive_type == GL_POINTS || prev == GL_POINTS))
|
||||
- device_invalidate_state(device, STATE_POINT_SIZE_ENABLE);
|
||||
- device_invalidate_state(device, STATE_POINT_ENABLE);
|
||||
+ else if (gl_primitive_type != prev)
|
||||
+ wined3d_cs_emit_set_primitive_type(device->cs, gl_primitive_type);
|
||||
}
|
||||
|
||||
void CDECL wined3d_device_get_primitive_type(const struct wined3d_device *device,
|
||||
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
|
||||
index 141e539..606134c 100644
|
||||
index 790d769..cd07055 100644
|
||||
--- a/dlls/wined3d/stateblock.c
|
||||
+++ b/dlls/wined3d/stateblock.c
|
||||
@@ -1075,8 +1075,8 @@ void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock)
|
||||
@ -127,17 +127,17 @@ index 141e539..606134c 100644
|
||||
prev = device->update_state->gl_primitive_type;
|
||||
device->update_state->gl_primitive_type = gl_primitive_type;
|
||||
- if (gl_primitive_type != prev && (gl_primitive_type == GL_POINTS || prev == GL_POINTS))
|
||||
- device_invalidate_state(device, STATE_POINT_SIZE_ENABLE);
|
||||
- device_invalidate_state(device, STATE_POINT_ENABLE);
|
||||
+ if (gl_primitive_type != prev)
|
||||
+ wined3d_cs_emit_set_primitive_type(device->cs, gl_primitive_type);
|
||||
}
|
||||
|
||||
if (stateblock->changed.indices)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 382c120..a647ca9 100644
|
||||
index 3d65d93..bae0336 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2618,6 +2618,8 @@ void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, co
|
||||
@@ -2675,6 +2675,8 @@ void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, co
|
||||
void wined3d_cs_emit_glfinish(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_base_vertex_index(struct wined3d_cs *cs,
|
||||
UINT base_vertex_index) DECLSPEC_HIDDEN;
|
||||
@ -147,5 +147,5 @@ index 382c120..a647ca9 100644
|
||||
/* Direct3D terminology with little modifications. We do not have an issued state
|
||||
* because only the driver knows about it, but we have a created state because d3d
|
||||
--
|
||||
2.1.3
|
||||
2.4.2
|
||||
|
||||
|
@ -378,7 +378,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
|
||||
gl_info->gl_ops.gl.p_glStencilMask(mask);
|
||||
@@ -1164,10 +1185,17 @@
|
||||
@@ -1125,10 +1146,17 @@
|
||||
/* drop through */
|
||||
|
||||
case WINED3D_FOG_NONE:
|
||||
@ -396,7 +396,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
new_source = FOGSOURCE_COORD;
|
||||
gl_info->gl_ops.gl.p_glFogi(GL_FOG_MODE, GL_LINEAR);
|
||||
checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR)");
|
||||
@@ -1683,7 +1711,11 @@
|
||||
@@ -1644,7 +1672,11 @@
|
||||
if (state->render_states[WINED3D_RS_SLOPESCALEDEPTHBIAS]
|
||||
|| state->render_states[WINED3D_RS_DEPTHBIAS])
|
||||
{
|
||||
@ -408,7 +408,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
float scale;
|
||||
|
||||
union
|
||||
@@ -4227,9 +4259,15 @@
|
||||
@@ -4188,9 +4220,15 @@
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -424,7 +424,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
WARN("unsupported blending in openGl\n");
|
||||
}
|
||||
}
|
||||
@@ -4581,7 +4619,11 @@
|
||||
@@ -4542,7 +4580,11 @@
|
||||
|
||||
static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -436,7 +436,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
struct wined3d_viewport vp = state->viewport;
|
||||
|
||||
@@ -4759,7 +4801,11 @@
|
||||
@@ -4720,7 +4762,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -448,7 +448,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
UINT height;
|
||||
UINT width;
|
||||
|
||||
@@ -4823,7 +4869,11 @@
|
||||
@@ -4784,7 +4830,11 @@
|
||||
|
||||
void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -1140,7 +1140,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
default:
|
||||
mat._14 = mat._24 = mat._34 = 0.0f; mat._44 = 1.0f;
|
||||
}
|
||||
@@ -3972,7 +3991,11 @@
|
||||
@@ -4017,7 +4036,11 @@
|
||||
unsigned int i;
|
||||
DWORD ttff;
|
||||
DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2;
|
||||
@ -1610,7 +1610,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
|
||||
wined3d_cs_emit_set_primitive_type(device->cs, gl_primitive_type);
|
||||
+#else /* STAGING_CSMT */
|
||||
+ if (gl_primitive_type != prev && (gl_primitive_type == GL_POINTS || prev == GL_POINTS))
|
||||
+ device_invalidate_state(device, STATE_POINT_SIZE_ENABLE);
|
||||
+ device_invalidate_state(device, STATE_POINT_ENABLE);
|
||||
+#endif /* STAGING_CSMT */
|
||||
}
|
||||
|
||||
@ -1685,7 +1685,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -16880,7 +16880,11 @@
|
||||
@@ -17171,7 +17171,11 @@
|
||||
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
|
||||
add_dirty_rect_test_draw(device);
|
||||
color = getPixelColor(device, 320, 240);
|
||||
@ -1758,7 +1758,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN;
|
||||
@@ -1008,9 +1038,14 @@
|
||||
@@ -1010,9 +1040,14 @@
|
||||
WORD use_map; /* MAX_ATTRIBS, 16 */
|
||||
};
|
||||
|
||||
@ -1773,7 +1773,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN;
|
||||
|
||||
#define eps 1e-8f
|
||||
@@ -1098,8 +1133,10 @@
|
||||
@@ -1100,8 +1135,10 @@
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
@ -1784,7 +1784,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
union wined3d_gl_query_object
|
||||
@@ -1135,6 +1172,7 @@
|
||||
@@ -1137,6 +1174,7 @@
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
@ -1792,7 +1792,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
UINT64 timestamp;
|
||||
};
|
||||
|
||||
@@ -1170,6 +1208,12 @@
|
||||
@@ -1172,6 +1210,12 @@
|
||||
for (i = 0; i < min(dst->rt_size, src->rt_size); i++)
|
||||
dst->render_targets[i] = src->render_targets[i];
|
||||
}
|
||||
@ -1805,7 +1805,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
struct wined3d_context
|
||||
{
|
||||
@@ -1185,7 +1229,9 @@
|
||||
@@ -1187,7 +1231,9 @@
|
||||
DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */
|
||||
DWORD numDirtyEntries;
|
||||
DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */
|
||||
@ -1815,7 +1815,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
struct wined3d_swapchain *swapchain;
|
||||
struct wined3d_surface *current_rt;
|
||||
@@ -1285,8 +1331,17 @@
|
||||
@@ -1287,8 +1333,17 @@
|
||||
GLfloat fog_coord_value;
|
||||
GLfloat color[4], fogstart, fogend, fogcolor[4];
|
||||
GLuint dummy_arbfp_prog;
|
||||
@ -1833,7 +1833,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id);
|
||||
@@ -1420,8 +1475,12 @@
|
||||
@@ -1422,8 +1477,12 @@
|
||||
void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN;
|
||||
BOOL context_apply_clear_state(struct wined3d_context *context, const struct wined3d_device *device,
|
||||
UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN;
|
||||
@ -1846,7 +1846,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target,
|
||||
struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN;
|
||||
void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info,
|
||||
@@ -1973,7 +2032,11 @@
|
||||
@@ -1975,7 +2034,11 @@
|
||||
struct wined3d_state
|
||||
{
|
||||
DWORD flags;
|
||||
@ -1858,7 +1858,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
struct wined3d_vertex_declaration *vertex_declaration;
|
||||
struct wined3d_stream_output stream_output[MAX_STREAM_OUT];
|
||||
@@ -2018,6 +2081,7 @@
|
||||
@@ -2020,6 +2083,7 @@
|
||||
DWORD render_states[WINEHIGHEST_RENDER_STATE + 1];
|
||||
};
|
||||
|
||||
@ -1866,7 +1866,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct wined3d_gl_bo
|
||||
{
|
||||
GLuint name;
|
||||
@@ -2026,6 +2090,7 @@
|
||||
@@ -2028,6 +2092,7 @@
|
||||
UINT size;
|
||||
};
|
||||
|
||||
@ -1874,7 +1874,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
#define WINED3D_UNMAPPED_STAGE ~0U
|
||||
|
||||
/* Multithreaded flag. Removed from the public header to signal that
|
||||
@@ -2081,11 +2146,23 @@
|
||||
@@ -2083,11 +2148,23 @@
|
||||
struct wined3d_rendertarget_view *back_buffer_view;
|
||||
struct wined3d_swapchain **swapchains;
|
||||
UINT swapchain_count;
|
||||
@ -1898,7 +1898,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/* For rendering to a texture using glCopyTexImage */
|
||||
GLuint depth_blt_texture;
|
||||
@@ -2096,6 +2173,9 @@
|
||||
@@ -2098,6 +2175,9 @@
|
||||
UINT xScreenSpace;
|
||||
UINT yScreenSpace;
|
||||
UINT cursorWidth, cursorHeight;
|
||||
@ -1908,7 +1908,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
HCURSOR hardwareCursor;
|
||||
|
||||
/* The Wine logo texture */
|
||||
@@ -2127,6 +2207,7 @@
|
||||
@@ -2129,6 +2209,7 @@
|
||||
UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN;
|
||||
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@ -1916,7 +1916,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
|
||||
void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN;
|
||||
void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture,
|
||||
@@ -2138,6 +2219,11 @@
|
||||
@@ -2140,6 +2221,11 @@
|
||||
void device_create_dummy_textures(struct wined3d_device *device, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
void device_delete_opengl_contexts_cs(struct wined3d_device *device,
|
||||
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
@ -1928,7 +1928,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -2154,9 +2240,11 @@
|
||||
@@ -2156,9 +2242,11 @@
|
||||
ULONG (*resource_incref)(struct wined3d_resource *resource);
|
||||
ULONG (*resource_decref)(struct wined3d_resource *resource);
|
||||
void (*resource_unload)(struct wined3d_resource *resource);
|
||||
@ -1940,7 +1940,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
struct wined3d_resource
|
||||
@@ -2181,6 +2269,7 @@
|
||||
@@ -2183,6 +2271,7 @@
|
||||
UINT depth;
|
||||
UINT size;
|
||||
DWORD priority;
|
||||
@ -1948,7 +1948,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void *heap_memory, *map_heap_memory, *user_memory, *bitmap_data;
|
||||
UINT custom_row_pitch, custom_slice_pitch;
|
||||
struct wined3d_gl_bo *buffer, *map_buffer;
|
||||
@@ -2188,6 +2277,11 @@
|
||||
@@ -2190,6 +2279,11 @@
|
||||
DWORD locations;
|
||||
LONG access_fence;
|
||||
BOOL unmap_dirtify;
|
||||
@ -1960,7 +1960,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
void *parent;
|
||||
const struct wined3d_parent_ops *parent_ops;
|
||||
@@ -2212,6 +2306,7 @@
|
||||
@@ -2214,6 +2308,7 @@
|
||||
void *parent, const struct wined3d_parent_ops *parent_ops,
|
||||
const struct wined3d_resource_ops *resource_ops) DECLSPEC_HIDDEN;
|
||||
void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@ -1968,7 +1968,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN;
|
||||
BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_resource_changed(struct wined3d_resource *resource,
|
||||
@@ -2258,6 +2353,15 @@
|
||||
@@ -2260,6 +2355,15 @@
|
||||
{
|
||||
while(InterlockedCompareExchange(&resource->access_fence, 0, 0));
|
||||
}
|
||||
@ -1984,7 +1984,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/* Tests show that the start address of resources is 32 byte aligned */
|
||||
#define RESOURCE_ALIGNMENT 16
|
||||
@@ -2342,7 +2446,9 @@
|
||||
@@ -2344,7 +2448,9 @@
|
||||
|
||||
void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture,
|
||||
const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
|
||||
@ -1994,7 +1994,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void wined3d_texture_bind(struct wined3d_texture *texture,
|
||||
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
|
||||
void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture,
|
||||
@@ -2376,9 +2482,16 @@
|
||||
@@ -2378,9 +2484,16 @@
|
||||
struct wined3d_resource resource;
|
||||
struct wined3d_texture *container;
|
||||
|
||||
@ -2011,7 +2011,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource)
|
||||
@@ -2386,6 +2499,7 @@
|
||||
@@ -2388,6 +2501,7 @@
|
||||
return CONTAINING_RECORD(resource, struct wined3d_volume, resource);
|
||||
}
|
||||
|
||||
@ -2019,7 +2019,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc,
|
||||
unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN;
|
||||
void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN;
|
||||
@@ -2398,6 +2512,23 @@
|
||||
@@ -2400,6 +2514,23 @@
|
||||
struct wined3d_surface_dib
|
||||
{
|
||||
HBITMAP DIBsection;
|
||||
@ -2043,7 +2043,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
UINT bitmap_size;
|
||||
};
|
||||
|
||||
@@ -2423,7 +2554,11 @@
|
||||
@@ -2425,7 +2556,11 @@
|
||||
struct wined3d_surface_ops
|
||||
{
|
||||
HRESULT (*surface_private_setup)(struct wined3d_surface *surface);
|
||||
@ -2055,7 +2055,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
struct wined3d_surface
|
||||
@@ -2431,12 +2566,25 @@
|
||||
@@ -2433,12 +2568,25 @@
|
||||
struct wined3d_resource resource;
|
||||
const struct wined3d_surface_ops *surface_ops;
|
||||
struct wined3d_texture *container;
|
||||
@ -2081,7 +2081,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
GLuint rb_multisample;
|
||||
GLuint rb_resolved;
|
||||
GLenum texture_target;
|
||||
@@ -2480,10 +2628,19 @@
|
||||
@@ -2482,10 +2630,19 @@
|
||||
GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context,
|
||||
unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN;
|
||||
@ -2101,7 +2101,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN;
|
||||
void surface_prepare_rb(struct wined3d_surface *surface,
|
||||
const struct wined3d_gl_info *gl_info, BOOL multisample) DECLSPEC_HIDDEN;
|
||||
@@ -2495,6 +2652,7 @@
|
||||
@@ -2497,6 +2654,7 @@
|
||||
const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN;
|
||||
HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point,
|
||||
struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN;
|
||||
@ -2109,7 +2109,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc,
|
||||
GLenum target, unsigned int level, unsigned int layer, DWORD flags,
|
||||
struct wined3d_surface **surface) DECLSPEC_HIDDEN;
|
||||
@@ -2513,6 +2671,21 @@
|
||||
@@ -2515,6 +2673,21 @@
|
||||
void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context,
|
||||
const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
void surface_flip(struct wined3d_surface *front, struct wined3d_surface *back) DECLSPEC_HIDDEN;
|
||||
@ -2131,7 +2131,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/* Surface flags: */
|
||||
#define SFLAG_DIBSECTION 0x00000001 /* Has a DIB section attached for GetDC. */
|
||||
@@ -2560,8 +2733,10 @@
|
||||
@@ -2562,8 +2735,10 @@
|
||||
BOOL half_float_conv_needed;
|
||||
};
|
||||
|
||||
@ -2142,7 +2142,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct wined3d_saved_states
|
||||
{
|
||||
DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5) + 1];
|
||||
@@ -2629,6 +2804,7 @@
|
||||
@@ -2631,6 +2806,7 @@
|
||||
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN;
|
||||
|
||||
void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
@ -2150,7 +2150,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl_info,
|
||||
const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN;
|
||||
void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
@@ -2679,6 +2855,32 @@
|
||||
@@ -2681,6 +2857,32 @@
|
||||
void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context,
|
||||
struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN;
|
||||
@ -2183,7 +2183,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
||||
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
|
||||
@@ -2728,6 +2930,7 @@
|
||||
@@ -2730,6 +2932,7 @@
|
||||
void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs,
|
||||
struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN;
|
||||
@ -2191,7 +2191,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, const float *constants,
|
||||
UINT vector4f_count, enum wined3d_shader_type type) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, UINT start_register,
|
||||
@@ -2787,6 +2990,7 @@
|
||||
@@ -2789,6 +2992,7 @@
|
||||
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_getdc(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_releasedc(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
@ -2199,7 +2199,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/* Direct3D terminology with little modifications. We do not have an issued state
|
||||
* because only the driver knows about it, but we have a created state because d3d
|
||||
@@ -2801,8 +3005,12 @@
|
||||
@@ -2803,8 +3007,12 @@
|
||||
struct wined3d_query_ops
|
||||
{
|
||||
HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags);
|
||||
@ -2212,7 +2212,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
struct wined3d_query
|
||||
@@ -2816,12 +3024,16 @@
|
||||
@@ -2818,12 +3026,16 @@
|
||||
enum wined3d_query_type type;
|
||||
DWORD data_size;
|
||||
void *extendedData;
|
||||
@ -2229,7 +2229,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other
|
||||
* fixed function semantics as D3DCOLOR or FLOAT16 */
|
||||
@@ -2848,7 +3060,9 @@
|
||||
@@ -2850,7 +3062,9 @@
|
||||
GLenum buffer_object_usage;
|
||||
GLenum buffer_type_hint;
|
||||
DWORD flags;
|
||||
@ -2239,7 +2239,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void *map_ptr;
|
||||
|
||||
struct wined3d_map_range *maps;
|
||||
@@ -2873,11 +3087,15 @@
|
||||
@@ -2875,11 +3089,15 @@
|
||||
BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context,
|
||||
const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
@ -2255,7 +2255,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
struct wined3d_rendertarget_view
|
||||
{
|
||||
@@ -2916,8 +3134,10 @@
|
||||
@@ -2918,8 +3136,10 @@
|
||||
return surface_from_resource(resource);
|
||||
}
|
||||
|
||||
@ -2266,7 +2266,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct wined3d_shader_resource_view
|
||||
{
|
||||
LONG refcount;
|
||||
@@ -2930,8 +3150,12 @@
|
||||
@@ -2932,8 +3152,12 @@
|
||||
struct wined3d_swapchain_ops
|
||||
{
|
||||
void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect,
|
||||
@ -2279,7 +2279,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
};
|
||||
|
||||
struct wined3d_swapchain
|
||||
@@ -2971,8 +3195,10 @@
|
||||
@@ -2973,8 +3197,10 @@
|
||||
HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
void swapchain_update_render_to_fbo(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
@ -2290,7 +2290,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/*****************************************************************************
|
||||
* Utility function prototypes
|
||||
@@ -3176,7 +3402,9 @@
|
||||
@@ -3178,7 +3404,9 @@
|
||||
void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_string_buffer *buffer,
|
||||
const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN;
|
||||
BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN;
|
||||
@ -3704,7 +3704,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
wined3d_cs_emit_set_primitive_type(device->cs, gl_primitive_type);
|
||||
+#else /* STAGING_CSMT */
|
||||
+ else if (gl_primitive_type != prev && (gl_primitive_type == GL_POINTS || prev == GL_POINTS))
|
||||
+ device_invalidate_state(device, STATE_POINT_SIZE_ENABLE);
|
||||
+ device_invalidate_state(device, STATE_POINT_ENABLE);
|
||||
+#endif /* STAGING_CSMT */
|
||||
}
|
||||
|
||||
@ -4508,7 +4508,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -1497,9 +1497,17 @@
|
||||
@@ -1527,9 +1527,17 @@
|
||||
const struct wined3d_shader_reg_maps *reg_maps, const struct shader_glsl_ctx_priv *ctx_priv)
|
||||
{
|
||||
const struct wined3d_shader_version *version = ®_maps->shader_version;
|
||||
@ -4526,7 +4526,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
unsigned int i, extra_constants_needed = 0;
|
||||
const struct wined3d_shader_lconst *lconst;
|
||||
const char *prefix;
|
||||
@@ -1749,7 +1757,11 @@
|
||||
@@ -1789,7 +1797,11 @@
|
||||
{
|
||||
UINT in_count = min(vec4_varyings(version->major, gl_info), shader->limits->packed_input);
|
||||
|
||||
@ -4538,7 +4538,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
shader_addline(buffer, "varying vec4 %s_link[%u];\n", prefix, in_count);
|
||||
shader_addline(buffer, "vec4 %s_in[%u];\n", prefix, in_count);
|
||||
}
|
||||
@@ -1790,6 +1802,7 @@
|
||||
@@ -1830,6 +1842,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4546,7 +4546,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
/* This happens because we do not have proper tracking of the
|
||||
* constant registers that are actually used, only the max
|
||||
* limit of the shader version.
|
||||
@@ -1798,6 +1811,23 @@
|
||||
@@ -1838,6 +1851,23 @@
|
||||
* it and just create the uniform.
|
||||
*/
|
||||
FIXME("Cannot find a free uniform for vpos correction params\n");
|
||||
|
Loading…
Reference in New Issue
Block a user