Add more overrides to SkColorSpaceXformCanvas
authorMatt Sarett <msarett@google.com>
Thu, 30 Mar 2017 20:10:45 +0000 (16:10 -0400)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Thu, 30 Mar 2017 20:56:09 +0000 (20:56 +0000)
Number of matching gms is unchanged.

Bug: skia:
Change-Id: I43961c716899ddacc560dd7888d4427563cdf7ca
Reviewed-on: https://skia-review.googlesource.com/10805
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
src/core/SkColorSpaceXformCanvas.cpp

index aac94ff..7c906f1 100644 (file)
@@ -237,6 +237,27 @@ public:
         return fTarget->makeSurface(info, &props);
     }
 
+    SkISize getBaseLayerSize() const override { return fTarget->getBaseLayerSize(); }
+    SkRect onGetLocalClipBounds() const override { return fTarget->getLocalClipBounds(); }
+    SkIRect onGetDeviceClipBounds() const override { return fTarget->getDeviceClipBounds(); }
+    bool isClipEmpty() const override { return fTarget->isClipEmpty(); }
+    bool isClipRect() const override { return fTarget->isClipRect(); }
+    bool onPeekPixels(SkPixmap* pixmap) override { return fTarget->peekPixels(pixmap); }
+    bool onAccessTopLayerPixels(SkPixmap* pixmap) override {
+        SkImageInfo info;
+        size_t rowBytes;
+        SkIPoint* origin = nullptr;
+        void* addr = fTarget->accessTopLayerPixels(&info, &rowBytes, origin);
+        if (addr) {
+            *pixmap = SkPixmap(info, addr, rowBytes);
+            return true;
+        }
+        return false;
+    }
+
+    bool onGetProps(SkSurfaceProps* props) const override { return fTarget->getProps(props); }
+    void onFlush() override { return fTarget->flush(); }
+
 private:
     SkCanvas*                            fTarget;
     std::unique_ptr<SkColorSpaceXformer> fXformer;