diff options
author | Kristian Monsen <kristianm@google.com> | 2013-08-15 10:13:45 -0700 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2013-08-23 22:49:57 +0000 |
commit | e7724b41b327660a3b3d6d4f0580da7cbe03be64 (patch) | |
tree | c75df8d9c79d1149ab1c8b7441614443b4170605 /chromium/plat_support | |
parent | e3145d2889cb61b5baee0752c007ef0430cb8b33 (diff) | |
download | webview-e7724b41b327660a3b3d6d4f0580da7cbe03be64.tar.gz |
Temp fix for bug 10152369: Broken SW draw with multiple layers
We didn't know this was possible. For now just early out with null.
Change-Id: I9bce3130dc79c32e28c96a4755101d0dd5218126
(cherry picked from commit a77d0c1c7ac335e66004daf977fa86840f063304)
Diffstat (limited to 'chromium/plat_support')
-rw-r--r-- | chromium/plat_support/graphics_utils.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/chromium/plat_support/graphics_utils.cpp b/chromium/plat_support/graphics_utils.cpp index f269614..4db61a1 100644 --- a/chromium/plat_support/graphics_utils.cpp +++ b/chromium/plat_support/graphics_utils.cpp @@ -106,6 +106,12 @@ PixelInfo* TryToCreatePixelInfo(SkCanvas* canvas) { const SkBitmap* bitmap = &device->accessBitmap(true); if (!bitmap->lockPixelsAreWritable()) return NULL; + const SkRegion& region = layer.clip(); + layer.next(); + // Currently don't handle multiple layers well, so early out + // TODO: Return all layers in PixelInfo + if (!layer.done()) + return NULL; UniquePtr<PixelInfo> pixels(new PixelInfo(canvas, bitmap)); pixels->config = @@ -124,7 +130,6 @@ PixelInfo* TryToCreatePixelInfo(SkCanvas* canvas) { pixels->matrix[i] = matrix.get(i); } - const SkRegion& region = layer.clip(); if (region.isEmpty()) { pixels->AddRectToClip(region.getBounds()); } else { |