Skip to content

Commit

Permalink
Bug 1651087 - Check if the session is ended before processing XRSessi…
Browse files Browse the repository at this point in the history
…on::StartFrame() r=kip,daoshengmu

Differential Revision: https://phabricator.services.mozilla.com/D82556
  • Loading branch information
MortimerGoro committed Jul 7, 2020
1 parent b539c75 commit cec48df
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions dom/vr/XRSession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -311,15 +315,15 @@ void XRSession::StartFrame() {
RefPtr<XRFrame> frame = PooledFrame();
frame->StartAnimationFrame();

mActiveRenderState->GetBaseLayer()->StartAnimationFrame();
baseLayer->StartAnimationFrame();
nsTArray<XRFrameRequest> callbacks;
callbacks.AppendElements(mFrameRequestCallbacks);
mFrameRequestCallbacks.Clear();
for (auto& callback : callbacks) {
callback.Call(timeStamp, *frame);
}

mActiveRenderState->GetBaseLayer()->EndAnimationFrame();
baseLayer->EndAnimationFrame();
frame->EndAnimationFrame();
if (mDisplayPresentation) {
mDisplayPresentation->SubmitFrame();
Expand Down

0 comments on commit cec48df

Please sign in to comment.