summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/ViewRoot.java8
-rw-r--r--libs/hwui/OpenGLRenderer.cpp9
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);
}