From 5c40822dc2fc432e0454b2c1a90c85b859ecdab7 Mon Sep 17 00:00:00 2001 From: Kyant0 Date: Sun, 19 Oct 2025 14:44:55 +0800 Subject: [PATCH] Internal updates --- .../src/main/java/com/kyant/backdrop/BackdropEffectScope.kt | 5 +++++ .../main/java/com/kyant/backdrop/DrawBackdropModifier.kt | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/backdrop/src/main/java/com/kyant/backdrop/BackdropEffectScope.kt b/backdrop/src/main/java/com/kyant/backdrop/BackdropEffectScope.kt index 6f83081..6efce7c 100644 --- a/backdrop/src/main/java/com/kyant/backdrop/BackdropEffectScope.kt +++ b/backdrop/src/main/java/com/kyant/backdrop/BackdropEffectScope.kt @@ -57,6 +57,11 @@ internal abstract class BackdropEffectScopeImpl : BackdropEffectScope, RuntimeSh return changed } + fun apply(effects: BackdropEffectScope.() -> Unit) { + renderEffect = null + effects() + } + fun reset() { density = 1f fontScale = 1f diff --git a/backdrop/src/main/java/com/kyant/backdrop/DrawBackdropModifier.kt b/backdrop/src/main/java/com/kyant/backdrop/DrawBackdropModifier.kt index caf5809..ad16642 100644 --- a/backdrop/src/main/java/com/kyant/backdrop/DrawBackdropModifier.kt +++ b/backdrop/src/main/java/com/kyant/backdrop/DrawBackdropModifier.kt @@ -25,7 +25,6 @@ import androidx.compose.ui.node.ModifierNodeElement import androidx.compose.ui.node.ObserverModifierNode import androidx.compose.ui.node.invalidateDraw import androidx.compose.ui.node.observeReads -import androidx.compose.ui.node.requireDensity import androidx.compose.ui.node.requireGraphicsContext import androidx.compose.ui.platform.InspectorInfo import androidx.compose.ui.unit.Constraints @@ -227,7 +226,7 @@ private class DrawBackdropNode( onDrawBackdrop { with(backdrop) { drawBackdrop( - density = requireDensity(), + density = effectScope, coordinates = layoutCoordinates, layerBlock = layerBlock ) @@ -302,8 +301,7 @@ private class DrawBackdropNode( private fun updateEffects() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - effectScope.renderEffect = null - effects(effectScope) + effectScope.apply(effects) graphicsLayer?.renderEffect = effectScope.renderEffect?.asComposeRenderEffect() } }