public void SetBlendFunc(BlendFunc func) { //Debug.Assert(false); // Debug.WriteLine("======================>SetBlendFunc not implemented"); // if (func != null) // { // this.SetBlendFunc(func.mode, func.srcFactor, func.dstFactor); // } // else // { // Debug.Assert(false); // } this.SetBlendFunc(func.mode, func.srcFactor, func.dstFactor); __curBlendFunc = func; }
public void SetBlendFuncAlpha(BlendFunc v) { // Debug.Assert(false); __curBlendFuncAlpha = v; }
public void SetBlendFuncRgb(BlendFunc v) { // Debug.Assert(false); __curBlendFuncRgb = v; }
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); }