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

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

Merge "SF: Fix lifecycle of LayerBE"

parents cf3c09b7 40a3a5a9
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -26,10 +26,17 @@ namespace android {
LayerBE::LayerBE(Layer* layer, std::string layerName)
      : mLayer(layer),
        mMesh(Mesh::TRIANGLE_FAN, 4, 2, 2) {
    compositionInfo.layer = this;
    compositionInfo.layer = std::make_shared<LayerBE>(*this);
    compositionInfo.layerName = layerName;
}

LayerBE::LayerBE(const LayerBE& layer)
      : mLayer(layer.mLayer),
        mMesh(Mesh::TRIANGLE_FAN, 4, 2, 2) {
    compositionInfo.layer = layer.compositionInfo.layer;
    compositionInfo.layerName = layer.mLayer->getName().string();
}

void LayerBE::onLayerDisplayed(const sp<Fence>& releaseFence) {
    mLayer->onLayerDisplayed(releaseFence);
}
+2 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ struct CompositionInfo {
    HWC2::Composition compositionType;
    sp<GraphicBuffer> mBuffer = nullptr;
    int mBufferSlot = BufferQueue::INVALID_BUFFER_SLOT;
    LayerBE* layer = nullptr;
    std::shared_ptr<LayerBE> layer;
    struct {
        std::shared_ptr<HWC2::Layer> hwcLayer;
        sp<Fence> fence;
@@ -83,6 +83,7 @@ public:
    friend class SurfaceFlinger;

    LayerBE(Layer* layer, std::string layerName);
    explicit LayerBE(const LayerBE& layer);

    void onLayerDisplayed(const sp<Fence>& releaseFence);
    Mesh& getMesh() { return mMesh; }