Protecting test cases from memory scribbling
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-text-abstraction.cpp
old mode 100644 (file)
new mode 100755 (executable)
index d06ba71..cae7871
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
@@ -22,7 +22,7 @@
 #include <dali/devel-api/text-abstraction/segmentation.h>
 #include <dali/devel-api/text-abstraction/shaping.h>
 #include <dali/public-api/object/base-object.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <cstring>
 
 using namespace Dali;
@@ -70,7 +70,8 @@ public:
     }
     return bidirectionalSupportHandle;
   }
-  BidiInfoIndex CreateInfo( const Character* const paragraph, Length numberOfCharacters ){return 0;}
+  BidiInfoIndex CreateInfo( const Character* const paragraph, Length numberOfCharacters,
+                            bool matchSystemLanguageDirection, LayoutDirection::Type layoutDirection ){return 0;}
 
   void DestroyInfo( BidiInfoIndex bidiInfoIndex )
   {
@@ -100,8 +101,7 @@ class FontClient : public BaseObject
 {
 public:
   FontClient()
-  : mDpiHorizontal( 0 ),
-    mDpiVertical( 0 )
+  : mGlyphInfo()
   {
   }
 
@@ -152,16 +152,16 @@ public:
   void GetFontMetrics( FontId fontId, FontMetrics& metrics ){}
   GlyphIndex GetGlyphIndex( FontId fontId, Character charcode ){return 0;}
   bool GetGlyphMetrics( GlyphInfo* array, uint32_t size, bool horizontal ){return true;}
-  PixelData CreateBitmap( FontId fontId, GlyphIndex glyphIndex ){return PixelData();}
+  void CreateBitmap( FontId fontId, GlyphIndex glyphIndex, bool softwareItailc, bool softwareBold, Dali::TextAbstraction::FontClient::GlyphBufferData& data, int outlineWidth ){}
+  PixelData CreateBitmap( FontId fontId, GlyphIndex glyphIndex, int outlineWidth ){return PixelData();}
   void CreateVectorBlob( FontId fontId, GlyphIndex glyphIndex, VectorBlob*& blob,
                          unsigned int& blobLength, unsigned int& nominalWidth, unsigned int& nominalHeight )
   {
     blobLength = 0;
   }
   const GlyphInfo& GetEllipsisGlyph( PointSize26Dot6 pointSize ){return mGlyphInfo;}
+  bool IsColorGlyph( FontId fontId, GlyphIndex glyphIndex ){return false;}
 private:
-  unsigned int mDpiHorizontal;
-  unsigned int mDpiVertical;
   GlyphInfo    mGlyphInfo;
 }; // class FontClient
 
@@ -169,8 +169,11 @@ private:
 class Shaping : public BaseObject
 {
 public:
-  Shaping() : mText(NULL)
-  {}
+  Shaping()
+  : mText( NULL ),
+    mNumChars( 0 )
+  {
+  }
 
   ~Shaping()
   {
@@ -252,13 +255,6 @@ inline static TextAbstraction::Internal::FontClient& GetImplementation(TextAbstr
   return static_cast<TextAbstraction::Internal::FontClient&>(handle);
 }
 
-inline static const TextAbstraction::Internal::FontClient& GetImplementation(const TextAbstraction::FontClient& fontClient)
-{
-  DALI_ASSERT_ALWAYS( fontClient && "fontClient handle is empty" );
-  const BaseObject& handle = fontClient.GetBaseObject();
-  return static_cast<const TextAbstraction::Internal::FontClient&>(handle);
-}
-
 inline static TextAbstraction::Internal::Shaping& GetImplementation(TextAbstraction::Shaping& shaping)
 {
   DALI_ASSERT_ALWAYS( shaping && "shaping handle is empty" );
@@ -266,13 +262,6 @@ inline static TextAbstraction::Internal::Shaping& GetImplementation(TextAbstract
   return static_cast<TextAbstraction::Internal::Shaping&>(handle);
 }
 
-inline static const TextAbstraction::Internal::Shaping& GetImplementation(const TextAbstraction::Shaping& shaping)
-{
-  DALI_ASSERT_ALWAYS( shaping && "shaping handle is empty" );
-  const BaseObject& handle = shaping.GetBaseObject();
-  return static_cast<const TextAbstraction::Internal::Shaping&>(handle);
-}
-
 
 ////////////////////////////////////////////////////////////////////////////////
 /******************************************************************************/
@@ -300,9 +289,11 @@ BidirectionalSupport BidirectionalSupport::Get()
 }
 
 BidiInfoIndex BidirectionalSupport::CreateInfo( const Character* const paragraph,
-                                                Length numberOfCharacters )
+                                                Length numberOfCharacters,
+                                                bool matchSystemLanguageDirection,
+                                                LayoutDirection::Type layoutDirection )
 {
-  return GetImplementation( *this ).CreateInfo( paragraph, numberOfCharacters );
+  return GetImplementation( *this ).CreateInfo( paragraph, numberOfCharacters, matchSystemLanguageDirection, layoutDirection );
 }
 
 void BidirectionalSupport::DestroyInfo( BidiInfoIndex bidiInfoIndex )
@@ -356,6 +347,14 @@ FontClient::FontClient( const FontClient& handle )
 {
 }
 
+FontClient::GlyphBufferData::GlyphBufferData()
+{
+}
+
+FontClient::GlyphBufferData::~GlyphBufferData()
+{
+}
+
 FontClient& FontClient::operator=( const FontClient& handle )
 {
   BaseHandle::operator=( handle );
@@ -462,11 +461,15 @@ bool FontClient::GetGlyphMetrics( GlyphInfo* array, uint32_t size, GlyphType typ
   return GetImplementation(*this).GetGlyphMetrics( array, size, horizontal );
 }
 
-PixelData FontClient::CreateBitmap( FontId fontId, GlyphIndex glyphIndex )
+void FontClient::CreateBitmap( FontId fontId, GlyphIndex glyphIndex, bool softwareItailc, bool softwareBold, Dali::TextAbstraction::FontClient::GlyphBufferData& data, int outlineWidth )
 {
-  return GetImplementation(*this).CreateBitmap( fontId, glyphIndex );
+  GetImplementation(*this).CreateBitmap( fontId, glyphIndex, softwareItailc, softwareBold, data, outlineWidth );
 }
 
+PixelData FontClient::CreateBitmap( FontId fontId, GlyphIndex glyphIndex, int outlineWidth )
+{
+  return GetImplementation(*this).CreateBitmap( fontId, glyphIndex, outlineWidth );
+}
 
 void FontClient::CreateVectorBlob( FontId fontId,
                                    GlyphIndex glyphIndex,
@@ -483,6 +486,11 @@ const GlyphInfo& FontClient::GetEllipsisGlyph( PointSize26Dot6 pointSize )
   return GetImplementation(*this).GetEllipsisGlyph( pointSize );
 }
 
+bool FontClient::IsColorGlyph( FontId fontId, GlyphIndex glyphIndex )
+{
+  return GetImplementation(*this).IsColorGlyph( fontId, glyphIndex );
+}
+
 FontClient::FontClient( Internal::FontClient* internal )
 : BaseHandle( internal )
 {