AddFontResourceEx関数、D3DXCreateFont関数、DrawText関数を利用して、フリーフォントを描画するプログラムを組みました。
一応描画は出来たのですが、ウインドウの背景色がフォントの縁の一部に映りこんでしまって困っています。
たとえばウインドウの背景が青なら青、紫なら紫といったように文字の周りにはっきり出てしまいます。(添付ファイルのようになります)
映り込む範囲は1ピクセル程度の太さで、どうやら設定されている範囲部分以外は映りこまないようです。(影のような印象)
どうか解決方法を教えていただけないでしょうか。
【環境】WindowsXP SP3, VC++ 2008EE, DirectX9
以下は関係がありそうな部分のソースコードです。
//バッファのクリア/////
pD3DDevice->Clear(
0,NULL,
D3DCLEAR_TARGET |
D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(255,255,255), // 背景色指定
1.0f,
0);
//フォントの読み込み///
LPCSTR font_path = "mplus-1m-bold.ttf"; // M+というフリーフォントを使用
if (AddFontResourceEx(font_path, FR_PRIVATE, NULL) > 0) {
} else {
// フォント読込エラー処理
MessageBox(NULL,"フォント読込失敗","",MB_OK);
}
//D3DXCreateFont///
D3DXCreateFont(
pD3DDevice,
45,
NULL,
FW_REGULAR,
NULL,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
"M+ 1m bold",
&font);
//DrawText////////
font->DrawText(
NULL,
text, // "回廊"
count, // -1
pRect, // 描画位置の構造体へのポインタ
Format, // DT_NOCLIP | DT_SINGLELINE
Color // D3DXCOLOR(0.0f, 0.0f, 0.0f, 255.0f) が入る
);