public override void Draw(IVncPixelGetter a_pixelGetter, MatOfByte3 a_mat) { Rect srcRect = new Rect(SrcX, SrcY, Width, Height); Rect dstRect = new Rect(X, Y, Width, Height); if (srcRect.IntersectsWith(dstRect)) { using (var src = a_mat.Clone(srcRect)) using (var dst = new MatOfByte3(a_mat, dstRect)) { src.CopyTo(dst); } } else { using (var src = new MatOfByte3(a_mat, srcRect)) using (var dst = new MatOfByte3(a_mat, dstRect)) { src.CopyTo(dst); } } }