[legacy sf flag] - LayerRenderArea cleanup
LayerRenderArea no longer needs reparentForDrawing()
or flinger field after removing the legacy frontend.
Bug: b/330785038
Test: presubmit
Change-Id: I55828d7f342be55e1c4b7430d2a7cb4a251cad0c
diff --git a/services/surfaceflinger/LayerRenderArea.cpp b/services/surfaceflinger/LayerRenderArea.cpp
index 51d4ff8..c25ddb6 100644
--- a/services/surfaceflinger/LayerRenderArea.cpp
+++ b/services/surfaceflinger/LayerRenderArea.cpp
@@ -24,31 +24,17 @@
#include "SurfaceFlinger.h"
namespace android {
-namespace {
-void reparentForDrawing(const sp<Layer>& oldParent, const sp<Layer>& newParent,
- const Rect& drawingBounds) {
- // Compute and cache the bounds for the new parent layer.
- newParent->computeBounds(drawingBounds.toFloatRect(), ui::Transform(),
- 0.f /* shadowRadius */);
- newParent->updateSnapshot(true /* updateGeometry */);
- oldParent->setChildrenDrawingParent(newParent);
-};
-
-} // namespace
-
-LayerRenderArea::LayerRenderArea(SurfaceFlinger& flinger, sp<Layer> layer, const Rect& crop,
- ui::Size reqSize, ui::Dataspace reqDataSpace, bool childrenOnly,
- bool allowSecureLayers, const ui::Transform& layerTransform,
- const Rect& layerBufferSize, bool hintForSeamlessTransition)
+LayerRenderArea::LayerRenderArea(sp<Layer> layer, const Rect& crop, ui::Size reqSize,
+ ui::Dataspace reqDataSpace, bool allowSecureLayers,
+ const ui::Transform& layerTransform, const Rect& layerBufferSize,
+ bool hintForSeamlessTransition)
: RenderArea(reqSize, CaptureFill::CLEAR, reqDataSpace, hintForSeamlessTransition,
allowSecureLayers),
mLayer(std::move(layer)),
- mLayerTransform(layerTransform),
mLayerBufferSize(layerBufferSize),
mCrop(crop),
- mFlinger(flinger),
- mChildrenOnly(childrenOnly) {}
+ mTransform(layerTransform) {}
const ui::Transform& LayerRenderArea::getTransform() const {
return mTransform;
@@ -71,53 +57,4 @@
}
}
-void LayerRenderArea::render(std::function<void()> drawLayers) {
- using namespace std::string_literals;
-
- if (!mChildrenOnly) {
- mTransform = mLayerTransform.inverse();
- }
-
- if (mFlinger.mLayerLifecycleManagerEnabled) {
- drawLayers();
- return;
- }
- // If layer is offscreen, update mirroring info if it exists
- if (mLayer->isRemovedFromCurrentState()) {
- mLayer->traverse(LayerVector::StateSet::Drawing,
- [&](Layer* layer) { layer->updateMirrorInfo({}); });
- mLayer->traverse(LayerVector::StateSet::Drawing,
- [&](Layer* layer) { layer->updateCloneBufferInfo(); });
- }
-
- if (!mChildrenOnly) {
- // If the layer is offscreen, compute bounds since we don't compute bounds for offscreen
- // layers in a regular cycles.
- if (mLayer->isRemovedFromCurrentState()) {
- FloatRect maxBounds = mFlinger.getMaxDisplayBounds();
- mLayer->computeBounds(maxBounds, ui::Transform(), 0.f /* shadowRadius */);
- }
- drawLayers();
- } else {
- // In the "childrenOnly" case we reparent the children to a screenshot
- // layer which has no properties set and which does not draw.
- // We hold the statelock as the reparent-for-drawing operation modifies the
- // hierarchy and there could be readers on Binder threads, like dump.
- auto screenshotParentLayer = mFlinger.getFactory().createEffectLayer(
- {&mFlinger, nullptr, "Screenshot Parent"s, ISurfaceComposerClient::eNoColorFill,
- LayerMetadata()});
- {
- Mutex::Autolock _l(mFlinger.mStateLock);
- reparentForDrawing(mLayer, screenshotParentLayer, getSourceCrop());
- }
- drawLayers();
- {
- Mutex::Autolock _l(mFlinger.mStateLock);
- mLayer->setChildrenDrawingParent(mLayer);
- }
- }
- mLayer->updateSnapshot(/*updateGeometry=*/true);
- mLayer->updateChildrenSnapshots(/*updateGeometry=*/true);
-}
-
} // namespace android