Commit 100504d2f5 introduced using GetDpiForWindow().
Unfortunately NOTEPAD_LoadSettingFromRegistry is executed when
the main window is not yet created, resulting in
having Globals.lfFont.lfHeight=0.
This is later stored in the registry in iPointSize=0.
In a fresh wine prefix there are not yet registry values created,
therefore the first run of notepad does not show this problem,
and iPointSize is saved with a sane value to the registry.
Having Globals.lfFont.lfHeight=0 manifests for example
in cups PDF prints being a single empty page.
The check of point_size for having a non-zero value should also fix
wine prefixes which have already a stored registry value of iPointSize=0.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55852
Fixes a race condition and crashes in Secret of Mana.
The queue critical section is held in video_presenter_sample_present
while GetCurrentImage only locks the presenter CS. Double locking is
tricky and atomic operation is appropriate to swap the sample pointer.
A length of -1 has no special meaning for the mbsn*coll functions, and
since it is > INT_MAX, it will eventually trigger _invalid_parameter in
_strnicmp_l in newer versions of msvcrt.
This was probably accidentally omitted in 51e64b3fe9.
In practice, this is guaranteed to work anyway, since due to the state table
construction the equivalent misc handler, i.e. sampler(), is always guaranteed
to be called right before the fragment pipeline handler for each stage. However,
this is a subtle detail and best not to be depended on.
Ported from state_sampler().
This is currently relevant to the case where a d3d11 device is created with a
9.x feature level—this will have resources bound via SRVs [and will therefore
go through wined3d_context_gl_bind_shader_resources() rather than
state_sampler()] but need not support ARB_texture_non_power_of_two.
The NPOT non-requirement is explicitly called out in the d3d11 documentation,
and because we need some degree of emulation for conditional NPOT textures, we
need to hook that up for feature level 9.x d3d11 devices as well.
Looking forward, d3d 1-9 will be normalized to creating internal SRVs and
binding those through the d3d10+ path, so this will also be necessary for that
reason.
Set an empty input region for the client area surface, so that the
compositor forwards input events to the main/parent surface instead.
This simplifies input handling, since otherwise we would need to
implement special handling of events on the client area surface
and transform them accordingly.
Use the viewporter Wayland protocol to set the size of the client
area subsurface, so that it always covers the client area bounds
exactly. This may transiently lead to scaled contents.
Create Win32 VkSurfaceKHR objects which are backed by native Wayland
VkSurfaceKHR objects. For now we associate a dummy Wayland surface
with the VkSurfaceKHR.