diff --git a/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt b/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt index 0ca1673..359fe96 100644 --- a/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt +++ b/backdrop/src/main/java/com/kyant/backdrop/Shaders.kt @@ -87,10 +87,6 @@ float circleMap(float x) { return 1.0 - sqrt(1.0 - x * x); } -float2 normalToTangent(float2 normal) { - return float2(normal.y, -normal.x); -} - half4 main(float2 coord) { float2 halfSize = size * 0.5; float2 centeredCoord = coord - halfSize; @@ -109,7 +105,7 @@ half4 main(float2 coord) { float4 maxGradRadius = float4(min(halfSize.x, halfSize.y)); float4 gradRadius = min(cornerRadius * 1.5, maxGradRadius); float2 normal = gradSdRoundedRectangle(centeredCoord, halfSize, gradRadius); - float2 tangent = normalToTangent(normal); + float2 tangent = float2(normal.y, -normal.x); half4 dispersedColor = half4(0.0); half4 weight = half4(0.0); @@ -121,14 +117,12 @@ half4 main(float2 coord) { half rMask = step(0.5, t); half gMask = step(0.25, t) * step(t, 0.75); half bMask = step(t, 0.5); - half4 mask = half4(rMask, gMask, bMask, 0.0); + half4 mask = half4(rMask, gMask, bMask, 1.0); dispersedColor += color * mask; weight += mask; } - dispersedColor /= weight; - dispersedColor.a = image.eval(coord).a; - return dispersedColor; + return dispersedColor / weight; }""" @Language("AGSL")