| Index: cc/paint/skia_paint_canvas.cc
|
| diff --git a/cc/paint/skia_paint_canvas.cc b/cc/paint/skia_paint_canvas.cc
|
| index 8c69d875fb8cdbcfe809ea8ec9b97327b4ae52af..a01e4eb008f1c2c598c67f70397d6224fc66259d 100644
|
| --- a/cc/paint/skia_paint_canvas.cc
|
| +++ b/cc/paint/skia_paint_canvas.cc
|
| @@ -8,6 +8,7 @@
|
| #include "cc/paint/display_item_list.h"
|
| #include "cc/paint/paint_recorder.h"
|
| #include "third_party/skia/include/core/SkAnnotation.h"
|
| +#include "third_party/skia/include/core/SkColorSpaceXformCanvas.h"
|
| #include "third_party/skia/include/core/SkMetaData.h"
|
| #include "third_party/skia/include/utils/SkNWayCanvas.h"
|
|
|
| @@ -22,8 +23,23 @@ SkiaPaintCanvas::SkiaPaintCanvas(const SkBitmap& bitmap,
|
| const SkSurfaceProps& props)
|
| : canvas_(new SkCanvas(bitmap, props)), owned_(canvas_) {}
|
|
|
| +SkiaPaintCanvas::SkiaPaintCanvas(SkCanvas* canvas,
|
| + sk_sp<SkColorSpace> target_color_space)
|
| + : canvas_(canvas) {
|
| + WrapCanvasInColorSpaceXformCanvas(target_color_space);
|
| +}
|
| +
|
| SkiaPaintCanvas::~SkiaPaintCanvas() = default;
|
|
|
| +void SkiaPaintCanvas::WrapCanvasInColorSpaceXformCanvas(
|
| + sk_sp<SkColorSpace> target_color_space) {
|
| + if (target_color_space) {
|
| + color_space_xform_canvas_ =
|
| + SkCreateColorSpaceXformCanvas(canvas_, target_color_space);
|
| + canvas_ = color_space_xform_canvas_.get();
|
| + }
|
| +}
|
| +
|
| SkMetaData& SkiaPaintCanvas::getMetaData() {
|
| return canvas_->getMetaData();
|
| }
|
|
|