aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image
diff options
context:
space:
mode:
Diffstat (limited to 'src/image')
-rw-r--r--src/image/SkImage.cpp5
-rw-r--r--src/image/SkImage_Base.h1
-rw-r--r--src/image/SkImage_Gpu.cpp5
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) {