Suggestion on supporting unicode and Complex Text Layout

  1. windows direct write:

    you can use IDWriteTextLayout::HitTestTextPosition IDWriteTextLayout::GetClusterMetrics IDWriteTextLayout::GetLineMetrics and so on ,
    if you want complete working example: take a look https://github.com/vczh-libraries/GacUI/blob/master/Source/GraphicsElement/WindowsDirect2D/GuiGraphicsLayoutProviderWindowsDirect2D.cpp

  2. windows gdi:

    you can use ScriptGetFontProperties
    if you want complete working example: take a look https://github.com/vczh-libraries/GacUI/blob/master/Source/GraphicsElement/WindowsGDI/GuiGraphicsUniscribe.cpp

  3. mac os :

    you can use NSTextStorage NSLayoutManager NSTextContainer
    if you want complete working example: take a look https://github.com/vczh-libraries/iGac/blob/master/Mac/GraphicsElement/CoreGraphics/GuiGraphicsLayoutProviderCoreText.mm

  4. linux :

    use pango
    if you want complete working example: take a look https://github.com/vczh-libraries/XGac/blob/master/X11Cairo/GraphicsElement/Renderers/GuiSolidLabelElementRenderer.cpp

I can not get a big picture of the whole juce architecture, maybe someone help to implement on windows first or mac, and I can get start!

Here is a related thread of the current JUCE state:

(haven’t changed much and it does differs greatly between platforms).