我设置了模板缓冲区,因此只有部分屏幕受到绘制调用的影响。具体来说,我想画一个小区域。它将成为一个UI,所以绘制的所有内容都将是某种2D精灵。使用sprite对象非常有效。该区域外的精灵被切断。 但是,当我添加文本时,之后绘制的所有内容和文本本身都不会被截断。 PIX显示一旦调用绘制文本,就会在关闭模板缓冲区的情况下设置新的DepthStencilState。该文本由相同的精灵对象绘制,该对象负责绘制其他精灵。
通过SlimDX.Direct3D10.Font.Draw方法执行绘图。
有没有办法强制DirectX不更改状态对象?我使用SlimDX,但根据其代码,它似乎不对状态变化负责。
Nico
答案 0 :(得分:0)
如果你要切换到D3D11,你可能会对我一直在移植到SlimDX的字体渲染库感兴趣(以及过去几个月发布的DirectX工具包库中的其他一些部分)
它仍在开发中,所以不保证任何事情,但你可以在这里找到它(SVN):http://code.google.com/p/slimdx/source/browse/#svn%2Fbranches%2Flite%2FSlimDX.Toolkit