Loading services/surfaceflinger/ColorLayer.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -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 */, Loading Loading @@ -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; } Loading services/surfaceflinger/ColorLayer.h +4 −0 Original line number Diff line number Diff line Loading @@ -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: Loading services/surfaceflinger/Layer.h +4 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -193,7 +196,6 @@ public: sp<GraphicBuffer> buffer; sp<Fence> acquireFence; ui::Dataspace dataspace; HdrMetadata hdrMetadata; Region surfaceDamageRegion; int32_t api; Loading Loading @@ -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; Loading Loading
services/surfaceflinger/ColorLayer.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -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 */, Loading Loading @@ -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; } Loading
services/surfaceflinger/ColorLayer.h +4 −0 Original line number Diff line number Diff line Loading @@ -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: Loading
services/surfaceflinger/Layer.h +4 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -193,7 +196,6 @@ public: sp<GraphicBuffer> buffer; sp<Fence> acquireFence; ui::Dataspace dataspace; HdrMetadata hdrMetadata; Region surfaceDamageRegion; int32_t api; Loading Loading @@ -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; Loading