aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar piotaixr <piotaixr@chromium.org>2014-07-14 07:48:04 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-07-14 07:48:04 -0700
commitcef04f818820e59fb534eb226f967f72497845d3 (patch)
treebecba50eff67c59eb5ca4b9b26fbd6285d22aab0 /src
parent4fdba1cec42ff861d6cda7a41e3270d74abbe1b8 (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.cpp4
-rw-r--r--src/image/SkImage_Base.h1
-rw-r--r--src/image/SkImage_Gpu.cpp5
-rw-r--r--src/image/SkImage_Raster.cpp6
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);
}