diff options
Diffstat (limited to 'services/surfaceflinger/LayerFE.cpp')
-rw-r--r-- | services/surfaceflinger/LayerFE.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/services/surfaceflinger/LayerFE.cpp b/services/surfaceflinger/LayerFE.cpp index 5e076bdae4..3cd432cd2b 100644 --- a/services/surfaceflinger/LayerFE.cpp +++ b/services/surfaceflinger/LayerFE.cpp @@ -113,6 +113,8 @@ std::optional<compositionengine::LayerFE::LayerSettings> LayerFE::prepareClientC // set the shadow for the layer if needed prepareShadowClientComposition(*layerSettings, targetSettings.viewport); + layerSettings->borderSettings = mSnapshot->borderSettings; + return layerSettings; } @@ -120,6 +122,7 @@ std::optional<compositionengine::LayerFE::LayerSettings> LayerFE::prepareClientC compositionengine::LayerFE::ClientCompositionTargetSettings& targetSettings) const { SFTRACE_CALL(); compositionengine::LayerFE::LayerSettings layerSettings; + layerSettings.geometry.originalBounds = mSnapshot->geomLayerBounds; layerSettings.geometry.boundaries = reduce(mSnapshot->geomLayerBounds, mSnapshot->transparentRegionHint); layerSettings.geometry.positionTransform = mSnapshot->geomLayerTransform.asMatrix4(); @@ -205,7 +208,7 @@ void LayerFE::prepareEffectsClientComposition( if (targetSettings.realContentIsVisible && fillsColor()) { // Set color for color fill settings. layerSettings.source.solidColor = mSnapshot->color.rgb; - } else if (hasBlur() || drawShadows()) { + } else if (hasBlur() || drawShadows() || hasOutline()) { layerSettings.skipContentDraw = true; } } @@ -392,6 +395,10 @@ bool LayerFE::hasBlur() const { return mSnapshot->backgroundBlurRadius > 0 || mSnapshot->blurRegions.size() > 0; } +bool LayerFE::hasOutline() const { + return mSnapshot->borderSettings.strokeWidth > 0; +} + bool LayerFE::drawShadows() const { return mSnapshot->shadowSettings.length > 0.f && (mSnapshot->shadowSettings.ambientColor.a > 0 || |