D3D 文本

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而我用的是蓝色. 也就是说白色可以而蓝色不可以. 实在是不解, 不知为何?

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示