public void Apply(Cairo.ImageSurface dst, Cairo.ImageSurface lhs, Cairo.ImageSurface rhs) { if (dst.GetSize() != lhs.GetSize()) { throw new ArgumentException("dst.Size != lhs.Size"); } if (lhs.GetSize() != rhs.GetSize()) { throw new ArgumentException("lhs.Size != rhs.Size"); } unsafe { for (int y = 0; y < dst.Height; ++y) { ColorBgra *dstPtr = dst.GetRowAddressUnchecked(y); ColorBgra *lhsPtr = lhs.GetRowAddressUnchecked(y); ColorBgra *rhsPtr = rhs.GetRowAddressUnchecked(y); Apply(dstPtr, lhsPtr, rhsPtr, dst.Width); } } }
public void Apply(Cairo.ImageSurface dst, Cairo.ImageSurface src) { if (dst.GetSize() != src.GetSize()) { throw new ArgumentException("dst.Size != src.Size"); } unsafe { for (int y = 0; y < dst.Height; ++y) { ColorBgra *dstPtr = dst.GetRowAddressUnchecked(y); ColorBgra *srcPtr = src.GetRowAddressUnchecked(y); Apply(dstPtr, srcPtr, dst.Width); } } }