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

Commit 29c286ee authored by Mathias Agopian's avatar Mathias Agopian Committed by Android Git Automerger
Browse files

am eba8c688: calculate wether we filter on a per-display basis

* commit 'eba8c688':
  calculate wether we filter on a per-display basis
parents 488978de eba8c688
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -397,6 +397,10 @@ void DisplayDevice::updateGeometryTransform() {
        // Apply the logical translation, scale to physical size, apply the
        // physical translation and finally rotate to the physical orientation.
        mGlobalTransform = R * TP * S * TL;

        const uint8_t type = mGlobalTransform.getType();
        mNeedsFiltering = (!mGlobalTransform.preserveRects() ||
                (type >= Transform::SCALE));
    }
}

+2 −0
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ public:
    const Transform&        getTransform() const { return mGlobalTransform; }
    const Rect&             getViewport() const { return mViewport; }
    const Rect&             getFrame() const { return mFrame; }
    bool                    needsFiltering() const { return mNeedsFiltering; }

    uint32_t                getLayerStack() const { return mLayerStack; }
    int32_t                 getDisplayType() const { return mType; }
@@ -195,6 +196,7 @@ private:
    Rect mViewport;
    Rect mFrame;
    Transform mGlobalTransform;
    bool mNeedsFiltering;
};

}; // namespace android
+1 −1
Original line number Diff line number Diff line
@@ -344,7 +344,7 @@ void Layer::onDraw(const sp<const DisplayDevice>& hw, const Region& clip) const

    if (!isProtected()) {
        // TODO: we could be more subtle with isFixedSize()
        const bool useFiltering = getFiltering() || needsFiltering() || isFixedSize();
        const bool useFiltering = getFiltering() || needsFiltering(hw) || isFixedSize();

        // Query the texture matrix given our current filtering mode.
        float textureMatrix[16];
+4 −0
Original line number Diff line number Diff line
@@ -87,6 +87,10 @@ void LayerBase::initStates(uint32_t w, uint32_t h, uint32_t flags)
    mDrawingState = mCurrentState;
}

bool LayerBase::needsFiltering(const sp<const DisplayDevice>& hw) const {
    return mNeedsFiltering || hw->needsFiltering();
}

void LayerBase::commitTransaction() {
    mDrawingState = mCurrentState;
}
+1 −1
Original line number Diff line number Diff line
@@ -197,7 +197,7 @@ public:
    /**
     * needsLinearFiltering - true if this surface's state requires filtering
     */
    virtual bool needsFiltering() const { return mNeedsFiltering; }
    virtual bool needsFiltering(const sp<const DisplayDevice>& hw) const;

    /**
     * isSecure - true if this surface is secure, that is if it prevents