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

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

Merge "Add SurfaceHolder#lockHardwareCanvas()"

parents 71a7b9ad 6bc70142
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -42343,6 +42343,7 @@ package android.view {
    method public abstract boolean isCreating();
    method public abstract android.graphics.Canvas lockCanvas();
    method public abstract android.graphics.Canvas lockCanvas(android.graphics.Rect);
    method public default android.graphics.Canvas lockHardwareCanvas();
    method public abstract void removeCallback(android.view.SurfaceHolder.Callback);
    method public abstract void setFixedSize(int, int);
    method public abstract void setFormat(int);
+1 −0
Original line number Diff line number Diff line
@@ -45521,6 +45521,7 @@ package android.view {
    method public abstract boolean isCreating();
    method public abstract android.graphics.Canvas lockCanvas();
    method public abstract android.graphics.Canvas lockCanvas(android.graphics.Rect);
    method public default android.graphics.Canvas lockHardwareCanvas();
    method public abstract void removeCallback(android.view.SurfaceHolder.Callback);
    method public abstract void setFixedSize(int, int);
    method public abstract void setFormat(int);
+1 −0
Original line number Diff line number Diff line
@@ -42579,6 +42579,7 @@ package android.view {
    method public abstract boolean isCreating();
    method public abstract android.graphics.Canvas lockCanvas();
    method public abstract android.graphics.Canvas lockCanvas(android.graphics.Rect);
    method public default android.graphics.Canvas lockHardwareCanvas();
    method public abstract void removeCallback(android.view.SurfaceHolder.Callback);
    method public abstract void setFixedSize(int, int);
    method public abstract void setFormat(int);
+18 −2
Original line number Diff line number Diff line
@@ -232,8 +232,7 @@ public abstract class WallpaperService extends Service {
                        "Wallpapers do not support keep screen on");
            }

            @Override
            public Canvas lockCanvas() {
            private void prepareToDraw() {
                if (mDisplayState == Display.STATE_DOZE
                        || mDisplayState == Display.STATE_DOZE_SUSPEND) {
                    try {
@@ -242,8 +241,25 @@ public abstract class WallpaperService extends Service {
                        // System server died, can be ignored.
                    }
                }
            }

            @Override
            public Canvas lockCanvas() {
                prepareToDraw();
                return super.lockCanvas();
            }

            @Override
            public Canvas lockCanvas(Rect dirty) {
                prepareToDraw();
                return super.lockCanvas(dirty);
            }

            @Override
            public Canvas lockHardwareCanvas() {
                prepareToDraw();
                return super.lockHardwareCanvas();
            }
        };

        final class WallpaperInputEventReceiver extends InputEventReceiver {
+41 −27
Original line number Diff line number Diff line
@@ -237,6 +237,20 @@ public interface SurfaceHolder {
     */
    public Canvas lockCanvas(Rect dirty);

    /**
     * <p>Just like {@link #lockCanvas()} but the returned canvas is hardware-accelerated.
     *
     * <p>See the <a href="{@docRoot}guide/topics/graphics/hardware-accel.html#unsupported">
     * unsupported drawing operations</a> for a list of what is and isn't
     * supported in a hardware-accelerated canvas.
     *
     * @return Canvas Use to draw into the surface.
     * @throws IllegalStateException If the canvas cannot be locked.
     */
    default Canvas lockHardwareCanvas() {
        throw new IllegalStateException("This SurfaceHolder doesn't support lockHardwareCanvas");
    }

    /**
     * Finish editing pixels in the surface.  After this call, the surface's
     * current pixels will be shown on the screen, but its content is lost,
Loading