AccessibilityManager manager = AccessibilityManager::Get();
DALI_TEST_CHECK( manager );
- Dali::AccessibilityAdaptor accessibilityAdaptor = Dali::AccessibilityAdaptor::Get();
- Vector2 position( 1.0f, 2.0f );
- accessibilityAdaptor.MockSetReadPosition( position );
-
- DALI_TEST_EQUALS( manager.GetReadPosition(), position, TEST_LOCATION );
+ Vector2 readPosition( manager.GetReadPosition() );
+ DALI_TEST_EQUALS( readPosition.x, 0.0f, Math::MACHINE_EPSILON_0, TEST_LOCATION );
+ DALI_TEST_EQUALS( readPosition.y, 0.0f, Math::MACHINE_EPSILON_0, TEST_LOCATION );
END_TEST;
}
application.SendNotification();
application.Render();
- Vector3 size( 200.0f, 300.0f, 200.0f );
+ Vector3 size( 200.0f, 300.0f, 0.0f );
view.SetSize( size );
application.SendNotification();
{
EffectsView view = EffectsView::New();
- view.SetSize( 200.0f, 200.0f, 200.0f );
+ view.SetSize( 200.0f, 200.0f, 0.0f );
stage.Add( view );
view.Enable();
application.SendNotification();
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( view.GetCurrentSize(), Vector3( 200.0f, 200.0f, 200.0f ), TEST_LOCATION );
+ DALI_TEST_EQUALS( view.GetCurrentSize(), Vector3( 200.0f, 200.0f, 0.0f ), TEST_LOCATION );
}
{
EffectsView view = EffectsView::New();
view.SetOutputImage( FrameBufferImage::New( 200, 200 ) );
view.SetType( EffectsView::EMBOSS );
- view.SetSize( 200.0f, 200.0f, 200.0f );
+ view.SetSize( 200.0f, 200.0f, 0.0f );
stage.Add( view );
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( view.GetCurrentSize(), Vector3( 200.0f, 200.0f, 200.0f ), TEST_LOCATION );
+ DALI_TEST_EQUALS( view.GetCurrentSize(), Vector3( 200.0f, 200.0f, 0.0f ), TEST_LOCATION );
}
{
EffectsView view = EffectsView::New();
view.SetType( EffectsView::DROP_SHADOW );
- view.SetSize( 200.0f, 200.0f, 200.0f );
+ view.SetSize( 200.0f, 200.0f, 0.0f );
stage.Add( view );
application.SendNotification();
application.Render();
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( view.GetCurrentSize(), Vector3( 200.0f, 200.0f, 200.0f ), TEST_LOCATION );
+ DALI_TEST_EQUALS( view.GetCurrentSize(), Vector3( 200.0f, 200.0f, 0.0f ), TEST_LOCATION );
}
END_TEST;
application.SendNotification();
application.Render();
- Vector3 size( 200.0f, 300.0f, 200.0f );
+ Vector3 size( 200.0f, 300.0f, 0.0f );
view.SetSize( size );
application.SendNotification();
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 10.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 10.0f );
+ const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 1.0f, 1.0f );
+ const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 1.0f, 1.0f );
event1.AddPoint( pointDown );
application.ProcessEvent( event1 );
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 10.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 10.0f );
+ const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 1.0f, 1.0f );
+ const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 1.0f, 1.0f );
event1.AddPoint( pointDown );
application.ProcessEvent( event1 );
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 50.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 50.0f );
+ const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 1.0f, 41.0f );
+ const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 1.0f, 41.0f );
event1.AddPoint( pointDown );
application.ProcessEvent( event1 );
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 500.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 500.0f );
+ const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 1.0f, 500.0f );
+ const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 1.0f, 500.0f );
event1.AddPoint( pointDown );
application.ProcessEvent( event1 );
}
AtlasManager::AtlasManager()
-: mAddFailPolicy( Toolkit::AtlasManager::FAIL_ON_ADD_CREATES ),
- mFilledPixel( FILLED_PIXEL )
+: mAddFailPolicy( Toolkit::AtlasManager::FAIL_ON_ADD_CREATES )
{
mNewAtlasSize.mWidth = DEFAULT_ATLAS_WIDTH;
mNewAtlasSize.mHeight = DEFAULT_ATLAS_HEIGHT;
AtlasManager::~AtlasManager()
{
- for ( SizeType i = 0; i < mAtlasList.size(); ++i )
- {
- mAtlasList[ i ].mAtlas.UploadedSignal().Disconnect( this, &AtlasManager::OnUpload );
- delete[] mAtlasList[ i ].mStripBuffer;
- }
-
- // Are there any upload signals pending? Free up those buffer images now.
- for ( SizeType i = 0; i < mUploadedImages.Size(); ++i )
- {
- delete[] mUploadedImages[ i ];
- }
-}
-
-void AtlasManager::OnUpload( Image image )
-{
- if ( mUploadedImages.Size() )
- {
- delete[] mUploadedImages[ 0 ];
- mUploadedImages.Erase( mUploadedImages.Begin() );
- }
- else
- {
- DALI_LOG_ERROR("Atlas Image Upload List should not be empty\n");
- }
}
Toolkit::AtlasManager::AtlasId AtlasManager::CreateAtlas( const Toolkit::AtlasManager::AtlasSize& size, Pixel::Format pixelformat )
Dali::Atlas atlas = Dali::Atlas::New( width, height, pixelformat );
atlas.Clear( Vector4::ZERO );
- mUploadedImages.PushBack( NULL );
AtlasDescriptor atlasDescriptor;
atlasDescriptor.mAtlas = atlas;
atlasDescriptor.mSize = size;
atlasDescriptor.mPixelFormat = pixelformat;
atlasDescriptor.mTotalBlocks = ( width / blockWidth ) * ( height / blockHeight );
atlasDescriptor.mAvailableBlocks = atlasDescriptor.mTotalBlocks - 1u;
- atlas.UploadedSignal().Connect( this, &AtlasManager::OnUpload );
-
- // What size do we need for this atlas' strip buffer ( assume 32bit pixel format )?
- SizeType neededStripSize =( blockWidth > blockHeight - DOUBLE_PIXEL_PADDING ? blockWidth : blockHeight - DOUBLE_PIXEL_PADDING ) << 2;
- atlasDescriptor.mStripBuffer = new PixelBuffer[ neededStripSize ];
- memset( atlasDescriptor.mStripBuffer, 0, neededStripSize );
-
- atlasDescriptor.mHorizontalStrip = BufferImage::New( atlasDescriptor.mStripBuffer,
- blockWidth,
- SINGLE_PIXEL_PADDING,
- pixelformat );
-
- atlasDescriptor.mVerticalStrip = BufferImage::New( atlasDescriptor.mStripBuffer,
- SINGLE_PIXEL_PADDING,
- blockHeight - DOUBLE_PIXEL_PADDING,
- pixelformat );
- mUploadedImages.PushBack( NULL );
- atlasDescriptor.mFilledPixelImage = BufferImage::New( reinterpret_cast< PixelBuffer* >( &mFilledPixel ), 1, 1, pixelformat );
- atlas.Upload( atlasDescriptor.mFilledPixelImage, 0, 0 );
+
+ atlasDescriptor.mHorizontalStrip = BufferImage::New( blockWidth, SINGLE_PIXEL_PADDING, pixelformat );
+ atlasDescriptor.mVerticalStrip = BufferImage::New( SINGLE_PIXEL_PADDING, blockHeight - DOUBLE_PIXEL_PADDING, pixelformat );
+
+ memset( atlasDescriptor.mHorizontalStrip.GetBuffer(), 0, atlasDescriptor.mHorizontalStrip.GetBufferSize() );
+ memset( atlasDescriptor.mVerticalStrip.GetBuffer(), 0, atlasDescriptor.mVerticalStrip.GetBufferSize() );
+
+ BufferImage filledPixelImage = BufferImage::New( 1u, 1u, pixelformat );
+ memset( filledPixelImage.GetBuffer(), 0xFF, filledPixelImage.GetBufferSize() );
+ atlas.Upload( filledPixelImage, 0, 0 );
Sampler sampler = Sampler::New( atlas, "sTexture" );
sampler.SetProperty( Sampler::Property::AFFECTS_TRANSPARENCY, true );
{
DALI_LOG_ERROR("Uploading image to Atlas Failed!.\n");
}
- else
- {
- mUploadedImages.PushBack( const_cast< BufferImage& >( image ).GetBuffer() );
- }
// Blit top strip
if ( !mAtlasList[ atlas ].mAtlas.Upload( mAtlasList[ atlas ].mHorizontalStrip,
{
DALI_LOG_ERROR("Uploading top strip to Atlas Failed!\n");
}
- else
- {
- mUploadedImages.PushBack( NULL );
- }
// Blit left strip
if ( !mAtlasList[ atlas ].mAtlas.Upload( mAtlasList[ atlas ].mVerticalStrip,
{
DALI_LOG_ERROR("Uploading left strip to Atlas Failed!\n");
}
- else
- {
- mUploadedImages.PushBack( NULL );
- }
// Blit bottom strip
if ( blockOffsetY + height + DOUBLE_PIXEL_PADDING <= mAtlasList[ atlas ].mSize.mHeight )
{
DALI_LOG_ERROR("Uploading bottom strip to Atlas Failed!.\n");
}
- else
- {
- mUploadedImages.PushBack( NULL );
- }
}
// Blit right strip
{
DALI_LOG_ERROR("Uploading right strip to Atlas Failed!.\n");
}
- else
- {
- mUploadedImages.PushBack( NULL );
- }
}
}
class AtlasManager;
typedef IntrusivePtr<AtlasManager> AtlasManagerPtr;
-class AtlasManager : public Dali::BaseObject, public ConnectionTracker
+class AtlasManager : public Dali::BaseObject
{
public:
Pixel::Format mPixelFormat; // pixel format used by atlas
BufferImage mHorizontalStrip; // Image used to pad upload
BufferImage mVerticalStrip; // Image used to pad upload
- BufferImage mFilledPixelImage; // Image used by atlas for operations such as underline
- PixelBuffer* mStripBuffer; // Blank image buffer used to pad upload
Material mMaterial; // material used for atlas texture
Sampler mSampler; // sampler used for atlas texture
SizeType mTotalBlocks; // total number of blocks in atlas
std::vector< AtlasDescriptor > mAtlasList; // List of atlases created
std::vector< AtlasSlotDescriptor > mImageList; // List of bitmaps store in atlases
- Vector< PixelBuffer* > mUploadedImages; // List of PixelBuffers passed to UploadedSignal
Toolkit::AtlasManager::AtlasSize mNewAtlasSize; // Atlas size to use in next creation
Toolkit::AtlasManager::AddFailPolicy mAddFailPolicy; // Policy for faling to add an Image
- SizeType mFilledPixel; // 32Bit pixel image for underlining
SizeType CheckAtlas( SizeType atlas,
SizeType width,
void PrintMeshData( const Toolkit::AtlasManager::Mesh2D& mesh );
- void OnUpload( Image image );
-
Shader mShaderL8;
Shader mShaderRgba;
Self().Add( mLabel );
}
- OnLabelSet();
+ OnLabelSet( false );
RelayoutRequest();
}
// label should be the top of the button
Self().Add( mLabel );
- OnLabelSet();
+ ResetImageLayers();
+ OnLabelSet( true );
RelayoutRequest();
}
/**
* This method is called when the label is set.
+ * @param[in] noPadding Used to bypass padding if the label is to be treated generically.
*/
- virtual void OnLabelSet() {}
+ virtual void OnLabelSet( bool noPadding ) {}
/**
* This method is called when the unselected button image is set
SetDisabledSelectedImage( DISABLED_SELECTED_BUTTON_IMAGE_DIR );
}
-void CheckBoxButton::OnLabelSet()
+void CheckBoxButton::OnLabelSet( bool noPadding )
{
Actor& label = GetLabelActor();
/**
- * @copydoc Toolkit::Internal::Button::OnButtonInitialize()
+ * @copydoc Toolkit::Internal::Button::OnButtonInitialize
*/
virtual void OnButtonInitialize();
/**
- * @copydoc Toolkit::Internal::Button::OnLabelSet()
+ * @copydoc Toolkit::Internal::Button::OnLabelSet
*/
- virtual void OnLabelSet();
+ virtual void OnLabelSet( bool noPadding );
/**
- * @copydoc Toolkit::Internal::Button::OnDisabled()
+ * @copydoc Toolkit::Internal::Button::OnDisabled
*/
virtual void OnDisabled();
return value;
}
-void PushButton::OnLabelSet()
+void PushButton::OnLabelSet( bool noPadding )
{
Actor& label = GetLabelActor();
if( label )
{
+ if( noPadding )
+ {
+ mLabelPadding = Padding( 0.0f, 0.0f, 0.0f, 0.0f );
+ }
+
Toolkit::TextLabel textLabel = Toolkit::TextLabel::DownCast( label );
if( textLabel )
{
RelayoutRequest();
}
+
void PushButton::ConfigureSizeNegotiationDimension( Dimension::Type dimension, const std::vector< Actor >& images, Actor& label )
{
ResizePolicy::Type imageResizePolicy = ResizePolicy::FILL_TO_PARENT;
private: // From Button
/**
- * @copydoc Toolkit::Internal::Button::OnButtonInitialize()
+ * @copydoc Toolkit::Internal::Button::OnButtonInitialize
*/
virtual void OnButtonInitialize();
/**
- * @copydoc Toolkit::Internal::Button::OnLabelSet()
+ * @copydoc Toolkit::Internal::Button::OnLabelSet
*/
- virtual void OnLabelSet();
+ virtual void OnLabelSet( bool noPadding );
/**
- * @copydoc Toolkit::Internal::Button::OnButtonImageSet()
+ * @copydoc Toolkit::Internal::Button::OnButtonImageSet
*/
virtual void OnButtonImageSet();
/**
- * @copydoc Toolkit::Internal::Button::OnSelectedImageSet()
+ * @copydoc Toolkit::Internal::Button::OnSelectedImageSet
*/
virtual void OnSelectedImageSet();
/**
- * @copydoc Toolkit::Internal::Button::OnBackgroundImage()
+ * @copydoc Toolkit::Internal::Button::OnBackgroundImage
*/
virtual void OnBackgroundImageSet();
/**
- * @copydoc Toolkit::Internal::Button::OnSelectedBackgroundImageSet()
+ * @copydoc Toolkit::Internal::Button::OnSelectedBackgroundImageSet
*/
virtual void OnSelectedBackgroundImageSet();
/**
- * @copydoc Toolkit::Internal::Button::OnDisabledImageSet()
+ * @copydoc Toolkit::Internal::Button::OnDisabledImageSet
*/
virtual void OnDisabledImageSet();
/**
- * @copydoc Toolkit::Internal::Button::OnDisabledSelectedImageSet()
+ * @copydoc Toolkit::Internal::Button::OnDisabledSelectedImageSet
*/
virtual void OnDisabledSelectedImageSet();
/**
- * @copydoc Toolkit::Internal::Button::OnDisabledBackgroundImageSet()
+ * @copydoc Toolkit::Internal::Button::OnDisabledBackgroundImageSet
*/
virtual void OnDisabledBackgroundImageSet();
}
}
-void RadioButton::OnLabelSet()
+void RadioButton::OnLabelSet( bool noPadding )
{
Actor& label = GetLabelActor();
private: // From Button
/**
- * @copydoc Toolkit::Internal::Button::OnButtonInitialize()
+ * @copydoc Toolkit::Internal::Button::OnButtonInitialize
*/
virtual void OnButtonInitialize();
/**
- * @copydoc Toolkit::Internal::Button::OnButtonUp()
+ * @copydoc Toolkit::Internal::Button::OnButtonUp
*/
virtual void OnButtonUp();
/**
- * @copydoc Toolkit::Internal::Button::OnSelected()
+ * @copydoc Toolkit::Internal::Button::OnSelected
*/
virtual void OnSelected();
/**
- * @copydoc Toolkit::Internal::Button::OnLabelSet()
+ * @copydoc Toolkit::Internal::Button::OnLabelSet
*/
- virtual void OnLabelSet();
+ virtual void OnLabelSet( bool noPadding );
private:
#include <dali-toolkit/public-api/text/rendering-backend.h>
#include <dali-toolkit/internal/text/layouts/layout-engine.h>
#include <dali-toolkit/internal/text/rendering/text-backend.h>
+#include <dali-toolkit/internal/text/text-view.h>
#include <dali-toolkit/internal/styling/style-manager-impl.h>
using namespace Dali::Toolkit::Text;
#include <dali-toolkit/public-api/text/rendering-backend.h>
#include <dali-toolkit/internal/text/layouts/layout-engine.h>
#include <dali-toolkit/internal/text/rendering/text-backend.h>
+#include <dali-toolkit/internal/text/text-view.h>
#include <dali-toolkit/internal/styling/style-manager-impl.h>
using Dali::Toolkit::Text::LayoutEngine;
$(toolkit_src_dir)/text/rendering/atlas/text-atlas-renderer.cpp \
$(toolkit_src_dir)/text/rendering/atlas/atlas-glyph-manager.cpp \
$(toolkit_src_dir)/text/rendering/atlas/atlas-glyph-manager-impl.cpp \
- $(toolkit_src_dir)/text/rendering/shaders/text-basic-shader.cpp \
- $(toolkit_src_dir)/text/rendering/shaders/text-basic-shadow-shader.cpp \
- $(toolkit_src_dir)/text/rendering/shaders/text-bgra-shader.cpp \
$(toolkit_src_dir)/text/rendering/text-backend-impl.cpp \
$(toolkit_src_dir)/transition-effects/cube-transition-effect-impl.cpp \
$(toolkit_src_dir)/transition-effects/cube-transition-cross-effect-impl.cpp \
void StyleManager::ApplyThemeStyleAtInit( Toolkit::Control control )
{
- if( mThemeBuilder )
- {
- ApplyStyle( mThemeBuilder, control );
- }
+ ApplyThemeStyle( control );
if(mFeedbackStyle)
{
namespace Text
{
-class LogicalModel;
-class VisualModel;
-
/**
* Sets the bidirectional info into the logical model.
*
#include <stdint.h>
#include <string>
-// INTERNAL INCLUDES
-#include <dali/public-api/common/dali-common.h>
-
namespace Dali
{
#include <dali-toolkit/internal/text/clipping/text-clipper.h>
// EXTERNAL INCLUDES
-#include <algorithm>
#include <dali/public-api/common/stage.h>
#include <dali/public-api/render-tasks/render-task-list.h>
-#include <dali/integration-api/debug.h>
namespace
{
#include <dali/public-api/actors/layer.h>
#include <dali/public-api/actors/image-actor.h>
#include <dali/public-api/actors/camera-actor.h>
-#include <dali/public-api/common/intrusive-ptr.h>
-#include <dali/public-api/math/vector2.h>
-#include <dali/public-api/object/ref-object.h>
#include <dali/public-api/render-tasks/render-task.h>
namespace Dali
// EXTERNAL INCLUDES
#include <dali/integration-api/debug.h>
-#include <dali/public-api/actors/actor.h>
+
#include <dali/public-api/adaptor-framework/timer.h>
-#include <dali/public-api/actors/image-actor.h>
#include <dali/public-api/actors/layer.h>
-#include <dali/public-api/animation/constraint.h>
-#include <dali/public-api/common/constants.h>
#include <dali/public-api/common/stage.h>
-#include <dali/public-api/events/tap-gesture.h>
-#include <dali/public-api/events/tap-gesture-detector.h>
#include <dali/public-api/events/touch-event.h>
#include <dali/public-api/events/pan-gesture.h>
-#include <dali/public-api/events/pan-gesture-detector.h>
#include <dali/public-api/images/resource-image.h>
-#include <dali/public-api/math/rect.h>
-#include <dali/public-api/math/vector2.h>
-#include <dali/public-api/math/vector4.h>
#include <dali/public-api/object/property-notification.h>
-#include <dali/public-api/signals/connection-tracker.h>
-#include <dali/devel-api/object/property-buffer.h>
#include <dali/devel-api/rendering/geometry.h>
-#include <dali/devel-api/rendering/material.h>
#include <dali/devel-api/rendering/renderer.h>
-#include <dali/devel-api/rendering/shader.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/control.h>
#include <dali-toolkit/public-api/controls/control-depth-index-ranges.h>
-#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/buttons/push-button.h>
#include <dali-toolkit/public-api/controls/default-controls/solid-color-actor.h>
-#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
-#include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
#ifdef DEBUG_ENABLED
#define DECORATOR_DEBUG
#include <dali/public-api/common/intrusive-ptr.h>
#include <dali/public-api/object/ref-object.h>
#include <dali/public-api/math/rect.h>
-#include <dali/public-api/math/vector2.h>
// INTERNAL INCLUDES
#include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
namespace Dali
{
-class Actor;
-class Image;
-class Vector2;
-class Vector4;
+struct Vector2;
+struct Vector4;
namespace Toolkit
{
-class TextSelectionPopupCallbackInterface;
-
-namespace Internal
-{
-class Control;
-}
-
namespace Text
{
// EXTERNAL INCLUDES
#include <limits>
-#include <dali/public-api/math/vector2.h>
-#include <dali/devel-api/text-abstraction/font-client.h>
#include <dali/integration-api/debug.h>
+#include <dali/devel-api/text-abstraction/font-client.h>
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/layouts/layout-parameters.h>
lineRun.extraLength = ( ellipsisLayout.wsLengthEndOfLine > 0.f ) ? ellipsisLayout.wsLengthEndOfLine - ellipsisLayout.extraWidth : 0.f;
lineRun.ascender = ellipsisLayout.ascender;
lineRun.descender = ellipsisLayout.descender;
+ lineRun.direction = !RTL;
lineRun.ellipsis = true;
actualSize.width = layoutParameters.boundingBox.width;
}
lineRun.ascender = layout.ascender;
lineRun.descender = layout.descender;
- lineRun.direction = false;
+ lineRun.direction = !RTL;
lineRun.ellipsis = false;
lines.PushBack( lineRun );
namespace Dali
{
-struct Vector2;
-
namespace Toolkit
{
*
*/
-// EXTERNAL INCLUDES
-#include <dali/public-api/math/vector2.h>
-
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/character-run.h>
// CLASS HEADER
#include <dali-toolkit/internal/text/logical-model-impl.h>
-// EXTERNAL INCLUDES
-#include <memory.h>
-
namespace Dali
{
namespace Text
{
-struct BidirectionalLineInfoRun;
-struct BidirectionalParagraphInfoRun;
-struct FontRun;
class LogicalModel;
typedef IntrusivePtr<LogicalModel> LogicalModelPtr;
-struct ScriptRun;
/**
* @brief A logical text model contains layout independent information.
#include <dali-toolkit/internal/text/multi-language-support-impl.h>
// EXTERNAL INCLUDES
-#include <memory.h>
#include <dali/integration-api/debug.h>
#include <dali/devel-api/adaptor-framework/singleton-service.h>
#include <dali/devel-api/text-abstraction/font-client.h>
-#include <dali/devel-api/text-abstraction/script.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/internal/text/logical-model-impl.h>
-#include <dali-toolkit/internal/text/font-run.h>
-#include <dali-toolkit/internal/text/script-run.h>
-#include <dali-toolkit/internal/text/text-io.h>
namespace Dali
{
} // Internal
-class LogicalModel;
-
/**
* @brief Sets the character's scripts to the model and validates the fonts set by the user or assigns default ones.
*/
#include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.h>
// EXTERNAL INCLUDES
-#include <dali/public-api/actors/image-actor.h>
-#include <dali/public-api/common/stage.h>
#include <dali/integration-api/debug.h>
#define MAKE_SHADER(A)#A
#include <dali/devel-api/adaptor-framework/singleton-service.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/internal/atlas-manager/atlas-manager-impl.h>
#include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.h>
namespace Dali
#include <dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.h>
// EXTERNAL INCLUDES
-#include <dali/dali.h>
-#include <dali/devel-api/object/property-buffer.h>
-#include <dali/devel-api/rendering/geometry.h>
+#include <dali/integration-api/debug.h>
+#include <dali/public-api/common/stage.h>
+#include <dali/public-api/images/frame-buffer-image.h>
+#include <dali/public-api/render-tasks/render-task.h>
+#include <dali/public-api/render-tasks/render-task-list.h>
#include <dali/devel-api/rendering/renderer.h>
-#include <dali/devel-api/rendering/sampler.h>
-#include <dali/devel-api/rendering/shader.h>
+#include <dali/devel-api/rendering/geometry.h>
#include <dali/devel-api/text-abstraction/font-client.h>
-#include <dali/integration-api/debug.h>
+
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-depth-index-ranges.h>
#include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h>
+#include <dali-toolkit/internal/text/text-view.h>
using namespace Dali;
using namespace Dali::Toolkit;
}
struct AtlasRenderer::Impl : public ConnectionTracker
{
-
enum Style
{
STYLE_NORMAL,
struct MeshRecord
{
+ MeshRecord()
+ : mColor( Color::BLACK ),
+ mAtlasId( 0 )
+ {
+ }
+
Vector4 mColor;
uint32_t mAtlasId;
AtlasManager::Mesh2D mMesh;
FrameBufferImage mBuffer;
- bool mIsUnderline;
};
struct Extent
{
+ Extent()
+ : mBaseLine( 0.0f ),
+ mLeft( 0.0f ),
+ mRight( 0.0f ),
+ mUnderlinePosition( 0.0f ),
+ mUnderlineThickness( 0.0f ),
+ mMeshRecordIndex( 0 )
+ {
+ }
+
float mBaseLine;
float mLeft;
float mRight;
struct MaxBlockSize
{
+ MaxBlockSize()
+ : mFontId( 0 ),
+ mNeededBlockWidth( 0 ),
+ mNeededBlockHeight( 0 )
+ {
+ }
+
FontId mFontId;
uint32_t mNeededBlockWidth;
uint32_t mNeededBlockHeight;
struct CheckEntry
{
+ CheckEntry()
+ : mFontId( 0 ),
+ mIndex( 0 )
+ {
+ }
+
FontId mFontId;
Text::GlyphIndex mIndex;
};
struct TextCacheEntry
{
+ TextCacheEntry()
+ : mFontId( 0 ),
+ mIndex( 0 ),
+ mImageId( 0 )
+ {
+ }
+
FontId mFontId;
Text::GlyphIndex mIndex;
uint32_t mImageId;
// Avoid emptying mTextCache (& removing references) until after incremented references for the new text
Vector< TextCacheEntry > newTextCache;
+ const GlyphInfo* const glyphsBuffer = glyphs.Begin();
for( uint32_t i = 0, glyphSize = glyphs.Size(); i < glyphSize; ++i )
{
- const GlyphInfo& glyph = glyphs[ i ];
+ const GlyphInfo& glyph = *( glyphsBuffer + i );
// No operation for white space
if ( glyph.width && glyph.height )
FontMetrics fontMetrics;
mFontClient.GetFontMetrics( glyph.fontId, fontMetrics );
currentUnderlinePosition = ceil( fabsf( fontMetrics.underlinePosition ) );
- float descender = ceil( fabsf( fontMetrics.descender ) );
+ const float descender = ceil( fabsf( fontMetrics.descender ) );
if ( underlineHeight == ZERO )
{
slot );
lastFontId = glyph.fontId;
}
- }
+ } // glyphs
// Now remove references for the old text
RemoveText();
actor.SetParentOrigin( ParentOrigin::CENTER ); // Keep all of the origins aligned
actor.SetSize( actorSize );
actor.SetColor( meshRecord.mColor );
-
- if ( meshRecord.mIsUnderline )
- {
- actor.SetColorMode( USE_OWN_COLOR );
- }
- else
- {
- actor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR );
- }
return actor;
}
// Check to see if there's a mesh data object that references the same atlas ?
uint32_t index = 0;
- for ( std::vector< MeshRecord >::iterator mIt = meshContainer.begin(); mIt != meshContainer.end(); ++mIt, ++index )
+ for ( std::vector< MeshRecord >::iterator mIt = meshContainer.begin(),
+ mEndIt = meshContainer.end();
+ mIt != mEndIt;
+ ++mIt, ++index )
{
if ( slot.mAtlasId == mIt->mAtlasId && color == mIt->mColor )
{
meshRecord.mAtlasId = slot.mAtlasId;
meshRecord.mMesh = newMesh;
meshRecord.mColor = color;
- meshRecord.mIsUnderline = false;
meshContainer.push_back( meshRecord );
// Adjust extents for this new meshrecord
float underlineThickness )
{
bool foundExtent = false;
- for ( Vector< Extent >::Iterator eIt = extents.Begin(); eIt != extents.End(); ++eIt )
+ for ( Vector< Extent >::Iterator eIt = extents.Begin(),
+ eEndIt = extents.End();
+ eIt != eEndIt;
+ ++eIt )
{
if ( Equals( baseLine, eIt->mBaseLine ) )
{
}
}
- void GenerateUnderlines( std::vector< MeshRecord>& meshRecords,
+ void GenerateUnderlines( std::vector< MeshRecord >& meshRecords,
Vector< Extent >& extents,
const Vector4& underlineColor,
const Vector4& textColor )
{
AtlasManager::Mesh2D newMesh;
unsigned short faceIndex = 0;
- for ( Vector< Extent >::ConstIterator eIt = extents.Begin(); eIt != extents.End(); ++eIt )
+ for ( Vector< Extent >::ConstIterator eIt = extents.Begin(),
+ eEndIt = extents.End();
+ eIt != eEndIt;
+ ++eIt )
{
AtlasManager::Vertex2D vert;
uint32_t index = eIt->mMeshRecordIndex;
record.mMesh = newMesh;
record.mAtlasId = meshRecords[ index ].mAtlasId;
record.mColor = underlineColor;
- record.mIsUnderline = true;
meshRecords.push_back( record );
}
}
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/rendering/text-renderer.h>
-#include <dali-toolkit/internal/text/text-definitions.h>
namespace Dali
{
+++ /dev/null
-/*
- * Copyright (c) 2015 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali-toolkit/internal/text/rendering/text-renderer.h>
-#include <dali/public-api/shader-effects/shader-effect.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Text
-{
-
-namespace BasicShader
-{
-
-Dali::ShaderEffect New()
-{
- std::string vertexShader = DALI_COMPOSE_SHADER(
- uniform mediump vec4 uTextureRect;\n
- void main()\n
- {\n
- gl_Position = uMvpMatrix * vec4( aPosition.xy, 0.0, 1.0 );\n
- vTexCoord = aTexCoord.xy;\n
- }\n
- );
-
- std::string fragmentShader = DALI_COMPOSE_SHADER(
- void main()\n
- {\n
- mediump vec4 color = texture2D( sTexture, vTexCoord );
- gl_FragColor = vec4(uColor.rgb, uColor.a*color.r);
- }\n
- );
-
- Dali::ShaderEffect shaderEffect = Dali::ShaderEffect::New( vertexShader, fragmentShader,
- Dali::ShaderEffect::GeometryHints( Dali::ShaderEffect::HINT_NONE ) );
- return shaderEffect;
-}
-
-} // namespace BasicShader
-
-} // namespace Text
-
-} // namespace Toolkit
-
-} // namespace Dali
+++ /dev/null
-#ifndef __DALI_TOOLKIT_TEXT_BASIC_SHADER_H__
-#define __DALI_TOOLKIT_TEXT_BASIC_SHADER_H__
-
-/*
- * Copyright (c) 2015 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/shader-effects/shader-effect.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Text
-{
-
-/**
- * @brief A basic shader for rendering glyphs in Pixel::L8 format.
- */
-namespace BasicShader
-{
-
-/**
- * Create a basic text shader.
- * @return A handle to a newly allocated ShaderEffect
- */
-Dali::ShaderEffect New();
-
-} // namespace BasicShader
-
-} // namespace Text
-
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // __DALI_TOOLKIT_TEXT_BASIC_SHADER_H__
+++ /dev/null
-/*
- * Copyright (c) 2015 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali-toolkit/internal/text/rendering/text-renderer.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Text
-{
-
-namespace BasicShadowShader
-{
-/*
-Dali::ShaderEffect New()
-{
- std::string vertexShader = DALI_COMPOSE_SHADER(
- void main()\n
- {\n
- gl_Position = vec4( aPosition.xy, 0.0, 1.0 );\n
- vTexCoord = aTexCoord.xy;\n
- }\n
- );
-
- std::string fragmentShader = DALI_COMPOSE_SHADER(
- void main()\n
- {\n
- mediump vec4 color = texture2D( sTexture, vTexCoord );
- gl_FragColor = vec4(uColor.rgb, uColor.a*color.r);
- }\n
- );
-
- Dali::ShaderEffect shaderEffect = Dali::ShaderEffect::New( vertexShader, fragmentShader,
- Dali::ShaderEffect::GeometryHints( Dali::ShaderEffect::HINT_NONE ) );
- return shaderEffect;
-}
-*/
-} // namespace BasicShadowShader
-
-} // namespace Text
-
-} // namespace Toolkit
-
-} // namespace Dali
+++ /dev/null
-/*
- * Copyright (c) 2015 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// INTERNAL HEADERS
-#include <dali-toolkit/internal/text/rendering/text-renderer.h>
-#include <dali/public-api/shader-effects/shader-effect.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Text
-{
-
-namespace BgraShader
-{
-
-Dali::ShaderEffect New()
-{
- std::string vertexShader = DALI_COMPOSE_SHADER(
- uniform mediump vec4 uTextureRect;\n
- void main()\n
- {\n
- gl_Position = uMvpMatrix * vec4( aPosition.xy, 0.0, 1.0 );\n
- vTexCoord = aTexCoord.xy;\n
- }\n
- );
-
- std::string fragmentShader = DALI_COMPOSE_SHADER(
- void main()\n
- {\n
- gl_FragColor = texture2D( sTexture, vTexCoord );
- }\n
- );
-
- Dali::ShaderEffect shaderEffect = Dali::ShaderEffect::New( vertexShader, fragmentShader,
- Dali::ShaderEffect::GeometryHints( Dali::ShaderEffect::HINT_NONE ) );
- return shaderEffect;
-}
-
-} // namespace BGRAShader
-
-} // namespace Text
-
-} // namespace Toolkit
-
-} // namespace Dali
-
+++ /dev/null
-
-#ifndef __DALI_TOOLKIT_TEXT_BGRA_SHADER_H__
-#define __DALI_TOOLKIT_TEXT_BGRA_SHADER_H__
-
-/*
- * Copyright (c) 2015 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/shader-effects/shader-effect.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Text
-{
-
-/**
- * @brief A BGRA shader for rendering glyphs.
- */
-namespace BgraShader
-{
-
-/**
- * Create a basic text shader.
- * @return A handle to a newly allocated ShaderEffect
- */
-Dali::ShaderEffect New();
-
-} // namespace BGRAShader
-
-} // namespace Text
-
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // __DALI_TOOLKIT_TEXT_BGRA_SHADER_H__
#include <dali-toolkit/internal/text/rendering/text-backend-impl.h>
// EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
#include <dali/integration-api/debug.h>
+#include <dali/devel-api/adaptor-framework/singleton-service.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/text/rendering-backend.h>
#include <dali/public-api/common/intrusive-ptr.h>
#include <dali/public-api/object/ref-object.h>
-// INTERNAL INCLUDES
-#include <dali-toolkit/internal/text/text-view-interface.h>
-
namespace Dali
{
class Renderer;
typedef IntrusivePtr<Renderer> RendererPtr;
+class ViewInterface;
+
/**
* @brief Abstract base class for Text renderers.
*
#include <dali-toolkit/internal/text/shaper.h>
// EXTERNAL INCLUDES
-#include <dali/devel-api/text-abstraction/script.h>
#include <dali/devel-api/text-abstraction/shaping.h>
-// INTERNAL INCLUDES
-#include <dali-toolkit/internal/text/font-run.h>
-#include <dali-toolkit/internal/text/logical-model-impl.h>
-#include <dali-toolkit/internal/text/script-run.h>
-#include <dali-toolkit/internal/text/visual-model-impl.h>
-
namespace Dali
{
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/bidirectional-support.h>
#include <dali-toolkit/internal/text/character-set-conversion.h>
-#include <dali-toolkit/internal/text/layouts/layout-parameters.h>
#include <dali-toolkit/internal/text/multi-language-support.h>
-#include <dali-toolkit/internal/text/script-run.h>
#include <dali-toolkit/internal/text/segmentation.h>
#include <dali-toolkit/internal/text/shaper.h>
-#include <dali-toolkit/internal/text/text-io.h>
-#include <dali-toolkit/internal/text/text-view.h>
namespace
{
// EXTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/clipboard.h>
-#include <dali/devel-api/adaptor-framework/imf-manager.h>
#include <dali/devel-api/text-abstraction/font-client.h>
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/layouts/layout-engine.h>
#include <dali-toolkit/internal/text/logical-model-impl.h>
#include <dali-toolkit/internal/text/text-controller.h>
+#include <dali-toolkit/internal/text/text-view.h>
#include <dali-toolkit/internal/text/visual-model-impl.h>
namespace Dali
~Impl()
{
+ delete mFontDefaults;
delete mEventData;
}
// EXTERNAL INCLUDES
#include <limits>
-#include <iostream>
#include <dali/public-api/adaptor-framework/key.h>
#include <dali/integration-api/debug.h>
#include <dali/devel-api/adaptor-framework/clipboard-event-notifier.h>
#include <dali-toolkit/internal/text/bidirectional-support.h>
#include <dali-toolkit/internal/text/character-set-conversion.h>
#include <dali-toolkit/internal/text/layouts/layout-parameters.h>
-#include <dali-toolkit/internal/text/multi-language-support.h>
-#include <dali-toolkit/internal/text/script-run.h>
-#include <dali-toolkit/internal/text/segmentation.h>
-#include <dali-toolkit/internal/text/shaper.h>
#include <dali-toolkit/internal/text/text-controller-impl.h>
-#include <dali-toolkit/internal/text/text-io.h>
-#include <dali-toolkit/internal/text/text-view.h>
namespace
{
ShowPlaceholderText();
}
+ mImpl->mEventData->mUpdateCursorPosition = true; //If editing started without tap event, cursor update must be triggered.
mImpl->RequestRelayout();
}
}
*/
// EXTERNAL INCLUDES
-#include <string>
#include <dali/devel-api/adaptor-framework/imf-manager.h>
-#include <dali/public-api/common/dali-vector.h>
-#include <dali/public-api/common/intrusive-ptr.h>
#include <dali/public-api/events/gesture.h>
-#include <dali/public-api/events/key-event.h>
-#include <dali/public-api/math/vector3.h>
-#include <dali/public-api/math/vector2.h>
-#include <dali/public-api/object/ref-object.h>
// INTERNAL INCLUDES
#include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup-callback-interface.h>
#include <dali-toolkit/internal/text/decorator/text-decorator.h>
-#include <dali-toolkit/internal/text/font-run.h>
#include <dali-toolkit/internal/text/layouts/layout-engine.h>
#include <dali-toolkit/internal/text/text-control-interface.h>
-#include <dali-toolkit/internal/text/text-view.h>
namespace Dali
{
{
class Controller;
-class LayoutEngine;
+class View;
typedef IntrusivePtr<Controller> ControllerPtr;
typedef Dali::Toolkit::Text::ControlInterface ControlInterface;
*
*/
-// EXTERNAL INCLUDES
-#include <dali/public-api/math/vector4.h>
-
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/text-definitions.h>
{
struct Vector2;
+struct Vector4;
namespace Toolkit
{
namespace Text
{
-struct LineRun;
-
/**
* @brief Abstract interface to provide the information necessary displaying text.
*
return Vector2::ZERO;
}
+Length View::GetNumberOfGlyphs() const
+{
+ if( mImpl->mVisualModel )
+ {
+ const VisualModel& model = *mImpl->mVisualModel;
+
+ const Length glyphCount = model.mGlyphs.Count();
+ const Length positionCount = model.mGlyphPositions.Count();
+
+ DALI_ASSERT_DEBUG( positionCount <= glyphCount && "Invalid glyph positions in Model" );
+
+ return (positionCount < glyphCount) ? positionCount : glyphCount;
+ }
+
+ return 0;
+}
+
Length View::GetGlyphs( GlyphInfo* glyphs,
Vector2* glyphPositions,
GlyphIndex glyphIndex,
const Vector4& View::GetTextColor() const
{
- if ( mImpl->mVisualModel )
+ if( mImpl->mVisualModel )
{
- VisualModel& model = *mImpl->mVisualModel;
- return model.GetTextColor();
+ return mImpl->mVisualModel->GetTextColor();
}
return Vector4::ZERO;
}
const Vector2& View::GetShadowOffset() const
{
- if ( mImpl->mVisualModel )
+ if( mImpl->mVisualModel )
{
- VisualModel& model = *mImpl->mVisualModel;
- return model.GetShadowOffset();
+ return mImpl->mVisualModel->GetShadowOffset();
}
return Vector2::ZERO;
}
const Vector4& View::GetShadowColor() const
{
- if ( mImpl->mVisualModel )
+ if( mImpl->mVisualModel )
{
- VisualModel& model = *mImpl->mVisualModel;
- return model.GetShadowColor();
+ return mImpl->mVisualModel->GetShadowColor();
}
return Vector4::ZERO;
}
const Vector4& View::GetUnderlineColor() const
{
- if ( mImpl->mVisualModel )
+ if( mImpl->mVisualModel )
{
- VisualModel& model = *mImpl->mVisualModel;
- return model.GetUnderlineColor();
+ return mImpl->mVisualModel->GetUnderlineColor();
}
return Vector4::ZERO;
}
bool View::IsUnderlineEnabled() const
{
- if ( mImpl->mVisualModel )
+ if( mImpl->mVisualModel )
{
- VisualModel& model = *mImpl->mVisualModel;
- return model.IsUnderlineEnabled();
+ return mImpl->mVisualModel->IsUnderlineEnabled();
}
return false;
}
float View::GetUnderlineHeight() const
{
- if ( mImpl->mVisualModel )
+ if( mImpl->mVisualModel )
{
- VisualModel& model = *mImpl->mVisualModel;
- return model.GetUnderlineHeight();
+ return mImpl->mVisualModel->GetUnderlineHeight();
}
return 0.0f;
}
-Length View::GetNumberOfGlyphs() const
-{
- if( mImpl->mVisualModel )
- {
- VisualModel& model = *mImpl->mVisualModel;
-
- const Length glyphCount = model.mGlyphs.Count();
- const Length positionCount = model.mGlyphPositions.Count();
-
- DALI_ASSERT_DEBUG( positionCount <= glyphCount && "Invalid glyph positions in Model" );
-
- return (positionCount < glyphCount) ? positionCount : glyphCount;
- }
-
- return 0;
-}
} // namespace Text
namespace Dali
{
-struct Vector2;
-
namespace Toolkit
{
// EXTERNAL INCLUDES
#include <memory.h>
-#include <dali/public-api/math/vector2.h>
namespace Dali
{
// EXTERNAL INCLUDES
#include <dali/public-api/common/dali-vector.h>
#include <dali/public-api/common/intrusive-ptr.h>
+#include <dali/public-api/math/vector2.h>
#include <dali/public-api/math/vector4.h>
#include <dali/public-api/object/ref-object.h>
namespace Dali
{
-struct Vector2;
-
namespace Toolkit
{
namespace Text
{
-struct LineRun;
class VisualModel;
typedef IntrusivePtr<VisualModel> VisualModelPtr;
const unsigned int TOOLKIT_MAJOR_VERSION = 1;
const unsigned int TOOLKIT_MINOR_VERSION = 0;
-const unsigned int TOOLKIT_MICRO_VERSION = 50;
+const unsigned int TOOLKIT_MICRO_VERSION = 51;
const char * const TOOLKIT_BUILD_DATE = __DATE__ " " __TIME__;
#ifdef DEBUG_ENABLED
Name: dali-toolkit
Summary: The OpenGLES Canvas Core Library Toolkit
-Version: 1.0.50
+Version: 1.0.51
Release: 1
Group: System/Libraries
License: Apache-2.0