https://bugs.winehq.org/show_bug.cgi?id=40485
Bug ID: 40485 Summary: Nexus Localizer (Nexus: The Jupiter Incident) has wrong text orientation Product: Wine Version: 1.7.47 Hardware: x86 OS: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: richedit Assignee: wine-bugs@winehq.org Reporter: gyebro69@gmail.com CC: huw@codeweavers.com Regression SHA1: 7a3c9889e38ede659230a66a167b82c024f0dc85 Distribution: ---
Created attachment 54255 --> https://bugs.winehq.org/attachment.cgi?id=54255 screenshot (built-in vs. native riched20)
Nexus Localizer is a tool bundled with the game Nexus: The Jupiter Incident which lets you add your own translation to the game. Selected text appears in a two-side pane, but orientation of the text is wrong.
Installing either corefonts or native riched20.dll works around the problem for me.
Additionally, text appeared correctly in the application (with built-in riched20 / without corefonts) before the following commit:
commit 7a3c9889e38ede659230a66a167b82c024f0dc85 Author: Huw Davies huw@codeweavers.com Date: Wed Jul 1 10:48:56 2015 +0100
riched20: Free the script cache when updating the default style.
In the terminal I have only a pair of these:
fixme:win:LockWindowUpdate (0x10020), partial stub! fixme:win:LockWindowUpdate ((nil)), partial stub!
Let me know if you need debug logs or further tests.
The attached screenshot shows what the text looks like with vanilla Wine 1.9.8 (upper image) and with native riched20.dll installed.
Wine 1.9.8 Fedora 23
https://bugs.winehq.org/show_bug.cgi?id=40485
--- Comment #1 from Huw Davies huw@codeweavers.com --- There have been some changes in this area recently, is this still present?
If so, please attach a +richedit,+richedit_style,+font log
Thanks
https://bugs.winehq.org/show_bug.cgi?id=40485
--- Comment #2 from Béla Gyebrószki gyebro69@gmail.com --- Created attachment 56204 --> https://bugs.winehq.org/attachment.cgi?id=56204 +richedit,+richedit_style,+font log
https://bugs.winehq.org/show_bug.cgi?id=40485
--- Comment #3 from Béla Gyebrószki gyebro69@gmail.com --- Sorry, I forgot to add that the problem is still present in wine-1.9.23-93-g8a4508c.
https://bugs.winehq.org/show_bug.cgi?id=40485
--- Comment #4 from Huw Davies huw@codeweavers.com --- The application is setting the richedit's font to @Arial Unicode MS, note the leading '@'. This is supposed to rotate glyphs from relevant character sets to produce the vertical form, but not rotate latin characters, for example.
The richedit is outputting the glyphs (via uniscribe) using ETO_GLYPH_INDEX. Apparently gdi32 needs to detect whether a given glyph index corresponds to a character from a character set that needs rotating. Currently we rotate all glyphs when passed an index.
Ignoring the fact that glyph_id -> char isn't a one-to-one mapping, this will be painful to look up.
https://bugs.winehq.org/show_bug.cgi?id=40485
--- Comment #5 from Gijs Vermeulen gijsvrm@gmail.com --- This is still present in wine-6.0-rc1-29-g310019789f7, native riched20 still works around.
https://bugs.winehq.org/show_bug.cgi?id=40485
--- Comment #6 from Gijs Vermeulen gijsvrm@gmail.com --- This is still present with wine-8.5-264-g1546ef30159, native riched20 still works around.