Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb9b2542 authored by Rob Carr's avatar Rob Carr Committed by Automerger Merge Worker
Browse files

Merge "Factor our mChildrenChanged from doTransaction" into sc-dev am: 0aa188a3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14949463

Change-Id: I5f51c36852ab83cd2fa2b7c496599ccaecbc7767
parents a786ade4 0aa188a3
Loading
Loading
Loading
Loading
+2 −7
Original line number Original line Diff line number Diff line
@@ -679,11 +679,6 @@ bool Layer::isSecure() const {
uint32_t Layer::doTransaction(uint32_t flags) {
uint32_t Layer::doTransaction(uint32_t flags) {
    ATRACE_CALL();
    ATRACE_CALL();


    if (mChildrenChanged) {
        flags |= eVisibleRegion;
        mChildrenChanged = false;
    }

    // TODO: This is unfortunate.
    // TODO: This is unfortunate.
    mDrawingStateModified = mDrawingState.modified;
    mDrawingStateModified = mDrawingState.modified;
    mDrawingState.modified = false;
    mDrawingState.modified = false;
@@ -1562,7 +1557,7 @@ void Layer::setGameModeForTree(int parentGameMode) {
}
}


void Layer::addChild(const sp<Layer>& layer) {
void Layer::addChild(const sp<Layer>& layer) {
    mChildrenChanged = true;
    mFlinger->mSomeChildrenChanged = true;
    setTransactionFlags(eTransactionNeeded);
    setTransactionFlags(eTransactionNeeded);


    mCurrentChildren.add(layer);
    mCurrentChildren.add(layer);
@@ -1572,7 +1567,7 @@ void Layer::addChild(const sp<Layer>& layer) {
}
}


ssize_t Layer::removeChild(const sp<Layer>& layer) {
ssize_t Layer::removeChild(const sp<Layer>& layer) {
    mChildrenChanged = true;
    mFlinger->mSomeChildrenChanged = true;
    setTransactionFlags(eTransactionNeeded);
    setTransactionFlags(eTransactionNeeded);


    layer->setParent(nullptr);
    layer->setParent(nullptr);
+0 −3
Original line number Original line Diff line number Diff line
@@ -1003,9 +1003,6 @@ protected:
    wp<Layer> mCurrentParent;
    wp<Layer> mCurrentParent;
    wp<Layer> mDrawingParent;
    wp<Layer> mDrawingParent;


    // Can only be accessed with the SF state lock held.
    bool mChildrenChanged{false};

    // Window types from WindowManager.LayoutParams
    // Window types from WindowManager.LayoutParams
    const InputWindowInfo::Type mWindowType;
    const InputWindowInfo::Type mWindowType;


+5 −0
Original line number Original line Diff line number Diff line
@@ -2942,6 +2942,11 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) {
        });
        });
    }
    }


    if (mSomeChildrenChanged) {
        mVisibleRegionsDirty = true;
        mSomeChildrenChanged = false;
    }

    // Update transform hint
    // Update transform hint
    if (transactionFlags & (eTransformHintUpdateNeeded | eDisplayTransactionNeeded)) {
    if (transactionFlags & (eTransformHintUpdateNeeded | eDisplayTransactionNeeded)) {
        // The transform hint might have changed for some layers
        // The transform hint might have changed for some layers
+6 −1
Original line number Original line Diff line number Diff line
@@ -1228,8 +1228,13 @@ private:
    // don't need synchronization
    // don't need synchronization
    State mDrawingState{LayerVector::StateSet::Drawing};
    State mDrawingState{LayerVector::StateSet::Drawing};
    bool mVisibleRegionsDirty = false;
    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 mInputInfoChanged = false;
    bool mSomeChildrenChanged;

    bool mGeometryInvalid = false;
    bool mGeometryInvalid = false;
    bool mAnimCompositionPending = false;
    bool mAnimCompositionPending = false;