diff options
author | 2013-05-01 22:38:16 +0000 | |
---|---|---|
committer | 2013-05-01 22:38:16 +0000 | |
commit | da90474b5fcc019fb0971d12360bd05213ad4dc8 (patch) | |
tree | e14995c17b2c7a84b94a9b49a804359ef82d2e89 /src | |
parent | 3dab1ff4a3b832678cfde99a2f14730bef83caab (diff) |
Adding public API method on SkImage for extracting the GPU texture handle.
TEST=Surface unit test
Review URL: https://codereview.chromium.org/14646007
git-svn-id: http://skia.googlecode.com/svn/trunk@8945 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-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) { |