typedef enum D3D10_STENCIL_OP {
D3D10_STENCIL_OP_KEEP = 1,
D3D10_STENCIL_OP_ZERO = 2,
D3D10_STENCIL_OP_REPLACE = 3,
D3D10_STENCIL_OP_INCR_SAT = 4,
D3D10_STENCIL_OP_DECR_SAT = 5,
D3D10_STENCIL_OP_INVERT = 6,
D3D10_STENCIL_OP_INCR = 7,
D3D10_STENCIL_OP_DECR = 8
} D3D10_STENCIL_OP;
这个枚举用于描述在模板测试和深度-模板测试期间,当模板测试通过或者失败时,模板缓冲中的值应该如何进行操作。以下是对枚举值的简要说明:
- D3D10_STENCIL_OP_KEEP:保持当前模板值不变。
- D3D10_STENCIL_OP_ZERO:将模板值设置为零。
- D3D10_STENCIL_OP_REPLACE:用参考值替换当前模板值。
- D3D10_STENCIL_OP_INCR_SAT:如果递增后不会溢出,则递增当前模板值。
- D3D10_STENCIL_OP_DECR_SAT:如果递减后不会溢出,则递减当前模板值。
- D3D10_STENCIL_OP_INVERT:按位翻转当前模板值。
- D3D10_STENCIL_OP_INCR:递增当前模板值,可能溢出。
- D3D10_STENCIL_OP_DECR:递减当前模板值,可能溢出。
在使用 Direct3D 10 编程时,你可以通过设置深度-模板状态对象(ID3D10DepthStencilState)中的相应字段,指定在不同情况下模板缓冲中的值应该如何被修改。这样可以控制在进行深度和模板测试时,应用于模板缓冲的操作。
转载请注明出处:http://www.zyzy.cn/article/detail/25546/Win32 API/D3d10.h/D3D10_STENCIL_OP