Direct3D中载入字体并显示


最近研究的东西都是非常肤浅的,连自己都是这么认为。不过还是看看我实现的Direct3D中载入字体吧。

起作用的是这个函数:D3DXCreateFont()。MSDN上有它的用法及相关解释,在这里我就不展示了,下面是我的习惯用法:

	// 创建字体
	HRESULT hr;
	hr = D3DXCreateFont(
		m_pDevice,							// DIRECT3DDEVICE9的指针
		64,									// 字体的大小(高度)
		0,									// 字体附加的宽度,通常为0
		0,									// 字体是否加粗的标志
		1,									// mip级别,通常设为1,即只有原字体
		0,									// 字体是否为斜体的标志
		DEFAULT_CHARSET,				// 字符集,通常是默认的
		OUT_DEFAULT_PRECIS,				// 是否与windows字体精确匹配
		DEFAULT_QUALITY,					// 文本质量,只影响光栅字体
		DEFAULT_PITCH | FF_DONTCARE,	// pitch和family索引,通常设置默认值
		TEXT( "文泉驿正黑" ),					// 字体名称
		&m_Font );							// D3DXFONT的指针
哦,对了,我比较喜欢文泉驿正黑字体,这个字体比较好看,和微软的雅黑不相上下。它是Ubuntu下的默认字体。所以我特意从网上下载了这个字体,并且用它进行测试,结果显示,使用中文、日文和英文都毫无问题,当然能不能显示“囧”这个字呢?我测试一下……哦,显示这个字是没有问题的!

渲染字体要在BeginScene()和EndScene()之间进行。这里也不拿出来典型用法了,只是说一下我这里的典型用法:

	// 显示字体
	m_Font->DrawText(
		NULL,								// ID3DXSPRITE指针,可以为NULL,多次渲染时要指定
		TEXT( "这是测试字体\nこれはテスト字体である\nThis is a TEST font.\n囧" ),				// 字符串
		-1,									// 字符的字节数,为-1表示系统自动显示
		m_pRect,							// RECT指针
		DT_LEFT,							// 显示方式
		D3DCOLOR_XRGB( 255, 255, 255 ) );	// 颜色
这里要额外地传入一个RECT类型,我使用了指针,初始化的时候new创建一个,不要的时候则delete掉。看吧,其实就是那么简单。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值