aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-01 22:38:16 +0000
committerGravatar junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-01 22:38:16 +0000
commitda90474b5fcc019fb0971d12360bd05213ad4dc8 (patch)
treee14995c17b2c7a84b94a9b49a804359ef82d2e89 /src
parent3dab1ff4a3b832678cfde99a2f14730bef83caab (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.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) {