X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fgraphics%2Fshaders%2Fnpatch-visual-3x3-shader.vert;h=4625b3cbfef759d2f96b70a082d44f868e377c73;hp=15863122f28bc60b73c0c36a769c741f327082da;hb=18710845f847ebd798faaa621df2e95e4783c0c4;hpb=e4d638dd0b325673bbd504aef409676fc5593a9d diff --git a/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert b/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert index 1586312..4625b3c 100644 --- a/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/npatch-visual-3x3-shader.vert @@ -16,8 +16,8 @@ uniform mediump vec2 extraSize; void main() { - vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw ) + extraSize; - vec2 visualOffset = mix( offset, offset/uSize.xy, offsetSizeMode.xy); + vec2 visualSize = mix(size * uSize.xy, size, offsetSizeMode.zw ) + extraSize; + vec2 visualOffset = mix(offset * uSize.xy, offset, offsetSizeMode.xy); mediump vec2 size = visualSize.xy; @@ -25,10 +25,13 @@ void main() mediump vec2 stretch = floor( aPosition * 0.5 ); mediump vec2 fixedTotal = uFixed[ 2 ]; - mediump vec4 gridPosition = vec4( fixedFactor + ( size - fixedTotal ) * stretch, 0.0, 1.0 ); + // Scale down if fixedTotal is bigger than visualSize + mediump float fixedScaleDownRate = min(1.0, min(size.x / fixedTotal.x, size.y / fixedTotal.y)); + + mediump vec4 gridPosition = vec4( fixedFactor * fixedScaleDownRate + ( size - fixedTotal * fixedScaleDownRate ) * stretch, 0.0, 1.0 ); mediump vec4 vertexPosition = gridPosition; vertexPosition.xy -= size * vec2( 0.5, 0.5 ); - vertexPosition.xy += anchorPoint*size + (visualOffset + origin)*uSize.xy; + vertexPosition.xy += anchorPoint*size + visualOffset + origin * uSize.xy; vertexPosition = uMvpMatrix * vertexPosition;