diff options
| author | Romain Guy <romainguy@google.com> | 2011-01-24 18:43:26 -0800 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2011-01-24 18:43:26 -0800 |
| commit | e965dee34135e7bce186408d1265a5cfd05a9fb1 (patch) | |
| tree | 8bbcec68281e10e6e636730eeefcb48216d8054a /core/java/android/view/ViewRoot.java | |
| parent | a89293c97006b9733b47df6a149b83e126498914 (diff) | |
| parent | 4e1db6dadd404c023b71ae1ab54e990fce56abc3 (diff) | |
am 4e1db6da: am 2ff6d705: Merge "Enable partial invalidates when rendering with OpenGL." into honeycomb
* commit '4e1db6dadd404c023b71ae1ab54e990fce56abc3':
Enable partial invalidates when rendering with OpenGL.
Diffstat (limited to 'core/java/android/view/ViewRoot.java')
| -rw-r--r-- | core/java/android/view/ViewRoot.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index 24a9d4298d43..25471b5eaa4b 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -165,7 +165,9 @@ public final class ViewRoot extends Handler implements ViewParent, int mWidth; int mHeight; - Rect mDirty; // will be a graphics.Region soon + Rect mDirty; + final Rect mCurrentDirty = new Rect(); + final Rect mPreviousDirty = new Rect(); boolean mIsAnimating; CompatibilityInfo.Translator mTranslator; @@ -1060,6 +1062,7 @@ public final class ViewRoot extends Handler implements ViewParent, disposeResizeBitmap(); } else if (surfaceGenerationId != mSurface.getGenerationId() && mSurfaceHolder == null && mAttachInfo.mHardwareRenderer != null) { + fullRedrawNeeded = true; mAttachInfo.mHardwareRenderer.updateSurface(mHolder); } } catch (RemoteException e) { @@ -1493,10 +1496,15 @@ public final class ViewRoot extends Handler implements ViewParent, if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { if (!dirty.isEmpty() || mIsAnimating) { mIsAnimating = false; - dirty.setEmpty(); mHardwareYOffset = yoff; mResizeAlpha = resizeAlpha; - mAttachInfo.mHardwareRenderer.draw(mView, mAttachInfo, this); + + mCurrentDirty.set(dirty); + mCurrentDirty.union(mPreviousDirty); + mPreviousDirty.set(dirty); + dirty.setEmpty(); + + mAttachInfo.mHardwareRenderer.draw(mView, mAttachInfo, this, mCurrentDirty); } if (animating) { @@ -1995,6 +2003,7 @@ public final class ViewRoot extends Handler implements ViewParent, if (mAttachInfo.mHardwareRenderer != null && mSurface != null && mSurface.isValid()) { + mFullRedrawNeeded = true; mAttachInfo.mHardwareRenderer.initializeIfNeeded(mWidth, mHeight, mAttachInfo, mHolder); } |
