float android_font_measure_text(void *p_font, const char *p_text, uint32_t p_text_length, bool p_is_unicode) { MCAndroidFont *t_font = (MCAndroidFont*)p_font; SkPaint t_paint; t_paint.setTypeface(t_font->sk_typeface); t_paint.setTextSize(t_font->size); if (p_is_unicode) { t_paint.setTextEncoding(SkPaint::kUTF16_TextEncoding); return t_paint.measureText(p_text, p_text_length); } else { MCExecPoint ep; ep.setsvalue(MCString(p_text, p_text_length)); ep.nativetoutf8(); const MCString &t_utf_string = ep.getsvalue(); t_paint.setTextEncoding(SkPaint::kUTF8_TextEncoding); return t_paint.measureText(t_utf_string.getstring(), t_utf_string.getlength()); } }