// Set the color of non-transparent pixel in text to what it is animated to.
// Markup text with multiple text colors are not animated (but can be supported later on if required).
// Emoji color are not animated.
- mediump vec4 textColor = textTexture * textTexture.a;\n
- mediump float vstep = step( 0.0001, textColor.a );\n
- textColor.rgb = mix( textColor.rgb, uTextColorAnimatable.rgb, vstep * maskTexture );\n
+ mediump float vstep = step( 0.0001, textTexture.a );\n
+ textTexture.rgb = mix( textTexture.rgb, uTextColorAnimatable.rgb, vstep * maskTexture );\n
// Draw the text as overlay above the style
- gl_FragColor = textColor * uColor * vec4( mixColor, opacity );\n
+ gl_FragColor = textTexture * uColor * vec4( mixColor, opacity );\n
}\n
);
// Set the color of non-transparent pixel in text to what it is animated to.
// Markup text with multiple text colors are not animated (but can be supported later on if required).
// Emoji color are not animated.
- mediump vec4 textColor = textTexture * textTexture.a;\n
- mediump float vstep = step( 0.0001, textColor.a );\n
- textColor.rgb = mix( textColor.rgb, uTextColorAnimatable.rgb, vstep * maskTexture * ( 1.0 - uHasMultipleTextColors ) );\n
+ mediump float vstep = step( 0.0001, textTexture.a );\n
+ textTexture.rgb = mix( textTexture.rgb, uTextColorAnimatable.rgb, vstep * maskTexture * ( 1.0 - uHasMultipleTextColors ) );\n
// Draw the text as overlay above the style
- gl_FragColor = ( textColor + styleTexture * ( 1.0 - textTexture.a ) ) * uColor * vec4( mixColor, opacity );\n
+ gl_FragColor = ( textTexture + styleTexture * ( 1.0 - textTexture.a ) ) * uColor * vec4( mixColor, opacity );\n
}\n
);
}
case Toolkit::TextVisual::Property::HORIZONTAL_ALIGNMENT:
{
- Text::HorizontalAlignment::Type alignment( Toolkit::Text::HorizontalAlignment::BEGIN );
- Toolkit::Text::GetHorizontalAlignmentEnum( propertyValue, alignment );
-
- mController->SetHorizontalAlignment( alignment );
+ if( mController )
+ {
+ Text::HorizontalAlignment::Type alignment( static_cast< Text::HorizontalAlignment::Type >( -1 ) ); // Set to invalid value to ensure a valid mode does get set
+ if( Toolkit::Text::GetHorizontalAlignmentEnumeration( propertyValue, alignment ) )
+ {
+ mController->SetHorizontalAlignment( alignment );
+ }
+ }
break;
}
case Toolkit::TextVisual::Property::VERTICAL_ALIGNMENT:
{
- Text::VerticalAlignment::Type alignment( Toolkit::Text::VerticalAlignment::BOTTOM );
- Toolkit::Text::GetVerticalAlignmentEnum( propertyValue, alignment);
-
- mController->SetVerticalAlignment( alignment );
+ if( mController )
+ {
+ Toolkit::Text::VerticalAlignment::Type alignment( static_cast< Text::VerticalAlignment::Type >( -1 ) ); // Set to invalid value to ensure a valid mode does get set
+ if( Toolkit::Text::GetVerticalAlignmentEnumeration( propertyValue, alignment) )
+ {
+ mController->SetVerticalAlignment( alignment );
+ }
+ }
break;
}
case Toolkit::TextVisual::Property::TEXT_COLOR:
mImpl->mRenderer.RegisterProperty( "uHasMultipleTextColors", static_cast<float>( hasMultipleTextColors ) );
mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON);
+ mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true );
//Register transform properties
mImpl->mTransform.RegisterUniforms( mImpl->mRenderer, Direction::LEFT_TO_RIGHT );