SF: Use compositionInfo after HWC changedTypes

Bug: 112259502
Test: cts -m CtsViewTestCases
      SurfaceFlinger_test
      vrflinger_test

Change-Id: I908f439eedfab9ee8241f8ac594465527f93408a
diff --git a/services/surfaceflinger/LayerBE.h b/services/surfaceflinger/LayerBE.h
index e5110b7..21e7b5c 100644
--- a/services/surfaceflinger/LayerBE.h
+++ b/services/surfaceflinger/LayerBE.h
@@ -20,6 +20,7 @@
 #include <sys/types.h>
 
 #include <renderengine/Mesh.h>
+#include <renderengine/RenderEngine.h>
 #include <renderengine/Texture.h>
 #include <ui/Region.h>
 
@@ -34,6 +35,7 @@
 struct CompositionInfo {
     std::string layerName;
     HWC2::Composition compositionType;
+    bool firstClear = false;
     sp<GraphicBuffer> mBuffer = nullptr;
     int mBufferSlot = BufferQueue::INVALID_BUFFER_SLOT;
     std::shared_ptr<LayerBE> layer;
@@ -59,14 +61,12 @@
         HdrMetadata hdrMetadata;
     } hwc;
     struct {
-        Mesh* mesh;
         bool blackoutLayer = false;
         bool clearArea = false;
         bool preMultipliedAlpha = false;
         bool opaque = false;
         bool disableTexture = false;
         half4 color;
-        Texture texture;
         bool useIdentityTransform = false;
         bool Y410BT2020 = false;
     } re;
@@ -90,10 +90,11 @@
     explicit LayerBE(const LayerBE& layer);
 
     void onLayerDisplayed(const sp<Fence>& releaseFence);
+    void clear(RE::RenderEngine& renderEngine);
     Mesh& getMesh() { return mMesh; }
 
-private:
     Layer*const mLayer;
+private:
     // The mesh used to draw the layer in GLES composition mode
     Mesh mMesh;