From c4fd79b51257b9b944c70949597a6a3c9d4dbd96 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Mon, 3 Aug 2015 14:12:44 -0700 Subject: [PATCH] Use SkImage instead of SkBitmap Apparently SkImage is the new hotness. --- sky/engine/core/loader/CanvasImageDecoder.cpp | 4 +++- sky/engine/core/painting/Canvas.cpp | 6 +++--- sky/engine/core/painting/CanvasImage.cpp | 4 ++-- sky/engine/core/painting/CanvasImage.h | 8 ++++---- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/sky/engine/core/loader/CanvasImageDecoder.cpp b/sky/engine/core/loader/CanvasImageDecoder.cpp index 084d21e01..702021852 100644 --- a/sky/engine/core/loader/CanvasImageDecoder.cpp +++ b/sky/engine/core/loader/CanvasImageDecoder.cpp @@ -57,7 +57,9 @@ void CanvasImageDecoder::OnDataComplete() { } RefPtr resultImage = CanvasImage::create(); - resultImage->setBitmap(decoder->frameBufferAtIndex(0)->getSkBitmap()); + ImageFrame* imageFrame = decoder->frameBufferAtIndex(0); + RefPtr skImage = adoptRef(SkImage::NewFromBitmap(imageFrame->getSkBitmap())); + resultImage->setImage(skImage.release()); callback_->handleEvent(resultImage.get()); } diff --git a/sky/engine/core/painting/Canvas.cpp b/sky/engine/core/painting/Canvas.cpp index 4624833ca..c10a34087 100644 --- a/sky/engine/core/painting/Canvas.cpp +++ b/sky/engine/core/painting/Canvas.cpp @@ -229,14 +229,14 @@ void Canvas::drawImage(const CanvasImage* image, const Point& p, const Paint* pa if (!m_canvas) return; ASSERT(image); - m_canvas->drawBitmap(image->bitmap(), p.sk_point.x(), p.sk_point.y(), &paint->paint()); + m_canvas->drawImage(image->image(), p.sk_point.x(), p.sk_point.y(), &paint->paint()); } void Canvas::drawImageRect(const CanvasImage* image, Rect& src, Rect& dst, Paint* paint) { if (!m_canvas) return; ASSERT(image); - m_canvas->drawBitmapRect(image->bitmap(), &src.sk_rect, dst.sk_rect, &paint->paint()); + m_canvas->drawImageRect(image->image(), &src.sk_rect, dst.sk_rect, &paint->paint()); } void Canvas::drawPicture(Picture* picture) @@ -272,7 +272,7 @@ void Canvas::drawAtlas(CanvasImage* atlas, { if (!m_canvas) return; - RefPtr skImage = adoptRef(SkImage::NewFromBitmap(atlas->bitmap())); + RefPtr skImage = atlas->image(); if (transforms.size() != rects.size()) return es.ThrowRangeError("transforms and rects lengths must match"); if (colors.size() && colors.size() != rects.size()) diff --git a/sky/engine/core/painting/CanvasImage.cpp b/sky/engine/core/painting/CanvasImage.cpp index a48ecd359..3e105d97b 100644 --- a/sky/engine/core/painting/CanvasImage.cpp +++ b/sky/engine/core/painting/CanvasImage.cpp @@ -13,11 +13,11 @@ CanvasImage::~CanvasImage() { } int CanvasImage::width() const { - return bitmap_.width(); + return image_->width(); } int CanvasImage::height() const { - return bitmap_.height(); + return image_->height(); } } // namespace blink diff --git a/sky/engine/core/painting/CanvasImage.h b/sky/engine/core/painting/CanvasImage.h index c92e9ebd9..c3ff9b14a 100644 --- a/sky/engine/core/painting/CanvasImage.h +++ b/sky/engine/core/painting/CanvasImage.h @@ -9,7 +9,7 @@ #include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/wtf/PassRefPtr.h" #include "sky/engine/wtf/text/AtomicString.h" -#include "third_party/skia/include/core/SkBitmap.h" +#include "third_party/skia/include/core/SkImage.h" namespace blink { @@ -23,13 +23,13 @@ class CanvasImage final : public RefCounted, int width() const; int height() const; - const SkBitmap& bitmap() const { return bitmap_; } - void setBitmap(const SkBitmap& bitmap) { bitmap_ = bitmap; } + SkImage* image() const { return image_.get(); } + void setImage(PassRefPtr image) { image_ = image; } private: CanvasImage(); - SkBitmap bitmap_; + RefPtr image_; }; } // namespace blink -- GitLab