void ClientLayerManager::EndTransaction(DrawPaintedLayerCallback aCallback, void* aCallbackData, EndTransactionFlags aFlags) { if (mWidget) { mWidget->PrepareWindowEffects(); } EndTransactionInternal(aCallback, aCallbackData, aFlags); ForwardTransaction(!(aFlags & END_NO_REMOTE_COMPOSITE)); if (mRepeatTransaction) { mRepeatTransaction = false; mIsRepeatTransaction = true; BeginTransaction(); ClientLayerManager::EndTransaction(aCallback, aCallbackData, aFlags); mIsRepeatTransaction = false; } else { MakeSnapshotIfRequired(); } for (size_t i = 0; i < mTexturePools.Length(); i++) { mTexturePools[i]->ReturnDeferredClients(); } mInTransaction = false; mTransactionStart = TimeStamp(); }
void ClientLayerManager::EndTransaction(DrawPaintedLayerCallback aCallback, void* aCallbackData, EndTransactionFlags aFlags) { if (!mForwarder->IPCOpen()) { mInTransaction = false; return; } if (mWidget) { mWidget->PrepareWindowEffects(); } EndTransactionInternal(aCallback, aCallbackData, aFlags); ForwardTransaction(!(aFlags & END_NO_REMOTE_COMPOSITE)); if (mRepeatTransaction) { mRepeatTransaction = false; mIsRepeatTransaction = true; if (BeginTransaction()) { ClientLayerManager::EndTransaction(aCallback, aCallbackData, aFlags); } mIsRepeatTransaction = false; } else { MakeSnapshotIfRequired(); } mInTransaction = false; mTransactionStart = TimeStamp(); }
bool ClientLayerManager::EndEmptyTransaction(EndTransactionFlags aFlags) { mInTransaction = false; if (!mRoot) { return false; } if (!EndTransactionInternal(nullptr, nullptr, aFlags)) { // Return without calling ForwardTransaction. This leaves the // ShadowLayerForwarder transaction open; the following // EndTransaction will complete it. return false; } ForwardTransaction(); MakeSnapshotIfRequired(); return true; }
bool ClientLayerManager::EndEmptyTransaction(EndTransactionFlags aFlags) { mInTransaction = false; if (!mRoot) { return false; } if (!EndTransactionInternal(nullptr, nullptr, aFlags)) { // Return without calling ForwardTransaction. This leaves the // ShadowLayerForwarder transaction open; the following // EndTransaction will complete it. return false; } if (mWidget) { mWidget->PrepareWindowEffects(); } ForwardTransaction(!(aFlags & END_NO_REMOTE_COMPOSITE)); MakeSnapshotIfRequired(); return true; }
void ClientLayerManager::EndTransaction(DrawThebesLayerCallback aCallback, void* aCallbackData, EndTransactionFlags aFlags) { if (mWidget) { mWidget->PrepareWindowEffects(); } EndTransactionInternal(aCallback, aCallbackData, aFlags); ForwardTransaction(); if (mRepeatTransaction) { mRepeatTransaction = false; mIsRepeatTransaction = true; BeginTransaction(); ClientLayerManager::EndTransaction(aCallback, aCallbackData, aFlags); mIsRepeatTransaction = false; } else { MakeSnapshotIfRequired(); } }