news 28 Posted February 19, 2016 The Wine development release 1.9.4 is now available. What's new in this release (see below for details): - Support for color glyphs and font fallbacks in DirectWrite. - Improvements to the WebServices reader. - Support for more formats in Direct3D 11. - Simplified syntax and clean up of tests marked todo. - Various bug fixes. The source is available from the following locations: http://dl.winehq.org/wine/source/1.9/wine-1.9.4.tar.bz2 http://mirrors.ibiblio.org/wine/source/1.9/wine-1.9.4.tar.bz2 Binary packages for various distributions will be available from: http://www.winehq.org/download You will find documentation on http://www.winehq.org/documentation You can also get the current source directly from the git repository. Check http://www.winehq.org/git for details. Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- Bugs fixed in 1.9.4 (total 27): 9823 Mentioning "wine eject" in SGML 11657 Problems with MessageBox API 12217 Documentation should be in XML and not SGML format 13683 Ultima IX: Mouse pointer missing when reading books, under inventory 19733 Pendulumania crashes 21454 Dolphin Wii/GCN emulator crashes on rom load 27680 Multiple 64-bit applications crash on startup (violation of the Windows 64-bit ABI, stack pointer (RSP) must be 16-byte aligned when making a call to Win64 API) 29862 BitComet versionDOS error mappings. winemac.drv: Don't bother storing the OpenGL version. libwine: Define some functions only on i386 (Clang). mscoree: Improve RuntimeHost_Invoke()'s error output a bit. dinput: Don't define a debug channel when it isn't used. gdi32: Declare our intent explicitly to the compiler. mscoree: Implement ICorRuntimeHost::CreateDomain{, Ex}(). advapi32: Don't print 32-bit values as long integers. winemac.drv: Don't print 32-bit values as long integers (Clang). secur32: Don't print 32-bit values as long integers (Clang). quartz: Remove unused variable (Clang). winemac.drv: Actually make the GL context current even if no drawables were given. Detlef Riekenberg (1): api-ms-win-core-localization-l1-1-0: Add stub dll. Dmitry Timoshkov (1): kernel32: CompareStringW should abort on the first nonmatching character to avoid an invalid memory access. François Gouget (16): shell32/tests: Fix okShell()'s tracing so it takes todo and other flags into account. shell32/tests: Fix the DDE tests on Windows 10. shell32/tests: Fix test_dde_default_app() on Windows XP SP1. shell32/tests: Fix a ShellExecute() race condition. shell32/tests: Remove support for a todo_wine flag in ShellExecute()'s test_lnks() loop. shell32/tests: Skip a few ShellExecute() tests when the process has insufficient privileges. shell32/tests: Move a test_argify() check so it is run even if we could not create associations. shell32/tests: Fix the ShellExecute() environment variable inheritance checks. shell32/tests: Allow the short and long forms when checking a ShellExecute() path. shell32/tests: Fix an ok() call so it shows which DDE test caused the failure. shell32/tests: Use todo_wine_if() in tests. shell32/tests: Take into account the Windows 10 DDE race condition. schedsvc/tests: Recognize Windows 10's RPC version. msvcrt/tests: Fix the Norwegian locale tests on Windows 10. crypt32/tests: Clarify some base64 test failed messages. shell32/tests: Only look for Explorer windows for the progman tests. Frédéric Delanoy (10): po: Update French translation. imagehlp/tests: Use todo_wine_if() in tests. kernel32/tests: Use todo_wine_if() in tests. mscms/tests: Use todo_wine_if() in tests. ddraw/tests: Use todo_wine_if() in tests. d3d9/tests: Use todo_wine_if() in tests. d3d8/tests: Use todo_wine_if() in tests. dwrite/tests: Use todo_wine_if() in tests. ieframe/tests: Use todo_wine_if() in tests. mshtml/tests: Use todo_wine_if() in tests. Hans Leidekker (11): webservices: Implement WsFindAttribute. webservices: Reset the attribute index in read_element. webservices: Insert an end element node for self-closing tags in the reader. webservices: Implement WS_MOVE_TO_ROOT_ELEMENT in the reader. webservices: Implement WS_MOVE_TO_NEXT_ELEMENT in the reader. webservices: Implement WS_MOVE_TO_PREVIOUS_ELEMENT in the reader. webservices: Implement WS_MOVE_TO_CHILD_ELEMENT in the reader. webservices: Implement WS_MOVE_TO_END_ELEMENT in the reader. webservices: Implement WS_MOVE_TO_PARENT_ELEMENT in the reader. webservices/tests: Add tests. msi: Fix the CHAR column type. Henri Verbeet (50): ddraw/tests: Rewrite yv12_test(). ddraw/tests: Rewrite offscreen_test(). ddraw/tests: Rewrite rectangle_settings(). wined3d: Introduce wined3d_texture_get_overlay_position(). wined3d: Introduce wined3d_texture_set_overlay_position(). wined3d: Introduce wined3d_texture_update_overlay(). wined3d: Get rid of wined3d_surface_update_overlay_z_order(). wined3d: Get rid of wined3d_device_update_surface(). wined3d: Store the "user_memory" pointer in the texture instead of the surface. wined3d: Store custom pitches in the texture instead of the surface. ddraw: Use the correct height when calculating the linear size in ddraw_surface_init(). wined3d: Handle slice pitch and alignment as well in wined3d_format_calculate_pitch(). wined3d: Use wined3d_format_calculate_pitch() in surface_download_data(). wined3d: Use wined3d_texture_get_pitch() in texture3d_sub_resource_upload_data(). wined3d: Use wined3d_texture_get_pitch() in wined3d_volume_upload_data(). wined3d: Use wined3d_texture_get_pitch() in wined3d_volume_map(). wined3d: Use wined3d_texture_get_pitch() in surface_create_dib_section(). wined3d: Use wined3d_texture_get_pitch() in surface_download_data(). wined3d: Use wined3d_texture_get_pitch() in surface_upload_from_surface(). wined3d: Use wined3d_texture_get_pitch() in wined3d_surface_map(). wined3d: Use wined3d_texture_get_pitch() in read_from_framebuffer(). wined3d: Use wined3d_texture_get_pitch() in surface_load_texture(). ddraw: Use wined3d_texture_get_pitch() in ddraw_surface_init(). wined3d: Get rid of the surface parameter to wined3d_device_parent_ops.surface_created(). wined3d: Ignore wined3d_sampler_desc.srgb_decode if WINED3D_SRGB_READ_WRITE_CONTROL is not set. wined3d: Use FIELD_OFFSET to calculate the size in surface_create_dib_section(). wined3d: Use a wined3d_string_buffer to dump the intermediate shader code. d3d8: Disable WINED3D_SRGB_READ_WRITE_CONTROL. ddraw: Disable WINED3D_SRGB_READ_WRITE_CONTROL. wined3d: Get rid of the unused _WINEDDOVERLAYFX structure. ddraw: Handle DDBLT_DDROPS in ddraw_surface7_Blt(). wined3d: Get rid of unused/unimplemented WINEDDBLT_* flags. wined3d: Replace WINEDDBLTFX with a new structure that only includes the used fields. wined3d: Use wined3d_texture_blt() in resolve_depth_buffer(). ntdll: Add special handling for int $0x2d exceptions. wined3d: Allocate the sub_resources array as part of the texture. wined3d: Introduce wined3d_texture_get_sub_resource_parent(). ddraw: Use wined3d_texture_get_sub_resource_parent() in ddraw_surface_create(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_device_GetBackBuffer(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_device_create_surface(). d3d8: Use wined3d_texture_get_sub_resource_parent() in device_parent_create_swapchain_texture(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_swapchain_GetBackBuffer(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_2d_LockRect(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_2d_UnlockRect(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_2d_GetSurfaceLevel(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_cube_LockRect(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_cube_UnlockRect(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_cube_GetCubeMapSurface(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_3d_LockBox(). d3d8: Use wined3d_texture_get_sub_resource_parent() in d3d8_texture_3d_UnlockBox(). Hugh McMaster (30): reg: Remove stub output from the 'add' and 'delete' functions. reg: Split reg_printfW into separate functions. reg: Use FormatMessage for easier internationalization support. reg: Output messages with a variable number of arguments and convert message arrays to strings. reg: Specify the data type that is unsupported. reg: Output program name instead of the generic 'Error'. reg: Ask the user whether they want to overwrite an existing registry value. reg: Do not allow combinations of /v, /ve or /va in the 'delete' function. reg: Do not allow /v and /ve to be used together in the 'add' function. reg/tests: Add tests for /v* flags. reg: Add support for the default registry value in ask_confirm(). reg: Ask the user if they want to delete the subkey, value, default value or all values. reg/tests: Add tests for /d with no data argument. reg/tests: Fix incorrect expected value. reg: Fail when /d is used without an accompanying argument. reg: Call RegCloseKey before exiting if the user chooses to cancel the overwriting operation. reg: Fail if REG_DWORD is passed with no data argument. reg: Handle data from REG_NONE. reg: Handle data for REG_EXPAND_SZ. reg: Handle data for REG_DWORD_LITTLE_ENDIAN and REG_DWORD_BIG_ENDIAN. reg: Add case for REG_MULTI_SZ. reg: Abort the process if get_regdata returns NULL. reg/tests: Add two more tests for REG_DWORD. reg: Fail if strtolW cannot convert the entire data string into a DWORD. reg: Use strtoulW during conversion so we can set any value in the DWORD range. reg: Fail if the data argument for REG_DWORD begins with a minus sign. reg: Explicitly use base 10 or base 16 with strtoulW. reg: Fail if /s is used without an accompanying argument. reg/tests: Add a test for /s with no separator character. reg: Fail if the separator for REG_MULTI_SZ is not one character in length. Huw D. M. Davies (1): usp10: ScriptPlace should honour the fZeroWidth attribute. Jacek Caban (6): d3d11.idl: Added D3D11_QUERY_DATA_TIMESTAMP_DISJOINT declaration. mshtml/tests: Fixed style tests on IE6. mshtml/tests: Fixed xmlhttprequest tests on IE7. ntdll: Pass SYNCHRONIZE flag in NtOpenFile and NtCreateFile calls. ntdll: Don't call NtOpenKeyEx directly from NtOpenKey. urlmon/tests: Use todo_wine_if in uri.c tests. Jactry Zeng (3): user32/tests: Test DDE end to end with Chinese text that starts with Latin characters. mlang/tests: Simplify test with todo_wine_if. riched32/tests: Simplify tests with todo_wine_if. Jianqiu Zhang (1): wpcap: Fix crash on pcap_loop. Joachim Priesner (1): comctl32: Treeview: Set visible = TRUE when deleting first visible item. Józef Kucia (23): wined3d: Move internal format queries to separate function. wined3d: Add support for separate sRGB formats. d3d11: Enable sRGB decode. d3d11/tests: Add test for sRGB textures. d3d10core/tests: Add test for sRGB textures. wined3d: Allow to query if surface format supports gamma correction. d3d9/tests: Add test for surface format gamma correction query. wined3d: Add support for WINED3DFMT_R16_UINT format. wined3d: Add support for WINED3DFMT_R32G32B32A32_UINT format. wined3d: Add support for WINED3DFMT_R32G32B32A32_SINT format. wined3d: Extend support for typeless formats. d3d11/tests: Test creation of typeless resources. wined3d: Fix comment in init_format_texture_info(). wined3d: Add remaining sRGB formats. wined3d: Introduce table with typed format channels. wined3d: Rename getFmtIdx() to get_format_idx(). wined3d: Use format id as index in formats table whenever possible. wined3d: Copy channel info for typed formats from typeless formats. wined3d: Move more formats to typed_formats table. dxgi: Return S_OK in dxgi_factory_MakeWindowAssociation() stub. d3d11: Do not generate ERR messages for unrecognized shader bytecode. d3d11: Extract SM5 shader code from DXBC. d3d11/tests: Test creation of level_9_* shaders. Ken Thomases (2): wined3d: Change calls of GetDC() to GetDCEx() with DCX_CACHE so the HDC is not shared with other threads. winemac: Wrap performing requests from background threads in an autorelease pool. Lauri Kenttä (2): po: Improve Finnish translation. po: Update Finnish translation. Louis Lenders (1): uxtheme: Fix CloseThemeData with invalid handle value. Marcus Meissner (1): ntdll: Cast left shifted 1 to be ulong wide (Coverity). Matteo Bruni (5): d3d8: Make CheckDeviceType() fail for display formats other than D3DFMT_X8R8G8B8 and D3DFMT_R5G6B5 in full-screen. wined3d: Add WINED3DFMT_FLAG_RENDERTARGET to WINED3DFMT_B5G5R5X1_UNORM. wined3d: Mark a couple of unimplemented relative addressing cases with FIXMEs. d3d10core/tests: Test relative addressing in constant buffers. wined3d: Add shader limits for SM5. Michael Müller (14): msvideo.dll16: Translate 16 bit address in lparam for MCIWNDM_SETTIMEFORMATA message. include: Add definitions for Win8 pseudo handles. server: Add support for Win8 pseudo handles. advapi32/tests: Add tests for Win8 pseudo handles. api-ms-win-core-com-l1-1-1: Add dll. api-ms-win-core-delayload-l1-1-1: Add dll. api-ms-win-core-libraryloader-l1-2-0: Add dll. api-ms-win-core-kernel32-legacy-l1-1-1: Add dll. api-ms-win-eventing-classicprovider-l1-1-0: Add dll. api-ms-win-core-winrt-registration-l1-1-0: Add dll. ntdll: Implement SystemRecommendedSharedDataAlignment class in NtQuerySystemInformation. kernel32: Allow to pass NULL as old protection in VirtualProtect for Win9x compatibility. api-ms-win-core-wow64-l1-1-0: Add dll. api-ms-win-core-threadpool-l1-2-0: Add dll. Nikolay Sivov (53): ntdll: Remove redundant NULL check (Coverity). dwrite: Accept platform 0 name records if there's nothing, else. dwrite: Don't create enumerator with invalid palette. dwrite: Implement IsColorFont(). dwrite: Implement color glyph run decomposition. dwrite: Improve error handling in ConvertFontToLOGFONT() (Coverity). dwrite/tests: Added a drawing test for run reordering case. dwrite: Support optional glyph offsets for color runs. dwrite: Fetch all glyphs at once instead of locking/unlocking for every glyph. gdi32: Fix otmfsSelection to have italic style set in case of oblique simulation. gdi32/tests: Turn some asserts in font tests into regular tests. po: Update Russian translation. gdi32: Fix otmfsSelection to have bold style set in case of bold simulation. dwrite: Add a helper to test for isolate class instead of relying on enum layout. dwrite: Use enum members for class testing, simplify reseting to NI before applying Nx rules. comctl32/tests: Simplify tests using todo_wine_if(). msxml3/tests: Simplify a couple of tests using todo_wine_if(). usp10: Use memcpy() to return ScriptLayout() results. dwrite: Add support for PFM files in Analyze(). gdi32/tests: Simplify tests using todo_wine_if(). user32/tests: Simplify some tests using todo_wine_if(). advapi32/tests: Simplify tests using todo_wine_if(). comdlg32/tests: Simplify a test using todo_wine_if(). gdi32: Only REG_SZ and REG_MULTI_SZ types make sense for font replacement, ignore the rest. dwrite: Support font replacement registry settings. dwrite: Implement stub for system IDWriteFontFallback. dwrite: Keep factory reference for each layout. dwrite: Move local stream tracing to a separate channel. dwrite: Initial implementation of MapCharacters(). dwrite: Use current layout fallback when creating run font faces. po: Update Russian translation. dwrite: Suppress noisy message when parsing name records. mpr: Query for NPAddConnection and NPAddConnection3 when loading a provider. riched20/tests: Use todo_wine_if() in tests. xmllite/tests: Use todo_wine_if() in tests. kernel32/tests: Use todo_wine_if() in tests. dwrite: Force advances to zero for isZeroWidthSpace glyphs. dwrite: Use itemizer hint to reset invisible run glyph count. dwrite: Add fallback data for some of Japanese ranges. dwrite: Always use system font collection to create fallback fonts. include: Add initial dwrite_3.idl. include: Some more definitions for dwrite_3.idl. dwrite: Update to IDWriteTextLayout3. dwrite: Implement InvalidateLayout(). dwrite: Update to IDWriteTextFormat1. xaudio2_7/tests: Use todo_wine_if() in tests. ws2_32/tests: Use todo_wine_if() in tests. wmiutils/tests: Use todo_wine_if() in tests. wininet/tests: Use todo_wine_if() in tests. usp10/tests: Use todo_wine_if() in tests. kernel32/tests: Additional test for GetStringTypeW() and Zl/Zp categories. dwrite: Make SetBidiLevel() calls relative to initial text source position. dwrite: Fix Unknown/Common/Inherited script categories handling. Pierre Schweitzer (1): mpr: Partially implement WNetUseConnectionW(). Piotr Caban (4): user32: Select text control content while setting dialog focus. user32/tests: Add more dialog creation message tests. msvcrt: Don't use isdigit in places where only 0-9 digits are handled. msvcr120: Add wcstof implementation. Qian Hong (2): advapi32/tests: Add invalid parameter tests for AccessCheck. advapi32/tests: Add more invalid parameter tests for AccessCheck. Rafał Harabień (1): msvcr120: Implement atoll, _atoll_l, _wtoll, _wtoll_l. Riccardo Bortolato (1): wined3d: Get rid of wined3d_device_get_surface_from_dc(). Sebastian Lackner (57): server: Fix memory leak of object name structure. server: Fix an invalid memory access in subtract_overlapping (Valgrind). vcomp/tests: Reenable architecture dependent tests. vcomp: Implement 64-bit atomic instructions. vcomp/tests: Add tests for 64-bit atomic instructions. ntdll/tests: Simplify exception tests by using todo_wine_if. kernel32/tests: Simplify activation context tests by using todo_wine_if. mmsystem.dll16: Fix argument order in GlobalAlloc16 call. kernel32/tests: Move logic of okChildInt macro into a function. kernel32/tests: Disable Windows version dependent test for pcPriClassBase. combase: Implement WindowsCompareStringOrdinal. combase/tests: Add tests for WindowsCompareStringOrdinal. combase: Implement WindowsTrimStringStart. combase: Implement WindowsTrimStringEnd. combase/tests: Add tests for WindowsTrimString{Start,End}. ntdll: Implement RtlInterlockedPushListSListEx and fix calling convention of RtlInterlockedPushListSList. kernel32/tests: Clean up interlocked SList tests. kernel32/tests: Add tests for RtlInterlockedPushListSList[Ex]. kernel32: Forward InterlockedPushListSList[Ex] to ntdll. ntdll: Skip unused import descriptors when loading libraries. avifil32/tests: Remove a couple of unnecessary tests. crypt32/tests: Remove duplicate test. msvcp100/tests: Use brackets to protect arguments in call_func2 macro. msvcrt/tests: Use brackets to protect arguments in call_func2 macro. msvcp60/tests: Use brackets to protect arguments in call_func macros. msvcp90/tests: Use brackets to protect arguments in call_func macros. msvcr90/tests: Use brackets to protect arguments in call_func2 macro. xaudio2_7: Unset DebugInfo->Spare[0] before destroying critical sections. mciqtz32: Unset DebugInfo->Spare[0] before destroying critical sections. winmm: Unset DebugInfo->Spare[0] before destroying critical sections. vmm.vxd: Fix protection flags passed to VirtualAlloc. kernel32/tests: Add additional tests for CompareStringA. opengl32: Ensure extension tables generated by make_opengl contain earliest GL_VERSION for each function. kernel32/tests: Add test to show that CompareStringW aborts on first non-matching character. kernel32/tests: Add a test to show that VirtualFree fails with type MEM_FREE. kernel32/tests: Ensure VirtualAlloc tests do not depend on previous memory allocations. ntdll/tests: Fix flags passed to VirtualFree in exception tests. kernel32/tests: Fix flags passed to VirtualFree in multiple tests. ntoskrnl.exe: Fix calling convention of InterlockedPopEntrySList. ntoskrnl.exe: Fix calling convention of InterlockedPushEntrySList. ntoskrnl.exe: Fix calling convention of ObfReferenceObject. ntoskrnl.exe: Use debugstr_us() to trace UNICODE_STRING. oleaut32/tests: Avoid misleading assignment in refcounting tests. ws2_32/tests: Add tests for getsockopt() with SO_SNDBUF and SO_RCVBUF optname. kernel32: Do not inherit QT_* environment variables to Windows environment. services: Start SERVICE_FILE_SYSTEM_DRIVER services with winedevice. winegstreamer: Manually assign union variables. ntdll/tests: Add tests for RtlInitializeCriticalSectionEx. mshtml/tests: Fix operator priority in ok() condition. vbscript/tests: Fix operator priority in ok() condition. ntdll: Mimic Windows behaviour when calling debug service. ntdll: Implement handling of int $0x2d for x86_64. ntdll/tests: Add more tests for calling int $0x2d on x86 and x86_64. ntdll/tests: Add additional tests for instruction pointer in debug service tests. ntdll/tests: Add separate tests for exception handling of int $0x3. ntdll: Fix up instruction pointer in context for EXCEPTION_BREAKPOINT on x86_64. ntdll: Set correct number of arguments for breakpoint exceptions. Stefan Dösinger (5): wined3d: Introduce wined3d_texture_get_pitch(). wined3d: Remove the DIB extra line hack. wined3d: Store texture sub-resources as structures containing resource pointers. wined3d: Introduce wined3d_texture_check_block_align(). wined3d: Track SFLAG_NONPOW2 per-texture. Stefan Leichter (1): kernel32: Return a dummy value in GetSystemPreferredUILanguages. Vincent Povirk (4): gdiplus/tests: Add test for GdipWidenPath. kernel32/tests: Avoid testing for a hard-coded timezone name. gdiplus/tests: Add test for matrix transform in GdipWidenPath. gdiplus: Fix GdipWidenPath transform for non-pixel pens. YongHao Hu (2): msvcp120/tests: Simplify tests by using todo_wine_if. msvcp110: Add tr2_sys__Symlink implementation and test. -- Alexandre Julliard julliard ( -at -) winehq.org Share this post Link to post