diff options
Diffstat (limited to 'libs/hwui/RenderProperties.h')
-rw-r--r-- | libs/hwui/RenderProperties.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libs/hwui/RenderProperties.h b/libs/hwui/RenderProperties.h index ca7789e6f19a..0bd5b65f86aa 100644 --- a/libs/hwui/RenderProperties.h +++ b/libs/hwui/RenderProperties.h @@ -608,12 +608,16 @@ public: && getOutline().getAlpha() != 0.0f; } - bool promotedToLayer() const { + bool fitsOnLayer() const { const DeviceInfo* deviceInfo = DeviceInfo::get(); LOG_ALWAYS_FATAL_IF(!deviceInfo, "DeviceInfo uninitialized"); + return mPrimitiveFields.mWidth <= deviceInfo->maxTextureSize() + && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize(); + } + + bool promotedToLayer() const { return mLayerProperties.mType == LayerType::None - && mPrimitiveFields.mWidth <= deviceInfo->maxTextureSize() - && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize() + && fitsOnLayer() && (mComputedFields.mNeedLayerForFunctors || (!MathUtils::isZero(mPrimitiveFields.mAlpha) && mPrimitiveFields.mAlpha < 1 |