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

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

Merge "Update layers' opaque property when needed"

parents f1633679 846a5339
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -151,6 +151,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 void nSetOpaqueLayer(int layerId, boolean isOpaque);
    static native void nUpdateTextureLayer(int layerId, int width, int height, boolean opaque,
            SurfaceTexture surface);
    static native void nSetTextureLayerTransform(int layerId, int matrix);
+0 −5
Original line number Diff line number Diff line
@@ -47,11 +47,6 @@ abstract class GLES20Layer extends HardwareLayer {
        return GLES20Canvas.nCopyLayer(mLayer, bitmap.mNativeBitmap);
    }

    @Override
    void update(int width, int height, boolean isOpaque) {
        super.update(width, height, isOpaque);
    }

    @Override
    void destroy() {
        if (mFinalizer != null) {
+6 −0
Original line number Diff line number Diff line
@@ -70,6 +70,12 @@ class GLES20RenderLayer extends GLES20Layer {
        }
    }

    @Override
    void setOpaque(boolean isOpaque) {
        mOpaque = isOpaque;
        GLES20Canvas.nSetOpaqueLayer(mLayer, isOpaque);
    }

    @Override
    HardwareCanvas getCanvas() {
        return mCanvas;
+5 −6
Original line number Diff line number Diff line
@@ -42,12 +42,6 @@ class GLES20TextureLayer extends GLES20Layer {
        }        
    }

    GLES20TextureLayer(SurfaceTexture surface, boolean isOpaque) {
        this(isOpaque);
        mSurface = surface;
        mSurface.attachToGLContext(mTexture);
    }

    @Override
    boolean isValid() {
        return mLayer != 0 && mTexture != 0;
@@ -92,6 +86,11 @@ class GLES20TextureLayer extends GLES20Layer {
        GLES20Canvas.nUpdateTextureLayer(mLayer, width, height, isOpaque, mSurface);
    }

    @Override
    void setOpaque(boolean isOpaque) {
        throw new UnsupportedOperationException("Use update(int, int, boolean) instead");
    }

    @Override
    void setTransform(Matrix matrix) {
        GLES20Canvas.nSetTextureLayerTransform(mLayer, matrix.native_instance);
+7 −0
Original line number Diff line number Diff line
@@ -106,6 +106,13 @@ abstract class HardwareLayer {
        return mOpaque;
    }

    /**
     * Sets whether or not this layer should be considered opaque.
     * 
     * @param isOpaque True if the layer is opaque, false otherwise
     */
    abstract void setOpaque(boolean isOpaque);

    /**
     * Indicates whether this layer can be rendered.
     * 
Loading