gdipp
gdi++ の流れを汲んだ font renderer 。 32/64bit の Windows7/Vista が対象で New BSD license らしい。 Windows7 でもやっぱり font rendering の精度がアレなので ( ClearType の横線と縦線の太さの違いが気になる、 "[" とか顕著にわかる ) なんかないかなーと思っていれてみたんだけどいきなり正解だったぽい。 gdi++ の source code をもとにしてるみたいだけどけっこう手も加えられてるみたいで gdi++ に比べてのウリもけっこうあるぽい。
Better than gdi++¶
gdipp is superior than gdi++ in various aspects:
- Seamless support for 32/64-bit Windows. The main reason that gdi++ does support 64-bit Windows is the Detours hooking library, which is free only for its 32-bit version. gdimm instead uses the open-source EasyHook library, and support 64-bit Windows from scratch.
- DirectWrite support.
- Vertical text in programs like PowerPoint are correctly rendered. There is no color glitch in PowerPoint presentation.
- Subtitles in various media players (SPlayer,KMPlayer,PotPlayer ...) are rendered without problem, no matter which video renderer is selected. On the contrary, subtitles are displayed only with the Overlay Mixer in gdi++ case.
- Aero window title can be rendered correctly (by default rendered with ClearTyep).
- No glitch after changing the wallpaper in Windows 7 when Aero is enabled.
- Rotated text are displayed correctly.
- Numerous compatibility enhancement (e.g. the control character in the Date/Time window in Windows 7).
- So on and so forth...
俺訳) gdipp は gdi++ よりも様々な面で優れています。
Google Code Archive - Long-term storage for Google Code Project Hosting.
- 32/64-bit Windows を同様にサポート。 gdi++ が 64 bit Windows をサポートしている ( 訳注: 「していない」の間違いだと思う ) 主な理由は Detours hooking ライブラリーが 32 bit 版のみフリーだからです。 gdimm はオープンソースである EasyHook ライブラリーを代替として使い、 64 bit Windows サポートを一から行っています。
- DirectWrite をサポートしています。
- PowerPoint のようなプログラム内の縦書き文字もきちんと表示されます。 PowerPoint における色誤差もありません。
- 様々なメディアプレーヤー ( SPlayer 、 KMPlayer 、 PotPlayer ... ) においてどの動画レンダラーでも字幕が問題なく表示されます。対して、 gdi++ の場合 Overlay Mixer を用いたときのみ字幕が表示されます。
- Aero ウィンドウタイトルが正しく表示されます ( 既定である ClearType による表示です ) 。
- 回転した文字が正しく表示されます。
- 多くの互換性が強化されています ( 例えば Windows 7 における日時・時間ウィンドウでの制御文字 ) 。
- などなど…
他に重要なのは ClearType で処理済みの文字に対しては働かないので overhead がなくて軽い、とか service として動かすことができて registory を気にする必要がない、とか registory を使うこともできる、とか ( http://code.google.com/p/gdipp/wiki/README ) 。
他の類似 project に ezgdi ( http://code.google.com/p/ezgdi/ ) てのもあるみたいなんだけど 64bit application のみの対応だったり license が GNU GPLv3 だったり更新頻度がそれほどでもなかったりという感じで総合的に gdipp のが扱いやすいかなーと。
というか ( 全然関係ないんだけど ) gdi++ はけっこうな数の派生 project を生んでいるんだなぁとちょっと感心してしまった。知っているのだけでも 7 つ。
これだけ出てくるってことはやっぱり文字をキレイに表示したいという needs は高いわけだよな。いやまぁ「ないなら自分で作ればいいじゃない」という人種のみの needs なのかもしれないけど。
でまぁ本題の gdipp もまだ安定してないようで install したら終了というわけではなかった。
- 0.8.2 beta
process selector が働かないのかどの application に対しても働かない。- あー ticket が発行されてるな -> http://code.google.com/p/gdipp/issues/detail?id=86&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary 。どうやら symbolic link を system32 folder に作れてないとかかんとか。
- ChangeLog ( http://code.google.com/p/gdipp/wiki/ChangeLog ) の "Make symbolic link of gdipp Common and setting file instead of writing PATH environment variable. This should minimize the "missing gdipp_common_xx.dll" errors." てやつだな。環境変数の代わりに symbolic link を作るようにしたみたいだけどそもそも言葉の問題として Windows OS だと symbolic link じゃなくて short cut じゃないのか… ?
- なんか ticket のやりとり見てるとこの問題の解決はダメそうな雰囲気。
- 0.8.1 beta
- service mode で問題なく動く。
- issues ( http://code.google.com/p/gdipp/issues/list ) に挙げられている software 以外ならちゃんと動くんじゃないかな。
- 0.7.6 stable
というわけで今現在最新版じゃない beta が一番安定してるという罠があるので導入するひとは気をつけるべき。
最後に使用前 / 使用後の screen shot 。使っている font は "AR丸ゴシック体M" 。おれの趣味じゃねぇよ。