Loading services/surfaceflinger/DisplayDevice.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -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)); } } Loading services/surfaceflinger/DisplayDevice.h +2 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -195,6 +196,7 @@ private: Rect mViewport; Rect mFrame; Transform mGlobalTransform; bool mNeedsFiltering; }; }; // namespace android Loading services/surfaceflinger/Layer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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]; Loading services/surfaceflinger/LayerBase.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading services/surfaceflinger/LayerBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
services/surfaceflinger/DisplayDevice.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -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)); } } Loading
services/surfaceflinger/DisplayDevice.h +2 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -195,6 +196,7 @@ private: Rect mViewport; Rect mFrame; Transform mGlobalTransform; bool mNeedsFiltering; }; }; // namespace android Loading
services/surfaceflinger/Layer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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]; Loading
services/surfaceflinger/LayerBase.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading
services/surfaceflinger/LayerBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading