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

Commit b6d9211d authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Implement TODO(romainguy)"

parents 841057ff 63a06673
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