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

Commit 16393511 authored by Romain Guy's avatar Romain Guy
Browse files

Make libhwui entirely optional.

The makefile variable USE_OPENGL_RENDERER must be set to true to compile
libhwui and the related code in the JNI layer.

This change also removes obsolete APIs from Canvas that must not be used
and would be confusing if left in. These APIs were remnants of our first
attempt at an OpenGL renderer for the view hierarchy and had not been
taken out before Android 1.0 was released.

Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
parent 1ad73434
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -68,6 +68,14 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libreverb_inte
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libreverbtest_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/soundfx/)
$(call add-clean-step, find . -type f -name "*.rs" -print0 | xargs -0 touch)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/libandroid_runtime.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/symbols/system/lib/libandroid_runtime.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libandroid_runtime.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libhwui_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/libhwui.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/symbols/system/lib/libhwui.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libhwui.so)

# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+0 −47
Original line number Diff line number Diff line
@@ -58593,16 +58593,6 @@
<parameter name="bitmap" type="android.graphics.Bitmap">
</parameter>
</constructor>
<constructor name="Canvas"
 type="android.graphics.Canvas"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="gl" type="javax.microedition.khronos.opengles.GL">
</parameter>
</constructor>
<method name="clipPath"
 return="boolean"
 abstract="false"
@@ -59519,17 +59509,6 @@
<parameter name="paint" type="android.graphics.Paint">
</parameter>
</method>
<method name="freeGlCaches"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getClipBounds"
 return="boolean"
 abstract="false"
@@ -59576,17 +59555,6 @@
 visibility="public"
>
</method>
<method name="getGL"
 return="javax.microedition.khronos.opengles.GL"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getHeight"
 return="int"
 abstract="false"
@@ -59950,21 +59918,6 @@
<parameter name="matrix" type="android.graphics.Matrix">
</parameter>
</method>
<method name="setViewport"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="width" type="int">
</parameter>
<parameter name="height" type="int">
</parameter>
</method>
<method name="skew"
 return="void"
 abstract="false"
+12 −37
Original line number Diff line number Diff line
@@ -68809,16 +68809,6 @@
<parameter name="bitmap" type="android.graphics.Bitmap">
</parameter>
</constructor>
<constructor name="Canvas"
 type="android.graphics.Canvas"
 static="false"
 final="false"
 deprecated="deprecated"
 visibility="public"
>
<parameter name="gl" type="javax.microedition.khronos.opengles.GL">
</parameter>
</constructor>
<method name="clipPath"
 return="boolean"
 abstract="false"
@@ -69735,17 +69725,6 @@
<parameter name="paint" type="android.graphics.Paint">
</parameter>
</method>
<method name="freeGlCaches"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="deprecated"
 visibility="public"
>
</method>
<method name="getClipBounds"
 return="boolean"
 abstract="false"
@@ -69800,7 +69779,7 @@
 static="false"
 final="false"
 deprecated="deprecated"
 visibility="public"
 visibility="protected"
>
</method>
<method name="getHeight"
@@ -70177,21 +70156,6 @@
<parameter name="matrix" type="android.graphics.Matrix">
</parameter>
</method>
<method name="setViewport"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="deprecated"
 visibility="public"
>
<parameter name="width" type="int">
</parameter>
<parameter name="height" type="int">
</parameter>
</method>
<method name="skew"
 return="void"
 abstract="false"
@@ -213051,6 +213015,17 @@
 visibility="public"
>
</method>
<method name="getVisibleTitleHeight"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getZoomControls"
 return="android.view.View"
 abstract="false"
+11 −6
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import javax.microedition.khronos.opengles.GL;
/**
 * An implementation of Canvas on top of OpenGL ES 2.0.
 */
@SuppressWarnings({"deprecation"})
class GLES20Canvas extends Canvas {
    @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"})
    private final GL mGl;
@@ -57,6 +56,17 @@ class GLES20Canvas extends Canvas {

    private DrawFilter mFilter;
    
    ///////////////////////////////////////////////////////////////////////////
    // JNI
    ///////////////////////////////////////////////////////////////////////////

    private static native boolean nIsAvailable();
    private static boolean sIsAvailable = nIsAvailable();

    static boolean isAvailable() {
        return sIsAvailable;
    }

    ///////////////////////////////////////////////////////////////////////////
    // Constructors
    ///////////////////////////////////////////////////////////////////////////
@@ -90,11 +100,6 @@ class GLES20Canvas extends Canvas {
        return true;
    }

    @Override
    public GL getGL() {
        throw new UnsupportedOperationException();
    }

    @Override
    public void setBitmap(Bitmap bitmap) {
        throw new UnsupportedOperationException();
+5 −41
Original line number Diff line number Diff line
@@ -28,10 +28,6 @@ import javax.microedition.khronos.egl.EGLContext;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.egl.EGLSurface;
import javax.microedition.khronos.opengles.GL;
import javax.microedition.khronos.opengles.GL11;

import static javax.microedition.khronos.opengles.GL10.GL_COLOR_BUFFER_BIT;
import static javax.microedition.khronos.opengles.GL10.GL_SCISSOR_TEST;

/**
 * Interface for rendering a ViewRoot using hardware acceleration.
@@ -110,10 +106,8 @@ abstract class HardwareRenderer {
     */
    static HardwareRenderer createGlRenderer(int glVersion, boolean translucent) {
        switch (glVersion) {
            case 1:
                return new Gl10Renderer(translucent);
            case 2:
                return new Gl20Renderer(translucent);
                return Gl20Renderer.create(translucent);
        }
        throw new IllegalArgumentException("Unknown GL version: " + glVersion);
    }
@@ -521,42 +515,12 @@ abstract class HardwareRenderer {
        void onPreDraw() {
            mGlCanvas.onPreDraw();
        }
    }

    /**
     * Hardware renderer using OpenGL ES 1.0.
     */
    @SuppressWarnings({"deprecation"})
    static class Gl10Renderer extends GlRenderer {
        Gl10Renderer(boolean translucent) {
            super(1, translucent);
        }

        @Override
        Canvas createCanvas() {
            return new Canvas(mGl);
        }

        @Override
        void destroy() {
            if (isEnabled()) {
                nativeAbandonGlCaches();
            }

            super.destroy();
        static HardwareRenderer create(boolean translucent) {
            if (GLES20Canvas.isAvailable()) {
                return new Gl20Renderer(translucent);
            }

        @Override
        void onPreDraw() {
            GL11 gl = (GL11) mGl;
            gl.glDisable(GL_SCISSOR_TEST);
            gl.glClearColor(0, 0, 0, 0);
            gl.glClear(GL_COLOR_BUFFER_BIT);
            gl.glEnable(GL_SCISSOR_TEST);
            return null;
        }
    }

    // Inform Skia to just abandon its texture cache IDs doesn't call glDeleteTextures
    // Used only by the native Skia OpenGL ES 1.x implementation
    private static native void nativeAbandonGlCaches();
}
Loading