自从我学习了 DirectX 7 以来,人发生了很大的变化。
在我看到的任何地方(除了Wikipedia),它都说我必须先从 DWrite 渲染到 D2D 或 GDI,然后才能做任何事情。
那个维基百科的文章错了吗?我不能渲染到 Direct3D 吗?
我想避免渲染到 D2D,因为显然,要让 D2D 写入 D3D,您还必须打开 D3D10.1 设备。
在 D3D11 中渲染文本真的需要这么多吗?
自从我学习了 DirectX 7 以来,人发生了很大的变化。
在我看到的任何地方(除了Wikipedia),它都说我必须先从 DWrite 渲染到 D2D 或 GDI,然后才能做任何事情。
那个维基百科的文章错了吗?我不能渲染到 Direct3D 吗?
我想避免渲染到 D2D,因为显然,要让 D2D 写入 D3D,您还必须打开 D3D10.1 设备。
在 D3D11 中渲染文本真的需要这么多吗?
不幸的是,微软决定从他们的 DirectX API 中删除原生文本支持。现在您可以使用 DirectWrite,然后如您所说的渲染到 GDI 或 D2D,这有点笨拙,或者,创建自己的字体处理类,并使用它(这是我为我的项目选择的)。
有一个关于如何生成自定义字体处理类的很好的教程,在这里:http ://www.rastertek.com/dx11tut12.html
显然,您应该自己编写,但它提供了一个很好的起点,并允许您查看所有必要的程序(您可能想要添加的内容是对多种字体的支持,我建议为此创建一个 Font 类,您的字体处理程序将关联字符串存储在 std::map< char*, Font* >) 中。
希望这可以帮助!:)