bool WebRenderBridgeParent::PushAPZStateToWR(nsTArray<wr::WrTransformProperty>& aTransformArray) { CompositorBridgeParent* cbp = GetRootCompositorBridgeParent(); if (!cbp) { return false; } if (RefPtr<APZCTreeManager> apzc = cbp->GetAPZCTreeManager()) { TimeStamp animationTime = cbp->GetTestingTimeStamp().valueOr( mCompositorScheduler->GetLastComposeTime()); TimeDuration frameInterval = cbp->GetVsyncInterval(); // As with the non-webrender codepath in AsyncCompositionManager, we want to // use the timestamp for the next vsync when advancing animations. if (frameInterval != TimeDuration::Forever()) { animationTime += frameInterval; } return apzc->PushStateToWR(mApi, animationTime, aTransformArray); } return false; }
void WebRenderBridgeParent::UpdateAPZ() { CompositorBridgeParent* cbp = GetRootCompositorBridgeParent(); if (!cbp) { return; } uint64_t rootLayersId = cbp->RootLayerTreeId(); RefPtr<WebRenderBridgeParent> rootWrbp = cbp->GetWebRenderBridgeParent(); if (!rootWrbp) { return; } if (RefPtr<APZCTreeManager> apzc = cbp->GetAPZCTreeManager()) { apzc->UpdateFocusState(rootLayersId, GetLayersId(), mScrollData.GetFocusTarget()); apzc->UpdateHitTestingTree(rootLayersId, rootWrbp->GetScrollData(), mScrollData.IsFirstPaint(), GetLayersId(), mScrollData.GetPaintSequenceNumber()); } }