SF: Refactor onPreComposition
Adds LayerFE::onPreComposition call, and adjusts the existing
implementation inside SurfaceFlinger to use it, in preparation to moving
the loop over to CompositionEngine.
Test: atest libsurfaceflinger_unittest libcompositionengine_test
Bug: 121291683
Change-Id: Ibc0fb1e87d37fabba753f265e70982b5ce70f9f2
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 7230152..adc19c8 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1962,8 +1962,13 @@
bool needExtraInvalidate = false;
mDrawingState.traverseInZOrder([&](Layer* layer) {
- if (layer->onPreComposition(mRefreshStartTime)) {
- needExtraInvalidate = true;
+ auto compositionLayer = layer->getCompositionLayer();
+ if (compositionLayer) {
+ auto layerFE = compositionLayer->getLayerFE();
+
+ if (layerFE && layerFE->onPreComposition(mRefreshStartTime)) {
+ needExtraInvalidate = true;
+ }
}
});