From feccbad6e5f1d97fb717e919bfaadafec692cc65 Mon Sep 17 00:00:00 2001 From: Kyant0 Date: Tue, 23 Dec 2025 17:47:00 +0800 Subject: [PATCH] Update HighlightStyle.Default constructor --- backdrop/build.gradle.kts | 2 +- .../main/java/com/kyant/backdrop/Shaders.kt | 3 ++- .../backdrop/highlight/HighlightStyle.kt | 21 +++++++++++++++---- .../destinations/GlassPlaygroundContent.kt | 2 -- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/backdrop/build.gradle.kts b/backdrop/build.gradle.kts index eeabbae..ea91fbe 100644 --- a/backdrop/build.gradle.kts +++ b/backdrop/build.gradle.kts @@ -47,7 +47,7 @@ mavenPublishing { publishToMavenCentral() signAllPublications() - coordinates("io.github.kyant0", "backdrop", "1.0.2") + coordinates("io.github.kyant0", "backdrop", "1.0.3") pom { name.set("Backdrop") diff --git a/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt b/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt index 4e5ad53..73fdcfe 100644 --- a/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt +++ b/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt @@ -161,6 +161,7 @@ half4 main(float2 coord) { internal const val DefaultHighlightShaderString = """ uniform float2 size; uniform float4 cornerRadii; +layout(color) uniform half4 color; uniform float angle; uniform float falloff; @@ -176,7 +177,7 @@ half4 main(float2 coord) { float2 normal = float2(cos(angle), sin(angle)); float d = dot(grad, normal); float intensity = pow(abs(d), falloff); - return half4(1.0) * intensity; + return color * intensity; }""" @Language("AGSL") diff --git a/backdrop/src/main/java/com/kyant/backdrop/highlight/HighlightStyle.kt b/backdrop/src/main/java/com/kyant/backdrop/highlight/HighlightStyle.kt index 5992ece..8b7934d 100644 --- a/backdrop/src/main/java/com/kyant/backdrop/highlight/HighlightStyle.kt +++ b/backdrop/src/main/java/com/kyant/backdrop/highlight/HighlightStyle.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shader import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.drawscope.DrawScope +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.util.fastCoerceAtMost import com.kyant.backdrop.AmbientHighlightShaderString @@ -46,14 +47,25 @@ interface HighlightStyle { @Immutable data class Default( - @param:FloatRange(from = 0.0, to = 1.0) val intensity: Float = 0.5f, + override val color: Color = Color.White.copy(alpha = 0.5f), + override val blendMode: BlendMode = BlendMode.Plus, val angle: Float = 45f, @param:FloatRange(from = 0.0) val falloff: Float = 1f ) : HighlightStyle { - override val color: Color = Color.White.copy(alpha = intensity) - - override val blendMode: BlendMode = BlendMode.Plus + @Deprecated( + "Use the constructor with color parameter instead.", + ReplaceWith("HighlightStyle.Default(color = Color.White.copy(alpha = intensity), angle = angle, falloff = falloff)") + ) + constructor( + intensity: Float, + angle: Float = 45f, + falloff: Float = 1f + ) : this( + color = Color.White.copy(alpha = intensity), + angle = angle, + falloff = falloff + ) @RequiresApi(Build.VERSION_CODES.S) override fun DrawScope.createShader( @@ -67,6 +79,7 @@ interface HighlightStyle { ).apply { setFloatUniform("size", size.width, size.height) setFloatUniform("cornerRadii", getCornerRadii(shape)) + setColorUniform("color", color.copy(alpha = 1f).toArgb()) setFloatUniform("angle", angle * (PI / 180f).toFloat()) setFloatUniform("falloff", falloff) } diff --git a/catalog/src/main/java/com/kyant/backdrop/catalog/destinations/GlassPlaygroundContent.kt b/catalog/src/main/java/com/kyant/backdrop/catalog/destinations/GlassPlaygroundContent.kt index 087ab99..6d4bf94 100644 --- a/catalog/src/main/java/com/kyant/backdrop/catalog/destinations/GlassPlaygroundContent.kt +++ b/catalog/src/main/java/com/kyant/backdrop/catalog/destinations/GlassPlaygroundContent.kt @@ -22,7 +22,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.TransformOrigin import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.dp @@ -87,7 +86,6 @@ fun GlassPlaygroundContent() { scaleX = zoom scaleY = zoom rotationZ = rotation - transformOrigin = TransformOrigin(0.5f, 0.5f) } ) .pointerInput(animationScope) {