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 Original line Diff line number Diff line
@@ -79,6 +79,18 @@ bool ColorLayer::setColor(const half3& color) {
    return true;
    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,
void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& display,
                                 const ui::Transform& transform, const Rect& viewport,
                                 const ui::Transform& transform, const Rect& viewport,
                                 int32_t /* supportedPerFrameMetadata */,
                                 int32_t /* supportedPerFrameMetadata */,
@@ -148,6 +160,11 @@ void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& display,
    layerCompositionState.surfaceDamage = surfaceDamageRegion;
    layerCompositionState.surfaceDamage = surfaceDamageRegion;
}
}


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

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


    bool setColor(const half3& color) override;
    bool setColor(const half3& color) override;


    bool setDataspace(ui::Dataspace dataspace) override;

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


    void commitTransaction(const State& stateToCommit) override;

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


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


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

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


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


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


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


    uint32_t getEffectiveUsage(uint32_t usage) const;
    uint32_t getEffectiveUsage(uint32_t usage) const;