Ejemplo n.º 1
0
        public void SetBlendFuncRgb(BlendFuncMode arg1, BlendFuncFactor arg2, BlendFuncFactor arg3)
        {
//			Debug.Assert(false);
            SetBlendFuncRgb(new BlendFunc(arg1, arg2, arg3));
        }
Ejemplo n.º 2
0
 /// <summary>Sets a value to the the structure representing the alpha-blending function</summary>
 /// <param name="mode">Alpha-blending function mode</param>
 /// <param name="srcFactor">Alpha-blending function source coefficient</param>
 /// <param name="dstFactor">Alpha-blending function destination coefficient</param>
 public void Set(BlendFuncMode mode, BlendFuncFactor srcFactor, BlendFuncFactor dstFactor)
 {
     this.bits = ((uint)((int)mode | (int)((uint)srcFactor << 8)) | ((uint)dstFactor << 16));
 }
Ejemplo n.º 3
0
        public void SetBlendFunc(BlendFuncMode mode, BlendFuncFactor srcFactor, BlendFuncFactor dstFactor)
        {
            __blendFunc = new BlendFunc(mode, srcFactor, dstFactor);

            BlendEquationMode _mode = BlendEquationMode.FuncAdd;

            switch (mode)
            {
            case BlendFuncMode.Add:
                _mode = BlendEquationMode.FuncAdd;
                break;

            default:
                Debug.Assert(false);
                break;
            }
            BlendingFactorSrc  _src = BlendingFactorSrc.SrcAlpha;
            BlendingFactorDest _dst = BlendingFactorDest.OneMinusSrcAlpha;

            switch (srcFactor)
            {
            case BlendFuncFactor.Zero:
                _src = BlendingFactorSrc.Zero;
                break;

            case BlendFuncFactor.SrcAlpha:
                _src = BlendingFactorSrc.SrcAlpha;
                break;

            case BlendFuncFactor.OneMinusSrcAlpha:
                _src = BlendingFactorSrc.OneMinusSrcAlpha;
                break;

            case BlendFuncFactor.One:
                _src = BlendingFactorSrc.One;
                break;

            case BlendFuncFactor.DstColor:
                _src = BlendingFactorSrc.DstColor;
                break;

            default:
                Debug.Assert(false);
                break;
            }
            switch (dstFactor)
            {
            case BlendFuncFactor.Zero:
                _dst = BlendingFactorDest.Zero;
                break;

            case BlendFuncFactor.SrcAlpha:
                _dst = BlendingFactorDest.SrcAlpha;
                break;

            case BlendFuncFactor.OneMinusSrcAlpha:
                _dst = BlendingFactorDest.OneMinusSrcAlpha;
                break;

            case BlendFuncFactor.One:
                _dst = BlendingFactorDest.One;
                break;

            case BlendFuncFactor.DstColor:
                _dst = BlendingFactorDest.DstColor;
                break;

            default:
                Debug.Assert(false);
                break;
            }
            //FIXME:??????in SpriteSample, for sprite black bg problem
            //GL.DepthMask(false); //not good
            GL.Clear(ClearBufferMask.DepthBufferBit);
            GL.BlendEquation(_mode);
            GL.BlendFunc(_src, _dst);
        }
Ejemplo n.º 4
0
        public BlendStateDesc(BlendStateTypes type)
        {
            colorMask = ColorMask.Rgba;

            switch (type)
            {
            case BlendStateTypes.None:
                blendEnable = false;
                blendOp     = BlendFuncMode.Add;
                srcBlend    = BlendFuncFactor.One;
                dstBlend    = BlendFuncFactor.One;

                blendEnableAlpha = false;
                blendOpAlpha     = BlendFuncMode.Add;
                srcBlendAlpha    = BlendFuncFactor.One;
                dstBlendAlpha    = BlendFuncFactor.One;
                break;

            case BlendStateTypes.Add:
                blendEnable = true;
                blendOp     = BlendFuncMode.Add;
                srcBlend    = BlendFuncFactor.One;
                dstBlend    = BlendFuncFactor.One;

                blendEnableAlpha = false;
                blendOpAlpha     = BlendFuncMode.Add;
                srcBlendAlpha    = BlendFuncFactor.One;
                dstBlendAlpha    = BlendFuncFactor.One;
                break;

            case BlendStateTypes.Subtract:
                blendEnable = true;
                blendOp     = BlendFuncMode.Subtract;
                srcBlend    = BlendFuncFactor.One;
                dstBlend    = BlendFuncFactor.One;

                blendEnableAlpha = false;
                blendOpAlpha     = BlendFuncMode.Subtract;
                srcBlendAlpha    = BlendFuncFactor.One;
                dstBlendAlpha    = BlendFuncFactor.One;
                break;

            case BlendStateTypes.RevSubtract:
                blendEnable = true;
                blendOp     = BlendFuncMode.Subtract;
                srcBlend    = BlendFuncFactor.One;
                dstBlend    = BlendFuncFactor.One;

                blendEnableAlpha = false;
                blendOpAlpha     = BlendFuncMode.Subtract;
                srcBlendAlpha    = BlendFuncFactor.One;
                dstBlendAlpha    = BlendFuncFactor.One;
                break;

            case BlendStateTypes.Alpha:
                blendEnable = true;
                blendOp     = BlendFuncMode.Add;
                srcBlend    = BlendFuncFactor.SrcAlpha;
                dstBlend    = BlendFuncFactor.OneMinusSrcAlpha;

                blendEnableAlpha = false;
                blendOpAlpha     = BlendFuncMode.Add;
                srcBlendAlpha    = BlendFuncFactor.SrcAlpha;
                dstBlendAlpha    = BlendFuncFactor.OneMinusSrcAlpha;
                break;

            default:
                Debug.ThrowError("BlendStateDesc", "Unsuported BlendStateType");
                break;
            }
        }
Ejemplo n.º 5
0
        public BlendStateDesc(BlendStateTypes type)
        {
            colorMask = ColorMask.Rgba;

            switch (type)
            {
                case BlendStateTypes.None:
                    blendEnable = false;
                    blendOp = BlendFuncMode.Add;
                    srcBlend = BlendFuncFactor.One;
                    dstBlend = BlendFuncFactor.One;

                    blendEnableAlpha = false;
                    blendOpAlpha = BlendFuncMode.Add;
                    srcBlendAlpha = BlendFuncFactor.One;
                    dstBlendAlpha = BlendFuncFactor.One;
                    break;

                case BlendStateTypes.Add:
                    blendEnable = true;
                    blendOp = BlendFuncMode.Add;
                    srcBlend = BlendFuncFactor.One;
                    dstBlend = BlendFuncFactor.One;

                    blendEnableAlpha = false;
                    blendOpAlpha = BlendFuncMode.Add;
                    srcBlendAlpha = BlendFuncFactor.One;
                    dstBlendAlpha = BlendFuncFactor.One;
                    break;

                case BlendStateTypes.Subtract:
                    blendEnable = true;
                    blendOp = BlendFuncMode.Subtract;
                    srcBlend = BlendFuncFactor.One;
                    dstBlend = BlendFuncFactor.One;

                    blendEnableAlpha = false;
                    blendOpAlpha = BlendFuncMode.Subtract;
                    srcBlendAlpha = BlendFuncFactor.One;
                    dstBlendAlpha = BlendFuncFactor.One;
                    break;

                case BlendStateTypes.RevSubtract:
                    blendEnable = true;
                    blendOp = BlendFuncMode.Subtract;
                    srcBlend = BlendFuncFactor.One;
                    dstBlend = BlendFuncFactor.One;

                    blendEnableAlpha = false;
                    blendOpAlpha = BlendFuncMode.Subtract;
                    srcBlendAlpha = BlendFuncFactor.One;
                    dstBlendAlpha = BlendFuncFactor.One;
                    break;

                case BlendStateTypes.Alpha:
                    blendEnable = true;
                    blendOp = BlendFuncMode.Add;
                    srcBlend = BlendFuncFactor.SrcAlpha;
                    dstBlend = BlendFuncFactor.OneMinusSrcAlpha;

                    blendEnableAlpha = false;
                    blendOpAlpha = BlendFuncMode.Add;
                    srcBlendAlpha = BlendFuncFactor.SrcAlpha;
                    dstBlendAlpha = BlendFuncFactor.OneMinusSrcAlpha;
                    break;

                default:
                    Debug.ThrowError("BlendStateDesc", "Unsuported BlendStateType");
                    break;
            }
        }
Ejemplo n.º 6
0
 /// <summary>Sets the alpha-blending function (for the alpha channel)</summary>
 /// <param name="mode">Alpha-blending function mode</param>
 /// <param name="srcFactor">Alpha-blending function source coefficient</param>
 /// <param name="dstFactor">Alpha-blending function destination coefficient</param>
 public void SetBlendFuncAlpha(BlendFuncMode mode, BlendFuncFactor srcFactor, BlendFuncFactor dstFactor)
 {
     this.SetBlendFuncAlpha(new BlendFunc(mode, srcFactor, dstFactor));
 }
Ejemplo n.º 7
0
 public BlendFunc(BlendFuncMode mode, BlendFuncFactor srcFactor, BlendFuncFactor dstFactor)
 {
     this.mode      = mode;
     this.srcFactor = srcFactor;
     this.dstFactor = dstFactor;
 }