Esempio n. 1
0
        MTLBlendFactor TranslateBlendFactor(MgBlendFactor factor)
        {
            switch (factor)
            {
            default:
                throw new NotSupportedException();

            case MgBlendFactor.ONE:
                return(MTLBlendFactor.One);

            case MgBlendFactor.ZERO:
                return(MTLBlendFactor.Zero);

            case MgBlendFactor.SRC_COLOR:
                return(MTLBlendFactor.SourceColor);

            case MgBlendFactor.SRC_ALPHA:
                return(MTLBlendFactor.SourceAlpha);

            case MgBlendFactor.DST_COLOR:
                return(MTLBlendFactor.DestinationColor);

            case MgBlendFactor.DST_ALPHA:
                return(MTLBlendFactor.DestinationAlpha);

            case MgBlendFactor.ONE_MINUS_SRC_COLOR:
                return(MTLBlendFactor.OneMinusSourceColor);

            case MgBlendFactor.ONE_MINUS_SRC_ALPHA:
                return(MTLBlendFactor.OneMinusSourceAlpha);

            case MgBlendFactor.ONE_MINUS_DST_COLOR:
                return(MTLBlendFactor.OneMinusDestinationColor);

            case MgBlendFactor.ONE_MINUS_DST_ALPHA:
                return(MTLBlendFactor.OneMinusDestinationAlpha);

            case MgBlendFactor.SRC_ALPHA_SATURATE:
                return(MTLBlendFactor.SourceAlphaSaturated);

            case MgBlendFactor.CONSTANT_COLOR:
                return(MTLBlendFactor.BlendColor);

            case MgBlendFactor.ONE_MINUS_CONSTANT_COLOR:
                return(MTLBlendFactor.OneMinusBlendColor);

            case MgBlendFactor.CONSTANT_ALPHA:
                return(MTLBlendFactor.BlendAlpha);

            case MgBlendFactor.ONE_MINUS_CONSTANT_ALPHA:
                return(MTLBlendFactor.OneMinusBlendAlpha);
            }
        }
Esempio n. 2
0
        private BlendingFactorSrc GetBlendFactorSrc(MgBlendFactor blend)
        {
            switch (blend)
            {
            case MgBlendFactor.DST_ALPHA:
                return(BlendingFactorSrc.DstAlpha);

            case MgBlendFactor.DST_COLOR:
                return(BlendingFactorSrc.DstColor);

            case MgBlendFactor.ONE_MINUS_DST_ALPHA:
                return(BlendingFactorSrc.OneMinusDstAlpha);

            case MgBlendFactor.ONE_MINUS_DST_COLOR:
                return(BlendingFactorSrc.OneMinusDstColor);

            case MgBlendFactor.ONE_MINUS_SRC_ALPHA:
                return(BlendingFactorSrc.OneMinusSrcAlpha);

            case MgBlendFactor.ONE_MINUS_SRC_COLOR:
                                #if MONOMAC || WINDOWS || DESKTOPGL
                return((BlendingFactorSrc)All.OneMinusSrcColor);
                                #else
                return(BlendingFactorSrc.OneMinusSrcColor);
                                #endif
            case MgBlendFactor.ONE:
                return(BlendingFactorSrc.One);

            case MgBlendFactor.SRC_ALPHA:
                return(BlendingFactorSrc.SrcAlpha);

            case MgBlendFactor.SRC_ALPHA_SATURATE:
                return(BlendingFactorSrc.SrcAlphaSaturate);

            case MgBlendFactor.SRC_COLOR:
                                #if MONOMAC || WINDOWS || DESKTOPGL
                return((BlendingFactorSrc)All.SrcColor);
                                #else
                return(BlendingFactorSrc.SrcColor);
                                #endif
            case MgBlendFactor.ZERO:
                return(BlendingFactorSrc.Zero);

            default:
                return(BlendingFactorSrc.One);
            }
        }
Esempio n. 3
0
        public void ApplyBlendSeparateFunction(uint index, MgBlendFactor srcColor, MgBlendFactor dstColor, MgBlendFactor srcAlpha, MgBlendFactor destAlpha)
        {
            GL.BlendFuncSeparate(
                index,
                GetBlendFactorSrc(srcColor),
                GetBlendFactorDest(dstColor),
                GetBlendFactorSrc(srcAlpha),
                GetBlendFactorDest(destAlpha));

            {
                var error = GL.GetError();
                if (error != ErrorCode.NoError)
                {
                    Debug.WriteLine("ApplyBlendSeparateFunction : " + error);
                }
            }
        }
Esempio n. 4
0
        private static BlendingFactorDest GetBlendFactorDest(MgBlendFactor blend)
        {
            switch (blend)
            {
            case MgBlendFactor.DST_ALPHA:
                return(BlendingFactorDest.DstAlpha);

            //			case Blend.DestinationColor:
            //				return BlendingFactorDest.DstColor;
            case MgBlendFactor.ONE_MINUS_DST_ALPHA:
                return(BlendingFactorDest.OneMinusDstAlpha);

            //			case Blend.InverseDestinationColor:
            //				return BlendingFactorDest.OneMinusDstColor;
            case MgBlendFactor.ONE_MINUS_SRC_ALPHA:
                return(BlendingFactorDest.OneMinusSrcAlpha);

            case MgBlendFactor.ONE_MINUS_SRC_COLOR:
                                #if MONOMAC || WINDOWS
                return((BlendingFactorDest)All.OneMinusSrcColor);
                                #else
                return(BlendingFactorDest.OneMinusSrcColor);
                                #endif
            case MgBlendFactor.ONE:
                return(BlendingFactorDest.One);

            case MgBlendFactor.SRC_ALPHA:
                return(BlendingFactorDest.SrcAlpha);

            //			case Blend.SourceAlphaSaturation:
            //				return BlendingFactorDest.SrcAlphaSaturate;
            case MgBlendFactor.SRC_COLOR:
                                #if MONOMAC || WINDOWS
                return((BlendingFactorDest)All.SrcColor);
                                #else
                return(BlendingFactorDest.SrcColor);
                                #endif
            case MgBlendFactor.ZERO:
                return(BlendingFactorDest.Zero);

            default:
                return(BlendingFactorDest.One);
            }
        }
Esempio n. 5
0
 public void ApplyBlendSeparateFunction(uint index, MgBlendFactor colorSource, MgBlendFactor colorDest, MgBlendFactor alphaSource, MgBlendFactor alphaDest)
 {
 }