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

Commit b60d3e78 authored by Chris Craik's avatar Chris Craik
Browse files

Don't promote functors onto layers due to outline rect clipping

bug:21320333

Change-Id: Ie70982c88498395148dab6eaca861de66e6207ed
parent bcca4ac4
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <SkPath.h>

#include "Rect.h"
#include "utils/MathUtils.h"

namespace android {
namespace uirenderer {
@@ -85,6 +86,11 @@ public:
        return mShouldClip && (mType == kOutlineType_RoundRect);
    }

    bool willRoundRectClip() const {
        // only round rect outlines can be used for clipping
        return willClip() && MathUtils::isPositive(mRadius);
    }

    bool getAsRoundRect(Rect* outRect, float* outRadius) const {
        if (mType == kOutlineType_RoundRect) {
            outRect->set(mBounds);
+1 −1
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ public:
        bool functorsNeedLayer = ancestorDictatesFunctorsNeedLayer

                // Round rect clipping forces layer for functors
                || CC_UNLIKELY(getOutline().willClip())
                || CC_UNLIKELY(getOutline().willRoundRectClip())
                || CC_UNLIKELY(getRevealClip().willClip())

                // Complex matrices forces layer, due to stencil clipping