diff options
| author | Chet Haase <chet@google.com> | 2011-11-28 15:47:16 -0800 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2011-11-28 15:47:16 -0800 |
| commit | d3ea6b40bb8f0fbc2a877963db1ab4fa0fc02b2f (patch) | |
| tree | 2f0be21ad21c6efc24597d5cadbadd5645da091c /core/java/android | |
| parent | 589364c7179e764f4e8b9c0d53f45a1abf528aa8 (diff) | |
| parent | 3892889952b0ad3fa0b095c96d8ae2ae110585e2 (diff) | |
| download | frameworks_base-d3ea6b40bb8f0fbc2a877963db1ab4fa0fc02b2f.zip frameworks_base-d3ea6b40bb8f0fbc2a877963db1ab4fa0fc02b2f.tar.gz frameworks_base-d3ea6b40bb8f0fbc2a877963db1ab4fa0fc02b2f.tar.bz2 | |
am 38928899: am 8990cb57: Merge "Fix flashing wifi dialog after rotating back from landscape." into ics-mr1
* commit '3892889952b0ad3fa0b095c96d8ae2ae110585e2':
Fix flashing wifi dialog after rotating back from landscape.
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/HardwareRenderer.java | 12 | ||||
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 27 |
2 files changed, 26 insertions, 13 deletions
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index f77cf7e..ccb6489 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -219,6 +219,13 @@ public abstract class HardwareRenderer { abstract int getHeight(); /** + * Gets the current canvas associated with this HardwareRenderer. + * + * @return the current HardwareCanvas + */ + abstract HardwareCanvas getCanvas(); + + /** * Sets the directory to use as a persistent storage for hardware rendering * resources. * @@ -783,6 +790,11 @@ public abstract class HardwareRenderer { return mHeight; } + @Override + HardwareCanvas getCanvas() { + return mCanvas; + } + boolean canDraw() { return mGl != null && mCanvas != null; } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 18d5c40..d52db97 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1217,7 +1217,8 @@ public final class ViewRootImpl extends Handler implements ViewParent, disposeResizeBuffer(); boolean completed = false; - HardwareCanvas canvas = null; + HardwareCanvas hwRendererCanvas = mAttachInfo.mHardwareRenderer.getCanvas(); + HardwareCanvas layerCanvas = null; try { if (mResizeBuffer == null) { mResizeBuffer = mAttachInfo.mHardwareRenderer.createHardwareLayer( @@ -1226,12 +1227,12 @@ public final class ViewRootImpl extends Handler implements ViewParent, mResizeBuffer.getHeight() != mHeight) { mResizeBuffer.resize(mWidth, mHeight); } - canvas = mResizeBuffer.start(mAttachInfo.mHardwareCanvas); - canvas.setViewport(mWidth, mHeight); - canvas.onPreDraw(null); - final int restoreCount = canvas.save(); + layerCanvas = mResizeBuffer.start(hwRendererCanvas); + layerCanvas.setViewport(mWidth, mHeight); + layerCanvas.onPreDraw(null); + final int restoreCount = layerCanvas.save(); - canvas.drawColor(0xff000000, PorterDuff.Mode.SRC); + layerCanvas.drawColor(0xff000000, PorterDuff.Mode.SRC); int yoff; final boolean scrolling = mScroller != null @@ -1243,27 +1244,27 @@ public final class ViewRootImpl extends Handler implements ViewParent, yoff = mScrollY; } - canvas.translate(0, -yoff); + layerCanvas.translate(0, -yoff); if (mTranslator != null) { - mTranslator.translateCanvas(canvas); + mTranslator.translateCanvas(layerCanvas); } - mView.draw(canvas); + mView.draw(layerCanvas); mResizeBufferStartTime = SystemClock.uptimeMillis(); mResizeBufferDuration = mView.getResources().getInteger( com.android.internal.R.integer.config_mediumAnimTime); completed = true; - canvas.restoreToCount(restoreCount); + layerCanvas.restoreToCount(restoreCount); } catch (OutOfMemoryError e) { Log.w(TAG, "Not enough memory for content change anim buffer", e); } finally { - if (canvas != null) { - canvas.onPostDraw(); + if (layerCanvas != null) { + layerCanvas.onPostDraw(); } if (mResizeBuffer != null) { - mResizeBuffer.end(mAttachInfo.mHardwareCanvas); + mResizeBuffer.end(hwRendererCanvas); if (!completed) { mResizeBuffer.destroy(); mResizeBuffer = null; |
