Index: src/image/SkImage_Gpu.cpp |
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp |
index de49d1e33973f6f3e3dbd3f33e291fe4213ae931..b172a705405c17bd796218a5c83cf1317bc3c0da 100644 |
--- a/src/image/SkImage_Gpu.cpp |
+++ b/src/image/SkImage_Gpu.cpp |
@@ -9,6 +9,7 @@ |
#include "SkImagePriv.h" |
#include "SkBitmap.h" |
#include "SkCanvas.h" |
+#include "SkSurface.h" |
#include "GrContext.h" |
#include "GrTexture.h" |
@@ -19,19 +20,20 @@ public: |
explicit SkImage_Gpu(const SkBitmap&); |
virtual ~SkImage_Gpu(); |
- virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) const SK_OVERRIDE; |
- virtual void onDrawRect(SkCanvas*, const SkRect* src, const SkRect& dst, |
- const SkPaint*) const SK_OVERRIDE; |
- virtual GrTexture* onGetTexture() const SK_OVERRIDE; |
- virtual bool getROPixels(SkBitmap*) const SK_OVERRIDE; |
+ void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) const SK_OVERRIDE; |
+ void onDrawRect(SkCanvas*, const SkRect* src, const SkRect& dst, |
+ const SkPaint*) const SK_OVERRIDE; |
+ SkSurface* onNewSurface(const SkImageInfo&, const SkSurfaceProps&) const SK_OVERRIDE; |
+ GrTexture* onGetTexture() const SK_OVERRIDE; |
+ bool getROPixels(SkBitmap*) const SK_OVERRIDE; |
GrTexture* getTexture() const { return fBitmap.getTexture(); } |
- virtual SkShader* onNewShader(SkShader::TileMode, |
+ SkShader* onNewShader(SkShader::TileMode, |
SkShader::TileMode, |
const SkMatrix* localMatrix) const SK_OVERRIDE; |
- virtual bool isOpaque() const SK_OVERRIDE; |
+ bool isOpaque() const SK_OVERRIDE; |
private: |
SkBitmap fBitmap; |
@@ -42,7 +44,7 @@ private: |
/////////////////////////////////////////////////////////////////////////////// |
SkImage_Gpu::SkImage_Gpu(const SkBitmap& bitmap) |
- : INHERITED(bitmap.width(), bitmap.height()) |
+ : INHERITED(bitmap.width(), bitmap.height(), NULL) |
, fBitmap(bitmap) { |
SkASSERT(fBitmap.getTexture()); |
} |
@@ -66,6 +68,12 @@ void SkImage_Gpu::onDrawRect(SkCanvas* canvas, const SkRect* src, const SkRect& |
canvas->drawBitmapRectToRect(fBitmap, src, dst, paint); |
} |
+SkSurface* SkImage_Gpu::onNewSurface(const SkImageInfo& info, const SkSurfaceProps& props) const { |
+ GrContext* ctx = this->getTexture()->getContext(); |
+ const int sampleCount = 0; // TODO: extract this from this image... |
bsalomon
2014/11/21 14:45:44
why not just do this as part of this CL?
reed1
2014/11/21 16:33:06
Done.
|
+ return SkSurface::NewRenderTarget(ctx, info, sampleCount, &props); |
+} |
+ |
GrTexture* SkImage_Gpu::onGetTexture() const { |
return fBitmap.getTexture(); |
} |