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

Commit d3ea6b40 authored by Chet Haase's avatar Chet Haase Committed by Android Git Automerger
Browse files

am 38928899: am 8990cb57: Merge "Fix flashing wifi dialog after rotating back...

am 38928899: am 8990cb57: Merge "Fix flashing wifi dialog after rotating back from landscape." into ics-mr1

* commit '38928899':
  Fix flashing wifi dialog after rotating back from landscape.
parents 589364c7 38928899
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -218,6 +218,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;
        }        
+14 −13
Original line number Diff line number Diff line
@@ -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;
+4 −2
Original line number Diff line number Diff line
@@ -201,14 +201,16 @@ void OpenGLRenderer::interrupt() {
}

void OpenGLRenderer::resume() {
    glViewport(0, 0, mSnapshot->viewport.getWidth(), mSnapshot->viewport.getHeight());
    sp<Snapshot> snapshot = (mSnapshot != NULL) ? mSnapshot : mFirstSnapshot;

    glViewport(0, 0, snapshot->viewport.getWidth(), snapshot->viewport.getHeight());

    glEnable(GL_SCISSOR_TEST);
    dirtyClip();

    glDisable(GL_DITHER);

    glBindFramebuffer(GL_FRAMEBUFFER, mSnapshot->fbo);
    glBindFramebuffer(GL_FRAMEBUFFER, snapshot->fbo);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);

    mCaches.blend = true;