我设置了模板缓冲区,因此只有部分屏幕受到绘图调用的影响。具体来说,我想画一个小区域。它将成为一个 UI,因此绘制的所有内容都将是某种 2D 精灵。使用 sprite 对象效果很好。该区域之外的精灵被切断。但是,当我添加文本时,之后绘制的所有内容和文本本身都不会被切断。PIX 显示,一旦调用绘制文本,就会设置一个新的 DepthStencilState 并关闭模板缓冲区。文本由负责绘制其他精灵的同一精灵对象绘制。
绘图是通过 SlimDX.Direct3D10.Font.Draw 方法执行的。
有没有办法强制 DirectX 不改变状态对象?我使用 SlimDX,但根据它的代码,它似乎不负责状态变化。
尼科