Ejemplo n.º 1
0
        private static StencilOp GetStencilOp(MgStencilOp operation)
        {
            switch (operation)
            {
            case MgStencilOp.KEEP:
                return(StencilOp.Keep);

            case MgStencilOp.DECREMENT_AND_WRAP:
                return(StencilOp.DecrWrap);

            case MgStencilOp.DECREMENT_AND_CLAMP:
                return(StencilOp.Decr);

            case MgStencilOp.INCREMENT_AND_CLAMP:
                return(StencilOp.Incr);

            case MgStencilOp.INCREMENT_AND_WRAP:
                return(StencilOp.IncrWrap);

            case MgStencilOp.INVERT:
                return(StencilOp.Invert);

            case MgStencilOp.REPLACE:
                return(StencilOp.Replace);

            case MgStencilOp.ZERO:
                return(StencilOp.Zero);

            default:
                return(StencilOp.Keep);
            }
        }
Ejemplo n.º 2
0
        public static MTLStencilOperation GetStencilOperation(MgStencilOp stencilOp)
        {
            switch (stencilOp)
            {
            default:
                throw new NotSupportedException();

            case MgStencilOp.DECREMENT_AND_CLAMP:
                return(MTLStencilOperation.DecrementClamp);

            case MgStencilOp.DECREMENT_AND_WRAP:
                return(MTLStencilOperation.DecrementWrap);

            case MgStencilOp.INCREMENT_AND_CLAMP:
                return(MTLStencilOperation.IncrementClamp);

            case MgStencilOp.INCREMENT_AND_WRAP:
                return(MTLStencilOperation.IncrementWrap);

            case MgStencilOp.INVERT:
                return(MTLStencilOperation.Invert);

            case MgStencilOp.KEEP:
                return(MTLStencilOperation.Keep);

            case MgStencilOp.REPLACE:
                return(MTLStencilOperation.Replace);

            case MgStencilOp.ZERO:
                return(MTLStencilOperation.Zero);
            }
        }
Ejemplo n.º 3
0
        public void SetFrontFaceStencilOperation(
            MgStencilOp stencilFail,
            MgStencilOp stencilDepthBufferFail,
            MgStencilOp stencilPass)
        {
            var stencilFaceFront = StencilFace.Front;

            GL.StencilOpSeparate(stencilFaceFront, GetStencilOp(stencilFail),
                                 GetStencilOp(stencilDepthBufferFail),
                                 GetStencilOp(stencilPass));
        }
Ejemplo n.º 4
0
        public void SetStencilOperation(
            MgStencilOp stencilFail,
            MgStencilOp stencilDepthBufferFail,
            MgStencilOp stencilPass)
        {
            GL.StencilOp(GetStencilOp(stencilFail),
                         GetStencilOp(stencilDepthBufferFail),
                         GetStencilOp(stencilPass));

            {
                var error = GL.GetError();
                if (error != ErrorCode.NoError)
                {
                    Debug.WriteLine("SetStencilOperation : " + error);
                }
            }
        }
Ejemplo n.º 5
0
        public void SetBackFaceStencilOperation(
            MgStencilOp counterClockwiseStencilFail,
            MgStencilOp counterClockwiseStencilDepthBufferFail,
            MgStencilOp counterClockwiseStencilPass)
        {
            var stencilFaceBack = StencilFace.Back;

            GL.StencilOpSeparate(stencilFaceBack, GetStencilOp(counterClockwiseStencilFail),
                                 GetStencilOp(counterClockwiseStencilDepthBufferFail),
                                 GetStencilOp(counterClockwiseStencilPass));

            {
                var error = GL.GetError();
                if (error != ErrorCode.NoError)
                {
                    Debug.WriteLine("SetBackFaceStencilOperation : " + error);
                }
            }
        }
Ejemplo n.º 6
0
 public void SetStencilOperation(MgStencilOp stencilFail, MgStencilOp stencilDepthBufferFail, MgStencilOp stencilPass)
 {
 }