-
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 -
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 -
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 -
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!