1

我设置了模板缓冲区,因此只有部分屏幕受到绘图调用的影响。具体来说,我想画一个小区域。它将成为一个 UI,因此绘制的所有内容都将是某种 2D 精灵。使用 sprite 对象效果很好。该区域之外的精灵被切断。但是,当我添加文本时,之后绘制的所有内容和文本本身都不会被切断。PIX 显示,一旦调用绘制文本,就会设置一个新的 DepthStencilState 并关闭模板缓冲区。文本由负责绘制其他精灵的同一精灵对象绘制。

绘图是通过 SlimDX.Direct3D10.Font.Draw 方法执行的。

有没有办法强制 DirectX 不改变状态对象?我使用 SlimDX,但根据它的代码,它似乎不负责状态变化。

尼科

4

1 回答 1

0

如果您要切换到 D3D11,您可能会对我一直致力于移植到 SlimDX 的字体渲染库感兴趣(以及过去几个月发布的 DirectX 工具包库中的其他一些内容)。

它仍在开发中,所以不能保证任何事情,但你可以在这里找到它(SVN):http ://code.google.com/p/slimdx/source/browse/#svn%2Fbranches%2Flite%2FSlimDX.Toolkit

于 2012-03-29T21:36:36.390 回答