学习目标:
- 了解如何用 ID3DXFont 接口绘制文本
- 了解如何使用 CD3DFont 类绘制文本
- 了解如何计算应用程序每秒所绘制的帧数
- 了解如何用 D3DXCreateText 函数创建并绘制 3D 文本
ID3DXFont 接口
D3DX 库提供接口 ID3DXFont ,该接口用于在 Direct3D 应用程序中绘制文本。该接口内部使用 GDI(图像设备接口)来绘制文本,因此该接口在性能上略有损失。然而正是由于该接口使用了 GDI,所以才能够处理一些复杂的字体和格式。
创建一个 ID3DXFont 接口对象
我们可以用 D3DXCreateFontIndirect 函数来创建一个 ID3DXFont 接口对象。
HRESULT D3DXCreateFontIndirect(
LPDIRECT3DDEVICE9 pDevice, //要与字体关联的设备
const D3DXFONT_DESC* pDesc, //D3DXFONT_DESC字符串结构
LPD3DXFONT* ppFont //返回创建的字体
);
下面的代码段演示了如何使用该函数
D3DXFONT_DESC df;
ZeroMemory(& df, sizeof(D3DXFONT_DESC));
df.Height = 25; //高度,逻辑单位
df.Width = 12; //宽度,逻辑单位
df.Weight = 500; //粗体范围
df.MipLevels = D3DX_DEFAULT;
df.Italic = false;
df.CharSet = DEFAULT_CHARSET;
df.OutputPrecision = 0;
df.Quality = 0;
df.PitchAndFamily = 0;
strcpy(df.FaceName, "Times New Roman")