Merge "Disable pixel alignment while scrolling the text" into devel/master
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 22 Dec 2017 15:10:04 +0000 (15:10 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Fri, 22 Dec 2017 15:10:04 +0000 (15:10 +0000)
1  2 
dali-toolkit/internal/text/text-scroller.cpp

@@@ -66,15 -66,12 +66,12 @@@ const char* VERTEX_SHADER_SCROLL = DALI
      mediump vec2 visualOffset = mix( offset, offset/uSize.xy, offsetSizeMode.xy );\n
      mediump vec2 visualSize = mix( uSize.xy * size, size, offsetSizeMode.zw );\n
      \n
-     mediump float delta = floor ( uDelta ) + 0.5;\n
-     vTexCoord.x = ( delta + uHorizontalAlign * ( uTextureSize.x - visualSize.x - uGap ) + floor( aPosition.x * visualSize.x ) + 0.5 - uGap * 0.5 ) / uTextureSize.x + 0.5;\n
+     vTexCoord.x = ( uDelta + uHorizontalAlign * ( uTextureSize.x - visualSize.x - uGap ) + floor( aPosition.x * visualSize.x ) + 0.5 - uGap * 0.5 ) / uTextureSize.x + 0.5;\n
      vTexCoord.y = ( uVerticalAlign * ( uTextureSize.y - visualSize.y ) + floor( aPosition.y * visualSize.y ) + 0.5 ) / ( uTextureSize.y ) + 0.5;\n
      \n
      mediump vec4 vertexPosition = vec4( floor( ( aPosition + anchorPoint ) * visualSize + ( visualOffset + origin ) * uSize.xy ), 0.0, 1.0 );\n
-     mediump vec4 nonAlignedVertex = uViewMatrix * uModelMatrix * vertexPosition;\n
-     mediump vec4 pixelAlignedVertex = vec4 ( floor( nonAlignedVertex.xyz ), 1.0 );\n
      \n
-     gl_Position = uProjection * pixelAlignedVertex;\n
+     gl_Position = uProjection * uViewMatrix * uModelMatrix * vertexPosition;\n
    }\n
  );
  
@@@ -260,7 -257,7 +257,7 @@@ TextScroller::~TextScroller(
  {
  }
  
 -void TextScroller::SetParameters( Actor scrollingTextActor, Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& textureSize, const float wrapGap, CharacterDirection direction, HorizontalAlignment::Type horizontalAlignment, VerticalAlignment::Type verticalAlignment )
 +void TextScroller::SetParameters( Actor scrollingTextActor, Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& textureSize, const float wrapGap, CharacterDirection direction, HorizontalAlignment::Type horizontalAlignment, VerticalAlignment::Type verticalAlignment, bool isTextElided )
  {
    DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextScroller::SetParameters controlSize[%f,%f] textureSize[%f,%f] direction[%d]\n",
                   controlSize.x, controlSize.y, textureSize.x, textureSize.y, direction );
  
    DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextScroller::SetParameters wrapGap[%f]\n", wrapGap );
  
 -  const float horizontalAlign = HORIZONTAL_ALIGNMENT_TABLE[ horizontalAlignment ][ direction ];
 +  float horizontalAlign;
 +
 +  if( isTextElided )
 +  {
 +    // if Text is elided, scroll should start at the begin of text.
 +    horizontalAlign = HORIZONTAL_ALIGNMENT_TABLE[HorizontalAlignment::BEGIN][ direction ];
 +  }
 +  else
 +  {
 +    horizontalAlign = HORIZONTAL_ALIGNMENT_TABLE[ horizontalAlignment ][ direction ];
 +  }
    const float verticalAlign = VERTICAL_ALIGNMENT_TABLE[ verticalAlignment ];
    DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextScroller::SetParameters horizontalAlign[%f], verticalAlign[%f]\n", horizontalAlign, verticalAlign );