Index: cc/paint/paint_recorder.h |
diff --git a/cc/paint/paint_recorder.h b/cc/paint/paint_recorder.h |
index 2bbea83b981f11a89de29d6ba547a580b1ca0a41..7f582b851913a0ddd185158f31a054bef585f121 100644 |
--- a/cc/paint/paint_recorder.h |
+++ b/cc/paint/paint_recorder.h |
@@ -9,47 +9,36 @@ |
#include "base/macros.h" |
#include "base/memory/ptr_util.h" |
#include "base/optional.h" |
-#include "cc/paint/paint_canvas.h" |
#include "cc/paint/paint_record.h" |
-#include "cc/paint/skia_paint_canvas.h" |
-#include "third_party/skia/include/core/SkPictureRecorder.h" |
+#include "cc/paint/record_paint_canvas.h" |
namespace cc { |
+class PaintOpBuffer; |
+ |
class CC_PAINT_EXPORT PaintRecorder { |
public: |
PaintRecorder(); |
~PaintRecorder(); |
- ALWAYS_INLINE PaintCanvas* beginRecording(const SkRect& bounds) { |
- uint32_t record_flags = 0; |
- canvas_.emplace(recorder_.beginRecording(bounds, nullptr, record_flags)); |
- return getRecordingCanvas(); |
- } |
+ PaintCanvas* beginRecording(const SkRect& bounds); |
- ALWAYS_INLINE PaintCanvas* beginRecording(SkScalar width, SkScalar height) { |
- uint32_t record_flags = 0; |
- canvas_.emplace( |
- recorder_.beginRecording(width, height, nullptr, record_flags)); |
- return getRecordingCanvas(); |
+ // TODO(enne): should make everything go through the non-rect version. |
+ // See comments in RecordPaintCanvas ctor for why. |
+ PaintCanvas* beginRecording(SkScalar width, SkScalar height) { |
+ return beginRecording(SkRect::MakeWH(width, height)); |
} |
// Only valid between between and finish recording. |
- ALWAYS_INLINE PaintCanvas* getRecordingCanvas() { |
+ ALWAYS_INLINE RecordPaintCanvas* getRecordingCanvas() { |
return canvas_.has_value() ? &canvas_.value() : nullptr; |
} |
- ALWAYS_INLINE sk_sp<PaintRecord> finishRecordingAsPicture() { |
- sk_sp<SkPicture> picture = recorder_.finishRecordingAsPicture(); |
- // Some users (e.g. printing) use the existence of the recording canvas |
- // to know if recording is finished, so reset it here. |
- canvas_.reset(); |
- return sk_ref_sp(static_cast<PaintRecord*>(picture.get())); |
- } |
+ sk_sp<PaintRecord> finishRecordingAsPicture(); |
private: |
- SkPictureRecorder recorder_; |
- base::Optional<SkiaPaintCanvas> canvas_; |
+ sk_sp<PaintOpBuffer> buffer_; |
+ base::Optional<RecordPaintCanvas> canvas_; |
DISALLOW_COPY_AND_ASSIGN(PaintRecorder); |
}; |