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