02:07.NET版のライブラリを使用しています。CreateFontToHandleで作成したハンドルを使ってDrawStringToHandleやDrawExtendStringToHandleで文字列を描画する際に,非常に時間がかかっています。i7-4770のPCで50〜100ms,Windows7世代のPCだと1000〜2000msかかります。(フォントサイズは60〜80)フォントはWindowsに標準で入っているものを使用しています。同じ文字を2回目以降に描画する際には高速に描画される(キャッシュに入る?)のですが,特定の文字だけを描画するわけではないので,困っています。何か考えられることはありますでしょうか。フォント全体をあらかじめキャッシュに入れるようなことができるのでしょうか。i7-4770のPCで50〜100ms,Windows7世代のPCだと1000〜2000msかかります。フォント全体をあらかじめキャッシュに入れるようなことができるのでしょうか。21:17ご返答ありがとうございます。結果的には,文字にエッジを付けると描画が非常に遅くなるということでした。アンチエイリアスは真っ先に外してみていたのですが,エッジの方はそれほど重い処理だと思っていなかったので,盲点でした。3.0)でも20ms程度で描画することができました。キャッシュに入れたい文字を引数で渡して呼ぶことで文字をキャッシュに入れ、>実際に描画する際は『2回目以降の描画速度』で描画するという方法もありますこれも考えたのですが,表示する文字列の内容が事前にわからないのでちょっと難しいですね。エッジを付けても高速に描画できる条件のようなものがあるのでしょうか。背景の関係でエッジを付けた方が文字がきれいに見えるので,できればエッジ付きにしたいのですが。23:05ご返答ありがとうございます。)感覚的にはそんなに重い処理とは思えないのですが,そういうことであれば仕方ありませんね。何回も呼ぶことで実現してしまう方法ですこれは代替手段としてやってみていました(私が実装したのは4方向だけでしたが)。この方法であれば実用的な速度で動作することは確認できています。通常のエッジ付き文字の描画が極端に遅くなるかどうかを,簡単に判断できないものでしょうか。Direct3Dやピクセルシェーダのバージョンなどで判断できるとありがたいのですが。通常のエッジ付き文字の描画が極端に遅くなるかどうかを,簡単に判断できないものでしょうか。Direct3Dやピクセルシェーダのバージョンなどで判断できるとありがたいのですが。CPU側の問題なのですね。検証してみましたが,結局どの環境でもエッジを自前で描いた方が(1回目は)速くなるようなので,ラッパーで対応することにしました。ついてですが,GetDrawStringCharInfo系は.NET版では使えないのですね。何か理由があるのでしょうか。できれば使用したいのですが。※文字列描画関連についてですが,GetDrawStringCharInfo系は.NET版では使えないのですね。何か理由があるのでしょうか。できれば使用したいのですが。(記事メンテ時に使用)クッキ。