使用模板缓冲区绘制文本

时间:2012-03-15 21:17:00

标签: text directx slimdx directx-10 stencil-buffer

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

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

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

Nico

1 个答案:

答案 0 :(得分:0)

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

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