コード例 #1
0
        MTLCompareFunction TranslateCompareFunction(MgCompareOp compareOp)
        {
            switch (compareOp)
            {
            default:
                throw new NotSupportedException();

            case MgCompareOp.ALWAYS:
                return(MTLCompareFunction.Always);

            case MgCompareOp.EQUAL:
                return(MTLCompareFunction.Equal);

            case MgCompareOp.GREATER:
                return(MTLCompareFunction.Greater);

            case MgCompareOp.GREATER_OR_EQUAL:
                return(MTLCompareFunction.GreaterEqual);

            case MgCompareOp.LESS:
                return(MTLCompareFunction.Less);

            case MgCompareOp.LESS_OR_EQUAL:
                return(MTLCompareFunction.LessEqual);

            case MgCompareOp.NEVER:
                return(MTLCompareFunction.Never);

            case MgCompareOp.NOT_EQUAL:
                return(MTLCompareFunction.NotEqual);
            }
        }
コード例 #2
0
        private static GLStencilFunction GetStencilFunc(MgCompareOp function)
        {
            switch (function)
            {
            case MgCompareOp.ALWAYS:
                return(GLStencilFunction.Always);

            case MgCompareOp.EQUAL:
                return(GLStencilFunction.Equal);

            case MgCompareOp.GREATER:
                return(GLStencilFunction.Greater);

            case MgCompareOp.GREATER_OR_EQUAL:
                return(GLStencilFunction.Gequal);

            case MgCompareOp.LESS:
                return(GLStencilFunction.Less);

            case MgCompareOp.LESS_OR_EQUAL:
                return(GLStencilFunction.Lequal);

            case MgCompareOp.NEVER:
                return(GLStencilFunction.Never);

            case MgCompareOp.NOT_EQUAL:
                return(GLStencilFunction.Notequal);

            default:
                return(GLStencilFunction.Always);
            }
        }
コード例 #3
0
        private static MTLCompareFunction GetDepthCompareFunction(MgCompareOp depthCompareOp)
        {
            switch (depthCompareOp)
            {
            default:
                throw new NotSupportedException();

            case MgCompareOp.LESS:
                return(MTLCompareFunction.Less);

            case MgCompareOp.LESS_OR_EQUAL:
                return(MTLCompareFunction.LessEqual);

            case MgCompareOp.GREATER:
                return(MTLCompareFunction.Greater);

            case MgCompareOp.GREATER_OR_EQUAL:
                return(MTLCompareFunction.GreaterEqual);

            case MgCompareOp.NEVER:
                return(MTLCompareFunction.Never);

            case MgCompareOp.NOT_EQUAL:
                return(MTLCompareFunction.NotEqual);

            case MgCompareOp.EQUAL:
                return(MTLCompareFunction.Equal);
            }
        }
コード例 #4
0
        private static DepthFunction GetDepthFunction(MgCompareOp compare)
        {
            switch (compare)
            {
            default:
                throw new NotSupportedException();

            case MgCompareOp.ALWAYS:
                return(DepthFunction.Always);

            case MgCompareOp.EQUAL:
                return(DepthFunction.Equal);

            case MgCompareOp.GREATER:
                return(DepthFunction.Greater);

            case MgCompareOp.GREATER_OR_EQUAL:
                return(DepthFunction.Gequal);

            case MgCompareOp.LESS:
                return(DepthFunction.Less);

            case MgCompareOp.LESS_OR_EQUAL:
                return(DepthFunction.Lequal);

            case MgCompareOp.NEVER:
                return(DepthFunction.Never);

            case MgCompareOp.NOT_EQUAL:
                return(DepthFunction.Notequal);
            }
        }
コード例 #5
0
        private static All GetCompareOp(MgCompareOp compareOp)
        {
            switch (compareOp)
            {
            case MgCompareOp.ALWAYS:
                return(All.Always);

            case MgCompareOp.EQUAL:
                return(All.Equal);

            case MgCompareOp.LESS:
                return(All.Less);

            case MgCompareOp.LESS_OR_EQUAL:
                return(All.Lequal);

            case MgCompareOp.GREATER:
                return(All.Greater);

            case MgCompareOp.GREATER_OR_EQUAL:
                return(All.Gequal);

            case MgCompareOp.NOT_EQUAL:
                return(All.Notequal);

            case MgCompareOp.NEVER:
                return(All.Never);

            default:
                throw new NotSupportedException();
            }
        }
コード例 #6
0
        public void SetDepthBufferFunc(MgCompareOp func)
        {
            GL.DepthFunc(GetDepthFunction(func));

            {
                var error = GL.GetError();
                if (error != ErrorCode.NoError)
                {
                    Debug.WriteLine("SetDepthBufferFunc : " + error);
                }
            }
        }
コード例 #7
0
        public void SetStencilFunction(
            MgCompareOp stencilFunction,
            int referenceStencil,
            uint compare)
        {
            GL.StencilFunc(
                GetStencilFunc(stencilFunction),
                referenceStencil,
                compare);

            {
                var error = GL.GetError();
                if (error != ErrorCode.NoError)
                {
                    Debug.WriteLine("SetStencilFunction : " + error);
                }
            }
        }
コード例 #8
0
        public void SetBackFaceCullStencilFunction(MgCompareOp func, int referenceStencil, uint compare)
        {
            var cullFaceModeBack = StencilFace.Back;

            GL.StencilFuncSeparate(
                cullFaceModeBack,
                GetStencilFunc(func),
                referenceStencil,
                compare);

            {
                var error = GL.GetError();
                if (error != ErrorCode.NoError)
                {
                    Debug.WriteLine("SetBackFaceCullStencilFunction : " + error);
                }
            }
        }
コード例 #9
0
 public void SetStencilFunction(MgCompareOp stencilFunction, int referenceStencil, uint compare)
 {
 }
コード例 #10
0
 public void SetFrontFaceCullStencilFunction(MgCompareOp func, int referenceStencil, uint compare)
 {
 }
コード例 #11
0
 public void SetDepthBufferFunc(MgCompareOp func)
 {
 }
コード例 #12
0
 public void SetTextureCompareFunc(int samplerId, MgCompareOp compareOp)
 {
     GL.SamplerParameter(samplerId, SamplerParameterName.TextureCompareFunc, (int)GetCompareOp(compareOp));
     mErrHandler.LogGLError("SamplerParameter (TextureCompareFunc)");
 }