Bug-org 574907 [DW] Don't use subpixel positioning for bitmap glyphs #2
初回投稿日時: 2011年01月24日16時24分47秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
DirectWriteだと、MS Pゴシック等で文字がくっつきすぎるというバグです。DirectWriteは最近のバージョンでは東アジアのフォントに対してはビットマップグリフを一定のサイズでは利用するようになっていますが、このビットマップを利用する時にも各文字の幅をアウトラインから計算して返してくるため、フォントサイズ(小数も利用可能)や行頭の位置との関係によっては判読不可能なぐらいにくっついてしまうことがあります。
色々と調べた感じではDirectWriteはどうも内部にビットマップグリフを利用した方が良いフォントのブラックリストを持っているようです。また、このリストでビットマップグリフを利用すべきサイズ指定までやっているのではないかという疑惑すらあります。このへんが全く明文化されていないのでビットマップグリフを持つサイズでは小数は丸めるようにし、GDI互換の幅計算で文字を配置するように修正してもらいました。この結果、以下のようにレンダリング結果が改善しています。
上記のスクリーンショットで赤く囲んだところに注目してください。文脈がなければ判読不可能な組み合わせも出てくることが分かります。
修正後はこのようになっています。まだ一部くっついているところがありますが……
このFirefox 3.6のスクリーンショットを見れば分かるように、もともとGDIのレンダリングでもくっついてることはありますが、これはフォントの問題としか言いようがありません。