diff options
author | benm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-21 07:20:54 +0000 |
---|---|---|
committer | benm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-21 07:20:54 +0000 |
commit | fe344609f1312647f02e44c0092f0d373a93f2c4 (patch) | |
tree | 1ab8a0d7cf13132757c48d6d4659e83b1edad889 /android_webview/java | |
parent | 287f7aebd5b5be72c34be1d4246a9ea74b3903eb (diff) | |
download | chromium_src-fe344609f1312647f02e44c0092f0d373a93f2c4.zip chromium_src-fe344609f1312647f02e44c0092f0d373a93f2c4.tar.gz chromium_src-fe344609f1312647f02e44c0092f0d373a93f2c4.tar.bz2 |
[Android WebView] Clamp Bitmap size when it will be drawn into a Canvas.
While the WebView GL path is still under development, we fall back
to the SW path which uses a renders into a View-sized bitmap if a
HW draw is requested. When drawing into a Canvas, there are
maximum dimensions imposed on bitmaps that can be drawn into it,
and when using a HW Canvas the limits are quite small (based on
maximum GL texture size)
This patch adds a size check on the bitmap we create if we intend
it to be drawn into a Canvas. This means content may be cropped,
but for testing some content is better than no content.
Review URL: https://chromiumcodereview.appspot.com/17274013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207747 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/java')
-rw-r--r-- | android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java index 85d32c1..54bb33d 100644 --- a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java +++ b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java @@ -21,9 +21,17 @@ public class JavaBrowserViewRendererHelper { /** * Provides a Bitmap object with a given width and height used for auxiliary rasterization. + * |canvas| is optional and if supplied indicates the Canvas that this Bitmap will be + * drawn into. Note the Canvas will not be modified in any way. */ @CalledByNative - private static Bitmap createBitmap(int width, int height) { + private static Bitmap createBitmap(int width, int height, Canvas canvas) { + if (canvas != null) { + // When drawing into a Canvas, there is a maximum size imposed + // on Bitmaps that can be drawn. Respect that limit. + width = Math.min(width, canvas.getMaximumBitmapWidth()); + height = Math.min(height, canvas.getMaximumBitmapHeight()); + } return Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); } |