D3D字体
实用D3DXCreateFontIndirect函数来创建一个ID3DXFont接口
HRESULT D3DXCreateFontIndirect(
LPDIRECT3DDEVICE9 pDevice, // device to be associated with the font
CONST LOGFONT* pLogFont, // LOGFONT structure describing the font
LPD3DXFONT* ppFont // return the created font
);
Font->DrawText(
"Hello World", // String to draw
-1, // Null terminating string
&rect, // Rectangle to draw the string in
DT_TOP | DT_LEFT, // Draw in top-left corner of rect
0xff000000
); // Black
创建CD3DFont实例
CD3DFont(const TCHAR* strFontNmae, DWORD dwHeight, DWORD dwFlags=0L);
strFontName 以null结束的字符串,它指定字体类型
dwHeight 字体高度
dwFlags 可选,设置为0或者用下面的参数: D3DFONT_BOLD,D3DFONT_ITALIC,D3DFONT_ZENABLE
Font = new CD3DFont("Times New Roman",16,0);
Font->InitDeviceObjects( Device );
Font->RestoreDeviceObjects();
HRESULT CD3DFont::DrawText(FLOAT x, FLOAT y, DWORD dwColor,
const TCHAR* strText, DWORD dwFlags=0L);
清除 在删除一个CD3DFont对象之前,调用清除程序
Font->InvalidateDeviceObjects();
Font->DeleteDeviceObjects();
delete Font;
D3DXCreateText 用来创建一个3D文字网格
HRESULT D3DXCreateText(
LPDIRECT3DDEVICE9 pDevice,
HDC hDC,
LPCTSTR pText,
FLOAT Deviation,
FLOAT Extrusion,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency,
LPGLYPHMETRICSFLOAT pGlyphMetrics
);
SelectObject(hdc,hFont) 设置新的字体,返回原始字体,用于新建和保存恢复
3D字体是把字体的内容渲染到一个字体MESH中去。
HRESULT ID3DXMesh::GetVertexBuffer(LPDIRECT3DVERTEXBUFFER9* ppVB)
HRESULT ID3DXMesh::GetIndexBuffer(LPDIRECT3DINDEXBUFFER9* ppIB)
绘制子集0中所有的三角形 Mesh->DrawSubset(0)