public static void Apply(Texture2D canvas, Rect canvasRect, Texture2D brush, Rect brushRect, Blend.BlendFunction blend) { Color[] canvasColors = canvas.GetPixelRect(canvasRect); Color[] brushColors = brush.GetPixelRect(brushRect); Assert.IsTrue(canvasColors.Length == brushColors.Length, "Mismatched texture rects!"); for (int i = 0; i < canvasColors.Length; ++i) { canvasColors[i] = blend(canvasColors[i], brushColors[i]); } canvas.SetPixelRect(canvasRect, canvasColors); }