In order to write conformance tests for widl we'll need to run midl.exe from the SDK against some tests IDL, and do the same with our own IDL parser implementation. This is going to be easier using some midl.exe program, which will import widl lexer and parser.
This MR is some cleanup in preparation for this, trying to reduce the amount of global state in widl, and make it possible to share only selected parts with midl.exe.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/570
--
v3: mshtml: Handle S_FALSE return values from IUri methods.
mshtml: Handle S_FALSE from IUri methods in the NSAPI interfaces.
mshtml: Handle S_FALSE from IUri methods when navigating.
mshtml: Don't navigate if GetDisplayUri failed.
mshtml: Handle S_FALSE from IUri methods when checking targetOrigin.
mshtml: Handle S_FALSE from IUri methods in Anchor Elements.
mshtml: Handle S_FALSE from IUri methods in localStorage and sessionStorage.
https://gitlab.winehq.org/wine/wine/-/merge_requests/683
The objective of this patch series is to converge to the correct argument count checks and offset parameter dimensions when parsing the Load, Sample, SampleLevel, Gather (and variants) methods, for the different texture types.
I made the following table to summarize the expected arguments and their dimensions:

Getting these required some extensive trial-and-error, because:
- Official documentation about the methods is spread in different pages and in a somewhat inconsistent manner.
- Automatic vector truncation, scalar broadcasting, and type conversion, make shaders that pass inexact types compile.
- clamp and status arguments (for tiled resources) are not present in fxc 9, and yet, they are part of ps_5_0 and vs_5_0.
- Some methods (Load() in particular) require the mipmap level as part of the location parameter (except for Multi-Sampled textures), while other don't.
For implementing new methods I recommend passing an invalid parameter count to them in fxc 10, so that it lists available overloads.
And to do this for each texture type.
--
v2: vkd3d-shader/hlsl: Add offset parameter to 'Load' method.
vkd3d-shader/hlsl: Properly check argument count in gather methods.
vkd3d-shader/hlsl: Properly check argument count in SampleLevel method.
vkd3d-shader/hlsl: Use proper dimensions on SampleLevel method offset parameter.
vkd3d-shader/hlsl: Properly check argument count in Sample method.
vkd3d-shader/hlsl: Use proper dimensions on gather methods offset parameter.
vkd3d-shader/hlsl: Use proper dimensions on Sample method offset parameter.
vkd3d-shader/hlsl: Parse the SampleLevel method.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/9
Copy propagation is translated to index paths, invalidation of variable components is made more precise.
This, together with checking for non-static object references (which are not allowed in HLSL) allows to set object register sizes back to zero without overlapping registers.
I also included implicit array initialization, since, if I remember correctly, what was holding it back was that structs/arrays with object components couldn't be represented with the correct register offsets.
After this, we have to decide if (and how to) move register allocation and register offset calculation to each shader model.
--
v3: vkd3d-shader/hlsl: Support initialization of implicit size arrays.
vkd3d-shader/hlsl: Set objects' register size back to 0.
vkd3d-shader/hlsl: Check for non-static object references.
vkd3d-shader/hlsl: Invalidate components more precisely in copy
vkd3d-shader/hlsl: Replace register offsets with index paths in copy
vkd3d-shader/hlsl: Print halfs in dump_ir_constant().
vkd3d-shader/hlsl: Skip implicit conversion if types are equal.
vkd3d-shader/hlsl: Set component count for objects to 1.
tests: Test object references.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/7
--
v2: mshtml: Handle S_FALSE return values from IUri methods.
mshtml: Handle S_FALSE from IUri methods in the NSAPI interfaces.
mshtml: Handle S_FALSE from IUri methods when navigating.
mshtml: Handle S_FALSE from IUri methods when checking targetOrigin.
mshtml: Handle S_FALSE from IUri methods in Anchor Elements.
mshtml: Handle S_FALSE from IUri methods in localStorage and sessionStorage.
https://gitlab.winehq.org/wine/wine/-/merge_requests/683
This MR has 2 purposes:
1. Get first 3 patches upstreamed.
2. Have the whole patch set to be reviewed to make sure I'm on the correct direction.
It means I'm just going to upstream first 3 patches. The remaining 2 patches are not going to be upstreamed for now. They are for reviewing purpose, to see if I am implementing them in a good way.
So, Nikolay, here are 2 questions:
1. Do first 3 patches (a test patch and 2 patches that implement transform graph) are good to be upstreamed?
2. Am I in a good way for implementing effect drawing?
Some notes:
d2d_transform_node struct is not implemented like d2d_brush, because there are user defined draw transforms. Users can have a custom struct, and implement ID2D1DrawTransform interface for that struct. So that in transform graph, we should rely on interface, not concrete struct implementation.
--
v4:
https://gitlab.winehq.org/wine/wine/-/merge_requests/635
For example, queueing a MF_SOURCE_READERF_ENDOFSTREAM response will set
a NULL sample. This fixes a regression introduced by commit
68fa3f673633c138596b86ad2ed1befcd0cc63c5.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/696
Manipulating the font size results in the script_cache going stale. From MSDN[1]
`The application should never pass the same handle for different fonts or different sizes.`
This is however exactly what happens when the font size changes as a result of zooming(both in and out). ScriptShape and relative functions will only inspect the hardware device context only if the required data is not cached[2] and hence the data from a previous call to these functions is retrieved even though the font size has changed hence the bug where text both doesn't wrap and doesn't paint as it should.
In patch one, I have tried to keep track of the script_cache objects alongside the relevant font.
Patch two fixes an issue where the cursor doesn't scale after zooming until after one interacts with the editor.
Signed-off-by: David Kahurani <k.kahurani(a)gmail.com>
1. https://docs.microsoft.com/en-us/windows/win32/intl/caching
2. https://docs.microsoft.com/en-us/windows/win32/intl/script-cache
--
v2: riched20: update caret on zooming
riched20: Cache script_cache alongside font cache
https://gitlab.winehq.org/wine/wine/-/merge_requests/626
Fix Battle Realms: Zen Edition failing to start. The game expects to find a device without
D3DDEVCAPS_HWTRANSFORMANDLIGHT.
--
v2: ddraw: Don't report unsupported device capabilities in d3d3_EnumDevices().
ddraw: Don't report unsupported device capabilities in d3d7_EnumDevices().
ddraw/tests: Add more capability tests for enumerated devices.
ddraw/tests: Move the capability tests for enumerated devices.
ddraw/tests: Add a comment to note that tests in d3d.c are deprecated.
https://gitlab.winehq.org/wine/wine/-/merge_requests/670
On Tue Aug 23 01:19:06 2022 +0000, Davide Beatrici wrote:
> The example at https://docs.microsoft.com/en-us/windows/win32/learnwin32/example--the-open…:
> ```
> x86_64-w64-mingw32-g++ open_dialog_box.cpp -municode -lole32 -luuid -o open_dialog_box
> ```
> 
> 
> I confirm pressing Enter when the address bar is focused does not change
> the location.
Thanks @davidebeatrici, I'll try to fix that, for my next commit.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/672#note_6705
On Tue Aug 23 00:10:52 2022 +0000, Davide Beatrici wrote:
> 
Would you like me to perform specific tests?
The screenshots I sent are of `explorer`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/672#note_6702
Made changes to comdlg32/itemdlg.c to add missing controls, which are the address bar and the up button.
Updated bitmaps in comctl32 and SVG files for history icons.
My changes help to resolve this bug: https://bugs.winehq.org/show_bug.cgi?id=50338.
--
v8: comdlg32: Add missing controls to the common item dialog, only affecting the implementation
https://gitlab.winehq.org/wine/wine/-/merge_requests/672