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

Commit 63a06673 authored by John Reck's avatar John Reck
Browse files

Implement TODO(romainguy)

 Bug: 14277445

Change-Id: Id52d6f7fcc023000adcc440bd4da67d9a673536b
parent ebb9e695
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -653,6 +653,11 @@ public class GLRenderer extends HardwareRenderer {
        loadSystemProperties();
    }

    @Override
    void setOpaque(boolean opaque) {
        // Not supported
    }

    @Override
    boolean loadSystemProperties() {
        boolean value;
+5 −0
Original line number Diff line number Diff line
@@ -490,6 +490,11 @@ public abstract class HardwareRenderer {
     */
    abstract void setName(String name);

    /**
     * Change the HardwareRenderer's opacity
     */
    abstract void setOpaque(boolean opaque);

    /**
     * Creates a hardware renderer using OpenGL.
     *
+6 −0
Original line number Diff line number Diff line
@@ -147,6 +147,11 @@ public class ThreadedRenderer extends HardwareRenderer {
        nSetup(mNativeProxy, width, height);
    }

    @Override
    void setOpaque(boolean opaque) {
        nSetOpaque(mNativeProxy, opaque);
    }

    @Override
    int getWidth() {
        return mWidth;
@@ -312,6 +317,7 @@ public class ThreadedRenderer extends HardwareRenderer {
    private static native void nUpdateSurface(long nativeProxy, Surface window);
    private static native void nPauseSurface(long nativeProxy, Surface window);
    private static native void nSetup(long nativeProxy, int width, int height);
    private static native void nSetOpaque(long nativeProxy, boolean opaque);
    private static native void nSetDisplayListData(long nativeProxy, long displayList,
            long newData);
    private static native int nSyncAndDrawFrame(long nativeProxy, long frameTimeNanos,
+3 −1
Original line number Diff line number Diff line
@@ -6174,8 +6174,10 @@ public final class ViewRootImpl implements ViewParent,
    }

    void changeCanvasOpacity(boolean opaque) {
        // TODO(romainguy): recreate Canvas (software or hardware) to reflect the opacity change.
        Log.d(TAG, "changeCanvasOpacity: opaque=" + opaque);
        if (mAttachInfo.mHardwareRenderer != null) {
            mAttachInfo.mHardwareRenderer.setOpaque(opaque);
        }
    }

    class TakenSurfaceHolder extends BaseSurfaceHolder {
+7 −0
Original line number Diff line number Diff line
@@ -197,6 +197,12 @@ static void android_view_ThreadedRenderer_setup(JNIEnv* env, jobject clazz,
    proxy->setup(width, height);
}

static void android_view_ThreadedRenderer_setOpaque(JNIEnv* env, jobject clazz,
        jlong proxyPtr, jboolean opaque) {
    RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
    proxy->setOpaque(opaque);
}

static int android_view_ThreadedRenderer_syncAndDrawFrame(JNIEnv* env, jobject clazz,
        jlong proxyPtr, jlong frameTimeNanos, jint dirtyLeft, jint dirtyTop,
        jint dirtyRight, jint dirtyBottom) {
@@ -279,6 +285,7 @@ static JNINativeMethod gMethods[] = {
    { "nUpdateSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_updateSurface },
    { "nPauseSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_pauseSurface },
    { "nSetup", "(JII)V", (void*) android_view_ThreadedRenderer_setup },
    { "nSetOpaque", "(JZ)V", (void*) android_view_ThreadedRenderer_setOpaque },
    { "nSyncAndDrawFrame", "(JJIIII)I", (void*) android_view_ThreadedRenderer_syncAndDrawFrame },
    { "nDestroyCanvasAndSurface", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvasAndSurface },
    { "nInvokeFunctor", "(JJZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor },
Loading