D3D12_STENCIL_OP 枚举是 Direct3D 12 中的一个枚举类型,用于定义模板测试和模板操作时的操作类型。该枚举表示在模板测试和模板操作期间所执行的不同操作。

以下是该枚举的定义:
typedef enum D3D12_STENCIL_OP {
  D3D12_STENCIL_OP_KEEP           = 1,
  D3D12_STENCIL_OP_ZERO           = 2,
  D3D12_STENCIL_OP_REPLACE        = 3,
  D3D12_STENCIL_OP_INCR_SAT       = 4,
  D3D12_STENCIL_OP_DECR_SAT       = 5,
  D3D12_STENCIL_OP_INVERT         = 6,
  D3D12_STENCIL_OP_INCR           = 7,
  D3D12_STENCIL_OP_DECR           = 8
} D3D12_STENCIL_OP;

这个枚举包括了在模板测试和模板操作期间可用的不同操作:

  •  D3D12_STENCIL_OP_KEEP:保持当前的模板值。

  •  D3D12_STENCIL_OP_ZERO:将模板值设置为0。

  •  D3D12_STENCIL_OP_REPLACE:用参考值替换模板值。

  •  D3D12_STENCIL_OP_INCR_SAT:如果模板值小于最大值,则递增模板值;否则保持不变。

  •  D3D12_STENCIL_OP_DECR_SAT:如果模板值大于最小值,则递减模板值;否则保持不变。

  •  D3D12_STENCIL_OP_INVERT:按位取反模板值。

  •  D3D12_STENCIL_OP_INCR:递增模板值,如果溢出则绕回0。

  •  D3D12_STENCIL_OP_DECR:递减模板值,如果溢出则绕回最大值。


这些操作通常用于配置深度模板测试和深度模板写入的行为。例如,你可以在深度模板状态对象中使用这些操作来定义前后深度测试和写入模板缓冲时的操作。


转载请注明出处:http://www.zyzy.cn/article/detail/26114/Win32 API/D3d12.h/D3D12_STENCIL_OP