Unicode font rendering

I need to rendering my language text(Khmer).
Our language have some tricky rendering when it come to vowel and subscript and superscript.
For example: This is a vowel: ោ when we combine with its a consonant( ខ ). It’ll become ខោ
ោ + ខ = ខោ
Any suggestion to get this rendering correctly?


Can you preprocess the texts like this?

char buf[64];
my_txt_proc("Some Khmer text", buf);
lv_label_set_text(label1, buf);

I think only freeType lib can handle it.

AFAIK, FreeType is only for drawing characters. To replace characters with different forms, join two characters into one, and in general get the characters position in a text HarfBuzz can be used. But similarly to FreeType it’s not small embedded devices.