summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Sarett <msarett@google.com>2017-04-13 09:54:50 -0400
committerMatt Sarett <msarett@google.com>2017-04-13 13:57:53 +0000
commit3c0c39a4f6026ea3b2fa6f3049b7a8710c98bba8 (patch)
tree3d976e390fa7d0e9611c16aa318ad7f33a401974
parent55c94a23e453aeb6ad4d0716991d87b1ea473687 (diff)
downloadwebview-3c0c39a4f6026ea3b2fa6f3049b7a8710c98bba8.tar.gz
Use Canvas::captureCanvasState()
Test: Verified that bug is fixed. Bug: 37268771 Change-Id: Id1f2dfecf2d71b5ced57e9fc957fd155ed1093d6
-rw-r--r--chromium/plat_support/graphics_utils.cpp22
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;