Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3126)

Unified Diff: cc/paint/paint_canvas.cc

Issue 2690583002: Make cc/paint have concrete types (Closed)
Patch Set: Rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/paint/paint_canvas.cc
diff --git a/cc/paint/paint_canvas.cc b/cc/paint/paint_canvas.cc
index 53dab8fb45b7afb25ce32b72bb3915e02cf6df39..5a713033c35465ae30889d1fa83cadd2f53cf36f 100644
--- a/cc/paint/paint_canvas.cc
+++ b/cc/paint/paint_canvas.cc
@@ -4,7 +4,12 @@
#include "cc/paint/paint_canvas.h"
+#include "base/memory/ptr_util.h"
+#include "cc/paint/paint_record.h"
+#include "cc/paint/paint_recorder.h"
+#include "third_party/skia/include/core/SkAnnotation.h"
#include "third_party/skia/include/core/SkMetaData.h"
+#include "third_party/skia/include/utils/SkNWayCanvas.h"
#if defined(OS_MACOSX)
namespace {
@@ -14,25 +19,22 @@ const char kIsPreviewMetafileKey[] = "CrIsPreviewMetafile";
namespace cc {
-PaintCanvasPassThrough::PaintCanvasPassThrough(SkCanvas* canvas)
- : SkNWayCanvas(canvas->getBaseLayerSize().width(),
- canvas->getBaseLayerSize().height()) {
- SkIRect raster_bounds;
- canvas->getDeviceClipBounds(&raster_bounds);
- clipRect(SkRect::MakeFromIRect(raster_bounds));
- setMatrix(canvas->getTotalMatrix());
- addCanvas(canvas);
-}
+PaintCanvas::PaintCanvas(SkCanvas* canvas) : canvas_(canvas) {}
+
+PaintCanvas::PaintCanvas(const SkBitmap& bitmap)
+ : canvas_(new SkCanvas(bitmap)), owned_(canvas_) {}
+
+PaintCanvas::PaintCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)
+ : canvas_(new SkCanvas(bitmap, props)), owned_(canvas_) {}
-PaintCanvasPassThrough::PaintCanvasPassThrough(int width, int height)
- : SkNWayCanvas(width, height) {}
+PaintCanvas::PaintCanvas() = default;
-PaintCanvasPassThrough::~PaintCanvasPassThrough() = default;
+PaintCanvas::~PaintCanvas() = default;
bool ToPixmap(PaintCanvas* canvas, SkPixmap* output) {
SkImageInfo info;
size_t row_bytes;
- void* pixels = canvas->accessTopLayerPixels(&info, &row_bytes);
+ void* pixels = canvas->canvas_->accessTopLayerPixels(&info, &row_bytes);
if (!pixels) {
output->reset();
return false;
@@ -57,4 +59,22 @@ bool IsPreviewMetafile(PaintCanvas* canvas) {
}
#endif
+void PaintCanvasAnnotateRectWithURL(PaintCanvas* canvas,
+ const SkRect& rect,
+ SkData* data) {
+ SkAnnotateRectWithURL(canvas->canvas_, rect, data);
+}
+
+void PaintCanvasAnnotateNamedDestination(PaintCanvas* canvas,
+ const SkPoint& point,
+ SkData* data) {
+ SkAnnotateNamedDestination(canvas->canvas_, point, data);
+}
+
+void PaintCanvasAnnotateLinkToDestination(PaintCanvas* canvas,
+ const SkRect& rect,
+ SkData* data) {
+ SkAnnotateLinkToDestination(canvas->canvas_, rect, data);
+}
+
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698