Apply PreMultipliedAlpha on BorderlineColor 69/260969/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 7 Jul 2021 13:38:40 +0000 (22:38 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Wed, 7 Jul 2021 13:40:15 +0000 (22:40 +0900)
Change-Id: I707d8c5c7ee3f3ccd058efad6709795374b5f1c0

dali-toolkit/internal/graphics/shaders/image-visual-shader.frag

index 8553ddd..0bba311 100644 (file)
@@ -150,19 +150,20 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor)
     mediump float tCornerRadius = -gCenterPosition;
     mediump float MaxTexturelinePotential = tCornerRadius + gPotentialRange;
     mediump float MinTexturelinePotential = tCornerRadius - gPotentialRange;
+    lowp vec3 BorderlineColorRGB = borderlineColor.xyz;
+    BorderlineColorRGB *= mix(1.0, borderlineColor.a, preMultipliedAlpha);
     if(potential > MaxTexturelinePotential)
     {
       // potential is out of texture range. use borderline color instead of texture
-      textureColor = vec4(borderlineColor.xyz, 0.0);
+      textureColor = vec4(BorderlineColorRGB, 0.0);
     }
     else if(potential > MinTexturelinePotential)
     {
       // potential is in texture range
-      textureColor = mix(textureColor, vec4(borderlineColor.xyz, 0.0), smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential));
+      textureColor = mix(textureColor, vec4(BorderlineColorRGB, 0.0), smoothstep(MinTexturelinePotential, MaxTexturelinePotential, potential));
     }
-
     borderlineOpacity *= borderlineColor.a;
-    return mix(textureColor, vec4(borderlineColor.xyz, 1.0), borderlineOpacity);
+    return mix(textureColor, vec4(BorderlineColorRGB, 1.0), borderlineOpacity);
   }
   return mix(textureColor, borderlineColor, borderlineOpacity);
 }