gdiplus: Use wide-char string literals.
[wine.git] / ANNOUNCE
blob210110395da3a837dbddefc47f7aecd794691eaa
1 The Wine development release 5.21 is now available.
3 What's new in this release (see below for details):
4   - GDI32 library converted to PE.
5   - More fixes for windowless RichEdit.
6   - A number of timezone updates.
7   - Various bug fixes.
9 The source is available from the following locations:
11   https://dl.winehq.org/wine/source/5.x/wine-5.21.tar.xz
12   http://mirrors.ibiblio.org/wine/source/5.x/wine-5.21.tar.xz
14 Binary packages for various distributions will be available from:
16   https://www.winehq.org/download
18 You will find documentation on https://www.winehq.org/documentation
20 You can also get the current source directly from the git
21 repository. Check https://www.winehq.org/git for details.
23 Wine is available thanks to the work of many people. See the file
24 AUTHORS in the distribution for the complete list.
26 ----------------------------------------------------------------
28 Bugs fixed in 5.21 (total 24):
30   22797  'Sample1_DLLEmbedding' example from BoxedApp SDK v3.3.x (native API application virtualization scheme) crashes (needs hookable NtXXXSection API entries / NT syscalls)
31   25834  Adobe Reader X and XI cannot open in Protected Mode due to advapi32.dll CreateRestrictedToken being a stub
32   33072  dxdiag: can't retrieve network info
33   33162  Acrobat Reader 11 crashes on start (native API application virtualization, NtProtectVirtualMemory removes execute page protection on its own code)
34   45349  Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V, World of Warcraft)
35   45550  League of Legends 8.15+ anticheat fails due to incorrect implementation of NtQuerySystemInformation(SystemModuleInformation)
36   45666  Multiple Riot Games' anti-cheat / protection schemes need implementation of NtQuerySystemInformation 'SystemModuleInformationEx' info class (League of Legends 8.15+, Valorant/Vanguard)
37   46373  Unknown game crashes in unimplemented function msvcr80.dll._strnset_s in 1.6.2
38   46870  League of Legends 8.12+ fails to start a game in Vista+ mode (anticheat engine, SystemExtendedProcessInformation)
39   46967  GOG Galaxy doesn't run in virtual desktop
40   48203  Far Manager 3 broken appearance
41   48204  Wineconsole running Far File Manager 3 crashes as soon as you try to resize its window
42   48715  A Wolf RPG game freezes on map transition
43   49298  Path of Exile crashes when switching to Vulkan Renderer on RADV. Switching works in proton.
44   49449  Terraria Mobile Server (.NET 4.x) crashes with System.NotImplementedException NATUPNPLib.IUPnPNAT.get_StaticPortMappingCollection()
45   49610  mu online crashes after login
46   49739  Microsoft Flight Simulator needs netutils.dll and srvcli.dll
47   49785  Linking of some objects sometimes fails with undefined reference to windowscodecs GUIDs
48   49813  Implement debugging feedback extensions  (VK_EXT_debug_utils/VK_EXT_debug_report) to forward data to Linux impl
49   50038  IWbemClassObject::Get method with wszName = NULL crashes inside wbemprox
50   50039  Wine 5.18+ fails build on Ubuntu 18.04 with libwine.so Makefile symbolic link
51   50049  Fallout 76 opens black screen then crashes on start
52   50050  Wine 5.20 build fails on Ubuntu 16.04
53   50077  .NET 3.5SP1 installer depends on PEB->Reserved[1] / AtlThunkSListPtr32 being 0 or 1
55 ----------------------------------------------------------------
57 Changes since 5.20:
59 Aaron Hill (2):
60       qmgr/tests: Fix issues with handling of transient errors.
61       qmgr/tests: Test registering an IBackgroundCopyCallback2.
63 Akihiro Sagawa (1):
64       gdi32: Fix font rendering issue when child font is used.
66 Alexandre Julliard (54):
67       gdi32: Set the font file name directly at creation time.
68       gdi32: Move the text metrics cache into the generic font structure.
69       gdi32: Move the kerning pairs data into the generic font structure.
70       gdi32: Move the fonts directory helper functions out of freetype.c.
71       gdi32: Move the Add/RemoveFontResource() implementation out of freetype.c.
72       gdi32: Move the AddFontMemResourceEx() implementation out of freetype.c.
73       gdi32: Move the loading of system fonts out of freetype.c.
74       gdi32: Move the loading of registry fonts out of freetype.c.
75       gdi32: Move the loading of filesystem fonts out of freetype.c.
76       gdi32: Add a helper to load a font without using a face.
77       gdi32: Allocate the backend font data in the load_font() helper.
78       gdi32: Move the CreateScalableFontResource() implementation out of freetype.c.
79       gdi32: Move part of the GetFontUnicodeRanges() implementation out of freetype.c.
80       gdi32: Move part of the GetCharWidthInfo() implementation out of freetype.c.
81       gdi32: Move the GSUB table support out of freetype.c.
82       gdi32: Store child font objects directly on the child font list.
83       gdi32: Move the glyph index mapping for GetGlyphOutline() out of freetype.c.
84       gdi32: Add a helper to get the FreeType face and cleanup private data.
85       winebuild: Set PE timestamps to a hash of the file name.
86       gdi32: Move the font substitution list out of freetype.c.
87       gdi32: Move the font family list out of freetype.c.
88       gdi32: Move the face data structure out of freetype.c.
89       gdi32: Move the loading of font replacements out of freetype.c.
90       gdi32: Make the family replacement point to the family object.
91       gdi32: Move the font link support out of freetype.c.
92       gdi32: Move the creation of the child font list out of freetype.c.
93       gdi32: Move the dumping of the font list out of freetype.c.
94       gdi32: Add a helper function to create a font from a face.
95       gdi32: Move the font enumeration out of freetype.c.
96       gdi32: Move the default AA flags handling out of freetype.c.
97       gdi32: Move the font list reordering out of freetype.c.
98       gdi32: Add a separate backend function to load the font list.
99       gdi32: Move the font cache out of freetype.c.
100       gdi32: Add a helper function to create a face.
101       gdi32: Update the Windows font registry keys only when they have changed.
102       gdi32: Move the remove_font() function out of freetype.c.
103       gdi32: Add some helper functions for font matching.
104       gdi32: Move the handling of font family fallbacks out of freetype.c.
105       gdi32: Move the rest of the font matching code out of freetype.c.
106       gdi32: Move the SelectFont() implementation out of freetype.c.
107       gdi32: Make a few definitions private to font.c.
108       gdi32: Don't abort enumeration if a font fails to load.
109       gdi32: Store scale as an integer.
110       gdi32: Use FT_MulDiv() instead of the kernel32 function.
111       gdi32: Use ntdll functions for codepage conversions.
112       gdi32: Use ntdll functions for DOS<->Unix path conversions.
113       gdi32: Use ntdll functions for locale support.
114       gdi32: Use ntdll functions for heap allocations.
115       gdi32: Move FreeType support to a new Unix library.
116       gdi32: Move OSMesa support to the Unix library.
117       gdi32: Build with msvcrt.
118       include: Fix setjmp() support with 32-bit ucrtbase.
119       gdi32: Use wide-character string literals.
120       gdi32: Initialize the font gamma ramp with the other font options.
122 Alistair Leslie-Hughes (5):
123       include: Add missing DBPARAM* types and enums.
124       include: Add more DBGUID_* defines.
125       srvcli: Add stub dll.
126       netutils: Add stub dll.
127       include: Add DBPROPSTATUSENUM enum values.
129 Anton Baskanov (5):
130       amstream: Wait for the state transition to complete in AMMultiMediaStream::SetState.
131       amstream: Handle AMMSF_NOCLOCK flag in AMMultiMediaStream::OpenFile.
132       amstream: Release filter critical section before calling upstream seeking methods.
133       amstream: Implement MediaStreamFilter::WaitUntil.
134       amstream: Implement MediaStreamFilter::Flush.
136 Aurimas Fišeras (3):
137       po: Update Lithuanian translation.
138       po: Update Lithuanian translation.
139       po: Update Lithuanian translation.
141 Austin English (10):
142       d3d8thk: Add stub dll.
143       d3dim700: Add stub dll.
144       ddrawex: Add version resource.
145       dpwsockx: Add version resource.
146       dx8vb: Add version resource.
147       ksproxy.ax: Add version resource.
148       ksuser: Add version resource.
149       qdvd: Add version resource.
150       strmdll: Add version resource.
151       dpnsvr: Add version resource.
153 Biswapriyo Nath (1):
154       mf/evr: Initialize variables which are checked conditionally.
156 Brendan Shanks (4):
157       ntdll: Update the PEB structures for newer Windows versions.
158       dbghelp: Use PEB->CloudFileFlags instead of PEB->Reserved for debug base address.
159       ntdll: Rename PEB->Reserved[1] to AtlThunkSListPtr32.
160       include: Force stack alignment on x86_64 with Clang.
162 Damjan Jovanovic (1):
163       oleaut32: IFont never had an IPersistStreamInit interface.
165 Daniel Lehman (11):
166       wine.inf: Fix SA Eastern Standard Time Zone info.
167       tzres: Add Tocantins Standard Time Zone.
168       tzres: Add Magallanes Standard Time Zone.
169       tzres: Add Saint Pierre Standard Time Zone.
170       msvcr110/tests: Use macro to get function address.
171       msvcr110: Add _Context::_CurrentContext.
172       msvcr120/tests: Add _Context::_CurrentContext tests.
173       concrt140/tests: Add _Context::_CurrentContext tests.
174       wine.inf: Update Azerbaijan Time Zone.
175       wine.inf: Update Caucasus Time Zone.
176       wine.inf: Update Pacific SA Time Zone.
178 Derek Lesho (12):
179       winegstreamer: Insert videoconvert into decoded-video streams.
180       winegstreamer: Insert audioconvert into decoded audio streams.
181       winegstreamer: Replace gst_pad_get_current_caps with gst_pad_query_caps.
182       winegstreamer: Implement IMFMediaSource::CreatePresentationDescriptor.
183       mfreadwrite: Abort ReadSample when unable to request any samples.
184       winegstreamer: Implement IMFMediaSource::Start.
185       winegstreamer: Implement IMFMediaStream::RequestSample.
186       mfmediaengine: Provide the partial topology to the media session.
187       mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_CANPLAY upon MF_TOPOSTATUS_READY.
188       mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_PLAYING upon MESessionStarted.
189       mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_ENDED upon MESessionEnded.
190       winegstreamer: Implement IMFMediaStream::GetMediaSource.
192 Eric Kohl (1):
193       widl: Add the [allocate] acf attribute.
195 Esme Povirk (2):
196       windowscodecs: Move TIFF decoding to unix lib.
197       avifil32: Only add the first stream reference to the parent.
199 François Gouget (1):
200       oleacc/tests: Fix the window name and keyboard shortcut tests.
202 Georg Lehmann (5):
203       winevulkan: Implement VK_EXT_debug_report.
204       winevulkan: Don't use comments for object types.
205       winevulkan: Remove comment from VkEnumValue.
206       winevulkan: Implement VK_EXT_debug_marker.
207       winevulkan: Enable VK_EXT_validation_features and VK_EXT_validation_flags.
209 Gijs Vermeulen (8):
210       quartz/vmr9: Don't expose IVMRFilterConfig9 from the VMR7.
211       quartz/vmr9: Don't expose IVMRMonitorConfig9 from the VMR7.
212       quartz/vmr9: Don't expose IVMRMonitorConfig9 in renderless mode.
213       quartz/vmr9: Don't expose IVMRFilterConfig from the VMR9.
214       quartz/vmr9: Don't expose IVMRMonitorConfig from the VMR9.
215       include: Add INetworkEvents and some enums to netlistmgr.idl.
216       quartz: Implement IVMRAspectRatioControl9.
217       netprofm: Create a connection point object for INetworkEvents.
219 Giovanni Mascellani (3):
220       d2d1: Implement D2D1SinCos().
221       d2d1: Implement D2D1Tan().
222       d2d1: Implement D2D1Vec3Length().
224 Hans Leidekker (10):
225       msi: Use wide character string literals in action.c.
226       msi: Use wide character string literals in dialog.c.
227       msi: Use wide character string literals in msi.c.
228       msi: Use wide character string literals in package.c.
229       msi: Use wide character string literals in registry.c.
230       msi: Use wide character string literals in classes.c.
231       msi: Use wide character string literals in the remaining files.
232       msi/tests: Use wide character string literals.
233       wbemprox/tests: Test more sound device properties.
234       jscript: Fix allocation size in BindFunction_call.
236 Huw D. M. Davies (45):
237       riched20: Pass a row ptr to the cursor from row function.
238       riched20: Use row ptrs in the cursor from virtual co-ords function.
239       riched20: Use row and para helpers for the selection function.
240       riched20: Use row helpers for Home/End key handling.
241       riched20: Use row ptrs in the cursor to co-ordinates function.
242       riched20: Use row and para helpers in the extend selection function.
243       riched20: Use a run helper in the delete text function.
244       riched20: Use a row ptr in the run drawing function.
245       riched20: Use row and para ptrs in the ensure visible function.
246       riched20: Fix the struct size check in the para fmt retrieval function.
247       riched20: Pass para ptrs to the various para selection functions.
248       riched20: Use a helper function to find the first row.
249       riched20: Use a helper to find the next run.
250       riched20: Use the paragraph from the cursor.
251       riched20: Use a helper to retrieve the first run.
252       riched20: Use para and run ptrs in the table deletion function.
253       riched20: Use cell ptrs in the append table row function.
254       riched20: Use cell ptrs in the table tab handler.
255       riched20: Use paragraph ptrs in the table move from row start function.
256       riched20: Remove the table corruption check function.
257       riched20: Use a paragraph ptr in the stream in function.
258       riched20: Use paragraph ptrs in the selection link check function.
259       riched20: Use paragraph ptrs in the enter handler.
260       riched20: Use a run ptr in the rtf row handler.
261       riched20: Use paragraph and run ptrs in the find text function.
262       riched20: Use paragraph ptrs in the WM_CHAR handler.
263       riched20: Use a run ptr in the link notify function.
264       riched20: Use para and row ptrs in the EM_GETFIRSTVISIBLELINE handler.
265       riched20: Return a row ptr from the row from row number function.
266       riched20: Use run ptrs in the EM_GETLINECOUNT handler.
267       riched20: Use row ptrs in the EM_GETLINELENGTH handler.
268       riched20: Use run ptrs in the text retrieval function.
269       riched20: Remove unused ME_RowStart().
270       riched20: Use para and row ptrs in the row number from offset function.
271       riched20: Use a paragraph ptr in the clipboard get text function.
272       riched20: Use a paragraph ptr in the rtf writer function.
273       riched20: Use a cell helper in the split paragraph undo function.
274       riched20: Return a row ptr from the row creation function.
275       riched20: Use para_in_table() instead of IsInTable().
276       riched20: Pass paragraph ptrs to the para marking function.
277       riched20: Use more cell helpers in some of the table functions.
278       riched20: Use cell ptrs in the paragraph splitting and joining functions.
279       riched20: Use cell ptrs to link the cells.
280       riched20: Add next / prev run from cursor helpers.
281       riched20: Use paragraph and run ptrs in the cursor structure.
283 Jacek Caban (1):
284       mshtml: Ignore attempts to set read only builtin properties in IE9+ mode.
286 Jan Sikorski (1):
287       wininet: Prevent use after free in logging.
289 Matteo Bruni (1):
290       winemac: Update the stored display settings immediately.
292 Michael Stefaniuc (21):
293       wmic: Use wide-char string literals.
294       wmiutils: Use wide-char string literals.
295       wmp: Use wide-char string literals.
296       sapi: Zero terminate some WCHAR strings.
297       powrprof: Use wide-char string literals.
298       sapi/tests: Use wide-char string literals.
299       msxml3/tests: Use wide-char string literals.
300       appwiz.cpl: Use wide-char string literals.
301       appwiz.cpl: Use zero terminated wide-char strings.
302       serialui: Use wide-char string literals.
303       mshtml: Use wide-char string literals in struct initialization.
304       wscript: Use wide-char string literals.
305       wscript: Zero terminate the host version string to avoid random garbage.
306       wscript: Use a zero terminated wchar string.
307       winedevice: Don't make a variable const just to cast the const away.
308       winedevice: Use wide-char string literals.
309       svchost: Use wide-char string literals.
310       svchost: Inline a simple string.
311       pdh: Use wide-char string literals.
312       mpr: Use wide-char string literals.
313       jscript: Use wide-char string literals in struct initialization.
315 Myah Caron (3):
316       include: Introduce MEM_EXTENDED_PARAMETER.
317       ntdll: Stub NtAllocateVirtualMemoryEx.
318       kernelbase: Implement VirtualAlloc2.
320 Nikolay Sivov (29):
321       evr/mixer: Add IMFClockStateSink stub.
322       mf/evr: Notify mixer and presenter on clock state changes.
323       mf/evr: Implement OnClockSetRate().
324       mfplat: Add IMFGetService stub for 2D memory buffer.
325       evr: Implement sample allocator.
326       include: Remove confusing comment.
327       include: Add IMFVideoSampleAllocatorEx.
328       evr/tests: Add sample allocator test with surface-backed buffers.
329       mfplat: Implement MFCreateDXSurfaceBuffer().
330       evr/allocator: Use different buffer implementation for surface buffers.
331       evr: Add MFCreateDXSurfaceBuffer() forward.
332       evr/presenter: Set mixer output type on type negotiation.
333       mf/copier: Move sample copier to its own file.
334       mf/evr: Pass incoming samples to the mixer.
335       mf/evr: Notify presenter on new input.
336       mfplat: Consider first type entry when returning major type for stream descriptors.
337       mfreadwrite/tests: And some more tests for ReadSample() and failing requests.
338       mfplat: Implement MFFrameRateToAverageTimePerFrame().
339       mfmediaengine: Keep "preload" property.
340       mfplat: Implement MFMapDXGIFormatToDX9Format().
341       mfmediaengine: Add video output topology branch.
342       mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY on first video sample.
343       mfmediaengine: Implement OnVideoStreamTick().
344       mfmediaengine: Implement GetNativeVideoSize().
345       evr/presenter: Create dedicated thread to handle presentation time.
346       evr/presenter: Implement GetCurrentMediaType().
347       mfmediaengine: Implement GetVideoAspectRatio().
348       mfmediaengine: Handle shutdown state in GetNativeVideoSize().
349       evr/sample: Use separate thread for tracking notifications.
351 Olivier F. R. Dierick (1):
352       windowscodecs: Include system header png.h before Windows headers.
354 Paul Gofman (3):
355       kernel32: Align stack in get_proc_address_wrapper().
356       kernelbase: Align stack in GetProcAddress() on x64.
357       kernel32: Add string for E_FAIL error.
359 Pengpeng Dong (1):
360       wbemprox: Implement Win32_SoundDevice.{DeviceID, PNPDeviceID}.
362 Robert Wilhelm (1):
363       vbscript: Allow keywords to be used as function name.
365 Rémi Bernon (4):
366       mscoree/tests: Test invalid assembly paths in registry.
367       mscoree/tests: Test querying interfaces with generated GUID.
368       mscoree: Fallback to assembly name if codebase path is invalid.
369       gdi32: Implement GdiDllInitialize stub.
371 Sergei Trofimovich (1):
372       aclocal.m4: Fix compatibility with upcoming autoconf-2.70.
374 Vitaly Lipatov (1):
375       ncrypt: Add NCryptIsKeyHandle stub.
377 Will Mainio (2):
378       msvcrt: Fix scanf with dashes in scanset.
379       msvcrt/tests: Add scanf tests for dashes in scanset.
381 Zebediah Figura (6):
382       ntdll: Stub NtQuerySystemInformation(SystemExtendedProcessInformation).
383       ntdll: Don't check "info" for NULL in NtQuerySystemInformation(SystemModuleInformation).
384       ntdll/tests: Add more tests for SystemModuleInformation[Ex].
385       ntdll: Semi-stub SystemModuleInformationEx.
386       quartz/tests: Add some more tests for seeking formats.
387       quartz: Treat a filter as supporting IMediaSeeking only if it supports TIME_FORMAT_MEDIA_TIME.
389 Zhiyi Zhang (12):
390       user32/tests: Test changing to a valid depth but zero width and height display mode.
391       user32: Use current width or height if a mode specifies zero width or height for ChangeDisplaySettingsExW().
392       wined3d: Store a struct wined3d pointer in struct wined3d_swapchain_state.
393       winemac.drv: Send HTMENU instead of HTCAPTION to query window activation.
394       winex11.drv: Update a comment.
395       d3d8/tests: Restore display modes at the end of test_wndproc().
396       d3d9/tests: Restore display modes at the end of test_wndproc().
397       ddraw/tests: Test display mode restoration.
398       d3d8/tests: Test display mode restoration.
399       d3d9/tests: Test display mode restoration.
400       dxgi/tests: Test display mode restoration.
401       wined3d: Restore display modes for all outputs when doing mode restoration.
404 Alexandre Julliard
405 julliard@winehq.org