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

Commit 7e52caf6 authored by Michael Jurka's avatar Michael Jurka
Browse files

Don't draw layers in buildLayer()

Creating the layer, if necessary, takes the bulk
of the time - just do the creation, and schedule a
deferred update

Change-Id: I21399ebd5d2929a4f242ec1c08e3f97fed1ef58a
parent 6be5247c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -315,7 +315,7 @@ public class TextureView extends View {
    }

    @Override
    HardwareLayer getHardwareLayer(boolean immediateRefresh) {
    HardwareLayer getHardwareLayer() {
        if (mLayer == null) {
            if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) {
                return null;
+5 −30
Original line number Diff line number Diff line
@@ -10220,7 +10220,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
                if (mAttachInfo.mHardwareRenderer != null &&
                        mAttachInfo.mHardwareRenderer.isEnabled() &&
                        mAttachInfo.mHardwareRenderer.validate()) {
                    getHardwareLayer(true);
                    getHardwareLayer();
                }
                break;
            case LAYER_TYPE_SOFTWARE:
@@ -10242,7 +10242,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
     *
     * @return A HardwareLayer ready to render, or null if an error occurred.
     */
    HardwareLayer getHardwareLayer(boolean immediateRefresh) {
    HardwareLayer getHardwareLayer() {
        if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null ||
                !mAttachInfo.mHardwareRenderer.isEnabled()) {
            return null;
@@ -10272,33 +10272,8 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
                return null;
            }
            if (!immediateRefresh) {
            mHardwareLayer.redraw(getDisplayList(), mLocalDirtyRect);
            mLocalDirtyRect.setEmpty();
            } else {
                HardwareCanvas currentCanvas = mAttachInfo.mHardwareCanvas;
                final HardwareCanvas canvas = mHardwareLayer.start(currentCanvas);
    
                // Make sure all the GPU resources have been properly allocated
                if (canvas == null) {
                    mHardwareLayer.end(currentCanvas);
                    return null;
                }
    
                mAttachInfo.mHardwareCanvas = canvas;
                try {
                    canvas.setViewport(width, height);
                    canvas.onPreDraw(mLocalDirtyRect);
                    mLocalDirtyRect.setEmpty();
                    
                    canvas.drawDisplayList(getDisplayList(), mRight - mLeft, mBottom - mTop, null,
                            DisplayList.FLAG_CLIP_CHILDREN);
                } finally {
                    canvas.onPostDraw();
                    mHardwareLayer.end(currentCanvas);
                    mAttachInfo.mHardwareCanvas = currentCanvas;
                }
            }
        }
        return mHardwareLayer;
@@ -11265,7 +11240,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
        if (hasNoCache) {
            boolean layerRendered = false;
            if (layerType == LAYER_TYPE_HARDWARE) {
                final HardwareLayer layer = getHardwareLayer(false);
                final HardwareLayer layer = getHardwareLayer();
                if (layer != null && layer.isValid()) {
                    mLayerPaint.setAlpha((int) (alpha * 255));
                    ((HardwareCanvas) canvas).drawHardwareLayer(layer, 0, 0, mLayerPaint);
+1 −1

File changed.

Contains only whitespace changes.