aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2015-05-05 17:30:45 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-05-05 17:30:45 -0700
commit3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b (patch)
tree215ee85419b07a42e582d46eae24352b4d3a7940 /src/image
parentd96a67bcb196aa4f73ff773bd45810a94ca872d8 (diff)
Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
Reason for revert: speculative to see if it unblocks DEPS roll Original issue's description: > Make drawImage a virtual on SkDevice > > Now with patch for SkDeferredCanvas > > This reverts commit 119468b71f8f4f45657ab30ead331be665de5a57. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8 TBR=robertphillips@google.com,mtklein@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1124003002
Diffstat (limited to 'src/image')
-rw-r--r--src/image/SkImage.cpp9
-rw-r--r--src/image/SkImage_Base.h3
-rw-r--r--src/image/SkImage_Gpu.cpp9
-rw-r--r--src/image/SkImage_Gpu.h3
-rw-r--r--src/image/SkImage_Raster.cpp13
5 files changed, 37 insertions, 0 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 494e21004a..f427755d47 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -25,6 +25,15 @@ uint32_t SkImage::NextUniqueID() {
return id;
}
+void SkImage::draw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) const {
+ as_IB(this)->onDraw(canvas, x, y, paint);
+}
+
+void SkImage::drawRect(SkCanvas* canvas, const SkRect* src, const SkRect& dst,
+ const SkPaint* paint) const {
+ as_IB(this)->onDrawRect(canvas, src, dst, paint);
+}
+
const void* SkImage::peekPixels(SkImageInfo* info, size_t* rowBytes) const {
SkImageInfo infoStorage;
size_t rowBytesStorage;
diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h
index 5daf4195e2..512c80c44b 100644
--- a/src/image/SkImage_Base.h
+++ b/src/image/SkImage_Base.h
@@ -36,6 +36,9 @@ public:
const SkSurfaceProps& props() const { return fProps; }
+ virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) const = 0;
+ virtual void onDrawRect(SkCanvas*, const SkRect* src,
+ const SkRect& dst, const SkPaint*) const = 0;
virtual SkSurface* onNewSurface(const SkImageInfo&, const SkSurfaceProps&) const = 0;
virtual const void* onPeekPixels(SkImageInfo*, size_t* /*rowBytes*/) const {
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index eec0d19760..7ccff17d9b 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -26,6 +26,15 @@ SkShader* SkImage_Gpu::onNewShader(SkShader::TileMode tileX,
return SkShader::CreateBitmapShader(fBitmap, tileX, tileY, localMatrix);
}
+void SkImage_Gpu::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) const {
+ canvas->drawBitmap(fBitmap, x, y, paint);
+}
+
+void SkImage_Gpu::onDrawRect(SkCanvas* canvas, const SkRect* src, const SkRect& dst,
+ const SkPaint* paint) const {
+ canvas->drawBitmapRectToRect(fBitmap, src, dst, paint);
+}
+
SkSurface* SkImage_Gpu::onNewSurface(const SkImageInfo& info, const SkSurfaceProps& props) const {
GrContext* ctx = this->getTexture()->getContext();
// TODO: Change signature of onNewSurface to take a budgeted param.
diff --git a/src/image/SkImage_Gpu.h b/src/image/SkImage_Gpu.h
index 7b38e60ea3..a771ddab24 100644
--- a/src/image/SkImage_Gpu.h
+++ b/src/image/SkImage_Gpu.h
@@ -21,6 +21,9 @@ public:
SkImage_Gpu(const SkBitmap&, int sampleCountForNewSurfaces, SkSurface::Budgeted);
+ void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) const override;
+ void onDrawRect(SkCanvas*, const SkRect* src, const SkRect& dst,
+ const SkPaint*) const override;
SkSurface* onNewSurface(const SkImageInfo&, const SkSurfaceProps&) const override;
GrTexture* onGetTexture() const override;
bool getROPixels(SkBitmap*) const override;
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp
index 20ae62c9f7..acf805829d 100644
--- a/src/image/SkImage_Raster.cpp
+++ b/src/image/SkImage_Raster.cpp
@@ -53,6 +53,8 @@ public:
SkImage_Raster(const SkImageInfo&, SkData*, size_t rb, const SkSurfaceProps*);
virtual ~SkImage_Raster();
+ void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) const override;
+ void onDrawRect(SkCanvas*, const SkRect*, const SkRect&, const SkPaint*) const override;
SkSurface* onNewSurface(const SkImageInfo&, const SkSurfaceProps&) const override;
bool onReadPixels(const SkImageInfo&, void*, size_t, int srcX, int srcY) const override;
const void* onPeekPixels(SkImageInfo*, size_t* /*rowBytes*/) const override;
@@ -118,6 +120,17 @@ SkShader* SkImage_Raster::onNewShader(SkShader::TileMode tileX, SkShader::TileMo
return SkShader::CreateBitmapShader(fBitmap, tileX, tileY, localMatrix);
}
+void SkImage_Raster::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) const {
+ SkBitmap shallowCopy(fBitmap);
+ canvas->drawBitmap(shallowCopy, x, y, paint);
+}
+
+void SkImage_Raster::onDrawRect(SkCanvas* canvas, const SkRect* src, const SkRect& dst,
+ const SkPaint* paint) const {
+ SkBitmap shallowCopy(fBitmap);
+ canvas->drawBitmapRectToRect(shallowCopy, src, dst, paint);
+}
+
SkSurface* SkImage_Raster::onNewSurface(const SkImageInfo& info, const SkSurfaceProps& props) const {
return SkSurface::NewRaster(info, &props);
}