diff options
author | 2014-07-14 07:48:04 -0700 | |
---|---|---|
committer | 2014-07-14 07:48:04 -0700 | |
commit | cef04f818820e59fb534eb226f967f72497845d3 (patch) | |
tree | becba50eff67c59eb5ca4b9b26fbd6285d22aab0 /src | |
parent | 4fdba1cec42ff861d6cda7a41e3270d74abbe1b8 (diff) |
Deleted SkImage::newShaderClamp: not used, not implemented.
Implemented SkImage::newShader.
BUG=skia:2701, 344804
R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, reed@google.com
Author: piotaixr@chromium.org
Review URL: https://codereview.chromium.org/345463009
Diffstat (limited to 'src')
-rw-r--r-- | src/image/SkImage.cpp | 4 | ||||
-rw-r--r-- | src/image/SkImage_Base.h | 1 | ||||
-rw-r--r-- | src/image/SkImage_Gpu.cpp | 5 | ||||
-rw-r--r-- | src/image/SkImage_Raster.cpp | 6 |
4 files changed, 16 insertions, 0 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index e0a13f915b..9e136f5a27 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -78,6 +78,10 @@ GrTexture* SkImage::getTexture() { return as_IB(this)->onGetTexture(); } +SkShader* SkImage::newShader(SkShader::TileMode tileX, SkShader::TileMode tileY) const { + return as_IB(this)->onNewShader(tileX, tileY); +} + SkData* SkImage::encode(SkImageEncoder::Type type, int quality) const { SkBitmap bm; if (as_IB(this)->getROPixels(&bm)) { diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h index 9fdfcd2677..1a54157b8e 100644 --- a/src/image/SkImage_Base.h +++ b/src/image/SkImage_Base.h @@ -31,6 +31,7 @@ public: // but only inspect them (or encode them). virtual bool getROPixels(SkBitmap*) const { return false; } + virtual SkShader* onNewShader(SkShader::TileMode, SkShader::TileMode) const { return NULL; }; private: typedef SkImage INHERITED; }; diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp index aa08f44260..7a73c7453b 100644 --- a/src/image/SkImage_Gpu.cpp +++ b/src/image/SkImage_Gpu.cpp @@ -27,6 +27,7 @@ public: GrTexture* getTexture() { return fBitmap.getTexture(); } + virtual SkShader* onNewShader(SkShader::TileMode, SkShader::TileMode) const SK_OVERRIDE; private: SkBitmap fBitmap; @@ -44,6 +45,10 @@ SkImage_Gpu::SkImage_Gpu(const SkBitmap& bitmap) SkImage_Gpu::~SkImage_Gpu() { } +SkShader* SkImage_Gpu::onNewShader(SkShader::TileMode tileX, SkShader::TileMode tileY) const { + return SkShader::CreateBitmapShader(fBitmap, tileX, tileY, NULL); +} + void SkImage_Gpu::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) { canvas->drawBitmap(fBitmap, x, y, paint); diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp index 68fc1b32e6..464a4ba7a4 100644 --- a/src/image/SkImage_Raster.cpp +++ b/src/image/SkImage_Raster.cpp @@ -64,6 +64,8 @@ public: SkPixelRef* getPixelRef() const { return fBitmap.pixelRef(); } + virtual SkShader* onNewShader(SkShader::TileMode, SkShader::TileMode) const SK_OVERRIDE; + private: SkImage_Raster() : INHERITED(0, 0) {} @@ -111,6 +113,10 @@ SkImage_Raster::SkImage_Raster(const Info& info, SkPixelRef* pr, size_t rowBytes SkImage_Raster::~SkImage_Raster() {} +SkShader* SkImage_Raster::onNewShader(SkShader::TileMode tileX, SkShader::TileMode tileY) const { + return SkShader::CreateBitmapShader(fBitmap, tileX, tileY, NULL); +} + void SkImage_Raster::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) { canvas->drawBitmap(fBitmap, x, y, paint); } |