diff options
author | Matt Sarett <msarett@google.com> | 2017-04-13 09:54:50 -0400 |
---|---|---|
committer | Matt Sarett <msarett@google.com> | 2017-04-13 09:55:36 -0400 |
commit | 56565b89f1f6c4e8ed80e064cd52de7b1240c48e (patch) | |
tree | 3d976e390fa7d0e9611c16aa318ad7f33a401974 /chromium/plat_support | |
parent | 55c94a23e453aeb6ad4d0716991d87b1ea473687 (diff) | |
download | webview-56565b89f1f6c4e8ed80e064cd52de7b1240c48e.tar.gz |
Use Canvas::captureCanvasState()
Test: Verified that bug is fixed.
Bug: 37268771
Change-Id: Id1f2dfecf2d71b5ced57e9fc957fd155ed1093d6
Diffstat (limited to 'chromium/plat_support')
-rw-r--r-- | chromium/plat_support/graphics_utils.cpp | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/chromium/plat_support/graphics_utils.cpp b/chromium/plat_support/graphics_utils.cpp index 5d8d0a5..89beb75 100644 --- a/chromium/plat_support/graphics_utils.cpp +++ b/chromium/plat_support/graphics_utils.cpp @@ -38,15 +38,15 @@ namespace { class PixelInfo : public AwPixelInfo { public: - explicit PixelInfo(SkCanvas* canvas); + explicit PixelInfo(android::Canvas* canvas); ~PixelInfo(); }; -PixelInfo::PixelInfo(SkCanvas* canvas) { +PixelInfo::PixelInfo(android::Canvas* canvas) { memset(this, 0, sizeof(AwPixelInfo)); version = kAwPixelInfoVersion; - state = SkCanvasStateUtils::CaptureCanvasState(canvas); + state = canvas->captureCanvasState(); } PixelInfo::~PixelInfo() { @@ -59,21 +59,7 @@ AwPixelInfo* GetPixels(JNIEnv* env, jobject java_canvas) { if (!nativeCanvas) return NULL; - SkCanvas* canvas = nativeCanvas->asSkCanvas(); - if (!canvas) - return NULL; - - // Workarounds for http://crbug.com/271096: SW draw only supports - // translate & scale transforms, and a simple rectangular clip. - // (This also avoids significant wasted time in calling - // SkCanvasStateUtils::CaptureCanvasState when the clip is complex). - if (!canvas->isClipRect() || - (canvas->getTotalMatrix().getType() & - ~(SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask))) { - return NULL; - } - - PixelInfo* pixels = new PixelInfo(canvas); + PixelInfo* pixels = new PixelInfo(nativeCanvas); if (!pixels->state) { delete pixels; pixels = NULL; |