Merge "Remove ColorFade resouces when screen off." into mnc-dr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
50e796326a
@@ -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.
|
||||
@@ -312,6 +314,34 @@ final class ColorFade {
|
||||
vtx.put(7, y);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dismisses the color fade animation resources.
|
||||
*
|
||||
* This function destroys the resources that are created for the color fade
|
||||
* animation but does not clean up the surface.
|
||||
*/
|
||||
public void dismissResources() {
|
||||
if (DEBUG) {
|
||||
Slog.d(TAG, "dismissResources");
|
||||
}
|
||||
|
||||
if (mCreatedResources) {
|
||||
attachEglContext();
|
||||
try {
|
||||
destroyScreenshotTexture();
|
||||
destroyGLShaders();
|
||||
destroyGLBuffers();
|
||||
destroyEglSurface();
|
||||
} finally {
|
||||
detachEglContext();
|
||||
}
|
||||
// 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.
|
||||
*
|
||||
@@ -325,17 +355,8 @@ final class ColorFade {
|
||||
}
|
||||
|
||||
if (mPrepared) {
|
||||
attachEglContext();
|
||||
try {
|
||||
destroyScreenshotTexture();
|
||||
destroyGLShaders();
|
||||
destroyGLBuffers();
|
||||
destroyEglSurface();
|
||||
} finally {
|
||||
detachEglContext();
|
||||
}
|
||||
dismissResources();
|
||||
destroySurface();
|
||||
GLES20.glFlush();
|
||||
mPrepared = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 ?
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user