void LayerManagerD3D9::EndTransaction(DrawThebesLayerCallback aCallback, void* aCallbackData, EndTransactionFlags aFlags) { mInTransaction = false; mDeviceResetCount = mDeviceManager->GetDeviceResetCount(); if (mRoot && !(aFlags & END_NO_IMMEDIATE_REDRAW)) { mCurrentCallbackInfo.Callback = aCallback; mCurrentCallbackInfo.CallbackData = aCallbackData; if (aFlags & END_NO_COMPOSITE) { // Apply pending tree updates before recomputing effective // properties. mRoot->ApplyPendingUpdatesToSubtree(); } // The results of our drawing always go directly into a pixel buffer, // so we don't need to pass any global transform here. mRoot->ComputeEffectiveTransforms(gfx3DMatrix()); SetCompositingDisabled(aFlags & END_NO_COMPOSITE); Render(); /* Clean this out for sanity */ mCurrentCallbackInfo.Callback = nullptr; mCurrentCallbackInfo.CallbackData = nullptr; } // Clear mTarget, next transaction could have no target mTarget = nullptr; }
void LayerManagerD3D9::EndTransaction(DrawThebesLayerCallback aCallback, void* aCallbackData, EndTransactionFlags aFlags) { mDeviceResetCount = mDeviceManager->GetDeviceResetCount(); if (mRoot && !(aFlags & END_NO_IMMEDIATE_REDRAW)) { mCurrentCallbackInfo.Callback = aCallback; mCurrentCallbackInfo.CallbackData = aCallbackData; // The results of our drawing always go directly into a pixel buffer, // so we don't need to pass any global transform here. mRoot->ComputeEffectiveTransforms(gfx3DMatrix()); SetCompositingDisabled(aFlags & END_NO_COMPOSITE); Render(); /* Clean this out for sanity */ mCurrentCallbackInfo.Callback = NULL; mCurrentCallbackInfo.CallbackData = NULL; } // Clear mTarget, next transaction could have no target mTarget = NULL; }