#include <harfbuzz/hb-ft.h>
#include <ft2build.h>
+#include <iostream>
namespace Dali
{
{
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_HANGUL,
HB_SCRIPT_HIRAGANA,
HB_SCRIPT_KATAKANA,
+ HB_SCRIPT_BOPOMOFO,
HB_SCRIPT_BENGALI,
HB_SCRIPT_MYANMAR,
HB_SCRIPT_LAO,
HB_SCRIPT_THAI,
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
};
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 );
hb_glyph_info_t* glyphInfo = hb_buffer_get_glyph_infos( harfBuzzBuffer, &glyphCount );
hb_glyph_position_t *glyphPositions = hb_buffer_get_glyph_positions( harfBuzzBuffer, &glyphCount );
const GlyphIndex lastGlyphIndex = glyphCount - 1u;
+
for( GlyphIndex i = 0u; i < glyphCount; )
{
if( rtlDirection )