[Bug 48447] New: GetUnicodeRanges() returned data is inaccurate
https://bugs.winehq.org/show_bug.cgi?id=48447 Bug ID: 48447 Summary: GetUnicodeRanges() returned data is inaccurate Product: Wine Version: 5.0-rc5 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: dwrite Assignee: wine-bugs(a)winehq.org Reporter: bunglehead(a)gmail.com Distribution: --- Current GetUnicodeRanges() implementation returns ranges as specified by cmap, while some point might still fall on zero glyph, splitting ranges further or discarding some ranges. Windows takes that into account, and returns ranges that will tell exactly which points are covered with non-zero glyphs. We'll have to follow that, but it should most likely be disk-cached somehow, because iterating whole cmap every time is not very practical. Once does correctly this data could be used for binary lookup in HasCharacter(), if it turns out not to be slower that looking up actual glyph id. Test failures for that problem will entirely depend on the font, and could look like this: --- font.c:3742: Test failed: L"DejaVu Sans" - L"ExtraLight": unexpected range count 181, expected 182. font.c:3742: Test failed: L"DejaVu Sans" - L"ExtraLight Oblique": unexpected range count 181, expected 182. ... font.c:3742: Test failed: L"DejaVu Sans Mono" - L"Oblique": unexpected range count 209, expected 210. font.c:3742: Test failed: L"DejaVu Sans Mono" - L"Bold": unexpected range count 252, expected 253. font.c:3742: Test failed: L"DejaVu Sans Mono" - L"Bold Oblique": unexpected range count 209, expected 210. --- -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=48447 --- Comment #1 from Nikolay Sivov <bunglehead(a)gmail.com> --- Another issue specific to symbol fonts (in Windows nomenclature), GetUnicodeRanges() should return additional ranges that are not specified in cmap, but are assumed for symbols fonts - shifted by 0xf000, so for cmap containing [ch1,ch2] it will also return [0xf000 + ch1, 0xf000 + ch2]. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=48447 Nikolay Sivov <bunglehead(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |minor -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla