X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fgraphics%2Fshaders%2Fcolor-visual-shader.frag;h=cf1eb08d8465b648d95ed7061473f3223baea69e;hp=bf936290f63c3e0a152d67cfdb5f1734305ac4fd;hb=48220839bdcedaca9d53cbd15aab66353187c14b;hpb=0547e874c936c6837e6e4511a7715cf555b0fb68 diff --git a/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag b/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag index bf93629..cf1eb08 100644 --- a/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/color-visual-shader.frag @@ -23,6 +23,7 @@ uniform lowp vec3 mixColor; uniform mediump float borderlineWidth; uniform mediump float borderlineOffset; uniform lowp vec4 borderlineColor; +uniform lowp vec4 uActorColor; #endif #if IS_REQUIRED_BLUR uniform mediump float blurRadius; @@ -123,6 +124,9 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) borderlineOpacity = smoothstep(gMinInlinePotential, gMaxInlinePotential, potential); } + lowp vec3 BorderlineColorRGB = borderlineColor.rgb * uActorColor.rgb; + lowp float BorderlineColorAlpha = borderlineColor.a * uActorColor.a; + //calculate inside of borderline when outilneColor.a < 1.0 if(borderlineColor.a < 1.0) { @@ -132,16 +136,18 @@ lowp vec4 convertBorderlineColor(lowp vec4 textureColor) 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)); } + // TODO : need to fix here when uColor.a = 0.0 and uActorColor.a != 0 borderlineOpacity *= borderlineColor.a; + return mix(textureColor, vec4(BorderlineColorRGB, 1.0), borderlineOpacity); } - return mix(textureColor, vec4(borderlineColor.xyz, 1.0), borderlineOpacity); + return mix(textureColor, vec4(BorderlineColorRGB, BorderlineColorAlpha), borderlineOpacity); } #endif @@ -156,8 +162,8 @@ mediump float calculateCornerOpacity() // calculate borderline opacity by potential if(potential > gMaxOutlinePotential) { - // potential is out of borderline range - opacity = 0.0; + // potential is out of borderline range. just discard here + discard; } else if(potential > gMinOutlinePotential) {