Index: third_party/WebKit/Source/platform/graphics/PictureSnapshot.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/PictureSnapshot.cpp b/third_party/WebKit/Source/platform/graphics/PictureSnapshot.cpp |
index e3b2240f07d9fc15d6c19232dc5c56d45a5a13db..b217f574103b0d4f600c030251352bdadb751abd 100644 |
--- a/third_party/WebKit/Source/platform/graphics/PictureSnapshot.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/PictureSnapshot.cpp |
@@ -43,7 +43,6 @@ |
#include "third_party/skia/include/core/SkData.h" |
#include "third_party/skia/include/core/SkImage.h" |
#include "third_party/skia/include/core/SkImageDeserializer.h" |
-#include "third_party/skia/include/core/SkPictureRecorder.h" |
#include "third_party/skia/include/core/SkStream.h" |
#include "wtf/CurrentTime.h" |
#include "wtf/HexNumber.h" |
@@ -54,7 +53,7 @@ |
namespace blink { |
-PictureSnapshot::PictureSnapshot(sk_sp<const SkPicture> picture) |
+PictureSnapshot::PictureSnapshot(sk_sp<const PaintRecord> picture) |
: m_picture(std::move(picture)) {} |
class SkiaImageDecoder final : public SkImageDeserializer { |
@@ -84,13 +83,13 @@ class SkiaImageDecoder final : public SkImageDeserializer { |
PassRefPtr<PictureSnapshot> PictureSnapshot::load( |
const Vector<RefPtr<TilePictureStream>>& tiles) { |
ASSERT(!tiles.isEmpty()); |
- Vector<sk_sp<SkPicture>> pictures; |
+ Vector<sk_sp<PaintRecord>> pictures; |
pictures.reserveCapacity(tiles.size()); |
FloatRect unionRect; |
for (const auto& tileStream : tiles) { |
SkMemoryStream stream(tileStream->data.begin(), tileStream->data.size()); |
SkiaImageDecoder factory; |
- sk_sp<SkPicture> picture = SkPicture::MakeFromStream(&stream, &factory); |
+ sk_sp<PaintRecord> picture = PaintRecord::MakeFromStream(&stream, &factory); |
if (!picture) |
return nullptr; |
FloatRect cullRect(picture->cullRect()); |
@@ -100,8 +99,8 @@ PassRefPtr<PictureSnapshot> PictureSnapshot::load( |
} |
if (tiles.size() == 1) |
return adoptRef(new PictureSnapshot(std::move(pictures[0]))); |
- SkPictureRecorder recorder; |
- SkCanvas* canvas = |
+ PaintRecorder recorder; |
+ PaintCanvas* canvas = |
recorder.beginRecording(unionRect.width(), unionRect.height(), 0, 0); |
for (size_t i = 0; i < pictures.size(); ++i) { |
canvas->save(); |
@@ -140,7 +139,10 @@ std::unique_ptr<Vector<char>> PictureSnapshot::replay(unsigned fromStep, |
canvas.scale(scale, scale); |
canvas.resetStepCount(); |
- m_picture->playback(&canvas, &canvas); |
+ |
+ // TODO(enne): Handle this abort callback in PaintRecord::playback. |
+ PaintCanvasPassThrough passthrough(&canvas); |
+ m_picture->playback(&passthrough, &canvas); |
} |
std::unique_ptr<Vector<char>> base64Data = WTF::makeUnique<Vector<char>>(); |
Vector<char> encodedImage; |
@@ -198,7 +200,8 @@ std::unique_ptr<PictureSnapshot::Timings> PictureSnapshot::profile( |
std::unique_ptr<JSONArray> PictureSnapshot::snapshotCommandLog() const { |
const SkIRect bounds = m_picture->cullRect().roundOut(); |
LoggingCanvas canvas(bounds.width(), bounds.height()); |
- m_picture->playback(&canvas); |
+ PaintCanvasPassThrough passthrough(&canvas); |
+ m_picture->playback(&passthrough); |
return canvas.log(); |
} |