Merge "Don't promote functors onto layers due to outline rect clipping" into mnc-dev
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user