Chisato Yamauchi
cyama****@plamo*****
2004年 4月 14日 (水) 20:19:29 JST
山内です. Xorg-6.7 が公開されていますが,これも一応 xtt2 が入って います.XFree86-4.4.0 の xtt2 は non-public な API を使っ ている部分があるのですが,Xorg はその部分を変更してしまっ ており,結局,性能が劣化したものになっています. で,non-public な API を使わずにすませるには,freetype プロジェクトにパッチをマージしてもらうようにと,Xorg の 中の人に言われて,いろいろ調べたところ,実は non-public な API を使わなくてもいい方法が見つかりました.しかし, その過程で,SBit + Outline 混在の場合のメトリック取得の高 速化を考えついて,結局また non-public な API が必要になっ て,freetype-devel に提案したところ,先ほど,やっと freetype の cvs にパッチがあがりました. 以下,freetype-devel に流したテスト結果です. [ XF86-4.4.0 の FreeType(xtt2) バックエンドの結果 ] [Normal Path of Outline] # time ./bench "-microsoft-ms pmincho-medium-r-normal--60-0-0-0-p-0-iso10646-1" real 0m0.964s user 0m0.010s sys 0m0.000s [Fast Path of Outline] # time ./bench "-microsoft-ms pmincho-medium-r-normal--60-0-0-0-p-0-iso10646-1" real 0m0.086s user 0m0.000s sys 0m0.000s [SBit + Outline] # time ./bench "-microsoft-ms pmincho-medium-r-normal--14-0-0-0-p-0-iso10646-1" real 0m0.604s user 0m0.000s sys 0m0.000s で,以下が新しい高速化による結果です [Fast Path of SBit + Outline] # time ./bench "-microsoft-ms pmincho-medium-r-normal--14-0-0-0-p-0-iso10646-1" real 0m0.155s user 0m0.010s sys 0m0.000s 以下がテストのためのコードです. #include <X11/Xlib.h> int main( int argc, char *argv[] ) { Display* dis=NULL; dis=XOpenDisplay(NULL); XLoadQueryFont( dis, argv[1] ); return 0; } さらに高速化したこの xtt2 を version 1.2a としてリリース しました.Xorg-6.7 で build するには,freetype 用のパッチと Xorg 用のパッチの 2 つ が必要です.XFree/Xorg 用のパッチは 以下から取得できます. http://x-tt.sourceforge.jp/index_nippon.html Xorg はデフォルトでは freetype2 を一緒に build しないので, freetype2 にパッチをあててあらかじめインストールしておく 必要があります.もちろん,近々リリースされる freetype-2.1.8 を入れた場合は,Xorg だけパッチすれば良いです. == Chisato Yamauchi =================================