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

Commit fb225b52 authored by Valerie Hau's avatar Valerie Hau Committed by Android (Google) Code Review
Browse files

Merge "Plumb dataspace for color layers"

parents c16140fd b153bab2
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 */,
@@ -148,6 +160,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,10 +35,14 @@ 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,
                         const ui::Dataspace targetDataspace) 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;
@@ -691,7 +693,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;