Revert "Add logs to check glyphs retrieved from HarfBuzz while shaping complex text"
[platform/core/uifw/dali-adaptor.git] / text / dali / internal / text-abstraction / shaping-impl.cpp
index b0702df..24c542c 100644 (file)
@@ -20,8 +20,8 @@
 
 // INTERNAL INCLUDES
 #include <singleton-service-impl.h>
-#include <dali/public-api/text-abstraction/font-client.h>
-#include <dali/public-api/text-abstraction/glyph-info.h>
+#include <dali/devel-api/text-abstraction/font-client.h>
+#include <dali/devel-api/text-abstraction/glyph-info.h>
 #include <dali/integration-api/debug.h>
 
 // EXTERNAL INCLUDES
@@ -29,6 +29,7 @@
 #include <harfbuzz/hb-ft.h>
 
 #include <ft2build.h>
+#include <iostream>
 
 namespace Dali
 {
@@ -45,24 +46,69 @@ const float        FROM_266 = 1.0f / 64.0f;
 
 const hb_script_t SCRIPT_TO_HARFBUZZ[] =
 {
+  HB_SCRIPT_COMMON,
+
+  HB_SCRIPT_COMMON, // ASCII_DIGITS
+  HB_SCRIPT_COMMON, // ASCII_PS
+
+  HB_SCRIPT_COMMON, // C1_CONTROLS
+  HB_SCRIPT_COMMON, // C1_PS
+  HB_SCRIPT_COMMON, // C1_MATH
+  HB_SCRIPT_COMMON, // SML_P
+  HB_SCRIPT_COMMON, // PHONETIC_U
+  HB_SCRIPT_COMMON, // PHONETIC_SS
+  HB_SCRIPT_COMMON, // NUMERIC_SS
+  HB_SCRIPT_COMMON, // LETTER_LIKE
+  HB_SCRIPT_COMMON, // NUMBER_FORMS
+  HB_SCRIPT_COMMON, // FRACTIONS_NF
+  HB_SCRIPT_COMMON, // NON_LATIN_LED
+  HB_SCRIPT_COMMON, // HWFW_S
+
+  HB_SCRIPT_CYRILLIC,
+  HB_SCRIPT_GREEK,
   HB_SCRIPT_LATIN,
+
   HB_SCRIPT_ARABIC,
-  HB_SCRIPT_DEVANAGARI,
+  HB_SCRIPT_HEBREW,
+
+  HB_SCRIPT_ARMENIAN,
+  HB_SCRIPT_GEORGIAN,
+
+  HB_SCRIPT_HAN,
+  HB_SCRIPT_HANGUL,
+  HB_SCRIPT_HIRAGANA,
+  HB_SCRIPT_KATAKANA,
+  HB_SCRIPT_BOPOMOFO,
+
   HB_SCRIPT_BENGALI,
-  HB_SCRIPT_GURMUKHI,
+  HB_SCRIPT_MYANMAR,
+  HB_SCRIPT_DEVANAGARI,
   HB_SCRIPT_GUJARATI,
-  HB_SCRIPT_ORIYA,
-  HB_SCRIPT_TAMIL,
-  HB_SCRIPT_TELUGU,
+  HB_SCRIPT_GURMUKHI,
   HB_SCRIPT_KANNADA,
   HB_SCRIPT_MALAYALAM,
+  HB_SCRIPT_ORIYA,
   HB_SCRIPT_SINHALA,
-  HB_SCRIPT_HAN,
-  HB_SCRIPT_HANGUL,
-  HB_SCRIPT_KHMER,
+  HB_SCRIPT_TAMIL,
+  HB_SCRIPT_TELUGU,
+
   HB_SCRIPT_LAO,
   HB_SCRIPT_THAI,
-  HB_SCRIPT_MYANMAR,
+  HB_SCRIPT_KHMER,
+  HB_SCRIPT_JAVANESE,
+  HB_SCRIPT_SUNDANESE,
+
+  HB_SCRIPT_ETHIOPIC,
+  HB_SCRIPT_OL_CHIKI,
+  HB_SCRIPT_TAGALOG,
+  HB_SCRIPT_MEETEI_MAYEK,
+
+  HB_SCRIPT_UNKNOWN, // EMOJI
+  HB_SCRIPT_UNKNOWN, // SYMBOLS1
+  HB_SCRIPT_UNKNOWN, // SYMBOLS2
+  HB_SCRIPT_UNKNOWN, // SYMBOLS3
+  HB_SCRIPT_UNKNOWN, // SYMBOLS4
+  HB_SCRIPT_UNKNOWN, // SYMBOLS5
   HB_SCRIPT_UNKNOWN
 };
 
@@ -149,9 +195,13 @@ struct Shaping::Plugin
     hb_buffer_set_script( harfBuzzBuffer,
                           SCRIPT_TO_HARFBUZZ[ script ] ); /* see hb-unicode.h */
 
-    hb_buffer_set_language( harfBuzzBuffer,
-                            hb_language_from_string( DEFAULT_LANGUAGE,
-                                                     DEFAULT_LANGUAGE_LENGTH ) );
+
+    char* currentLocale = setlocale(LC_MESSAGES,NULL);
+
+    std::istringstream stringStream( currentLocale );
+    std::string localeString;
+    std::getline(stringStream, localeString, '_');
+    hb_buffer_set_language( harfBuzzBuffer, hb_language_from_string( localeString.c_str(), localeString.size() ) );
 
     /* Layout the text */
     hb_buffer_add_utf32( harfBuzzBuffer, text, numberOfCharacters, 0u, numberOfCharacters );