View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0005858 | Spring engine | General | public | 2017-12-30 18:23 | 2018-02-01 19:57 | ||||
Reporter | Anarchid | ||||||||
Assigned To | hokomoko | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | 104.0 +git | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0005858: Font rendering character fallback does not work on Windows | ||||||||
Description | The text rendering in spring, as far as i am aware, is supposed to look up replacement fonts for characters which are not contained in the current font for any rendering text. This functions properly under linux: if i have Chili within ZK draw some strings in Chinese or Hebrew, both work without issue, despite the fact that none of the font families ZK uses (freesans and nimbus) have any Chinese characters (but it is of note that freesans, used ingame, does have hebrew). This fails utterly on windows: Hebrew characters are rendered with ZK game correctly (but LTR instead of RTL), while Chinese ones are rendered as squares. In ZK lobby (via luamenu), both Hebrew and Chinese are rendered as voids. The amount of those voids and squares, however perfectly matches the number of actual characters to be rendered, and those strings are still correctly received on Linux, which eliminates the suspicion that the problem lies in faulty encoding. This happens on windows systems which have full support of those languages. Windows versions at least 7 and 10 were tested. | ||||||||
Steps To Reproduce | 1) Start zk launcher under linux 2) Copy-paste some chinese into chat and send it, see the characters rendered correctly. 3) Launch a skirmish game, paste same Chinese string to ingame chat, observe it still working 4) Repeat steps 1-3 under Windows 5) Observe fonts not working. | ||||||||
Additional Information | I assume a workaround is possible through inclusion of a pan-unicode font (or at least, a font with proper CJK support). This is obviously not an ideal solution, but if the workaround works, this at the very least strongly confirms that the issue is with font fallback, so i'll see it tried during the next week. Some screenshots: 1) Metal Extractor name and description translated to Chinese, viewed under Linux: https://cdn.discordapp.com/attachments/278908415756206080/396402630613794836/image.png 2) Same story, but now under Windows: https://cdn.discordapp.com/attachments/388446609676959751/396632191922077696/unknown.png 3) Hebrew working ingame under Windows while Chinese doesn't. I assume this is because freesans (the font used ingame) has Hebrew characters directly, so fallback is not required: https://cdn.discordapp.com/attachments/388446609676959751/396637862780469249/unknown.png 4) Hebrew not working in lobby under Windows despite working ingame. I assume this is because Chobby uses Nimbus as default font, which doesn't have hebrew, requiring fallback, which is broken. Also observe question marks in the second quote being on their correct places. https://i.imgur.com/9n6cdLO.png | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|
Anarchid (reporter) 2018-01-09 13:31 |
Looks like Windows builds of Spring have fontconfig 1. This is quite old, and i expect Linux to just have a newer version by default. |
Anarchid (reporter) 2018-02-01 16:43 |
Hokomoko says: > @Anarchid the dll is -1 but the version is 2.12.6 If this is correct, then "fontconfig too old on windows" is debunked. The character substitution fails on windows versions including at least win10 and win7 though, so i think it's still unlikely that it's an upstream fontconfig / freetype issue. |
hokomoko (developer) 2018-02-01 19:57 |
Fix cc71472ea0b1b746e185e5f2c8e5d95d40ce355d committed to develop branch: Fix 0005858 This makes spring have a black screen for a few seconds when running it for the first time., repo: spring changeset id: 9531 |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2017-12-30 18:23 | Anarchid | New Issue | |
2018-01-09 13:31 | Anarchid | Note Added: 0018721 | |
2018-02-01 16:43 | Anarchid | Note Added: 0018762 | |
2018-02-01 19:57 | hokomoko | Changeset attached | => spring develop cc71472e |
2018-02-01 19:57 | hokomoko | Note Added: 0018765 | |
2018-02-01 19:57 | hokomoko | Assigned To | => hokomoko |
2018-02-01 19:57 | hokomoko | Status | new => resolved |
2018-02-01 19:57 | hokomoko | Resolution | open => fixed |