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

Commit 44e3b0d0 authored by Romain Guy's avatar Romain Guy Committed by Android Git Automerger
Browse files

am f44ed5ad: Merge "Don\'t clobber the local dirty rect after rendering a...

am f44ed5ad: Merge "Don\'t clobber the local dirty rect after rendering a layer. Bug #3417254 Bug #3413433" into honeycomb

* commit 'f44ed5ad':
  Don't clobber the local dirty rect after rendering a layer. Bug #3417254 Bug #3413433
parents 99e8e047 f44ed5ad
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -8221,8 +8221,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
            if (mHardwareLayer == null) {
                mHardwareLayer = mAttachInfo.mHardwareRenderer.createHardwareLayer(
                        width, height, isOpaque());
                mLocalDirtyRect.setEmpty();
            } else if (mHardwareLayer.getWidth() != width || mHardwareLayer.getHeight() != height) {
                mHardwareLayer.resize(width, height);
                mLocalDirtyRect.setEmpty();
            }

            Canvas currentCanvas = mAttachInfo.mHardwareCanvas;
@@ -8231,6 +8233,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
            try {
                canvas.setViewport(width, height);
                canvas.onPreDraw(mLocalDirtyRect);
                mLocalDirtyRect.setEmpty();

                final int restoreCount = canvas.save();

@@ -8252,7 +8255,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                canvas.onPostDraw();
                mHardwareLayer.end(currentCanvas);
                mAttachInfo.mHardwareCanvas = currentCanvas;
                mLocalDirtyRect.setEmpty();
            }
        }

+2 −4
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ namespace uirenderer {
void LayerRenderer::prepareDirty(float left, float top, float right, float bottom, bool opaque) {
    LAYER_RENDERER_LOGD("Rendering into layer, fbo = %d", mLayer->fbo);

    glBindFramebuffer(GL_FRAMEBUFFER, mLayer->fbo);

#if RENDER_LAYERS_AS_REGIONS
    Rect dirty(left, top, right, bottom);
    if (dirty.isEmpty() || (dirty.left <= 0 && dirty.top <= 0 &&
@@ -43,11 +45,7 @@ void LayerRenderer::prepareDirty(float left, float top, float right, float botto
        android::Rect r(dirty.left, dirty.top, dirty.right, dirty.bottom);
        mLayer->region.subtractSelf(r);
    }
#endif

    glBindFramebuffer(GL_FRAMEBUFFER, mLayer->fbo);

#if RENDER_LAYERS_AS_REGIONS
    OpenGLRenderer::prepareDirty(dirty.left, dirty.top, dirty.right, dirty.bottom, opaque);
#else
    OpenGLRenderer::prepareDirty(0.0f, 0.0f, mLayer->width, mLayer->height, opaque);
+1 −1

File changed.

Contains only whitespace changes.