But both caching and rendering happens outside of FreeType, right?
Yes, in the hooks.
> Also, the cache structure must be unique for each instance of
> FT_Library, so making it a global variable may not work.
Yep. Additionally, it wouldn't be thread-safe.
Exactly.
What about something like the following.
typedef FT_Error
(*SVG_Lib_Init_Func)( void* data )
typedef void
(*SVG_Lib_Free_Func)( void* data );
typedef FT_Error
(*SVG_Lib_Render_Func)( FT_GlyphSlot slot,
void* data );
typedef FT_Error
(*SVG_Lib_Preset_Slot_Func)( FT_GlyphSlot slot,
void* data,
FT_Bool cache );
Umm, I have a similar thing in mind. Let me try it tomorrow morning
and I'll let you know.