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

Commit 0aa188a3 authored by Rob Carr's avatar Rob Carr Committed by Android (Google) Code Review
Browse files

Merge "Factor our mChildrenChanged from doTransaction" into sc-dev

parents 49ce8587 e450fb5c
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -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;
@@ -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);
@@ -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);
+0 −3
Original line number Diff line number Diff line
@@ -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;

+5 −0
Original line number Diff line number Diff line
@@ -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
+6 −1
Original line number Diff line number Diff line
@@ -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;