Loading services/surfaceflinger/Layer.cpp +2 −7 Original line number Diff line number Diff line Loading @@ -679,11 +679,6 @@ bool Layer::isSecure() const { uint32_t Layer::doTransaction(uint32_t flags) { ATRACE_CALL(); if (mChildrenChanged) { flags |= eVisibleRegion; mChildrenChanged = false; } // TODO: This is unfortunate. mDrawingStateModified = mDrawingState.modified; mDrawingState.modified = false; Loading Loading @@ -1562,7 +1557,7 @@ void Layer::setGameModeForTree(int parentGameMode) { } void Layer::addChild(const sp<Layer>& layer) { mChildrenChanged = true; mFlinger->mSomeChildrenChanged = true; setTransactionFlags(eTransactionNeeded); mCurrentChildren.add(layer); Loading @@ -1572,7 +1567,7 @@ void Layer::addChild(const sp<Layer>& layer) { } ssize_t Layer::removeChild(const sp<Layer>& layer) { mChildrenChanged = true; mFlinger->mSomeChildrenChanged = true; setTransactionFlags(eTransactionNeeded); layer->setParent(nullptr); Loading services/surfaceflinger/Layer.h +0 −3 Original line number Diff line number Diff line Loading @@ -1003,9 +1003,6 @@ protected: wp<Layer> mCurrentParent; wp<Layer> mDrawingParent; // Can only be accessed with the SF state lock held. bool mChildrenChanged{false}; // Window types from WindowManager.LayoutParams const InputWindowInfo::Type mWindowType; Loading services/surfaceflinger/SurfaceFlinger.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -2942,6 +2942,11 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) { }); } if (mSomeChildrenChanged) { mVisibleRegionsDirty = true; mSomeChildrenChanged = false; } // Update transform hint if (transactionFlags & (eTransformHintUpdateNeeded | eDisplayTransactionNeeded)) { // The transform hint might have changed for some layers Loading services/surfaceflinger/SurfaceFlinger.h +6 −1 Original line number Diff line number Diff line Loading @@ -1228,8 +1228,13 @@ private: // don't need synchronization State mDrawingState{LayerVector::StateSet::Drawing}; bool mVisibleRegionsDirty = false; // Set during transaction commit stage to track if the input info for a layer has changed. // Set during transaction application stage to track if the input info or children // for a layer has changed. // TODO: Also move visibleRegions over to a boolean system. bool mInputInfoChanged = false; bool mSomeChildrenChanged; bool mGeometryInvalid = false; bool mAnimCompositionPending = false; Loading Loading
services/surfaceflinger/Layer.cpp +2 −7 Original line number Diff line number Diff line Loading @@ -679,11 +679,6 @@ bool Layer::isSecure() const { uint32_t Layer::doTransaction(uint32_t flags) { ATRACE_CALL(); if (mChildrenChanged) { flags |= eVisibleRegion; mChildrenChanged = false; } // TODO: This is unfortunate. mDrawingStateModified = mDrawingState.modified; mDrawingState.modified = false; Loading Loading @@ -1562,7 +1557,7 @@ void Layer::setGameModeForTree(int parentGameMode) { } void Layer::addChild(const sp<Layer>& layer) { mChildrenChanged = true; mFlinger->mSomeChildrenChanged = true; setTransactionFlags(eTransactionNeeded); mCurrentChildren.add(layer); Loading @@ -1572,7 +1567,7 @@ void Layer::addChild(const sp<Layer>& layer) { } ssize_t Layer::removeChild(const sp<Layer>& layer) { mChildrenChanged = true; mFlinger->mSomeChildrenChanged = true; setTransactionFlags(eTransactionNeeded); layer->setParent(nullptr); Loading
services/surfaceflinger/Layer.h +0 −3 Original line number Diff line number Diff line Loading @@ -1003,9 +1003,6 @@ protected: wp<Layer> mCurrentParent; wp<Layer> mDrawingParent; // Can only be accessed with the SF state lock held. bool mChildrenChanged{false}; // Window types from WindowManager.LayoutParams const InputWindowInfo::Type mWindowType; Loading
services/surfaceflinger/SurfaceFlinger.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -2942,6 +2942,11 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) { }); } if (mSomeChildrenChanged) { mVisibleRegionsDirty = true; mSomeChildrenChanged = false; } // Update transform hint if (transactionFlags & (eTransformHintUpdateNeeded | eDisplayTransactionNeeded)) { // The transform hint might have changed for some layers Loading
services/surfaceflinger/SurfaceFlinger.h +6 −1 Original line number Diff line number Diff line Loading @@ -1228,8 +1228,13 @@ private: // don't need synchronization State mDrawingState{LayerVector::StateSet::Drawing}; bool mVisibleRegionsDirty = false; // Set during transaction commit stage to track if the input info for a layer has changed. // Set during transaction application stage to track if the input info or children // for a layer has changed. // TODO: Also move visibleRegions over to a boolean system. bool mInputInfoChanged = false; bool mSomeChildrenChanged; bool mGeometryInvalid = false; bool mAnimCompositionPending = false; Loading