summaryrefslogtreecommitdiffstats
path: root/android_webview/java
diff options
context:
space:
mode:
authorbenm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-21 07:20:54 +0000
committerbenm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-21 07:20:54 +0000
commitfe344609f1312647f02e44c0092f0d373a93f2c4 (patch)
tree1ab8a0d7cf13132757c48d6d4659e83b1edad889 /android_webview/java
parent287f7aebd5b5be72c34be1d4246a9ea74b3903eb (diff)
downloadchromium_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.java10
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);
}