diff options
| -rw-r--r-- | core/java/android/view/ViewRoot.java | 8 | ||||
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 9 |
2 files changed, 10 insertions, 7 deletions
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index ca19da266e17..b0553c60c701 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -784,6 +784,7 @@ public final class ViewRoot extends Handler implements ViewParent, Bitmap.Config.ARGB_8888); mResizeBitmap.setHasAlpha(false); Canvas canvas = new Canvas(mResizeBitmap); + canvas.drawColor(0xff000000, PorterDuff.Mode.SRC); int yoff; final boolean scrolling = mScroller != null && mScroller.computeScrollOffset(); @@ -1500,7 +1501,12 @@ public final class ViewRoot extends Handler implements ViewParent, mPreviousDirty.set(dirty); dirty.setEmpty(); - mAttachInfo.mHardwareRenderer.draw(mView, mAttachInfo, this, mCurrentDirty); + Rect currentDirty = mCurrentDirty; + if (animating) { + currentDirty = null; + } + + mAttachInfo.mHardwareRenderer.draw(mView, mAttachInfo, this, currentDirty); } if (animating) { diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 9f491b3d31c1..c378f46117bb 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -218,6 +218,9 @@ void OpenGLRenderer::releaseContext() { bool OpenGLRenderer::callDrawGLFunction(Functor *functor) { interrupt(); + if (mDirtyClip) { + setScissorFromClip(); + } status_t result = (*functor)(); resume(); return (result == 0) ? false : true; @@ -1451,13 +1454,7 @@ void OpenGLRenderer::drawRect(float left, float top, float right, float bottom, mode = getXfermode(p->getXfermode()); } - // Skia draws using the color's alpha channel if < 255 - // Otherwise, it uses the paint's alpha int color = p->getColor(); - if (((color >> 24) & 0xff) == 255) { - color |= p->getAlpha() << 24; - } - drawColorRect(left, top, right, bottom, color, mode); } |