private void PrepareState_Stencil(GpuStateStruct* GpuState)
{
if (!GL.EnableDisable(GL.GL_STENCIL_TEST, GpuState->StencilState.Enabled))
{
return;
}
//Console.Error.WriteLine("aaaaaa!");
//if (state.stencilFuncFunc == 2) { outputDepthAndStencil(); assert(0); }
#if false
Console.Error.WriteLine(
"{0}:{1}:{2} - {3}, {4}, {5}",
StencilFunctionTranslate[(int)GpuState->StencilState.Function],
GpuState->StencilState.FunctionRef,
GpuState->StencilState.FunctionMask,
StencilOperationTranslate[(int)GpuState->StencilState.OperationFail],
StencilOperationTranslate[(int)GpuState->StencilState.OperationZFail],
StencilOperationTranslate[(int)GpuState->StencilState.OperationZPass]
);
#endif
GL.glStencilFunc(
OpenglGpuImplConversionTables.StencilFunctionTranslate[(int)GpuState->StencilState.Function],
GpuState->StencilState.FunctionRef,
GpuState->StencilState.FunctionMask
);
GL.glStencilOp(
OpenglGpuImplConversionTables.StencilOperationTranslate[(int)GpuState->StencilState.OperationFail],
OpenglGpuImplConversionTables.StencilOperationTranslate[(int)GpuState->StencilState.OperationZFail],
OpenglGpuImplConversionTables.StencilOperationTranslate[(int)GpuState->StencilState.OperationZPass]
);
}