diff options
author | reed <reed@chromium.org> | 2015-05-05 17:30:45 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-05 17:30:45 -0700 |
commit | 3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b (patch) | |
tree | 215ee85419b07a42e582d46eae24352b4d3a7940 /src/image | |
parent | d96a67bcb196aa4f73ff773bd45810a94ca872d8 (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.cpp | 9 | ||||
-rw-r--r-- | src/image/SkImage_Base.h | 3 | ||||
-rw-r--r-- | src/image/SkImage_Gpu.cpp | 9 | ||||
-rw-r--r-- | src/image/SkImage_Gpu.h | 3 | ||||
-rw-r--r-- | src/image/SkImage_Raster.cpp | 13 |
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); } |