| Index: cc/paint/paint_recorder.cc
|
| diff --git a/cc/paint/paint_recorder.cc b/cc/paint/paint_recorder.cc
|
| index 672f0712725d4f1c20b56631d66061c737455c40..36d109faf0efb769d3ed8931d0b0ca9ba689ed98 100644
|
| --- a/cc/paint/paint_recorder.cc
|
| +++ b/cc/paint/paint_recorder.cc
|
| @@ -4,9 +4,36 @@
|
|
|
| #include "cc/paint/paint_recorder.h"
|
|
|
| +#include "cc/paint/paint_op_buffer.h"
|
| +
|
| namespace cc {
|
|
|
| PaintRecorder::PaintRecorder() = default;
|
| +
|
| PaintRecorder::~PaintRecorder() = default;
|
|
|
| +PaintCanvas* PaintRecorder::beginRecording(const SkRect& bounds) {
|
| + buffer_.reset(new PaintOpBuffer(bounds));
|
| + canvas_.emplace(buffer_.get(), bounds);
|
| + return getRecordingCanvas();
|
| +}
|
| +
|
| +sk_sp<PaintRecord> PaintRecorder::finishRecordingAsPicture() {
|
| + // SkPictureRecorder users expect that their saves are automatically
|
| + // closed for them.
|
| + //
|
| + // NOTE: Blink paint in general doesn't appear to need this, but the
|
| + // RecordingImageBufferSurface::fallBackToRasterCanvas finishing off the
|
| + // current frame depends on this. Maybe we could remove this assumption and
|
| + // just have callers do it.
|
| + canvas_->restoreToCount(1);
|
| +
|
| + // Some users (e.g. printing) use the existence of the recording canvas
|
| + // to know if recording is finished, so reset it here.
|
| + canvas_.reset();
|
| +
|
| + buffer_->Compact();
|
| + return std::move(buffer_);
|
| +}
|
| +
|
| } // namespace cc
|
|
|