バージョン1.5.13以上のWineのユーザインターフェースにおけるフォントのアンチエイリアシングが機能していない件とその対処
先日Wineのバージョンを1.5.13にしたところ、それまでのバージョン(1.5.12以下)でユーザインターフェース上のフォントのアンチエイリアシングが正常に動作していた環境でもアンチエイリアシングが動作せずに見づらい表示になってしまった。1.5.14でも同様。
(既に誰かがこの現象を確認している可能性は非常に高いと思ったので)公式のBugzillaでこの件に該当するものがないかをしばらく調べていたが、無さそうだったので、「メールマガジン:Wineでバージョンを上げて不具合が出た際の原因のソース変更の特定(前半)」「メールマガジン:Wineでバージョンを上げて不具合が出た際の原因のソース変更の特定(後半)」(ここでの作業は後半)の要領でどの修正が原因となっているかを特定した。
その修正における説明に
It can be disabled by setting "ClientSideGraphics"="n".
という記述があるのを見つけたので、試しにレジストリのキー(階層/ディレクトリ)「HKEY_CURRENT_USER\Software\Wine\X11 Driver」に「ClientSideGraphics」という項目(文字列)を作成して値を「N」としたところ、これまでのように正常に表示されるようになった。
レジストリファイル(.reg形式)で記述すると
[任意]ファイル名: disable-client-side-rendering.reg
REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "ClientSideGraphics"="N"
となる。
なお、この不具合についてはバグ報告を行ったが、「別のバグ報告と重複」として処理されてしまった。それはバージョン1.3.33で入った「DIBエンジンでテキストを描画できるようにする」という修正に由来するもので
- 今回の件(バージョン1.5.13になったタイミングで起こる不具合)は「DIBエンジンを用いたクライアントサイドのウィンドウ描画のサポート」という修正に由来するが、これ自体には問題はない
- 「DIBエンジンでテキストを描画できるようにする」機能は既に実装済み
- ただし、その際のアンチエイリアシング処理には問題があり、これに関するバグ報告は既に存在する
ということでそのようになったのではないかと思われる。
残念ながら、この件についてはバグが報告されてからかなり期間も経過しており、適切な修正が今後入るとしてもいつになるかは全く不透明なので、しばらくは上記のレジストリ設定で不具合を回避するしかないのかもしれない。
(2012/11/6)この件については最新の開発版で修正が入って正常にサブピクセルレンダリングによるアンチエイリアシング処理が行われるようになっており(2012/11/6時点のソースツリーで動作確認済み)、次のバージョンである1.5.17からは正常に動作する見通し。レジストリ修正が必要なバージョンは1.5.13から1.5.16までとなる。
使用したバージョン:
- Wine 1.5.13, 1.5.14