Index: third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.cpp b/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.cpp |
index 05f254c6f2397c7cd71053b4a4fc33aec3eb0757..a2ca92cd4e8db44923a3ad436fec64fe936d8abd 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.cpp |
@@ -5,6 +5,7 @@ |
#include "platform/graphics/paint/DrawingDisplayItem.h" |
#include "platform/graphics/GraphicsContext.h" |
+#include "platform/graphics/paint/PaintCanvas.h" |
#include "public/platform/WebDisplayItemList.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
#include "third_party/skia/include/core/SkCanvas.h" |
@@ -47,28 +48,30 @@ void DrawingDisplayItem::dumpPropertiesAsDebugString( |
} |
#endif |
-static bool picturesEqual(const SkPicture* picture1, |
- const SkPicture* picture2) { |
+static bool picturesEqual(const PaintRecord* picture1, |
+ const PaintRecord* picture2) { |
if (picture1->approximateOpCount() != picture2->approximateOpCount()) |
return false; |
- sk_sp<SkData> data1 = picture1->serialize(); |
- sk_sp<SkData> data2 = picture2->serialize(); |
+ sk_sp<SkData> data1 = ToSkPicture(picture1)->serialize(); |
+ sk_sp<SkData> data2 = ToSkPicture(picture2)->serialize(); |
return data1->equals(data2.get()); |
} |
-static SkBitmap pictureToBitmap(const SkPicture* picture) { |
+static SkBitmap pictureToBitmap(const PaintRecord* picture) { |
SkBitmap bitmap; |
SkRect rect = picture->cullRect(); |
bitmap.allocPixels(SkImageInfo::MakeN32Premul(rect.width(), rect.height())); |
- SkCanvas canvas(bitmap); |
+ SkCanvas bitmapCanvas(bitmap); |
+ PaintCanvasPassThrough canvas(&bitmapCanvas); |
canvas.clear(SK_ColorTRANSPARENT); |
canvas.translate(-rect.x(), -rect.y()); |
canvas.drawPicture(picture); |
return bitmap; |
} |
-static bool bitmapsEqual(const SkPicture* picture1, const SkPicture* picture2) { |
+static bool bitmapsEqual(const PaintRecord* picture1, |
+ const PaintRecord* picture2) { |
SkRect rect = picture1->cullRect(); |
if (rect != picture2->cullRect()) |
return false; |
@@ -99,8 +102,8 @@ bool DrawingDisplayItem::equals(const DisplayItem& other) const { |
if (!DisplayItem::equals(other)) |
return false; |
- const SkPicture* picture = this->picture(); |
- const SkPicture* otherPicture = |
+ const PaintRecord* picture = this->picture(); |
+ const PaintRecord* otherPicture = |
static_cast<const DrawingDisplayItem&>(other).picture(); |
if (!picture && !otherPicture) |