Module: wine
Branch: master
Commit: 5ac5e2876ab7cef316dfcb1cf34da2dc88cec9de
URL: https://gitlab.winehq.org/wine/wine/-/commit/5ac5e2876ab7cef316dfcb1cf34da2…
Author: Georg Lehmann <dadschoorse(a)gmail.com>
Date: Thu Sep 1 14:28:24 2022 +0200
winevulkan: Fixup 64bit enum aliases later to avoid using not yet defined values.
Signed-off-by: Georg Lehmann <dadschoorse(a)gmail.com>
---
dlls/winevulkan/make_vulkan | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index 2e89acd8efb..0b51ff95f12 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -435,13 +435,7 @@ class VkEnum(object):
def create_alias(self, name, alias_name):
""" Create an aliased value for this enum """
- # Older GCC versions need a literal to initialize a static const uint64_t
- # which is what we use for 64bit bitmasks.
- if self.bitwidth == 64:
- alias = next(x for x in self.values if x.name == alias_name)
- self.add(VkEnumValue(name, self.bitwidth, value=alias.value, hex=alias.hex, alias=alias_name))
- else:
- self.add(VkEnumValue(name, self.bitwidth, alias=alias_name))
+ self.add(VkEnumValue(name, self.bitwidth, alias=alias_name))
def create_value(self, name, value):
""" Create a new value for this enum """
@@ -469,6 +463,19 @@ class VkEnum(object):
if not any(x.name == value.name for x in self.values):
self.values.append(value)
+ def fixup_64bit_aliases(self):
+ """ Replace 64bit aliases with literal values """
+ # Older GCC versions need a literal to initialize a static const uint64_t
+ # which is what we use for 64bit bitmasks.
+ if self.bitwidth != 64:
+ return
+ for value in self.values:
+ if not value.is_alias():
+ continue
+ alias = next(x for x in self.values if x.name == value.alias)
+ value.hex = alias.hex
+ value.value = alias.value
+
def definition(self):
if self.is_alias():
return ""
@@ -3310,6 +3317,9 @@ class VkRegistry(object):
self._parse_features(root)
self._parse_extensions(root)
+ for enum in self.enums.values():
+ enum.fixup_64bit_aliases()
+
self._match_object_types()
self.copyright = root.find('./comment').text
Module: wine
Branch: master
Commit: bca9df8db26206ddd9c615d274d8ff0c5652e17a
URL: https://gitlab.winehq.org/wine/wine/-/commit/bca9df8db26206ddd9c615d274d8ff…
Author: Zhiyi Zhang <zzhang(a)codeweavers.com>
Date: Mon Aug 15 23:13:54 2022 +0800
win32u: Only cache font glyph metrics from GGO_METRICS.
Fonts loaded with GGO_BITMAP may report different font metrics than that with GGO_METRICS. If the
font metrics from GGO_BITMAP are used and later getting font metrics with GGO_METRICS or vice versa,
the font metric difference may cause UI glitchs.
Fix Steam installer next button text moving to the left for 1 pixel when hovered on Mac and Wine is
built with FreeType > 2.8.0.
---
dlls/win32u/font.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c
index e281db9b0c8..7fc4a01eb64 100644
--- a/dlls/win32u/font.c
+++ b/dlls/win32u/font.c
@@ -3393,7 +3393,7 @@ static DWORD get_glyph_outline( struct gdi_font *font, UINT glyph, UINT format,
ret = font_funcs->get_glyph_outline( font, index, format, &gm, &abc, buflen, buf, mat, tategaki );
if (ret == GDI_ERROR) return ret;
- if ((format == GGO_METRICS || format == GGO_BITMAP || format == WINE_GGO_GRAY16_BITMAP) && !mat)
+ if (format == GGO_METRICS && !mat)
set_gdi_font_glyph_metrics( font, index, &gm, &abc );
done: