projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Let borderline color doesn't affect to mixcolor alpha by uActorColor
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
graphics
/
shaders
/
image-visual-shader.frag
diff --git
a/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag
b/dali-toolkit/internal/graphics/shaders/image-visual-shader.frag
index
8553ddd
..
676c02b
100644
(file)
--- a/
dali-toolkit/internal/graphics/shaders/image-visual-shader.frag
+++ b/
dali-toolkit/internal/graphics/shaders/image-visual-shader.frag
@@
-36,6
+36,7
@@
uniform lowp float preMultipliedAlpha;
uniform mediump float borderlineWidth;
uniform mediump float borderlineOffset;
uniform lowp vec4 borderlineColor;
uniform mediump float borderlineWidth;
uniform mediump float borderlineOffset;
uniform lowp vec4 borderlineColor;
+uniform lowp vec4 uActorColor;
#endif
#if ATLAS_CUSTOM_WARP
#endif
#if ATLAS_CUSTOM_WARP
@@
-144,6
+145,10
@@
lowp vec4 convertBorderlineColor(lowp vec4 textureColor)
borderlineOpacity = smoothstep(gMinInlinePotential, gMaxInlinePotential, potential);
}
borderlineOpacity = smoothstep(gMinInlinePotential, gMaxInlinePotential, potential);
}
+ lowp vec3 BorderlineColorRGB = borderlineColor.rgb * uActorColor.rgb;
+ lowp float BorderlineColorAlpha = borderlineColor.a * uActorColor.a;
+ BorderlineColorRGB *= mix(1.0, BorderlineColorAlpha, preMultipliedAlpha);
+
//calculate inside of borderline when outilneColor.a < 1.0
if(borderlineColor.a < 1.0)
{
//calculate inside of borderline when outilneColor.a < 1.0
if(borderlineColor.a < 1.0)
{
@@
-153,18
+158,18
@@
lowp vec4 convertBorderlineColor(lowp vec4 textureColor)
if(potential > MaxTexturelinePotential)
{
// potential is out of texture range. use borderline color instead of texture
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
}
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));
}
}
-
+ // TODO : need to fix here when uColor.a = 0.0 and uActorColor.a != 0
borderlineOpacity *= borderlineColor.a;
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);
+ return mix(textureColor,
vec4(BorderlineColorRGB, BorderlineColorAlpha)
, borderlineOpacity);
}
#endif
}
#endif
@@
-201,13
+206,13
@@
void main()
mediump vec2 texCoord = vTexCoord;
#endif
mediump vec2 texCoord = vTexCoord;
#endif
- lowp vec4 textureColor = TEXTURE( sTexture, texCoord ) * vec4( mixColor, 1.0 );
+ lowp vec4 textureColor = TEXTURE( sTexture, texCoord ) * vec4( mixColor, 1.0 )
* uColor
;
#if IS_REQUIRED_ROUNDED_CORNER || IS_REQUIRED_BORDERLINE
// skip most potential calculate for performance
if(abs(vPosition.x) < vOptRectSize.x && abs(vPosition.y) < vOptRectSize.y)
{
#if IS_REQUIRED_ROUNDED_CORNER || IS_REQUIRED_BORDERLINE
// skip most potential calculate for performance
if(abs(vPosition.x) < vOptRectSize.x && abs(vPosition.y) < vOptRectSize.y)
{
- OUT_COLOR = textureColor
* uColor
;
+ OUT_COLOR = textureColor;
return;
}
PreprocessPotential();
return;
}
PreprocessPotential();
@@
-216,7
+221,7
@@
void main()
#if IS_REQUIRED_BORDERLINE
textureColor = convertBorderlineColor(textureColor);
#endif
#if IS_REQUIRED_BORDERLINE
textureColor = convertBorderlineColor(textureColor);
#endif
- OUT_COLOR = textureColor
* uColor
;
+ OUT_COLOR = textureColor;
#if IS_REQUIRED_ROUNDED_CORNER
mediump float opacity = calculateCornerOpacity();
#if IS_REQUIRED_ROUNDED_CORNER
mediump float opacity = calculateCornerOpacity();