X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fgraphics%2Fshaders%2Fgradient-visual-radial-rounded-corner-shader.frag;h=10bf0fe544e26b78dd479d4deee71b961a834a87;hb=41c8e6862c377913d579544ee6103a6c8aa482d1;hp=0ae8163ae0ae7f3a9f8ace3640b0f99544a9b0dd;hpb=e4d638dd0b325673bbd504aef409676fc5593a9d;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/graphics/shaders/gradient-visual-radial-rounded-corner-shader.frag b/dali-toolkit/internal/graphics/shaders/gradient-visual-radial-rounded-corner-shader.frag index 0ae8163..10bf0fe 100644 --- a/dali-toolkit/internal/graphics/shaders/gradient-visual-radial-rounded-corner-shader.frag +++ b/dali-toolkit/internal/graphics/shaders/gradient-visual-radial-rounded-corner-shader.frag @@ -8,7 +8,19 @@ varying mediump float vCornerRadius; void main() { - mediump float dist = length( max( abs( vPosition ), vRectSize ) - vRectSize ) - vCornerRadius; gl_FragColor = texture2D( sTexture, vec2( length(vTexCoord), 0.5 ) ) * vec4(mixColor, 1.0) * uColor; - gl_FragColor *= 1.0 - smoothstep( -1.0, 1.0, dist ); + mediump vec2 diff = abs( vPosition ) - vRectSize; + mediump float dist = length( max( diff, vec2( 0.0 ) ) ) - vCornerRadius; + if( dist > 1.0 ) + { + gl_FragColor = vec4( 0.0 ); + } + else if( dist > -1.0 ) + { + if( min( diff.x, diff.y ) < 0.0) + { + dist += min( diff.x, diff.y ) / vCornerRadius; + } + gl_FragColor *= 1.0 - smoothstep( -1.0, 1.0, dist ); + } }