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

Commit b153bab2 authored by Valerie Hau's avatar Valerie Hau
Browse files

Plumb dataspace for color layers

Bug: 123634023
Test: build, boot
Change-Id: Ifad7508a88b2b70f13ec2b7e43903db23e681bb3
parent cb20ccaa
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -79,6 +79,18 @@ bool ColorLayer::setColor(const half3& color) {
    return true;
}

bool ColorLayer::setDataspace(ui::Dataspace dataspace) {
    if (mCurrentState.dataspace == dataspace) {
        return false;
    }

    mCurrentState.sequence++;
    mCurrentState.dataspace = dataspace;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);
    return true;
}

void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& display,
                                 const ui::Transform& transform, const Rect& viewport,
                                 int32_t /* supportedPerFrameMetadata */) {
@@ -146,6 +158,11 @@ void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& display,
    layerCompositionState.surfaceDamage = surfaceDamageRegion;
}

void ColorLayer::commitTransaction(const State& stateToCommit) {
    Layer::commitTransaction(stateToCommit);
    mCurrentDataSpace = mDrawingState.dataspace;
}

std::shared_ptr<compositionengine::Layer> ColorLayer::getCompositionLayer() const {
    return mCompositionLayer;
}
+4 −0
Original line number Diff line number Diff line
@@ -35,9 +35,13 @@ public:

    bool setColor(const half3& color) override;

    bool setDataspace(ui::Dataspace dataspace) override;

    void setPerFrameData(const sp<const DisplayDevice>& display, const ui::Transform& transform,
                         const Rect& viewport, int32_t supportedPerFrameMetadata) override;

    void commitTransaction(const State& stateToCommit) override;

    bool onPreComposition(nsecs_t /*refreshStartTime*/) override { return false; }

protected:
+4 −2
Original line number Diff line number Diff line
@@ -182,6 +182,9 @@ public:
        bool inputInfoChanged;
        InputWindowInfo inputInfo;

        // dataspace is only used by BufferStateLayer and ColorLayer
        ui::Dataspace dataspace;

        // The fields below this point are only used by BufferStateLayer
        Geometry active;

@@ -193,7 +196,6 @@ public:

        sp<GraphicBuffer> buffer;
        sp<Fence> acquireFence;
        ui::Dataspace dataspace;
        HdrMetadata hdrMetadata;
        Region surfaceDamageRegion;
        int32_t api;
@@ -687,7 +689,7 @@ protected:
    // For unit tests
    friend class TestableSurfaceFlinger;

    void commitTransaction(const State& stateToCommit);
    virtual void commitTransaction(const State& stateToCommit);

    uint32_t getEffectiveUsage(uint32_t usage) const;