ID3DXFont :文本被拉伸,如何获取字体的宽度和高度?
ID3DXFont : Text is stretched, how to get font's width & height?
我正在尝试为我的自定义游戏引擎添加字体支持。我正在使用C++和DirectX 9与VS2012。问题 :当您创建ID3DXFont对象时,您必须分别指定字符的宽度和高度,但是不同字体的宽高(宽度/高度(是不同的,从而使一种字体被拉伸,另一种字体正常。
- 拉伸的"OCR A 扩展"字体:https://i.stack.imgur.com/k8OsM.jpg
- 普通"普里什蒂纳"字体:https://i.stack.imgur.com/c8zfE.jpg
我尝试在 Google 和其他论坛上搜索可能的功能,以从系统或其他来源获取这两个值,但没有运气......
现在,我正在手动输入:
ID3DXFont* f;
D3DXCreateFont(
m_context->getD3Ddevice(),
size, size / 4.0F, // this part is the issue
FW_REGULAR,
0,
false,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DRAFT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
m_name,
&f );
此代码尚未修改,它是操作上面两张图片显示的文本的代码。
好的,所以我错过了那里Microsoft的重要帮助:DirectX Samples(来自 DirectX SDK(。
显然有一个关于如何绘制文本,解决方案是简单地为宽度参数输入 0 :
D3DXCreateFont(
m_context->getD3Ddevice(),
size, 0, // In order, height & width
FW_REGULAR,
0,
false,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DRAFT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
m_name,
&f );
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 在C++中测量postscript字体宽度
- 如何获取控制面板设置值,如字体大小
- 使用 TTF_RenderText() 加载字体时获取段错误 TTF_OpenFontRW()
- 如何获取字体数据以嵌入到 PDF 中?
- 如何获取具有 Freetype2 的真正类型字体支持的代码点列表 C++
- ID3DXFont :文本被拉伸,如何获取字体的宽度和高度?
- 从字体名称获取 TrueType 字体"post"表
- 从 CFontDialog 获取字体
- 如何获取样式表设置的Qt中小部件的字体
- 从 C++/Windows 中的名称和样式获取字体文件路径
- 从已安装的窗口光栅(位图)字体直接获取位图
- 如何使用 fontconfig 获取字体列表 (C/C++)
- 获取基于字体句柄(HFONT)的字体文件名
- 从带字体的字符串中获取像素数据的简单方法
- 直接写入:获取字体的高度