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

Commit 50e79632 authored by Michael Lentine's avatar Michael Lentine Committed by Android (Google) Code Review
Browse files

Merge "Remove ColorFade resouces when screen off." into mnc-dr-dev

parents de612dc1 d73854db
Loading
Loading
Loading
Loading
+29 −8
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ final class ColorFade {

    // Set to true when the animation context has been fully prepared.
    private boolean mPrepared;
    private boolean mCreatedResources;
    private int mMode;

    private final DisplayManagerInternal mDisplayManagerInternal;
@@ -169,6 +170,7 @@ final class ColorFade {
        }

        // Done.
        mCreatedResources = true;
        mPrepared = true;

        // Dejanking optimization.
@@ -313,18 +315,17 @@ final class ColorFade {
    }

    /**
     * Dismisses the color fade animation surface and cleans up.
     * Dismisses the color fade animation resources.
     *
     * To prevent stray photons from leaking out after the color fade has been
     * turned off, it is a good idea to defer dismissing the animation until the
     * color fade has been turned back on fully.
     * This function destroys the resources that are created for the color fade
     * animation but does not clean up the surface.
     */
    public void dismiss() {
    public void dismissResources() {
        if (DEBUG) {
            Slog.d(TAG, "dismiss");
            Slog.d(TAG, "dismissResources");
        }

        if (mPrepared) {
        if (mCreatedResources) {
            attachEglContext();
            try {
                destroyScreenshotTexture();
@@ -334,8 +335,28 @@ final class ColorFade {
            } finally {
                detachEglContext();
            }
            destroySurface();
            // This is being called with no active context so shouldn't be
            // needed but is safer to not change for now.
            GLES20.glFlush();
            mCreatedResources = false;
        }
    }

    /**
     * Dismisses the color fade animation surface and cleans up.
     *
     * To prevent stray photons from leaking out after the color fade has been
     * turned off, it is a good idea to defer dismissing the animation until the
     * color fade has been turned back on fully.
     */
    public void dismiss() {
        if (DEBUG) {
            Slog.d(TAG, "dismiss");
        }

        if (mPrepared) {
            dismissResources();
            destroySurface();
            mPrepared = false;
        }
    }
+2 −0
Original line number Diff line number Diff line
@@ -837,6 +837,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        if (mPendingScreenOff && target != Display.STATE_OFF) {
            setScreenState(Display.STATE_OFF);
            mPendingScreenOff = false;
            mPowerState.dismissColorFadeResources();
        }

        if (target == Display.STATE_ON) {
@@ -910,6 +911,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                // A black surface is already hiding the contents of the screen.
                setScreenState(Display.STATE_OFF);
                mPendingScreenOff = false;
                mPowerState.dismissColorFadeResources();
            } else if (performScreenOffTransition
                    && mPowerState.prepareColorFade(mContext,
                            mColorFadeFadesConfig ?
+8 −1
Original line number Diff line number Diff line
@@ -187,7 +187,7 @@ final class DisplayPowerState {
    }

    /**
     * Dismisses the electron beam surface.
     * Dismisses the color fade surface.
     */
    public void dismissColorFade() {
        mColorFade.dismiss();
@@ -195,6 +195,13 @@ final class DisplayPowerState {
        mColorFadeReady = true;
    }

   /**
     * Dismisses the color fade resources.
     */
    public void dismissColorFadeResources() {
        mColorFade.dismissResources();
    }

    /**
     * Sets the level of the electron beam steering current.
     *