「Tips & FAQ」の編集履歴(バックアップ)一覧に戻る

Tips & FAQ - (2006/11/05 (日) 10:48:45) のソース

#contents

----
*簡単な各ファイルの説明
**gdi++.dll
>gdi++.dll は、Windows のシステムファイルの一つ、 gdi32.dll の動作を横取りし、文字描画を担当する API をオーバーライドすることで、フォントの表示品質を改善します。APIが呼ばれると、一度バックバッファに最大4倍のフォントサイズで文字を描画し、それを縮小してから画面に転送します。 Mac OS(Classic) 用の有名なシェアウェアに、SmoothType がありますが、すなわちそれと似たような働きをします。[[本家>http://drwatson.nobody.jp/gdi++/]]より抜粋
**gdi.exe
-gdi++.exe&BR()仕掛けたい実行ファイルをgdi++.exeにドラッグ&ドロップすると、フックされた状態で起動します。Windows標準のコントロールのフォント描画にも影響が及びます。
-gdi.exe(トレイ格納型)&BR()トレイアイコンを右クリックから「DLLディレクトリを開く・INIを開く・有効/無効の切り替え」ダブルクリックで「有効/無効を切り替え」が可能。&BR()有効にすると実行中の全プロセスに効果が及ぶので注意が必要。適用したくないものは[ExcludeModule]に設定する。&BR()up0060でEXE, DLLのバージョン情報も表示できるように。&BR()up0061(gdipp.exe)ではGUIから設定も可能に。&BR()up0097(gdippManager.exe)はup0060とup0061を併せたもの。

**gdi++.ini
-設定ファイル"gdi++.ini"を同じディレクトリに置くことで、レンダリングの設定ができます。&BR()(なくても動きます)
>[General]
>Quality=1
>Weight=0
>Enhance=0
>UseSubPixel=0
>SubPixelDirection=0
>MaxHeight=0
>ForceAntialiasedQuality=0
>[Exclude]
>FixedSys
>Marlett
>メイリオ
>[Individual]
>Tahoma=3
>[ExcludeModule]
>iexplore.exe
>firefox.exe

-Quality&BR()フォントの品質を調節します。&BR()0:何もしない 1:2倍キレイ(デフォルト) 2:3倍キレイ 3:4倍キレイ
-Weight&BR()フォントの濃さを調節します。(n + 1)回重ねて描画します。
-Enhance&BR()水平・垂直の輪郭線を強調します。&BR()0:強調しない(デフォルト) 1:少し強調 2:ふつうに強調 3:強く強調 4:激しく強調
-UseSubPixel&BR()簡易サブピクセルレンダリング(ClearTypeもどき)を有効にします。&BR()0:つかわない(デフォルト) 1:つかう
-SubPixelDirection&BR()サブピクセルレンダリングを使うときの、サブピクセルの並び順を指定します。ほとんどの液晶モニタは左からRGBの順にサブピクセルが並んでいますが、たまにBGRの順で並んでいるモニタもあるようです。&BR()0:RGB(デフォルト) 1:BGR
-MaxHeight&BR()スムージングを掛ける最大のフォントサイズを「ピクセル単位で」指定します。&BR()0:すべてのサイズ(デフォルト)
-ForceAntialiasedQuality&BR()WindowsのClearTypeを無視するかどうかを指定します。無視すれば描画が高速になります。&BR()0:標準の品質(デフォルト) 1:ClearTypeを無視
-[Exclude]セクション&BR()標準のレンダラで描画したいフォントを一行に一書体ずつ記入します。フォント名がリストに合致すれば、gdi++.dll は標準のレンダラに描画を丸投げします。ビットマップフォントや、ClearType系のフォントにどうぞ。
-[Individual]セクション&BR()指定したフォント毎にWeightを設定できます。
-[ExcludeModule]セクション&BR()gdi++.dllを適用させたくない実行ファイルを指定できます。このセクションに記述された実行ファイルにはgdi++.dllが適用されません。

**gdi++.ini (FreeType版)

オプション一覧
>[General]
>HookChildProcesses=1
>[FreeType]
>HintingMode=1
>AntiAliasMode=2
>EnableKerning=0
>#ForceChangeFont=MS Pゴシック
>TextTuning=0
>TextTuningR=0
>TextTuningG=0
>TextTuningB=0
>CacheMaxFaces=0
>CacheMaxSizes=0
>CacheMaxBytes=0
>[Exclude]
>Marlett
>メイリオ
>Meiryo
>[ExcludeModule]
>fontview.exe

-HookChildProcesses&BR()子プロセスにも自動でgdi++を適用

-ForceChangeFont&BR()強制的にそのフォントを使うようになる&BR()ただしこれ使うとダイアログがとんでもない事になるので注意

-CacheMaxFaces、CacheMaxSizes、CacheMaxBytes&BR()FTC_Manager_Newに渡すパラメータ。詳細はFreeTypeのマニュアル参照&BR()※パラメータチェックしてないので大きな値を設定すると暴走する可能性あり

-Exclude&BR()除外フォント。本家と違って上限は無し

-ExcludeModule&BR()除外モジュールリスト。本家と違って上限は無し

-[FreeType]セクションで色々設定できる。&BR()([General]セクションでも設定できるように3px:693氏が変更)

-HintingMode&BR()ヒンティングの設定。0だとバイトコードインタプリタが(ONにしてFreeTypeをコンパイルしていた場合)使われるんじゃないだろうか。&BR()1だとヒンティングをしない。&BR() 2はFreeTypeのオートヒンティング。

-AntiAliasMode&BR()0なら普通(256階調)&BR()1はLight。FreeTypeのReferenceによるとMac OS Xっぽいとか。&BR()2、3は液晶用。並びが違う。

-EnableKerning&BR()0だと文字詰めなし&BR()1だと文字詰めあり

-TextTuning&BR()文字の締まりを良くするようなもの(これも下記サイトから)

FreeType2を使ってレンダリング(by 3px:555)
http://hp.vector.co.jp/authors/VA028002/freetype.html
を全面的に参考にした(Thanks higambana)

----

*各ビルドまとめ
**gdi++.dll
■uporg529021 2006/09/26 23:37:27 http://www.uploda.org/uporg529021.lzh.html
└[[gdi++20060927-enhance (フィルタ修正版) 2006/09/27 12:42:30>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_9fb60577]]
 └[[gdi++20060928-enhance (バグ修正) 2006/09/28 07:18:19>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_8af57783]]
  └[[gdi++20060929-enhance (104-106の修正) 2006/09/29 00:45:24>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_3aef0309]]

■[[stable version (gdi++20060923) 2006/09/23>http://drwatson.nobody.jp/gdi++/download.html]]
└[[up0093 (ソースをシェイプアップ?20060923版相当に戻してみた) 2006/10/01 02:57:42>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_4a4979ae]]
 └[[up0116 (up0093のバグ修正+Pico氏(up0112)の縮小アルゴリズムを組み込み) 2006/10/06 01:46:58>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f7305d63]]
  └[[up0118 (up0116のバグ修正+おまけ改) 2006/10/06 10:06:38>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_67607c3e]]

■[[stable version (gdi++20060927) 2006/09/27 12:00:00>http://drwatson.nobody.jp/gdi++/download.html]]
├[[up0004 (sse2/pentium4用に最適化したもの) 2006/09/27 15:17:51>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_b6e0cc0b]]
│└[[up0009 (PentiumM(Banias or later) 2006/09/27 16:21:34>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_15297680]]
│ └[[up0011 (デバッグビルド) 2006/09/27 16:36:02>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_2a06e8bf]]
│
├[[up0012 (フォントごとにウェイト指定) 2006/09/27 16:44:08>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e8f9fdc9]]
│└[[up0017 (up0004lzh+individualセクション有効化) 2006/09/27 18:48:09>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_855eefb6]]
│ └[[up0018 (0017+version+allgdi) 2006/09/27 19:26:38>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f1f88559]]
│
├[[up0019 (20060927版+バージョンリソース付きdll+730のallgdi++) 2006/09/27 20:37:08>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_113a8c78]]
│
├[[up0021 (最適化ビルド+いろいろ) 2006/09/27 23:30:01>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_52376fed]]
│└[[up0025 (up0021+953+951+最適化) 2006/09/28 02:13:32>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_9d2b556f]]
│ └[[up0049 (up0025+194+ソース分割) 2006/09/29 01:51:55>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_56ed9262]]
│  └[[up0052 (up0049 修正版) 2006/09/29 03:46:30>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_808808fb]]
│   └up0056 (up0052 改変(ソースのみ)) 2006/09/29 12:43:45
│
├[[up0023 (キャッシュ周りをマルチスレッド化) ExcludeModuleなし 2006/09/27 23:46:43>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_1ab57a62]]
│└[[up0027 (944 をベースにソースを整理してみた。) 2006/09/28 02:31:14>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_6a960edf]]
│
├[[up0075 (20060927+allgdi+ExcludeModule+TLS) 2006/09/30 01:01:43>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_1318136e]] 
│└[[up0076 (up0075のズレるバグ修正) 2006/09/30 12:26:32>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f7dff1cc]]
│ └[[up0079 (20060927+allgdi+ExcludeModule+TLS その2) 2006/09/30 15:39:26>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_295e47d6]]
│  └[[up0105 (1bit+アルファブレンド(注:要SSE2、きわめて未完成)) 2006/10/04 11:55:16>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_8e665e1a]]
│   └[[up0109 (up105のSSE無し版) 2006/10/05 00:19:13>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e95643db]]
│
├[[up0107 (up0104-エンハンスフィルタの改良版-のバグ修正) 2006/10/04 12:40:27>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_bf24c483]]
│└[[up0112 (MMX対応など) 2006/10/05 07:43:09>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_0ae8837c]]
│
└[[up0139 (FreeType2 MS Pゴシック 16ピクセルのみ) 2006/06/10/23 20:11:47>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e06cd752]]

元のビルドがわからないもの
■[[up0038 (エンハンサの修正 SSE2 & Normal) 2006/09/28 22:16:08>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e89f987b]]
■[[up0016 (ICC9.1にてPGO付きビルドSSE2/Pentium4向け) 2006/09/26 23:37:27>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_9a6af920]]

**gdi++.dll FreeType版
■[[gdi0143 (up0133をコンパイルした物) 06/10/27(Fri),01:06:51>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_fbbd6348]]
-[[gdi0152 (gdi0143 + FreeType = gdi0149 の修正版) & gdi0151 (FreeType DLL版)06/10/28(Sat),11:31:50>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_2df49ff2]]
-[[gdi0156 (gdi0152の修正版)06/10/28(Sat),17:39:45>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_0ce8a525]]
-[[gdi0164 (gdi0156の修正版)06/10/28(Sat),17:39:45>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_0654244e]]
-gdi0170 (gdi0168修正版)06/10/29(Sun),13:19:49
-[[gdi0172 (gdi0170ベース+何か)06/10/29(Sun),14:12:49>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_898da420]]
--[[gdi0173 (manifest付きgdi0172)06/10/29(Sun),21:25:04>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_0359e6eb]]
-gdi0177 (gdi0172+カーニングオプションと文字サイズの何)06/10/29(Sun),22:28:35
-[[gdi0181 (gdi0177の修正)06/10/30(Mon),03:53:58>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_2b045573]]
-[[gdi0206 (gdi0181+...)06/11/01(Wed),06:53:30>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_33cc8b51]]
-[[gdi0216 (gdi0209修正+機能追加)06/11/01(Wed),23:13:25>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_43401276]]
-[[gdi0224 (gdi0216mod3)06/11/02(Thu),20:10:09>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_1c0ee20d]]
-[[gdi0228 (gdi0224ベースで色々修正)06/11/03(Fri),01:12:35>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_7f7f07cb]]
-[[gdi0235 (gdi0228に機能追加)06/11/03(Fri),19:01:18>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_fdef8fd2]]
-[[gdi0238 (ズレが何さ。)06/11/03(Fri),20:22:33>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_ab81b7e4]]
-[[gdi0257 (gdi0238で修正)06/11/05(Sun),02:01:13>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_65fd0e82]]
-[[gdi0260 (gdi0257を3倍近く高速化)06/11/05(Sun),03:08:33>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_7dcc17bc]]

**gdippManager
■[[gdi0029 (トレイ格納タイプのgdi.exe) 2006/09/28 02:43:34>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e1fffb0d]]
-[[ver.0929(gdi0061)06/09/29(Fri),17:44:56>http://free.flop.jp/gdi++/src/gdi0061.zip]]
-[[ver.1001(gdi0097)06/10/01(Sun),16:45:48>http://free.flop.jp/gdi++/src/gdi0097.zip]]
-[[ver.1002(gdi0102)06/10/02(Mon),21:58:40>http://free.flop.jp/gdi++/src/gdi0102.zip]]
-[[ver.1005(gdi0110)06/10/05(Thu),02:27:36>http://free.flop.jp/gdi++/src/gdi0110.zip]]
-[[ver.1028(gdi0147)06/10/28(Sat),02:10:02>http://free.flop.jp/gdi++/src/gdi0147.zip]]
-[[ver.1029(gdi0176)06/10/29(Sun),22:24:18>http://free.flop.jp/gdi++/src/gdi0176.zip]]
-[[ver.1105(gdi0261)06/11/05(Sun),03:56:22>http://free.flop.jp/gdi++/src/gdi0261.zip]]

**サービス
■[[up0088 (サー(ry ) 2006/10/01 00:37:59>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e48fad9a]]

■[[up0116のおまけ (up0093のバグ修正+Pico氏(up0112)の縮小アルゴリズムを組み込み) 2006/10/06 01:46:58>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f7305d63]]
 └[[up0118 (up0116のバグ修正+おまけ改) 2006/10/06 10:06:38>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_67607c3e]]

----

*gdi++.ini推奨設定

**[Exclude]セクション
メイリオ
Meiryo
Marlett
System
FixedSys
Modern
MS Sans Serif
MS Serif
Roman
Small Fonts
Script
Courier

Terminalも?

----

**[ExcludeModule]セクション
fontview.exe
目安箱バナー