[Bug 48447] New: GetUnicodeRanges() returned data is inaccurate
WineHQ Bugzilla
wine-bugs at winehq.org
Sat Jan 11 15:23:55 CST 2020
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 at winehq.org
Reporter: bunglehead at 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.
More information about the wine-bugs
mailing list