diff options
author | Derek Sollenberger <djsollen@google.com> | 2011-07-29 12:34:32 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-07-29 12:34:32 -0700 |
commit | ecfeebebfff639ba4b66a334bd46dc37b1ab25da (patch) | |
tree | e70e98ba0028fd466f6d529941d1d9d0b59eef5b | |
parent | a66754356f2b50e3a3a57676e7de9eecfdcc4fc8 (diff) | |
parent | 1d335f30f208223a70ec3e38a881f509d0c0b5d8 (diff) | |
download | frameworks_base-ecfeebebfff639ba4b66a334bd46dc37b1ab25da.zip frameworks_base-ecfeebebfff639ba4b66a334bd46dc37b1ab25da.tar.gz frameworks_base-ecfeebebfff639ba4b66a334bd46dc37b1ab25da.tar.bz2 |
Merge "Add a runtime switch between Raster and Ganesh rendering modes."
-rw-r--r-- | core/java/android/webkit/WebSettings.java | 21 | ||||
-rw-r--r-- | core/java/android/webkit/WebView.java | 12 |
2 files changed, 32 insertions, 1 deletions
diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java index d584acd..642aa22 100644 --- a/core/java/android/webkit/WebSettings.java +++ b/core/java/android/webkit/WebSettings.java @@ -179,6 +179,7 @@ public class WebSettings { private boolean mBlockNetworkImage = false; private boolean mBlockNetworkLoads; private boolean mJavaScriptEnabled = false; + private boolean mHardwareAccelSkia = false; private boolean mShowVisualIndicator = false; private PluginState mPluginState = PluginState.OFF; private boolean mJavaScriptCanOpenWindowsAutomatically = false; @@ -1243,6 +1244,26 @@ public class WebSettings { } /** + * Tell the WebView to use Skia's hardware accelerated rendering path + * @param flag True if the WebView should use Skia's hw-accel path + * @hide + */ + public synchronized void setHardwareAccelSkiaEnabled(boolean flag) { + if (mHardwareAccelSkia != flag) { + mHardwareAccelSkia = flag; + postSync(); + } + } + + /** + * @return True if the WebView is using hardware accelerated skia + * @hide + */ + public synchronized boolean getHardwareAccelSkiaEnabled() { + return mHardwareAccelSkia; + } + + /** * Tell the WebView to show the visual indicator * @param flag True if the WebView should show the visual indicator * @hide diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 5946ae4..f4fd551 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -625,6 +625,9 @@ public class WebView extends AbsoluteLayout // If we are using a set picture, don't send view updates to webkit private boolean mBlockWebkitViewMessages = false; + // cached value used to determine if we need to switch drawing models + private boolean mHardwareAccelSkia = false; + /* * Private message ids */ @@ -4394,6 +4397,12 @@ public class WebView extends AbsoluteLayout int functor = nativeGetDrawGLFunction(mGLViewportEmpty ? null : mGLRectViewport, mGLViewportEmpty ? null : mViewRectViewport, getScale(), extras); ((HardwareCanvas) canvas).callDrawGLFunction(functor); + + if (mHardwareAccelSkia != getSettings().getHardwareAccelSkiaEnabled()) { + mHardwareAccelSkia = getSettings().getHardwareAccelSkiaEnabled(); + nativeUseHardwareAccelSkia(mHardwareAccelSkia); + } + } else { DrawFilter df = null; if (mZoomManager.isZoomAnimating() || UIAnimationsRunning) { @@ -9252,7 +9261,8 @@ public class WebView extends AbsoluteLayout static final int NO_LEFTEDGE = -1; native int nativeGetBlockLeftEdge(int x, int y, float scale); - private native void nativeSetExpandedTileBounds(boolean enabled); + private native void nativeSetExpandedTileBounds(boolean enabled); + private native void nativeUseHardwareAccelSkia(boolean enabled); // Returns a pointer to the scrollable LayerAndroid at the given point. private native int nativeScrollableLayer(int x, int y, Rect scrollRect, |