#ifndef _BUILD_NATIVE_TEXT_MEASURER_EMBED_H_ #define _BUILD_NATIVE_TEXT_MEASURER_EMBED_H_ #include "../js_internal/js_base.h" #if defined(__ANDROID__) || defined(_IOS) #define SUPPORT_HARFBUZZ_SHAPER #endif using namespace NSJSBase; class JS_DECL CTextMeasurerEmbed : public CJSEmbedObject { private: void* m_hyphen_engine; public: CTextMeasurerEmbed(); ~CTextMeasurerEmbed(); public: JSSmart FT_Malloc(JSSmart typed_array_or_len); JSSmart FT_Free(JSSmart pointer); JSSmart FT_Init(); JSSmart FT_Set_TrueType_HintProp(JSSmart library, JSSmart tt_interpreter); JSSmart FT_Open_Face(JSSmart library, JSSmart memory, JSSmart size, JSSmart face_index); JSSmart FT_Open_Face2(JSSmart library, JSSmart array, JSSmart face_index); JSSmart FT_GetFaceInfo(JSSmart face); JSSmart FT_Load_Glyph(JSSmart face, JSSmart gid, JSSmart mode); JSSmart FT_Get_Glyph_Measure_Params(JSSmart face, JSSmart is_vector); JSSmart FT_Get_Glyph_Render_Params(JSSmart face, JSSmart render_mode); JSSmart FT_Get_Glyph_Render_Buffer(JSSmart face, JSSmart size); JSSmart FT_Set_Transform(JSSmart face, JSSmart xx, JSSmart yx, JSSmart xy, JSSmart yy); JSSmart FT_Set_Char_Size(JSSmart face, JSSmart char_width, JSSmart char_height, JSSmart hres, JSSmart vres); JSSmart FT_SetCMapForCharCode(JSSmart face, JSSmart unicode); JSSmart FT_GetKerningX(JSSmart face, JSSmart gid1, JSSmart gid2); JSSmart FT_GetFaceMaxAdvanceX(JSSmart face); #ifdef SUPPORT_HARFBUZZ_SHAPER JSSmart HB_LanguageFromString(JSSmart language_bcp_47); JSSmart HB_ShapeText(JSSmart face, JSSmart font, JSSmart text, JSSmart nFeatures, JSSmart nScript, JSSmart nDirection, JSSmart nLanguage); JSSmart HB_FontMalloc(); JSSmart HB_FontFree(JSSmart font); #endif JSSmart Hyphen_SetCacheSize(JSSmart size); JSSmart Hyphen_Word(JSSmart lang, JSSmart word); JSSmart Hyphen_IsDictionaryExist(JSSmart lang); DECLARE_EMBED_METHODS }; #endif // _BUILD_NATIVE_TEXT_MEASURER_EMBED_H_