public void SetBlendFuncRgb(BlendFuncMode arg1, BlendFuncFactor arg2, BlendFuncFactor arg3) { // Debug.Assert(false); SetBlendFuncRgb(new BlendFunc(arg1, arg2, arg3)); }
/// <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)); }
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); }
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; } }
/// <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)); }
public BlendFunc(BlendFuncMode mode, BlendFuncFactor srcFactor, BlendFuncFactor dstFactor) { this.mode = mode; this.srcFactor = srcFactor; this.dstFactor = dstFactor; }