Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b6110a1e authored by Romain Guy's avatar Romain Guy Committed by Android (Google) Code Review
Browse files

Merge "Make sure the opaque bitmap is opaque. GL doesn't like being lied to....

Merge "Make sure the opaque bitmap is opaque. GL doesn't like being lied to. Bug #3382992" into honeycomb
parents 4991a00b f90f8171
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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) {
+3 −6
Original line number Diff line number Diff line
@@ -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);
}