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); } }
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); } }
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); } } }
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); } }
public void ApplyBlendSeparateFunction(uint index, MgBlendFactor colorSource, MgBlendFactor colorDest, MgBlendFactor alphaSource, MgBlendFactor alphaDest) { }