Clean up ImageReader when VrMode is disabled.
Adjusts some of the startImageReader code as well. Bug: 34281731 Test: Start a VR App and ensure the virtual display is functional. Start it a second time and ensure the virtual display is functional. Previously, any session after the first did not have a functional virtual display. Change-Id: Ifbf9fb9466f550ae3e9b30a1d7cf4d2f0a32578b
This commit is contained in:
committed by
Alex Sakhartchouk
parent
feada91060
commit
728d81f673
@@ -107,7 +107,6 @@ class CompatibilityDisplay {
|
||||
// TODO: STOPSHIP Remove createVirtualDisplay conditional before launching.
|
||||
if (createVirtualDisplay) {
|
||||
startVirtualDisplay();
|
||||
startImageReader();
|
||||
}
|
||||
} else {
|
||||
// Stop virtual display to test exit condition
|
||||
@@ -208,6 +207,8 @@ class CompatibilityDisplay {
|
||||
if (mVirtualDisplay != null) {
|
||||
mActivityManagerInternal.setVrCompatibilityDisplayId(
|
||||
mVirtualDisplay.getDisplay().getDisplayId());
|
||||
// Now create the ImageReader to supply a Surface to the new virtual display.
|
||||
startImageReader();
|
||||
} else {
|
||||
Log.w(TAG, "Virtual display id is null after createVirtualDisplay");
|
||||
mActivityManagerInternal.setVrCompatibilityDisplayId(INVALID_DISPLAY);
|
||||
@@ -241,6 +242,7 @@ class CompatibilityDisplay {
|
||||
mVirtualDisplay.release();
|
||||
mVirtualDisplay = null;
|
||||
}
|
||||
stopImageReader();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -286,4 +288,14 @@ class CompatibilityDisplay {
|
||||
setSurfaceLocked(mImageReader.getSurface());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up the ImageReader.
|
||||
*/
|
||||
private void stopImageReader() {
|
||||
if (mImageReader != null) {
|
||||
mImageReader.close();
|
||||
mImageReader = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user