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

Commit 12cf346b authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 8858

* changes:
  resolved conflicts for merge of ac38dfc5 to master
parents 3d38870a 5d7126b6
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -650,6 +650,7 @@ void SurfaceFlinger::handleTransactionLocked(
                if (currentLayers.indexOf( layer ) < 0) {
                    // this layer is not visible anymore
                    ditchedLayers.add(layer);
                    mDirtyRegionRemovedLayer.orSelf(layer->visibleRegionScreen);
                }
            }
        }
@@ -685,17 +686,15 @@ void SurfaceFlinger::computeVisibleRegions(
        layer->validateVisibility(planeTransform);

        // start with the whole surface at its current location
        const Layer::State& s = layer->drawingState();
        const Rect bounds(layer->visibleBounds());
        const Layer::State& s(layer->drawingState());

        // handle hidden surfaces by setting the visible region to empty
        Region opaqueRegion;
        Region visibleRegion;
        Region coveredRegion;
        if (UNLIKELY((s.flags & ISurfaceComposer::eLayerHidden) || !s.alpha)) {
            visibleRegion.clear();
        } else {
        if (LIKELY(!(s.flags & ISurfaceComposer::eLayerHidden) && s.alpha)) {
            const bool translucent = layer->needsBlending();
            const Rect bounds(layer->visibleBounds());
            visibleRegion.set(bounds);
            coveredRegion = visibleRegion;

@@ -742,12 +741,16 @@ void SurfaceFlinger::computeVisibleRegions(
        layer->setVisibleRegion(visibleRegion);
        layer->setCoveredRegion(coveredRegion);

        // If a secure layer is partially visible, lock down the screen!
        // If a secure layer is partially visible, lock-down the screen!
        if (layer->isSecure() && !visibleRegion.isEmpty()) {
            secureFrameBuffer = true;
        }
    }

    // invalidate the areas where a layer was removed
    dirtyRegion.orSelf(mDirtyRegionRemovedLayer);
    mDirtyRegionRemovedLayer.clear();

    mSecureFrameBuffer = secureFrameBuffer;
    opaqueRegion = aboveOpaqueLayers;
}
+1 −0
Original line number Diff line number Diff line
@@ -334,6 +334,7 @@ private:
                // Can only accessed from the main thread, these members
                // don't need synchronization
                Region                      mDirtyRegion;
                Region                      mDirtyRegionRemovedLayer;
                Region                      mInvalidRegion;
                Region                      mWormholeRegion;
                wp<Client>                  mLastScheduledBroadcast;