0

我正在尝试提高经过良好测试的工作应用程序的 Directx 性能。使用配置文件工具,我已经确定调用 Microsoft.DirectX.Direct3D.Font.DrawText(Sprite sprite, string text, int x, int y, int color) 并为 sprite 参数传递 null 约占 30%应用程序的 CPU 使用率。当我创建一个精灵并将其传递给 DrawText 的所有调用时,CPU 使用率几乎消除了。唯一的问题是字体变得非常小并且以不清晰的方式旋转。

任何人都可以创建一个以与将 null 传递给 Microsoft.DirectX.Direct3D.Font.DrawText(Sprite sprite, string text, int x, int y, int color) 相同的方式呈现文本的精灵吗?我知道有一些方法可以使用 2D 文本而不是我所拥有的,但我宁愿避免对这个工作应用程序进行重大更改。

4

1 回答 1

1

您应该将绘图调用放在Sprite.Begin()和之间Sprite.End()。该Begin()调用将应用适当的渲染状态(例如转换)并且该End()调用恢复先前的状态。当然,你不应该在这个块中绘制精灵以外的任何东西。

于 2013-02-14T21:31:22.140 回答