diff options
Diffstat (limited to 'src/image')
-rw-r--r-- | src/image/SkImage.cpp | 5 | ||||
-rw-r--r-- | src/image/SkImage_Base.h | 1 | ||||
-rw-r--r-- | src/image/SkImage_Gpu.cpp | 5 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index b388d58a3b..788d06b9cc 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -31,3 +31,8 @@ void SkImage::draw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) { asIB(this)->onDraw(canvas, x, y, paint); } + +GrTexture* SkImage::getTexture() { + return asIB(this)->onGetTexture(); +} + diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h index 2687025a81..d8e64a9a75 100644 --- a/src/image/SkImage_Base.h +++ b/src/image/SkImage_Base.h @@ -15,6 +15,7 @@ public: SkImage_Base(int width, int height) : INHERITED(width, height) {} virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) = 0; + virtual GrTexture* onGetTexture() { return NULL; } private: typedef SkImage INHERITED; diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp index f531a77e28..451ad072a6 100644 --- a/src/image/SkImage_Gpu.cpp +++ b/src/image/SkImage_Gpu.cpp @@ -21,6 +21,7 @@ public: virtual ~SkImage_Gpu(); virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) SK_OVERRIDE; + virtual GrTexture* onGetTexture() SK_OVERRIDE; GrTexture* getTexture() { return fTexture; } @@ -56,6 +57,10 @@ void SkImage_Gpu::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, canvas->drawBitmap(fBitmap, x, y, paint); } +GrTexture* SkImage_Gpu::onGetTexture() { + return fTexture; +} + void SkImage_Gpu::setTexture(GrTexture* texture) { if (texture == fTexture) { |