Index: third_party/WebKit/WebCore/platform/graphics/qt/ImageQt.cpp |
=================================================================== |
--- third_party/WebKit/WebCore/platform/graphics/qt/ImageQt.cpp (revision 9391) |
+++ third_party/WebKit/WebCore/platform/graphics/qt/ImageQt.cpp (working copy) |
@@ -96,7 +96,24 @@ |
void Image::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const TransformationMatrix& patternTransform, |
const FloatPoint& phase, CompositeOperator op, const FloatRect& destRect) |
{ |
- notImplemented(); |
+ QPixmap* framePixmap = nativeImageForCurrentFrame(); |
+ if (!framePixmap) // If it's too early we won't have an image yet. |
+ return; |
+ |
+ QPixmap pixmap = *framePixmap; |
+ QRect tr = QRectF(tileRect).toRect(); |
+ if (tr.x() || tr.y() || tr.width() != pixmap.width() || tr.height() != pixmap.height()) { |
+ pixmap = pixmap.copy(tr); |
+ } |
+ |
+ QBrush b(pixmap); |
+ b.setMatrix(patternTransform); |
+ ctxt->save(); |
+ ctxt->setCompositeOperation(op); |
+ QPainter* p = ctxt->platformContext(); |
+ p->setBrushOrigin(phase); |
+ p->fillRect(destRect, b); |
+ ctxt->restore(); |
} |
void BitmapImage::initPlatformData() |
@@ -138,29 +155,6 @@ |
ctxt->restore(); |
} |
-void BitmapImage::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const TransformationMatrix& patternTransform, |
- const FloatPoint& phase, CompositeOperator op, const FloatRect& destRect) |
-{ |
- QPixmap* framePixmap = nativeImageForCurrentFrame(); |
- if (!framePixmap) // If it's too early we won't have an image yet. |
- return; |
- |
- QPixmap pixmap = *framePixmap; |
- QRect tr = QRectF(tileRect).toRect(); |
- if (tr.x() || tr.y() || tr.width() != pixmap.width() || tr.height() != pixmap.height()) { |
- pixmap = pixmap.copy(tr); |
- } |
- |
- QBrush b(pixmap); |
- b.setMatrix(patternTransform); |
- ctxt->save(); |
- ctxt->setCompositeOperation(op); |
- QPainter* p = ctxt->platformContext(); |
- p->setBrushOrigin(phase); |
- p->fillRect(destRect, b); |
- ctxt->restore(); |
-} |
- |
void BitmapImage::checkForSolidColor() |
{ |
// FIXME: It's easy to implement this optimization. Just need to check the RGBA32 buffer to see if it is 1x1. |