X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Ftext%2Ftext-visual.cpp;h=889b57dcf2a0cfe4d050f222e462ed3f8a4abbea;hb=0dba002791383a83d22f94e2584d85dbd67026d0;hp=f3b895beb59f3121651783409615fb393bc7834a;hpb=6c02c5852ca329f720e4ae72d9cef2524629574c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/text/text-visual.cpp b/dali-toolkit/internal/visuals/text/text-visual.cpp index f3b895b..889b57d 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.cpp +++ b/dali-toolkit/internal/visuals/text/text-visual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -74,7 +74,11 @@ std::string GetHorizontalAlignment( Toolkit::Text::Layout::HorizontalAlignment a HORIZONTAL_ALIGNMENT_STRING_TABLE, HORIZONTAL_ALIGNMENT_STRING_TABLE_COUNT ); - return std::string( name ); + if( name ) + { + return std::string( name ); + } + return std::string(); } std::string GetVerticalAlignment( Toolkit::Text::Layout::VerticalAlignment alignment ) @@ -83,7 +87,11 @@ std::string GetVerticalAlignment( Toolkit::Text::Layout::VerticalAlignment align VERTICAL_ALIGNMENT_STRING_TABLE, VERTICAL_ALIGNMENT_STRING_TABLE_COUNT ); - return std::string( name ); + if( name ) + { + return std::string( name ); + } + return std::string(); } const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( @@ -128,12 +136,13 @@ const char* FRAGMENT_SHADER_ATLAS_CLAMP = DALI_COMPOSE_SHADER( uniform sampler2D sTexture;\n uniform mediump vec4 uAtlasRect;\n uniform lowp vec4 uColor;\n - uniform lowp vec4 mixColor;\n + uniform lowp vec3 mixColor;\n + uniform lowp float opacity;\n \n void main()\n {\n mediump vec2 texCoord = clamp( mix( uAtlasRect.xy, uAtlasRect.zw, vTexCoord ), uAtlasRect.xy, uAtlasRect.zw );\n - gl_FragColor = texture2D( sTexture, texCoord ) * uColor * mixColor;\n + gl_FragColor = texture2D( sTexture, texCoord ) * uColor * vec4( mixColor, opacity );\n }\n ); @@ -247,7 +256,7 @@ void TextVisual::DoCreatePropertyMap( Property::Map& map ) const GetFontStyleProperty( mController, value, Text::FontStyle::DEFAULT ); map.Insert( Toolkit::TextVisual::Property::FONT_STYLE, value ); - map.Insert( Toolkit::TextVisual::Property::POINT_SIZE, mController->GetDefaultPointSize() ); + map.Insert( Toolkit::TextVisual::Property::POINT_SIZE, mController->GetDefaultFontSize( Text::Controller::POINT_SIZE ) ); map.Insert( Toolkit::TextVisual::Property::MULTI_LINE, mController->IsMultiLineEnabled() ); @@ -260,6 +269,16 @@ void TextVisual::DoCreatePropertyMap( Property::Map& map ) const map.Insert( Toolkit::TextVisual::Property::ENABLE_MARKUP, mController->IsMarkupProcessorEnabled() ); } +void TextVisual::DoCreateInstancePropertyMap( Property::Map& map ) const +{ + map.Clear(); + map.Insert( Toolkit::DevelVisual::Property::TYPE, Toolkit::DevelVisual::TEXT ); + std::string text; + mController->GetText( text ); + map.Insert( Toolkit::TextVisual::Property::TEXT, text ); +} + + TextVisual::TextVisual( VisualFactoryCache& factoryCache ) : Visual::Base( factoryCache ), mController( Text::Controller::New() ), @@ -313,7 +332,7 @@ void TextVisual::DoSetOnStage( Actor& actor ) } mImpl->mRenderer = Renderer::New( geometry, shader ); - mImpl->mRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, Toolkit::DepthIndex::TEXT ); + mImpl->mRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, Toolkit::DepthIndex::CONTENT ); UpdateRenderer( true ); // Renderer needs textures and to be added to control } @@ -368,9 +387,9 @@ void TextVisual::DoSetProperty( Dali::Property::Index index, const Dali::Propert case Toolkit::TextVisual::Property::POINT_SIZE: { const float pointSize = propertyValue.Get(); - if( !Equals( mController->GetDefaultPointSize(), pointSize ) ) + if( !Equals( mController->GetDefaultFontSize( Text::Controller::POINT_SIZE ), pointSize ) ) { - mController->SetDefaultPointSize( pointSize ); + mController->SetDefaultFontSize( pointSize, Text::Controller::POINT_SIZE ); } break; } @@ -446,6 +465,7 @@ void TextVisual::UpdateRenderer( bool initializeRendererAndTexture ) } // Nothing else to do if the relayout size is zero. + ResourceReady(); return; } @@ -499,6 +519,9 @@ void TextVisual::UpdateRenderer( bool initializeRendererAndTexture ) mImpl->mRenderer.SetTextures( textureSet ); control.AddRenderer( mImpl->mRenderer ); + + // Text rendered and ready to display + ResourceReady(); } } }