フォント関連
2012年05月06日06時25分
唐突にやりたくなったんで以前の続きを開く。
releaseしたexeを起動して、しばらくするとエラー
もしかしてと思ってタスクマネージャ見てみたら
やっぱりメモリリークしてんじゃねぇかとorz
どこや・・・と探しまくった結果、
CreateFontIndirectが原因と分かる。
論理フォントなんか一回セットしたら後は放置するかと
最初の一回のみにしたら今度は
GetGlyphOutlineで設定エラー。
どうやら一度使用後は改めて設定しなければならない
仕方なく調べてみると、SelectObjectの後に
DeleteObjectをしろとあるのでその様にしてみた
すると、メモリリークは無くなった。
Selectして使用前にDeleteって仕様は変だよなぁ。
5月7日 0:11
忘れない内にメモる。
今までDirect3D利用でフォント描画してたが、
全部DIBSectionでイケル事が判明。
しかも、極端に突き詰めると画像のみでいい。
ようは、フォントを画像化したDIBSectionを
StretchDIBitsしておいて、WM_PAINTにおける
BeginPaint経由のBitBltを行えば事足りる。
組み込みフォントをどうしても利用したいなら
GetGlyphOutlineすればいいだけだし、独自で
フォント利用したいなら画像化して上記処理を
すればWindowsにおけるC++でのフォント描画は
ほぼ終了ではなかろうか。理論上はね。
作るのは超面倒なんだなこれが。