Index: src/gpu/SkGpuDevice.h |
diff --git a/src/gpu/SkGpuDevice.h b/src/gpu/SkGpuDevice.h |
index 6c0288d4aec37c23148011dd0b5d39bb31e1bafc..bdbbbaf2425cbcbeb9ac503c04d051e10dfa9c58 100644 |
--- a/src/gpu/SkGpuDevice.h |
+++ b/src/gpu/SkGpuDevice.h |
@@ -23,6 +23,8 @@ class GrAccelData; |
class GrTextureProducer; |
struct GrCachedLayer; |
+class SkSpecialImage; |
+ |
/** |
* Subclass of SkBaseDevice, which directs all drawing to the GrGpu owned by the |
* canvas. |
@@ -118,8 +120,8 @@ public: |
const SkPaint&) override; |
void drawAtlas(const SkDraw&, const SkImage* atlas, const SkRSXform[], const SkRect[], |
const SkColor[], int count, SkXfermode::Mode, const SkPaint&) override; |
- virtual void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y, |
- const SkPaint&) override; |
+ void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y, const SkPaint&) override; |
+ |
void drawImage(const SkDraw&, const SkImage*, SkScalar x, SkScalar y, const SkPaint&) override; |
void drawImageRect(const SkDraw&, const SkImage*, const SkRect* src, const SkRect& dst, |
const SkPaint&, SkCanvas::SrcRectConstraint) override; |
@@ -129,6 +131,9 @@ public: |
void drawBitmapNine(const SkDraw& draw, const SkBitmap& bitmap, const SkIRect& center, |
const SkRect& dst, const SkPaint& paint) override; |
+ void drawSpecial(const SkDraw& draw, SkSpecialImage*, |
+ int left, int top, const SkPaint& paint); |
+ |
void flush() override; |
void onAttachToCanvas(SkCanvas* canvas) override; |
@@ -214,6 +219,12 @@ private: |
bool bicubic, |
bool needsTextureDomain); |
+ sk_sp<SkSpecialImage> filterTexture(const SkDraw&, |
+ SkSpecialImage*, |
+ int left, int top, |
+ SkIPoint* offset, |
+ const SkImageFilter* filter); |
+ |
void drawTiledBitmap(const SkBitmap& bitmap, |
const SkMatrix& viewMatrix, |
const SkRect& srcRect, |