void CrossProcessCompositorBridgeParent::DidComposite( uint64_t aId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) { sIndirectLayerTreesLock->AssertCurrentThreadOwns(); if (LayerTransactionParent *layerTree = sIndirectLayerTrees[aId].mLayerTree) { Unused << SendDidComposite(aId, layerTree->GetPendingTransactionId(), aCompositeStart, aCompositeEnd); layerTree->SetPendingTransactionId(0); } else if (WebRenderBridgeParent* wrbridge = sIndirectLayerTrees[aId].mWrBridge) { Unused << SendDidComposite(aId, wrbridge->FlushPendingTransactionIds(), aCompositeStart, aCompositeEnd); } }
void CrossProcessCompositorParent::DidComposite(uint64_t aId) { LayerTransactionParent *layerTree = sIndirectLayerTrees[aId].mLayerTree; if (layerTree && layerTree->GetPendingTransactionId()) { unused << SendDidComposite(aId, layerTree->GetPendingTransactionId()); layerTree->SetPendingTransactionId(0); } }
void CompositorParent::DidComposite() { if (mPendingTransaction) { unused << SendDidComposite(0, mPendingTransaction); mPendingTransaction = 0; } for (LayerTreeMap::iterator it = sIndirectLayerTrees.begin(); it != sIndirectLayerTrees.end(); it++) { LayerTreeState* lts = &it->second; if (lts->mParent == this && lts->mCrossProcessParent) { static_cast<CrossProcessCompositorParent*>(lts->mCrossProcessParent)->DidComposite(it->first); } } }