DirectX中绘制文字效果分析(3D/c++)

                                               D3DXCreateText方法 绘制三维网格文字

(1)创建网格 Text指针

Code:
  1. ID3DXMesh* Text =0;  

(2)获得设备上下文的句柄

Code:
  1. HDC hdc = CreateCompatibleDC(0);  

(3)定义并填充 LOGFONT 对象 lf;

Code:
  1. ZeroMemory(&lf, sizeof(LOGFONT));   
  2. lf.lfHeight         = 25;       
  3. lf.lfWidth          = 12;       
  4. lf.lfEscapement     = 0;           
  5. lf.lfOrientation    = 0;        
  6. lf.lfWeight         = 500;      lf.lfItalic         = false;      
  7. lf.lfUnderline      = false;       
  8. lf.lfStrikeOut      = false;       
  9. lf.lfCharSet        = DEFAULT_CHARSET;   
  10. lf.lfOutPrecision   = 0;                 
  11. lf.lfClipPrecision  = 0;             
  12. lf.lfQuality        = 0;              
  13. lf.lfPitchAndFamily = 0;       
  14. strcpy((char*)lf.lfFaceName,"Consolas");   

(4)创建Font 并把它选入设备上下文中

Code:
  1. HFONT hFont;   
  2. HFONT hFontOld;  

(5)创建 hFont,并且设备描述符关联新的hFont(新的

hFont 加载描述符lf)

Code:
  1. ID3DXMesh * Text= 0;   
  2. D3DXCreateText(Device, hdc, _T("Game /n devil"),    
  3.         0.001f, 0.1f, &Text, 0, 0);  

(6)还原HDC

Code:
  1. SelectObject(hdc,HFontOld);   
  2. DeleteObject( hFont );   
  3. DeleteDC( hdc );  

(7)在Display()方法中 设置材质,
并 调用DrawSubset(0)方法绘制文字
在Device->BeginScene();和 Device->EndScene();之间调用

  Device->SetMaterial

(&d3d::WHITE_MTRL);
  Text->DrawSubset(0);

 

效果如下:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值