d3d中可以在场景中直接渲染文本:
步骤很简单, 如下:
1. 定义ID3DXFont接口
ID3DXFont *m_pFPSFont;
2. 创建实例
LOGFONTW lf = { 0 };
lf.lfHeight = 20;
lf.lfWeight = 12;
lf.lfWeight = 400;
lf.lfItalic = false;
lf.lfUnderline = false;
lf.lfStrikeOut = false;
lf.lfCharSet = DEFAULT_CHARSET;
lf.lfOutPrecision = 0;
lf.lfClipPrecision = 0;
lf.lfQuality = 0;
lf.lfPitchAndFamily = 0;
wcscpy( lf.lfFaceName, L”Times New Roman” );
HRESULT hr = D3DXCreateFontIndirect( m_pD3DDevice, &lf, &m_pFPSFont );
3. 渲染字体
HRESULT hr = m_pFPSFont->DrawTextA( szFPS, -1, &rc,
DT_LEFT | DT_TOP, 0xffffffff );
问题是这样:
上面DrawTextA的最后一个参数是字体颜色, 起初我用的是蓝色0x00000fff. 结果屏幕上没有任何显示. 之后我查看别人的例子程序, 做比较几乎没有什么区别, 改了又改,还是没有任何显示, 最后把别人的DrawText直接copy过来, 竟然可以了.后来再次比较发现别人用的颜色是白色0xffffffff而我用的是蓝色. 也就是说白色可以而蓝色不可以. 实在是不解, 不知为何?
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.