//-------------------------------------------------------------------- ///<summary> ///</summary> ///<param name="x1"></param> ///<param name="y"></param> ///<param name="x2"></param> ///<param name="c"></param> ///<param name="cover"></param> public override void BlendHorizontalLine(int x1, int y, int x2, RGBA_Bytes c, byte cover) { int len = x2 - x1 + 1; if (cover == CoverFull) { ReallocateSpan(len); unsafe { fixed(byte *pBuffer = _span.Array) { _alphaMask.CombineHorizontalSpanFullCover(x1, y, pBuffer, len); PixelFormat.BlendSolidHorizontalSpan(x1, y, (uint)len, c, pBuffer); } } } else { InitSpan(len, cover); unsafe { fixed(byte *pBuffer = _span.Array) { _alphaMask.CombineHorizontalSpan(x1, y, pBuffer, len); PixelFormat.BlendSolidHorizontalSpan(x1, y, (uint)len, c, pBuffer); } } } }