c++ - 不使用 GDI 的 DirectX 字体教程

标签 c++ fonts directx

有没有人有关于在不使用 GDI 的 native directx 9 中创建和渲染字体的任何教程/信息? (例如不使用 ID3DXFont)。
我读到这不是最佳解决方案(由于访问 GDI),但在 dx 中呈现字体的“正确”方法是什么?

最佳答案

ID3DXFont 是易于使用、早期调试输出的好东西。但是,它确实使用 GDI 进行字体光栅化(不是硬件加速)并且性能受到显着影响(尝试一下,它实际上非常明显)。不过,从 DirectX 11 开始,字体将使用 Direct2D 呈现并进行硬件加速。

呈现文本的最快方法是使用所谓的“位图字体”。我会解释如何做到这一点,除了有很多不同的方法来实现这种技术,每种方法的复杂性和能力都不同。它可以像加载预先创建的纹理并从中绘制字母的系统一样简单,也可以像系统一样简单地向 Windows 静默注册字体并在加载时在内存中创建纹理(我与 friend 开发的引擎这样做,它非常光滑)。无论哪种方式,您都应该看到位图字体带来了非常显着的性能提升。

关于c++ - 不使用 GDI 的 DirectX 字体教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491487/

相关文章:

c++ - OpenGL VAO - 在多种情况下处理 VAO

c++ - 将 COM dll 与非托管 C++ 一起使用

c++ - 如何识别容器中的 std::function 并将其删除?

performance - @font-face 渲染性能

android - Android ICS 上的卡纳达语字体

c++ - D3D11CreateDevice 0x887a002d 错误

C++:最常见的漏洞是什么以及如何避免它们?

macos - 如何在 RStudio 中安装新字体?

c++ - 如何发送D3D设备给引用(DirectX/C++编程)

c++ - 模块化游戏引擎 : DLL circular dependencies