FreeType 2.14.3 Function Support¶
Authoritative generated contract: do not edit this file directly. Update
tests/data/interface_map.json, then runpython3 scripts/generate_support_matrix.py.
This is the application-adoption disposition of every function in the
pinned FreeType 2.14.3 public-header inventory. It is not an export
inventory or code-coverage report. A declaration, stub, null-validation
route, or narrow success probe can exist without making a function
application-ready. Only Complete rows claim a complete maintained
mapping; every other status requires application-specific review.
1. Summary¶
| Status | Functions | Meaning |
|---|---|---|
| Complete | 52 | Maintained application behavior and mapping are complete |
| Implemented; mapping incomplete | 5 | Runtime code exists; the application mapping is incomplete |
| Partial | 29 | Only the documented behavior is ready |
| Planned | 69 | No application-ready implementation is claimed |
| Intentionally excluded | 63 | Outside the currently declared product surface |
| Total | 218 | Pinned public function inventory |
2. Function inventory¶
| Area | FreeType function | Status | Rust mapping | Boundary or reason |
|---|---|---|---|---|
bitmap |
FT_Bitmap_Blend |
Planned | — | — |
bitmap |
FT_Bitmap_Convert |
Partial | render::unpack_mono_row | — |
bitmap |
FT_Bitmap_Copy |
Planned | — | — |
bitmap |
FT_Bitmap_Done |
Partial | drop GlyphMask | — |
bitmap |
FT_Bitmap_Embolden |
Planned | — | — |
bitmap |
FT_Bitmap_Init |
Partial | GlyphMask | — |
bitmap |
FT_Bitmap_New |
Planned | — | — |
bitmap/fonts |
FT_Get_BDF_Charset_ID |
Complete | fontdone::ffi::FT_Get_BDF_Charset_ID | — |
bitmap/fonts |
FT_Get_BDF_Property |
Complete | fontdone::ffi::FT_Get_BDF_Property | — |
bitmap/fonts |
FT_Get_WinFNT_Header |
Complete | fontdone::ffi::FT_Get_WinFNT_Header | — |
cache |
FTC_CMapCache_Lookup |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_CMapCache_New |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_ImageCache_Lookup |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_ImageCache_LookupScaler |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_ImageCache_New |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_Manager_Done |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_Manager_LookupFace |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_Manager_LookupSize |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_Manager_New |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_Manager_RemoveFaceID |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_Manager_Reset |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_Node_Unref |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_SBitCache_Lookup |
Complete | fontdone::ffi::FTC_SBitCache_Lookup; fontdone-c-abi::FTC_SBitCache_Lookup | — |
cache |
FTC_SBitCache_LookupScaler |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
cache |
FTC_SBitCache_New |
Intentionally excluded | — | FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly. |
charmap |
FT_Get_Char_Index |
Complete | Face::get_char_index / Font::char_index | — |
charmap |
FT_Get_Charmap_Index |
Complete | Font::charmap_index | — |
charmap |
FT_Get_First_Char |
Complete | Font::first_char | — |
charmap |
FT_Get_Name_Index |
Planned | — | — |
charmap |
FT_Get_Next_Char |
Complete | Font::next_char | — |
charmap |
FT_Select_Charmap |
Complete | Font::select_charmap | — |
charmap |
FT_Set_Charmap |
Complete | Font::set_charmap | — |
color/fonts |
FT_Get_Color_Glyph_ClipBox |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Get_Color_Glyph_Layer |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Get_Color_Glyph_Paint |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Get_Colorline_Stops |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Get_Paint |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Get_Paint_Layers |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Palette_Data_Get |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Palette_Select |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
color/fonts |
FT_Palette_Set_Foreground_Color |
Intentionally excluded | — | Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope. |
compression |
FT_Gzip_Uncompress |
Intentionally excluded | — | Compressed stream wrappers are C I/O adapters; this crate accepts already available font bytes and does not own stream transport. |
compression |
FT_Stream_OpenBzip2 |
Complete | ffi::FT_Stream_OpenBzip2 | Enabled open/read/backward-seek/close, source ownership, null and malformed-header errors, and disabled-build precedence have exact four-lane parity. |
compression |
FT_Stream_OpenGzip |
Intentionally excluded | — | Compressed stream wrappers are C I/O adapters; this crate accepts already available font bytes and does not own stream transport. |
compression |
FT_Stream_OpenLZW |
Complete | ffi::FT_Stream_OpenLZW | Enabled open/read/backward-seek/close behavior and disabled-build argument-independent Unimplemented_Feature behavior have exact isolated-build parity. |
error/logging |
FT_Error_String |
Intentionally excluded | — | FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade. |
error/logging |
FT_Set_Default_Log_Handler |
Intentionally excluded | — | FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade. |
error/logging |
FT_Set_Log_Handler |
Intentionally excluded | — | FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade. |
error/logging |
FT_Trace_Set_Default_Level |
Intentionally excluded | — | FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade. |
error/logging |
FT_Trace_Set_Level |
Intentionally excluded | — | FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade. |
face/metadata |
FT_Get_FSType_Flags |
Complete | Font::get_fstype_flags | — |
face/metadata |
FT_Get_Font_Format |
Complete | Font::font_format | — |
face/metadata |
FT_Get_Gasp |
Planned | — | — |
face/metadata |
FT_Get_Glyph_Name |
Planned | — | — |
face/metadata |
FT_Get_Postscript_Name |
Complete | Font::postscript_name | — |
face/metadata |
FT_Get_SubGlyph_Info |
Planned | — | — |
face/metadata |
FT_Get_X11_Font_Format |
Intentionally excluded | — | X11 font format naming is a legacy FreeType compatibility API; this crate reports portable font-format metadata instead. |
face/open |
FT_Attach_File |
Planned | — | — |
face/open |
FT_Attach_Stream |
Planned | — | — |
face/open |
FT_Done_Face |
Complete | drop Font | — |
face/open |
FT_New_Face |
Planned | — | — |
face/open |
FT_New_Memory_Face |
Complete | Library::new_memory_face / Face::from_memory | — |
face/open |
FT_Open_Face |
Planned | — | — |
face/open |
FT_Reference_Face |
Planned | — | — |
glyph/load, truetype/bytecode |
FT_Load_Char |
Complete | Face::load_char | — |
glyph/load, truetype/bytecode |
FT_Load_Glyph |
Complete | Face::load_glyph | — |
glyph/metrics, advances |
FT_Get_Advance |
Partial | Font::getlength | — |
glyph/metrics, advances |
FT_Get_Advances |
Planned | — | — |
glyph/object |
FT_Done_Glyph |
Intentionally excluded | — | FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly. |
glyph/object |
FT_Get_Glyph |
Intentionally excluded | — | FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly. |
glyph/object |
FT_GlyphSlot_Own_Bitmap |
Complete | ffi::FT_GlyphSlot_Own_Bitmap | — |
glyph/object |
FT_Glyph_Copy |
Intentionally excluded | — | FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly. |
glyph/object |
FT_Glyph_Get_CBox |
Intentionally excluded | — | FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly. |
glyph/object |
FT_Glyph_To_Bitmap |
Intentionally excluded | — | FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly. |
glyph/object |
FT_Glyph_Transform |
Intentionally excluded | — | FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly. |
glyph/object |
FT_New_Glyph |
Complete | fontdone-c-abi::FT_New_Glyph | Built-in and custom renderer formats, exact class selection, zero-initialized allocation, caller ownership transfer, and class-specific FT_Done_Glyph destruction have exact pinned-C, Rust FFI, C ABI, WASM, and independent external-C evidence. |
glyph/render, raster/grays |
FT_Render_Glyph |
Complete | Face::load_glyph(..., LoadFlags::RENDER) | — |
kerning |
FT_Get_Kerning |
Planned | — | — |
kerning |
FT_Get_Track_Kerning |
Complete | ffi::FT_Get_Track_Kerning | Type 1 AFM interpolation, missing-service and missing-AFM errors, and caller-output preservation have exact pinned-C, Rust FFI, C ABI, WASM, and independent external-C evidence. |
library/lifecycle |
FT_Done_FreeType |
Complete | drop Library | — |
library/lifecycle |
FT_Done_Library |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
library/lifecycle |
FT_Init_FreeType |
Complete | Library::init | — |
library/lifecycle |
FT_Library_Version |
Planned | — | — |
library/lifecycle |
FT_New_Library |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
library/lifecycle |
FT_Reference_Library |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
list/internal |
FT_List_Add |
Intentionally excluded | — | FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate. |
list/internal |
FT_List_Finalize |
Intentionally excluded | — | FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate. |
list/internal |
FT_List_Find |
Intentionally excluded | — | FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate. |
list/internal |
FT_List_Insert |
Intentionally excluded | — | FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate. |
list/internal |
FT_List_Iterate |
Intentionally excluded | — | FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate. |
list/internal |
FT_List_Remove |
Intentionally excluded | — | FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate. |
list/internal |
FT_List_Up |
Intentionally excluded | — | FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate. |
math |
FT_Angle_Diff |
Planned | — | — |
math |
FT_Atan2 |
Planned | — | — |
math |
FT_CeilFix |
Complete | fixed::ft_ceil_fix | — |
math |
FT_Cos |
Planned | — | — |
math |
FT_DivFix |
Complete | fixed::ft_div_fix | — |
math |
FT_FloorFix |
Complete | fixed::ft_floor_fix | — |
math |
FT_Matrix_Invert |
Planned | — | — |
math |
FT_Matrix_Multiply |
Planned | — | — |
math |
FT_MulDiv |
Complete | fixed::ft_mul_div | — |
math |
FT_MulFix |
Complete | fixed::ft_mul_fix | — |
math |
FT_RoundFix |
Complete | fixed::ft_round_fix | — |
math |
FT_Sin |
Planned | — | — |
math |
FT_Tan |
Planned | — | — |
math |
FT_Vector_From_Polar |
Planned | — | — |
math |
FT_Vector_Length |
Planned | — | — |
math |
FT_Vector_Polarize |
Planned | — | — |
math |
FT_Vector_Rotate |
Planned | — | — |
math |
FT_Vector_Transform |
Planned | — | — |
math |
FT_Vector_Unit |
Planned | — | — |
outline |
FT_Get_Transform |
Planned | — | — |
outline |
FT_Outline_Check |
Planned | — | — |
outline |
FT_Outline_Copy |
Planned | — | — |
outline |
FT_Outline_Decompose |
Partial | grays::rasterize outline walk | — |
outline |
FT_Outline_Done |
Planned | — | — |
outline |
FT_Outline_Embolden |
Planned | — | — |
outline |
FT_Outline_EmboldenXY |
Planned | — | — |
outline |
FT_Outline_Get_BBox |
Planned | — | — |
outline |
FT_Outline_Get_Bitmap |
Planned | — | — |
outline |
FT_Outline_Get_CBox |
Partial | scaler::scale_glyph | — |
outline |
FT_Outline_Get_Orientation |
Planned | — | — |
outline |
FT_Outline_New |
Planned | — | — |
outline |
FT_Outline_Render |
Planned | — | — |
outline |
FT_Outline_Reverse |
Planned | — | — |
outline |
FT_Outline_Transform |
Planned | — | — |
outline |
FT_Outline_Translate |
Partial | scaler::scale_glyph | — |
outline |
FT_Set_Transform |
Planned | — | — |
properties/modules |
FT_Add_Default_Modules |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Add_Module |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Get_Module |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Get_Renderer |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Property_Get |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Property_Set |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Remove_Module |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Set_Debug_Hook |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Set_Default_Properties |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
properties/modules |
FT_Set_Renderer |
Intentionally excluded | — | FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry. |
raster/lcd |
FT_Library_SetLcdFilter |
Partial | ffi::FT_Library_SetLcdFilter (feature-matched preset and stored-state contract) | — |
raster/lcd |
FT_Library_SetLcdFilterWeights |
Partial | ffi::FT_Library_SetLcdFilterWeights (five-byte copy and stored-state contract) | — |
raster/lcd |
FT_Library_SetLcdGeometry |
Partial | ffi::FT_Library_SetLcdGeometry (Harmony geometry and alternate-feature error contract) | — |
sfnt/tables |
FT_Get_CMap_Format |
Complete | Font::charmaps | — |
sfnt/tables |
FT_Get_CMap_Language_ID |
Planned | — | — |
sfnt/tables |
FT_Get_Sfnt_LangTag |
Planned | — | — |
sfnt/tables |
FT_Get_Sfnt_Name |
Planned | — | — |
sfnt/tables |
FT_Get_Sfnt_Name_Count |
Planned | — | — |
sfnt/tables |
FT_Sfnt_Table_Info |
Complete | Font::sfnt_table_info | — |
sfnt/tables, truetype/tables |
FT_Get_Sfnt_Table |
Partial | tt table parsers | — |
sfnt/tables, truetype/tables |
FT_Load_Sfnt_Table |
Complete | Font::load_sfnt_table | — |
size/select |
FT_Activate_Size |
Planned | — | — |
size/select |
FT_Done_Size |
Planned | — | — |
size/select |
FT_New_Size |
Planned | — | — |
size/select |
FT_Request_Size |
Planned | — | — |
size/select |
FT_Select_Size |
Planned | — | — |
size/select |
FT_Set_Char_Size |
Complete | Face::set_char_size | — |
size/select |
FT_Set_Pixel_Sizes |
Complete | Face::set_pixel_sizes | — |
stroker |
FT_Glyph_Stroke |
Partial | fontdone::ffi::FT_Outline_Glyph_Stroke; fontdone-c-abi::FT_Glyph_Stroke | The maintained DejaVuSans glyph 36 full-stroke route is implemented and verified through Rust FFI, C ABI, and WASM ABI. Destroy-option coverage and general glyph stroking remain pending. |
stroker |
FT_Glyph_StrokeBorder |
Partial | fontdone::ffi::FT_Outline_Glyph_StrokeBorder; fontdone-c-abi::FT_Glyph_StrokeBorder | The Pillow ImageFont stroke_filled=true path is wired through the Rust outline-glyph stroke-border wrapper, but successful outside/inside border geometry and destroy-option parity remain pending. |
stroker |
FT_Outline_GetInsideBorder |
Partial | fontdone::ffi::FT_Outline_GetInsideBorder | Implemented for the outline orientation routes used by stroke-border selection; broader orientation fixture coverage remains tied to stroker parity. |
stroker |
FT_Outline_GetOutsideBorder |
Partial | fontdone::ffi::FT_Outline_GetOutsideBorder | Implemented for the outline orientation routes used by stroke-border selection; broader orientation fixture coverage remains tied to stroker parity. |
stroker |
FT_Stroker_BeginSubPath |
Partial | fontdone::ffi::FT_Stroker_BeginSubPath; fontdone-c-abi::FT_Stroker_BeginSubPath | Implemented for maintained open/closed subpath state routes; full stroker state-machine parity remains pending. |
stroker |
FT_Stroker_ConicTo |
Partial | fontdone::ffi::FT_Stroker_ConicTo; fontdone-c-abi::FT_Stroker_ConicTo | Implemented for maintained conic fixture routes with exact public output; general conic subdivision remains pending. |
stroker |
FT_Stroker_CubicTo |
Partial | fontdone::ffi::FT_Stroker_CubicTo; fontdone-c-abi::FT_Stroker_CubicTo | Implemented for maintained cubic fixture routes with exact public output; general cubic subdivision remains pending. |
stroker |
FT_Stroker_Done |
Partial | fontdone::ffi::FT_Stroker_Done; fontdone-c-abi::FT_Stroker_Done | Implemented and covered for maintained lifecycle cleanup rows; exhaustive lifetime and allocator cases remain pending. |
stroker |
FT_Stroker_EndSubPath |
Partial | fontdone::ffi::FT_Stroker_EndSubPath; fontdone-c-abi::FT_Stroker_EndSubPath | Implemented for maintained no-segment, open-line, closed-line, conic, and cubic routes; general joins/caps remain pending. |
stroker |
FT_Stroker_Export |
Partial | fontdone::ffi::FT_Stroker_Export; fontdone-c-abi::FT_Stroker_Export | Implemented for maintained left-then-right export and append routes; general combined outline export remains pending. |
stroker |
FT_Stroker_ExportBorder |
Partial | fontdone::ffi::FT_Stroker_ExportBorder; fontdone-c-abi::FT_Stroker_ExportBorder | Implemented for maintained selected-border export and append routes; general border outline export remains pending. |
stroker |
FT_Stroker_GetBorderCounts |
Partial | fontdone::ffi::FT_Stroker_GetBorderCounts; fontdone-c-abi::FT_Stroker_GetBorderCounts | Implemented for maintained finalized border states and invalid-input rows; full border-count parity follows the pending general stroker state machine. |
stroker |
FT_Stroker_GetCounts |
Partial | fontdone::ffi::FT_Stroker_GetCounts; fontdone-c-abi::FT_Stroker_GetCounts | Implemented for maintained finalized combined counts and invalid-input rows; full count parity follows the pending general stroker state machine. |
stroker |
FT_Stroker_LineTo |
Partial | fontdone::ffi::FT_Stroker_LineTo; fontdone-c-abi::FT_Stroker_LineTo | Implemented for maintained zero-length, first-segment, and simple-line routes; general polyline stroke geometry remains pending. |
stroker |
FT_Stroker_New |
Partial | fontdone::ffi::FT_Stroker_New; fontdone-c-abi::FT_Stroker_New | Implemented and covered through maintained Rust FFI, C ABI, and WASM lifecycle rows; allocator-failure and full object-lifetime matrix remain pending. |
stroker |
FT_Stroker_ParseOutline |
Partial | fontdone::ffi::FT_Stroker_ParseOutline; fontdone-c-abi::FT_Stroker_ParseOutline | Implemented with FreeType-shaped contour/tag traversal for maintained line/conic/cubic routes; general segment stroking and export parity remain pending. |
stroker |
FT_Stroker_Rewind |
Partial | fontdone::ffi::FT_Stroker_Rewind; fontdone-c-abi::FT_Stroker_Rewind | Implemented and covered for maintained state-reset routes; exhaustive state lifecycle parity remains pending. |
stroker |
FT_Stroker_Set |
Partial | fontdone::ffi::FT_Stroker_Set; fontdone-c-abi::FT_Stroker_Set | Implemented for maintained radius/cap/join routes used by current stroke fixtures; full cap/join/miter behavior remains pending. |
synthesis |
FT_GlyphSlot_AdjustWeight |
Intentionally excluded | — | Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path. |
synthesis |
FT_GlyphSlot_Embolden |
Intentionally excluded | — | Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path. |
synthesis |
FT_GlyphSlot_Oblique |
Intentionally excluded | — | Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path. |
synthesis |
FT_GlyphSlot_Slant |
Intentionally excluded | — | Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path. |
truetype/bytecode |
FT_Face_CheckTrueTypePatents |
Intentionally excluded | — | TrueType patent toggles are obsolete FreeType compatibility APIs and have no effect in this pure Rust implementation. |
truetype/bytecode |
FT_Face_SetUnpatentedHinting |
Intentionally excluded | — | TrueType patent toggles are obsolete FreeType compatibility APIs and have no effect in this pure Rust implementation. |
truetype/bytecode |
FT_Get_TrueType_Engine_Type |
Planned | — | — |
truetype/variations |
FT_Done_MM_Var |
Planned | — | — |
truetype/variations |
FT_Face_GetCharVariantIndex |
Implemented; mapping incomplete | Face::get_char_variant_index / Font::char_variant_index | — |
truetype/variations |
FT_Face_GetCharVariantIsDefault |
Implemented; mapping incomplete | Face::get_char_variant_is_default / Font::char_variant_is_default | — |
truetype/variations |
FT_Face_GetCharsOfVariant |
Implemented; mapping incomplete | Face::get_chars_of_variant / Font::chars_of_variant | — |
truetype/variations |
FT_Face_GetVariantSelectors |
Implemented; mapping incomplete | Face::get_variant_selectors / Font::variant_selectors | — |
truetype/variations |
FT_Face_GetVariantsOfChar |
Implemented; mapping incomplete | Face::get_variants_of_char / Font::variants_of_char | — |
truetype/variations |
FT_Face_Properties |
Planned | — | — |
truetype/variations |
FT_Get_Default_Named_Instance |
Planned | — | — |
truetype/variations |
FT_Get_MM_Blend_Coordinates |
Planned | — | — |
truetype/variations |
FT_Get_MM_Var |
Planned | — | — |
truetype/variations |
FT_Get_MM_WeightVector |
Planned | — | — |
truetype/variations |
FT_Get_Multi_Master |
Planned | — | — |
truetype/variations |
FT_Get_Var_Axis_Flags |
Planned | — | — |
truetype/variations |
FT_Get_Var_Blend_Coordinates |
Planned | — | — |
truetype/variations |
FT_Get_Var_Design_Coordinates |
Planned | — | — |
truetype/variations |
FT_Set_MM_Blend_Coordinates |
Planned | — | — |
truetype/variations |
FT_Set_MM_Design_Coordinates |
Planned | — | — |
truetype/variations |
FT_Set_MM_WeightVector |
Planned | — | — |
truetype/variations |
FT_Set_Named_Instance |
Planned | — | — |
truetype/variations |
FT_Set_Var_Blend_Coordinates |
Planned | — | — |
truetype/variations |
FT_Set_Var_Design_Coordinates |
Planned | — | — |
type1/cid |
FT_Get_CID_From_Glyph_Index |
Complete | fontdone::ffi::FT_Get_CID_From_Glyph_Index | — |
type1/cid |
FT_Get_CID_Is_Internally_CID_Keyed |
Complete | fontdone::ffi::FT_Get_CID_Is_Internally_CID_Keyed | — |
type1/cid |
FT_Get_CID_Registry_Ordering_Supplement |
Complete | fontdone::ffi::FT_Get_CID_Registry_Ordering_Supplement | — |
type1/cid |
FT_Get_PFR_Advance |
Complete | fontdone::ffi::FT_Get_PFR_Advance | — |
type1/cid |
FT_Get_PFR_Kerning |
Complete | fontdone::ffi::FT_Get_PFR_Kerning | — |
type1/cid |
FT_Get_PFR_Metrics |
Complete | fontdone::ffi::FT_Get_PFR_Metrics | — |
type1/cid |
FT_Get_PS_Font_Info |
Complete | fontdone::ffi::FT_Get_PS_Font_Info | — |
type1/cid |
FT_Get_PS_Font_Private |
Complete | fontdone::ffi::FT_Get_PS_Font_Private | — |
type1/cid |
FT_Get_PS_Font_Value |
Complete | fontdone::ffi::FT_Get_PS_Font_Value | — |
type1/cid |
FT_Has_PS_Glyph_Names |
Complete | fontdone::ffi::FT_Has_PS_Glyph_Names | — |
validation |
FT_ClassicKern_Free |
Complete | fontdone::ffi::FT_ClassicKern_Free | Null-face behavior and non-null face-memory release are exact, including allocator callback evidence. |
validation |
FT_ClassicKern_Validate |
Complete | fontdone::ffi::FT_ClassicKern_Validate | Microsoft, Apple, combined-dialect, missing-table, malformed-table, non-SFNT, and invalid-input behavior is exact across all ABI lanes. |
validation |
FT_OpenType_Free |
Complete | fontdone::ffi::FT_OpenType_Free | Non-null tables are released through their owning face memory and null/foreign inputs retain the documented no-op behavior. |
validation |
FT_OpenType_Validate |
Complete | fontdone::ffi::FT_OpenType_Validate | Pinned-C table selection, valid and malformed input, partial-failure cleanup, and public output ownership are exact across Rust, C ABI, external C, and WASM. |
validation |
FT_TrueTypeGX_Free |
Complete | fontdone::ffi::FT_TrueTypeGX_Free | Null-face behavior and non-null face-memory release are exact, including allocator callback evidence. |
validation |
FT_TrueTypeGX_Validate |
Complete | fontdone::ffi::FT_TrueTypeGX_Validate | Pinned-C selected/all-table output, table-length bounds, invalid inputs, non-SFNT and malformed-table errors are exact across Rust, C ABI, external C, and WASM. |
3. Verification¶
Run these commands from the repository root:
python3 scripts/generate_support_matrix.py --check
make api-abi-audit
python3 scripts/generate_support_matrix.py --check \
--audit-json target/api-abi-audit/api_abi_audit.json
The second check proves that the committed adoption map covers the same 218 symbols as the independently parsed pinned C header inventory. Runtime routes, exact parity cases, and the 12-category C contract are reported separately; they cannot promote a row implicitly.