Hi Sir Erwin,
Thank you again for the feedback and confirmation regarding (bug report Bug & Architecture Request: GPOS Subtable Overflow (65540 > 65535) in MarkToBase, Optimizer Corruption, and Subtable Splitting Heuristics (FC 16.0.0.3082)) the InDesign rendering pipeline. I will submit the comparative test case to the Adobe team as suggested.
Now that the diagnostic messaging in Build 3083 is working so effectively, I want to bring up the underlying necessity that complex-script developers (especially in Arabic, Persian, and Urdu Nastaleeq) face daily when scaling commercial fonts.
While optimizing layout storage reduced our subtable from 87 KB to 35 KB, this project is still in active expansion. As we add more stylistic sets, contextual ligature variations, and full diacritic coverage across hundreds of base forms, even the optimized table will inevitably cross the 65,535-byte barrier again.
Since the 16-bit ceiling is an immutable part of the standard OpenType format, manual splitting in the OpenType Designer becomes extremely painful, error-prone, and fragile when managing tens of thousands of anchor pairs across multiple classes.
To make FontCreator the definitive, undisputed powerhouse for massive complex-script font development, I want to strongly request that you consider implementing one (or both) of the following architectural enhancements in an upcoming release:
1. Transparent Compilation-Level Auto-Splitting (The Ideal Solution)
I understand and completely respect your philosophy: “the subtables in the OpenType Designer are yours, and I would rather have the exporter tell you exactly where the limit is hit than silently reshape your lookup.”
However, there is an elegant way to preserve both:
-
In the GUI (OpenType Designer): Keep the user’s lookups and visual layout completely untouched. The designer works logically with a single clean list of base glyphs and mark classes without having to manually calculate bytes or fragment their design structure.
-
At Compilation Time (Exporter): If a single subtable exceeds ~55–60 KB during serialization, the compiler transparently partitions the compiled
BaseArray/Coveragestructures into two or more physical subtables inside that same lookup in the final binary.
This gives the user the best of both worlds: clean, unfragmented project organization in the editor, and 100% compliant, overflow-free binary export.
2. Native Support for GPOS Extension Positioning (Lookup Type 9)
The OpenType specification explicitly provides Lookup Type 9 (Extension Positioning) with 32-bit offsets (Offset32), specifically designed to bypass the 64 KB Offset16 limitation for large GPOS tables (analogous to GSUB Extension Type 7).
- If FontCreator can automatically promote overflowing GPOS lookups (or subtable wrappers) to Extension Positioning (Type 9), the physical subtable byte limit effectively ceases to be a barrier, allowing massive Nastaleeq matrices to compile without artificial boundaries.
Why this matters for FontCreator’s ecosystem:
Non-Latin scripts with rich calligraphic traditions (Nastaleeq, Thuluth, complex Arabic ligatures) represent the ultimate stress test for any OpenType compiler. Currently, font engineers often feel forced to move to CLI scripts or complex Makefiles just to handle subtable partitioning when fonts grow large.
If FontCreator handles this auto-partitioning or Extension promotion natively under the hood, it eliminates the single biggest bottleneck in high-end font production and makes FontCreator unmatched in the industry for complex script typography.
I would be more than happy to test internal alpha/beta builds with our largest, most demanding font projects anytime.
Thank you for your continuous dedication to pushing FontCreator forward!