提交 c4fd79b5 编写于 作者: A Adam Barth

Use SkImage instead of SkBitmap

Apparently SkImage is the new hotness.
上级 e7d1dc73
...@@ -57,7 +57,9 @@ void CanvasImageDecoder::OnDataComplete() { ...@@ -57,7 +57,9 @@ void CanvasImageDecoder::OnDataComplete() {
} }
RefPtr<CanvasImage> resultImage = CanvasImage::create(); RefPtr<CanvasImage> resultImage = CanvasImage::create();
resultImage->setBitmap(decoder->frameBufferAtIndex(0)->getSkBitmap()); ImageFrame* imageFrame = decoder->frameBufferAtIndex(0);
RefPtr<SkImage> skImage = adoptRef(SkImage::NewFromBitmap(imageFrame->getSkBitmap()));
resultImage->setImage(skImage.release());
callback_->handleEvent(resultImage.get()); callback_->handleEvent(resultImage.get());
} }
......
...@@ -229,14 +229,14 @@ void Canvas::drawImage(const CanvasImage* image, const Point& p, const Paint* pa ...@@ -229,14 +229,14 @@ void Canvas::drawImage(const CanvasImage* image, const Point& p, const Paint* pa
if (!m_canvas) if (!m_canvas)
return; return;
ASSERT(image); 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) { void Canvas::drawImageRect(const CanvasImage* image, Rect& src, Rect& dst, Paint* paint) {
if (!m_canvas) if (!m_canvas)
return; return;
ASSERT(image); 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) void Canvas::drawPicture(Picture* picture)
...@@ -272,7 +272,7 @@ void Canvas::drawAtlas(CanvasImage* atlas, ...@@ -272,7 +272,7 @@ void Canvas::drawAtlas(CanvasImage* atlas,
{ {
if (!m_canvas) if (!m_canvas)
return; return;
RefPtr<SkImage> skImage = adoptRef(SkImage::NewFromBitmap(atlas->bitmap())); RefPtr<SkImage> skImage = atlas->image();
if (transforms.size() != rects.size()) if (transforms.size() != rects.size())
return es.ThrowRangeError("transforms and rects lengths must match"); return es.ThrowRangeError("transforms and rects lengths must match");
if (colors.size() && colors.size() != rects.size()) if (colors.size() && colors.size() != rects.size())
......
...@@ -13,11 +13,11 @@ CanvasImage::~CanvasImage() { ...@@ -13,11 +13,11 @@ CanvasImage::~CanvasImage() {
} }
int CanvasImage::width() const { int CanvasImage::width() const {
return bitmap_.width(); return image_->width();
} }
int CanvasImage::height() const { int CanvasImage::height() const {
return bitmap_.height(); return image_->height();
} }
} // namespace blink } // namespace blink
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h" #include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/text/AtomicString.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 { namespace blink {
...@@ -23,13 +23,13 @@ class CanvasImage final : public RefCounted<CanvasImage>, ...@@ -23,13 +23,13 @@ class CanvasImage final : public RefCounted<CanvasImage>,
int width() const; int width() const;
int height() const; int height() const;
const SkBitmap& bitmap() const { return bitmap_; } SkImage* image() const { return image_.get(); }
void setBitmap(const SkBitmap& bitmap) { bitmap_ = bitmap; } void setImage(PassRefPtr<SkImage> image) { image_ = image; }
private: private:
CanvasImage(); CanvasImage();
SkBitmap bitmap_; RefPtr<SkImage> image_;
}; };
} // namespace blink } // namespace blink
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册