Adjust an antique comment in Image::drawPattern
authortimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 31 Aug 2014 08:06:29 +0000 (08:06 +0000)
committertimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 31 Aug 2014 08:06:29 +0000 (08:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=136411

Reviewed by Dan Bernstein.

* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
Reword the comment.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173145 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/cg/ImageCG.cpp

index 9c01927..be38861 100644 (file)
@@ -1,5 +1,16 @@
 2014-08-31  Tim Horton  <timothy_horton@apple.com>
 
+        Adjust an antique comment in Image::drawPattern
+        https://bugs.webkit.org/show_bug.cgi?id=136411
+
+        Reviewed by Dan Bernstein.
+
+        * platform/graphics/cg/ImageCG.cpp:
+        (WebCore::Image::drawPattern):
+        Reword the comment.
+
+2014-08-31  Tim Horton  <timothy_horton@apple.com>
+
         SVGImage::drawPatternForContainer creates a buffer without respecting the destination's acceleration setting
         https://bugs.webkit.org/show_bug.cgi?id=136408
         <rdar://problem/12013317>
index 9688486..1d4d970 100644 (file)
@@ -133,16 +133,13 @@ void Image::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const
     // Adjust the color space.
     subImage = Image::imageWithColorSpace(subImage.get(), styleColorSpace);
 
-    // Leopard has an optimized call for the tiling of image patterns, but we can only use it if the image has been decoded enough that
-    // its buffer is the same size as the overall image.  Because a partially decoded CGImageRef with a smaller width or height than the
-    // overall image buffer needs to tile with "gaps", we can't use the optimized tiling call in that case.
-    // FIXME: We cannot use CGContextDrawTiledImage with scaled tiles on Leopard, because it suffers from rounding errors.  Snow Leopard is ok.
+    // If we need to paint gaps between tiles because we have a partially loaded image or non-zero spaceSize(),
+    // fall back to the less efficient CGPattern-based mechanism.
     float scaledTileWidth = tileRect.width() * narrowPrecisionToFloat(patternTransform.a());
     float w = CGImageGetWidth(tileImage);
     if (w == size().width() && h == size().height() && !spaceSize().width() && !spaceSize().height())
         CGContextDrawTiledImage(context, FloatRect(adjustedX, adjustedY, scaledTileWidth, scaledTileHeight), subImage.get());
     else {
-        // On Leopard and newer, this code now only runs for partially decoded images whose buffers do not yet match the overall size of the image.
         static const CGPatternCallbacks patternCallbacks = { 0, drawPatternCallback, patternReleaseCallback };
         CGAffineTransform matrix = CGAffineTransformMake(narrowPrecisionToCGFloat(patternTransform.a()), 0, 0, narrowPrecisionToCGFloat(patternTransform.d()), adjustedX, adjustedY);
         matrix = CGAffineTransformConcat(matrix, CGContextGetCTM(context));