General table information
'EBSC' table provides a mechanism for forcing the TrueType scaler to use a particular size of embedded bitmap when generating glyphs for a different point size.
'EBSC' table is used only for bitmap-only TrueType fonts. Fonts which have outline data will always use the outlines to generate glyphs for a point size if there is no embedded bitmap available.
If the font has no glyph outlines, then embedded bitmaps are the only mechanism the TrueType scaler can use to provide a glyph for a charater. If there is an embeded bitmap for the requested size, that will be used; otherwise, the scaler will have to create one from the bitmap for another point size. The TrueType scaler has an algorithm it uses to determine which point size is appropriate to use in such a case; the
'EBSC' table allows the font designer to override this default algorithm.
'EBSC' table begins with a header describing the point size overrides it contains:
|Fixed||version||Version number of the table (0x00020000 for the initial version).|
|UInt32||numSizes||The number of EBSCScaleTable in this table.|
|variable||scaleTables[numSizes]||Subtables indicating how to override the TrueType scaler's default algorithm for finding a point size to use when generating a glyph for a point size not in the font.|
The header is followed immediately by the scaleTables array. The numSizes in the header indicates the number of EBSCScaleTable in the array. Each override is defined by one EBSCScaleTable.
|BLOCLineMetrics||hori||Horizontal line metrics for this point size (not used on the Mac OS).|
|BLOCLineMetrics||vert||Vertical line metrics (not used on OS X).|
|UInt8||ppemX||The horizontal point size for this EBSCScaleTable|
|UInt8||ppemY||The vertical point size for this EBSCScaleTable|
|UInt8||substitutePpemX||The horizontal point size to use when generating glyphs for the point size in the ppemX field.|
|UInt8||substitutePpemY||The vertical point size to use when generating glyphs for the point size in the ppemY field.|
For example, suppose a font has 9-point and 24-point embedded bitmaps. Ordinarly, the TrueType scaler would use the 9-point bitmaps as a source of data if trying to generate an 18-point bitmap. The
'EBSC' table can be used to override this, however, by including an EBSCScaleTable with the ppemX equal to 18 and the substitutePpemX equal to 24.
OS X does not use the horizontal and vertical line metrics fields. See documentation on the bitmap location table to see how these fields are structured.
'EBSC' table is present in a font, the font must be a bitmap-only font. That is, it should also have
'bloc' tables. The font must have no
'glyf' tables. Bitmap only fonts use the
'bhed' table to store information ordinarily found in the