X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fgraphics%2Fshaders%2Fcolor-visual-rounded-corner-shader.vert;h=0a6a257d1c6c492df114ad7785b0f691b7bd6e66;hb=e015f32740b0efd126f0e314ee872474e1fe1e91;hp=f4bc1ad1ad9e0a2f27d78be434e1929ef1468c47;hpb=e9075a50279076fa8d070e8ee53b7922779a8b66;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/graphics/shaders/color-visual-rounded-corner-shader.vert b/dali-toolkit/internal/graphics/shaders/color-visual-rounded-corner-shader.vert index f4bc1ad..0a6a257 100644 --- a/dali-toolkit/internal/graphics/shaders/color-visual-rounded-corner-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/color-visual-rounded-corner-shader.vert @@ -1,7 +1,8 @@ INPUT mediump vec2 aPosition; OUTPUT mediump vec2 vPosition; OUTPUT mediump vec2 vRectSize; -OUTPUT mediump float vCornerRadius; +OUTPUT mediump vec2 vOptRectSize; +OUTPUT mediump vec4 vCornerRadius; uniform highp mat4 uMvpMatrix; uniform highp vec3 uSize; @@ -13,7 +14,7 @@ uniform mediump vec2 extraSize; uniform mediump vec4 offsetSizeMode; uniform mediump vec2 origin; uniform mediump vec2 anchorPoint; -uniform mediump float cornerRadius; +uniform mediump vec4 cornerRadius; uniform mediump float cornerRadiusPolicy; vec4 ComputeVertexPosition() @@ -23,7 +24,10 @@ vec4 ComputeVertexPosition() mediump float minSize = min( visualSize.x, visualSize.y ); vCornerRadius = mix( cornerRadius * minSize, cornerRadius, cornerRadiusPolicy); vCornerRadius = min( vCornerRadius, minSize * 0.5 ); - vRectSize = visualSize / 2.0 - vCornerRadius; + vRectSize = visualSize / 2.0; + // optimize fragment shader + mediump float maxRadius = max(max(vCornerRadius.x, vCornerRadius.y), max(vCornerRadius.z, vCornerRadius.w)); + vOptRectSize = vRectSize - 0.2929 * maxRadius - 1.0; vPosition = aPosition* visualSize; return vec4( vPosition + anchorPoint*visualSize + (visualOffset + origin)*uSize.xy, 0.0, 1.0 ); } @@ -31,4 +35,4 @@ vec4 ComputeVertexPosition() void main() { gl_Position = uMvpMatrix * ComputeVertexPosition(); -} \ No newline at end of file +}