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

Commit 36a1fe93 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "SF: Clean up updateTransformHint() processing." into pi-dev

parents d08eab11 d432a7c4
Loading
Loading
Loading
Loading
+12 −12
Original line number Original line Diff line number Diff line
@@ -2447,7 +2447,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags)
        processDisplayHotplugEventsLocked();
        processDisplayHotplugEventsLocked();
    }
    }


    if (transactionFlags & (eTraversalNeeded|eDisplayTransactionNeeded)) {
    if (transactionFlags & (eDisplayLayerStackChanged|eDisplayTransactionNeeded)) {
        // The transform hint might have changed for some layers
        // The transform hint might have changed for some layers
        // (either because a display has changed, or because a layer
        // (either because a display has changed, or because a layer
        // as changed).
        // as changed).
@@ -2494,7 +2494,6 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags)
                }
                }
            }
            }


            if (transactionFlags & eDisplayTransactionNeeded) {
            if (disp == nullptr) {
            if (disp == nullptr) {
                // NOTE: TEMPORARY FIX ONLY. Real fix should cause layers to
                // NOTE: TEMPORARY FIX ONLY. Real fix should cause layers to
                // redraw after transform hint changes. See bug 8508397.
                // redraw after transform hint changes. See bug 8508397.
@@ -2504,8 +2503,9 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags)
                // screen off/on times.
                // screen off/on times.
                disp = getDefaultDisplayDeviceLocked();
                disp = getDefaultDisplayDeviceLocked();
            }
            }
                layer->updateTransformHint(disp);

            }
            // disp can be null if there is no display available at all to get
            // the transform hint from.
            if (disp != nullptr) {
            if (disp != nullptr) {
                layer->updateTransformHint(disp);
                layer->updateTransformHint(disp);
            }
            }
@@ -3340,7 +3340,7 @@ uint32_t SurfaceFlinger::setClientStateLocked(const ComposerState& composerState
            mCurrentState.layersSortedByZ.add(layer);
            mCurrentState.layersSortedByZ.add(layer);
            // we need traversal (state changed)
            // we need traversal (state changed)
            // AND transaction (list changed)
            // AND transaction (list changed)
            flags |= eTransactionNeeded|eTraversalNeeded;
            flags |= eTransactionNeeded|eTraversalNeeded|eDisplayLayerStackChanged;
        }
        }
    }
    }
    if (what & layer_state_t::eDeferTransaction) {
    if (what & layer_state_t::eDeferTransaction) {
+2 −1
Original line number Original line Diff line number Diff line
@@ -116,7 +116,8 @@ enum {
    eTransactionNeeded        = 0x01,
    eTransactionNeeded        = 0x01,
    eTraversalNeeded          = 0x02,
    eTraversalNeeded          = 0x02,
    eDisplayTransactionNeeded = 0x04,
    eDisplayTransactionNeeded = 0x04,
    eTransactionMask          = 0x07
    eDisplayLayerStackChanged = 0x08,
    eTransactionMask          = 0x0f,
};
};


// A thin interface to abstract creating instances of Surface (gui/Surface.h) to
// A thin interface to abstract creating instances of Surface (gui/Surface.h) to