示例#1
0
 public void setBlendFunction(Mini2DxBlendFunction srcFunc, Mini2DxBlendFunction dstFunc)
 {
     _srcFunction = srcFunc;
     _dstFunction = dstFunc;
     updateBlending();
     endRendering();
 }
        public static BlendState convertBlending(Mini2DxBlendFunction srcFunction, Mini2DxBlendFunction dstFunction)
        {
            var convertedBlendState = new BlendState();

            if (srcFunction == Mini2DxBlendFunction.ZERO)
            {
                convertedBlendState.AlphaSourceBlend = Blend.Zero;
                convertedBlendState.ColorSourceBlend = Blend.Zero;
            }
            else if (srcFunction == Mini2DxBlendFunction.ONE)
            {
                convertedBlendState.AlphaSourceBlend = Blend.One;
                convertedBlendState.ColorSourceBlend = Blend.One;
            }
            else if (srcFunction == Mini2DxBlendFunction.SRC_COLOR)
            {
                convertedBlendState.AlphaSourceBlend = Blend.SourceColor;
                convertedBlendState.ColorSourceBlend = Blend.SourceColor;
            }
            else if (srcFunction == Mini2DxBlendFunction.ONE_MINUS_SRC_COLOR)
            {
                convertedBlendState.AlphaSourceBlend = Blend.InverseSourceColor;
                convertedBlendState.ColorSourceBlend = Blend.InverseSourceColor;
            }
            else if (srcFunction == Mini2DxBlendFunction.DST_COLOR)
            {
                convertedBlendState.AlphaSourceBlend = Blend.DestinationColor;
                convertedBlendState.ColorSourceBlend = Blend.DestinationColor;
            }
            else if (srcFunction == Mini2DxBlendFunction.ONE_MINUS_DST_COLOR)
            {
                convertedBlendState.AlphaSourceBlend = Blend.InverseDestinationColor;
                convertedBlendState.ColorSourceBlend = Blend.InverseDestinationColor;
            }
            else if (srcFunction == Mini2DxBlendFunction.SRC_ALPHA)
            {
                convertedBlendState.AlphaSourceBlend = Blend.SourceAlpha;
                convertedBlendState.ColorSourceBlend = Blend.SourceAlpha;
            }
            else if (srcFunction == Mini2DxBlendFunction.ONE_MINUS_SRC_ALPHA)
            {
                convertedBlendState.AlphaSourceBlend = Blend.InverseSourceAlpha;
                convertedBlendState.ColorSourceBlend = Blend.InverseSourceAlpha;
            }
            else if (srcFunction == Mini2DxBlendFunction.DST_ALPHA)
            {
                convertedBlendState.AlphaSourceBlend = Blend.DestinationAlpha;
                convertedBlendState.ColorSourceBlend = Blend.DestinationAlpha;
            }
            else if (srcFunction == Mini2DxBlendFunction.ONE_MINUS_DST_ALPHA)
            {
                convertedBlendState.AlphaSourceBlend = Blend.InverseDestinationAlpha;
                convertedBlendState.ColorSourceBlend = Blend.InverseDestinationAlpha;
            }
            else if (srcFunction == Mini2DxBlendFunction.SRC_ALPHA_SATURATE)
            {
                convertedBlendState.AlphaSourceBlend = Blend.SourceAlphaSaturation;
                convertedBlendState.ColorSourceBlend = Blend.SourceAlphaSaturation;
            }

            if (dstFunction == Mini2DxBlendFunction.ZERO)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.Zero;
                convertedBlendState.ColorDestinationBlend = Blend.Zero;
            }
            else if (dstFunction == Mini2DxBlendFunction.ONE)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.One;
                convertedBlendState.ColorDestinationBlend = Blend.One;
            }
            else if (dstFunction == Mini2DxBlendFunction.SRC_COLOR)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.SourceColor;
                convertedBlendState.ColorDestinationBlend = Blend.SourceColor;
            }
            else if (dstFunction == Mini2DxBlendFunction.ONE_MINUS_SRC_COLOR)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.InverseSourceColor;
                convertedBlendState.ColorDestinationBlend = Blend.InverseSourceColor;
            }
            else if (dstFunction == Mini2DxBlendFunction.DST_COLOR)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.DestinationColor;
                convertedBlendState.ColorDestinationBlend = Blend.DestinationColor;
            }
            else if (dstFunction == Mini2DxBlendFunction.ONE_MINUS_DST_COLOR)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.InverseDestinationColor;
                convertedBlendState.ColorDestinationBlend = Blend.InverseDestinationColor;
            }
            else if (dstFunction == Mini2DxBlendFunction.SRC_ALPHA)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.SourceAlpha;
                convertedBlendState.ColorDestinationBlend = Blend.SourceAlpha;
            }
            else if (dstFunction == Mini2DxBlendFunction.ONE_MINUS_SRC_ALPHA)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.InverseSourceAlpha;
                convertedBlendState.ColorDestinationBlend = Blend.InverseSourceAlpha;
            }
            else if (dstFunction == Mini2DxBlendFunction.DST_ALPHA)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.DestinationAlpha;
                convertedBlendState.ColorDestinationBlend = Blend.DestinationAlpha;
            }
            else if (dstFunction == Mini2DxBlendFunction.ONE_MINUS_DST_ALPHA)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.InverseDestinationAlpha;
                convertedBlendState.ColorDestinationBlend = Blend.InverseDestinationAlpha;
            }
            else if (dstFunction == Mini2DxBlendFunction.SRC_ALPHA_SATURATE)
            {
                convertedBlendState.AlphaDestinationBlend = Blend.SourceAlphaSaturation;
                convertedBlendState.ColorDestinationBlend = Blend.SourceAlphaSaturation;
            }

            return(convertedBlendState);
        }