fix lost old callback when continuous call requestRenderAndNotify

If continuous call requestRenderAndNotify before trigger old
callback, old callback will lose, cause VRI will wait for SV's
draw to finish forever not calling finishDraw.

Bug: 253536483

Signed-off-by: Bowen Li <libowen1@xiaomi.corp-partner.google.com>
Change-Id: I8d28ad2bfc077db6343e04d3f454cd06055f9b52
This commit is contained in:
Bowen Li
2022-10-13 23:39:55 +08:00
parent e85f271021
commit 044fce0b82

View File

@@ -1667,7 +1667,15 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback
mWantRenderNotification = true;
mRequestRender = true;
mRenderComplete = false;
mFinishDrawingRunnable = finishDrawing;
final Runnable oldCallback = mFinishDrawingRunnable;
mFinishDrawingRunnable = () -> {
if (oldCallback != null) {
oldCallback.run();
}
if (finishDrawing != null) {
finishDrawing.run();
}
};
sGLThreadManager.notifyAll();
}