--
v7: mshtml: Define "create" from XMLHttpRequest constructor as a jscript prop
mshtml: Define the constructor's prototype on mshtml side.
mshtml: Consolidate the functional constructors into a common struct
mshtml: Rename struct constructor to stub_constructor.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7779
This fixes "out of realized font handles" errors seen with Valve games like Half-Life 2 (which uses more than 1000 font handles).
The new limit of 5000 is roughly inspired by the Windows limit, although there are differences. On Windows 11 I can call `CreateFont()` (and then `SetMapMode()`, `SelectObject()`, `SetTextAlign()` to realize the font) exactly 5000 times before it hits the handle limit.
Under Wine, child fonts use handles as well, so the limit is usually hit before 5000 `CreateFont()` calls. But, there is caching so that `CreateFont()` calls with identical arguments do not count towards the limit. Ultimately the old limit of 256 was sufficient for almost all applications, and 5000 should be enough for all but the worst-behaved apps.
--
v4: win32u: Raise realized font handle limit to 5000.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7771
Follow-up of !2786, which appears to have been abandoned.
--
v22: ws2_32/tests: Add test for AF_UNIX sockets
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to create a SOCK_DGRAM AF_UNIX socket.
server: Allow for deletion of socket files.
ws2_32: Add support for AF_UNIX sockets.
ws2_32: Add afunix.h header.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7650
Since the role objects in the wayland_surface struct are part of a union, we
first need to check whether the surface has the right role before checking
the role objects themselves. Otherwise we risk using a subsurface as a toplevel
or vice-versa.
The second commit introduces a helper to deduplicate the toplevel checks.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7892
> It was calling `OnClockStart`, but it turns out that was because I had hard-coded the value in my `MESourceStarted` and `MEStreamStarted` events. After changing these events to instead use `pvarStartPosition` passed in `IMFMediaSource::Start`, I get:
>
> ```
> 1330.024952|10088|source_mock_Start: format: {00000000-0000-0000-0000-000000000000} (GUID_NULL) position: <EMPTY>
> 1330.025598|10088|clock_sink_OnClockRestart: system time 13300255028
> ```
>
> So sending those events with a hard-coded `VT_I8` value of zero caused `OnClockStart` to be called, but now those events have a value of `VT_EMPTY` and `OnClockRestart` is called.
I see, this is something we do differently. We are using original session Start() timestamp when restarting the clock, and Windows apparently is using whatever source reports. I think there is a value in doing the same - the idea here I'm guessing is to adjust to the source time, which could deviate both ways from the time client asked for. What we'll need to figure out is which stamp we should actually be using for the new clock position. You can have multiple sources with multiple streams, so number of events with timestamps is potentially number of streams across all sources + number of sources.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7833#note_101791
This fixes "out of realized font handles" errors seen with Valve games like Half-Life 2 (which uses more than 1000 font handles).
The new limit of 5000 is roughly inspired by the Windows limit, although there are differences. On Windows 11 I can call `CreateFont()` (and then `SetMapMode()`, `SelectObject()`, `SetTextAlign()` to realize the font) exactly 5000 times before it hits the handle limit.
Under Wine, child fonts use handles as well, so the limit is usually hit before 5000 `CreateFont()` calls. But, there is caching so that `CreateFont()` calls with identical arguments do not count towards the limit. Ultimately the old limit of 256 was sufficient for almost all applications, and 5000 should be enough for all but the worst-behaved apps.
--
v3: win32u: Make font handle table dynamically growable.
win32u: Track free font handles through indices instead of pointers.
win32u: Enter font_lock in NtGdiMakeFontDir.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7771