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

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

Merge "CE: Use distinct source and destination clip rectangles"

parents 2c8e95aa e8fe4748
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -163,7 +163,8 @@ public:

    // Sets the projection state to use
    virtual void setProjection(const ui::Transform&, uint32_t orientation, const Rect& frame,
                               const Rect& viewport, const Rect& scissor, bool needsFiltering) = 0;
                               const Rect& viewport, const Rect& sourceClip,
                               const Rect& destinationClip, bool needsFiltering) = 0;
    // Sets the bounds to use
    virtual void setBounds(const ui::Size&) = 0;

+2 −1
Original line number Diff line number Diff line
@@ -39,7 +39,8 @@ public:
    std::optional<DisplayId> getDisplayId() const override;
    void setCompositionEnabled(bool) override;
    void setProjection(const ui::Transform&, uint32_t orientation, const Rect& frame,
                       const Rect& viewport, const Rect& scissor, bool needsFiltering) override;
                       const Rect& viewport, const Rect& sourceClip, const Rect& destinationClip,
                       bool needsFiltering) override;
    void setBounds(const ui::Size&) override;
    void setLayerStackFilter(uint32_t layerStackId, bool isInternal) override;

+5 −2
Original line number Diff line number Diff line
@@ -79,8 +79,11 @@ struct OutputCompositionState {
    // The logical space user viewport rectangle
    Rect viewport;

    // The physical space scissor rectangle
    Rect scissor;
    // The physical space source clip rectangle
    Rect sourceClip;

    // The physical space destination clip rectangle
    Rect destinationClip;

    // If true, RenderEngine filtering should be enabled
    bool needsFiltering{false};
+3 −2
Original line number Diff line number Diff line
@@ -37,8 +37,9 @@ public:
    MOCK_CONST_METHOD0(getDisplayId, std::optional<DisplayId>());

    MOCK_METHOD1(setCompositionEnabled, void(bool));
    MOCK_METHOD6(setProjection,
                 void(const ui::Transform&, uint32_t, const Rect&, const Rect&, const Rect&, bool));
    MOCK_METHOD7(setProjection,
                 void(const ui::Transform&, uint32_t, const Rect&, const Rect&, const Rect&,
                      const Rect&, bool));
    MOCK_METHOD1(setBounds, void(const ui::Size&));
    MOCK_METHOD2(setLayerStackFilter, void(uint32_t, bool));

+6 −4
Original line number Diff line number Diff line
@@ -107,11 +107,13 @@ void Output::setCompositionEnabled(bool enabled) {
}

void Output::setProjection(const ui::Transform& transform, uint32_t orientation, const Rect& frame,
                           const Rect& viewport, const Rect& scissor, bool needsFiltering) {
                           const Rect& viewport, const Rect& sourceClip,
                           const Rect& destinationClip, bool needsFiltering) {
    auto& outputState = editState();
    outputState.transform = transform;
    outputState.orientation = orientation;
    outputState.scissor = scissor;
    outputState.sourceClip = sourceClip;
    outputState.destinationClip = destinationClip;
    outputState.frame = frame;
    outputState.viewport = viewport;
    outputState.needsFiltering = needsFiltering;
@@ -834,8 +836,8 @@ std::optional<base::unique_fd> Output::composeSurfaces(const Region& debugRegion
    const bool supportsProtectedContent = renderEngine.supportsProtectedContent();

    renderengine::DisplaySettings clientCompositionDisplay;
    clientCompositionDisplay.physicalDisplay = outputState.scissor;
    clientCompositionDisplay.clip = outputState.scissor;
    clientCompositionDisplay.physicalDisplay = outputState.destinationClip;
    clientCompositionDisplay.clip = outputState.sourceClip;
    clientCompositionDisplay.globalTransform = outputState.transform.asMatrix4();
    clientCompositionDisplay.orientation = outputState.orientation;
    clientCompositionDisplay.outputDataspace = mDisplayColorProfile->hasWideColorGamut()
Loading