mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Bug 1651087 - Check if the session is ended before processing XRSession::StartFrame() r=kip,daoshengmu
Differential Revision: https://phabricator.services.mozilla.com/D82556
This commit is contained in:
parent
8a563af888
commit
f17da90522
@ -292,9 +292,13 @@ void XRSession::WillRefresh(mozilla::TimeStamp aTime) {
|
||||
}
|
||||
|
||||
void XRSession::StartFrame() {
|
||||
if (mShutdown || mEnded) {
|
||||
return;
|
||||
}
|
||||
ApplyPendingRenderState();
|
||||
|
||||
if (mActiveRenderState->GetBaseLayer() == nullptr) {
|
||||
XRWebGLLayer* baseLayer = mActiveRenderState->GetBaseLayer();
|
||||
if (!baseLayer) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -311,7 +315,7 @@ void XRSession::StartFrame() {
|
||||
RefPtr<XRFrame> frame = PooledFrame();
|
||||
frame->StartAnimationFrame();
|
||||
|
||||
mActiveRenderState->GetBaseLayer()->StartAnimationFrame();
|
||||
baseLayer->StartAnimationFrame();
|
||||
nsTArray<XRFrameRequest> callbacks;
|
||||
callbacks.AppendElements(mFrameRequestCallbacks);
|
||||
mFrameRequestCallbacks.Clear();
|
||||
@ -319,7 +323,7 @@ void XRSession::StartFrame() {
|
||||
callback.Call(timeStamp, *frame);
|
||||
}
|
||||
|
||||
mActiveRenderState->GetBaseLayer()->EndAnimationFrame();
|
||||
baseLayer->EndAnimationFrame();
|
||||
frame->EndAnimationFrame();
|
||||
if (mDisplayPresentation) {
|
||||
mDisplayPresentation->SubmitFrame();
|
||||
|
Loading…
Reference in New Issue
Block a user