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

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

am ee6113a6: am f74d2f2f: Merge "Fix occasional crash bug with layers" into jb-mr1-dev

* commit 'ee6113a6':
  Fix occasional crash bug with layers
parents fdf6cd42 ee6113a6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -150,7 +150,7 @@ class GLES20Canvas extends HardwareCanvas {
    
    static native int nCreateTextureLayer(boolean opaque, int[] layerInfo);
    static native int nCreateLayer(int width, int height, boolean isOpaque, int[] layerInfo);
    static native void nResizeLayer(int layerId, int width, int height, int[] layerInfo);
    static native boolean nResizeLayer(int layerId, int width, int height, int[] layerInfo);
    static native void nSetOpaqueLayer(int layerId, boolean isOpaque);
    static native void nSetLayerPaint(int layerId, int nativePaint);
    static native void nSetLayerColorFilter(int layerId, int nativeColorFilter);
+12 −6
Original line number Diff line number Diff line
@@ -54,8 +54,8 @@ class GLES20RenderLayer extends GLES20Layer {
    }

    @Override
    void resize(int width, int height) {
        if (!isValid() || width <= 0 || height <= 0) return;
    boolean resize(int width, int height) {
        if (!isValid() || width <= 0 || height <= 0) return false;

        mWidth = width;
        mHeight = height;
@@ -63,11 +63,17 @@ class GLES20RenderLayer extends GLES20Layer {
        if (width != mLayerWidth || height != mLayerHeight) {
            int[] layerInfo = new int[2];

            GLES20Canvas.nResizeLayer(mLayer, width, height, layerInfo);

            if (GLES20Canvas.nResizeLayer(mLayer, width, height, layerInfo)) {
                mLayerWidth = layerInfo[0];
                mLayerHeight = layerInfo[1];
            } else {
                // Failure: not enough GPU resources for requested size
                mLayer = 0;
                mLayerWidth = 0;
                mLayerHeight = 0;
            }
        }
        return isValid();
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -48,7 +48,8 @@ class GLES20TextureLayer extends GLES20Layer {
    }

    @Override
    void resize(int width, int height) {
    boolean resize(int width, int height) {
        return isValid();
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -135,8 +135,9 @@ abstract class HardwareLayer {
     * 
     * @param width The new desired minimum width for this layer
     * @param height The new desired minimum height for this layer
     * @return True if the resulting layer is valid, false otherwise
     */
    abstract void resize(int width, int height);
    abstract boolean resize(int width, int height);

    /**
     * Returns a hardware canvas that can be used to render onto
+4 −3
Original line number Diff line number Diff line
@@ -12213,9 +12213,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                mLocalDirtyRect.set(0, 0, width, height);
            } else {
                if (mHardwareLayer.getWidth() != width || mHardwareLayer.getHeight() != height) {
                    mHardwareLayer.resize(width, height);
                    if (mHardwareLayer.resize(width, height)) {
                        mLocalDirtyRect.set(0, 0, width, height);
                    }
                }
                // This should not be necessary but applications that change
                // the parameters of their background drawable without calling
@@ -12225,7 +12226,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                computeOpaqueFlags();
                final boolean opaque = isOpaque();
                if (mHardwareLayer.isOpaque() != opaque) {
                if (mHardwareLayer.isValid() && mHardwareLayer.isOpaque() != opaque) {
                    mHardwareLayer.setOpaque(opaque);
                    mLocalDirtyRect.set(0, 0, width, height);
                }
Loading