The "GdiInterop" is a sample application (source code is avaiable in [Github][source_code], relative guide in [MSDN][msdn_guide]) that demostracts how to display DirectWrite text on a GDI surface. After set dpi to 168 in `winecfg`, and run sample application with wine, the font size is normal, but the position of glyph is incorrect.
| Dpi: 96 | Dpi: 168 |
|:----------------:|:-----------------:|
| ![ss1][sc_96dpi] | ![ss2][sc_168dpi] |
There is the sample application after compile: [Release_x64.tar.gz](/uploads/c70e32824efcaa5d16ab39bbb4b86e30/Release_x64.tar.gz)
After change transform matrix that pass to `IDWriteFactory7_CreateGlyphRunAnalysis`, it can display glyph correctly.
[source_code]: https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7…
[msdn_guide]: https://learn.microsoft.com/en-us/windows/win32/directwrite/render-to-a-gdi…
[sc_96dpi]: /uploads/59cc343cfaa025f4ff4c32a84ab8cfeb/图片.png
[sc_168dpi]: /uploads/938be653362bb6ac58471b69ab66099a/图片.png
--
v2: dwrite: Return render bounds if text not intersect to BitmapRenderTarget
dwrite: Fix incorrect position of glyph when rendering with BitmapRenderTarget in HiDPI
https://gitlab.winehq.org/wine/wine/-/merge_requests/3718
This can then be used to run tests in an appx context, for instance for https://gitlab.winehq.org/wine/wine/-/merge_requests/3548
--
v3: windows.applicationmodel/tests: Test executing a WinRT package application.
windows.applicationmodel/tests: Test IPackageManager_RegisterPackageAsync.
makedep: Support generating .exe TESTDLL resources.
makedep: Use #pragma makedep testdll for TESTDLL resources.
windows.applicationmodel/tests: Add some IPackageManager tests.
windows.applicationmodel: Add stub DLL.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3643
SPIR-V says this is undefined behaviour, but Direct3D actually specifies that it
should clamp. Most drivers do clamp, but llvmpipe does not. Hence this fixes a
couple of tests with llvmpipe.
This does of course add overhead to the ftou instruction, but I cannot imagine
that it is a common instruction to execute. This also is not the first time we
perform such checks; cf. udiv.
--
v2: vkd3d-shader/spirv: Clamp ftoi upper bound to UINT_MAX.
vkd3d-shader/spirv: Clamp ftoi lower bound to -INT_MIN.
vkd3d-shader/spirv: Clamp ftou upper bound to UINT_MAX.
vkd3d-shader/spirv: Clamp ftou lower bound to zero.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/289
Since Yousician's last update, it was throwing an error when initialising audio output. Unfortunately I don't have access to the old version, but they seem to have dropped win<10 support, and are using only IAudioClient3_InitializeSharedAudioStream. They also use IDeviceTopology to get the type of the first output connector.
This is the bare minimum I needed to get it working.
--
v10: mmdevapi: add stub for IDeviceTopology
mmdevapi/tests: add test for IDeviceTopology
mmdevapi: implement IAudioClient3_InitializeSharedAudioStream
mmdevapi/tests: add test for AudioClient3_InitializeSharedAudioStream
https://gitlab.winehq.org/wine/wine/-/merge_requests/3554
--
v2: ntdll/tests: Adjust test_raiseexception_regs() for Win11 results.
ntdll/tests: Adjust test_extended_context() for Win11 results.
ntdll/tests: Adjust test_nested_exception() for Win11 results.
include: Define up to date exception flags.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3726