X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Ftext%2Ftext-visual.cpp;h=aad172d376cf0571476b27d317f529db739b8378;hp=7a8ad7ab52d61cc7fac1bbbe7890f98e80e026bc;hb=518c9e7b5de69ff2401dffa6235a88e2dcf2bb72;hpb=e0cec05bfb793b1e43d52ad47b21c35d84e06567;ds=sidebyside diff --git a/dali-toolkit/internal/visuals/text/text-visual.cpp b/dali-toolkit/internal/visuals/text/text-visual.cpp index 7a8ad7a..aad172d 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.cpp +++ b/dali-toolkit/internal/visuals/text/text-visual.cpp @@ -94,9 +94,13 @@ const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( uniform mediump mat4 uMvpMatrix;\n uniform mediump vec3 uSize;\n uniform mediump vec4 pixelArea; + + uniform mediump mat4 uModelMatrix;\n + uniform mediump mat4 uViewMatrix;\n + uniform mediump mat4 uProjection;\n + varying mediump vec2 vTexCoord;\n \n - //Visual size and offset uniform mediump vec2 offset;\n uniform mediump vec2 size;\n @@ -113,7 +117,10 @@ const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( void main()\n {\n - mediump vec4 vertexPosition = uMvpMatrix *ComputeVertexPosition();\n + mediump vec4 nonAlignedVertex = uViewMatrix*uModelMatrix*ComputeVertexPosition();\n + mediump vec4 pixelAlignedVertex = vec4 ( floor(nonAlignedVertex.xyz), 1.0 );\n + mediump vec4 vertexPosition = uProjection*pixelAlignedVertex;\n + vTexCoord = pixelArea.xy+pixelArea.zw*(aPosition + vec2(0.5) );\n gl_Position = vertexPosition;\n }\n @@ -268,12 +275,9 @@ void TextVisual::DoSetOnStage( Actor& actor ) mFactoryCache.SaveGeometry( VisualFactoryCache::QUAD_GEOMETRY , geometry ); } - Shader shader = mFactoryCache.GetShader( VisualFactoryCache::IMAGE_SHADER_ATLAS_DEFAULT_WRAP ); - if( !shader ) - { - shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_ATLAS_CLAMP ); - mFactoryCache.SaveShader( VisualFactoryCache::IMAGE_SHADER_ATLAS_DEFAULT_WRAP, shader ); - } + Shader shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_ATLAS_CLAMP ); + mFactoryCache.SaveShader( VisualFactoryCache::IMAGE_SHADER_ATLAS_DEFAULT_WRAP, shader ); + shader.RegisterProperty( PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT ); mImpl->mRenderer = Renderer::New( geometry, shader );