diff options
author | John Reck <jreck@google.com> | 2021-05-10 19:34:58 -0400 |
---|---|---|
committer | John Reck <jreck@google.com> | 2021-05-11 12:26:52 -0400 |
commit | 09d9ccadc3fca9038c434542e5048058a5b47709 (patch) | |
tree | 288b6a99e576acfc108f04c97e1ae397ff40c322 /libs/hwui/pipeline/skia/RenderNodeDrawable.cpp | |
parent | a8427802f5e357a31fdcf575c7f373cdd9ff88f5 (diff) |
Avoid creating a layer for linear stretch
Bug: 187718492
Test: manual logging no layer updates during benchmark
Change-Id: I9a231625142e404882be6c53fa6d01b2fb81af1a
Diffstat (limited to 'libs/hwui/pipeline/skia/RenderNodeDrawable.cpp')
-rw-r--r-- | libs/hwui/pipeline/skia/RenderNodeDrawable.cpp | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp index 57cdde2e8f10..0b43f0923434 100644 --- a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp +++ b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp @@ -171,16 +171,11 @@ void RenderNodeDrawable::forceDraw(SkCanvas* canvas) const { displayList->mProjectedOutline = nullptr; } -static bool stretchNeedsLayer(const LayerProperties& properties) { - return Properties::stretchEffectBehavior != StretchEffectBehavior::LinearScale && - !properties.getStretchEffect().isEmpty(); -} - static bool layerNeedsPaint(const sk_sp<SkImage>& snapshotImage, const LayerProperties& properties, float alphaMultiplier, SkPaint* paint) { if (alphaMultiplier < 1.0f || properties.alpha() < 255 || properties.xferMode() != SkBlendMode::kSrcOver || properties.getColorFilter() != nullptr || - properties.getImageFilter() != nullptr || stretchNeedsLayer(properties)) { + properties.getImageFilter() != nullptr || properties.getStretchEffect().requiresLayer()) { paint->setAlpha(properties.alpha() * alphaMultiplier); paint->setBlendMode(properties.xferMode()); paint->setColorFilter(sk_ref_sp(properties.getColorFilter())); |