Module: Fontisan::Ufo::Compile::Head

Defined in:
lib/fontisan/ufo/compile/head.rb

Overview

Builds the OpenType head table from a UFO Font.

Constant Summary collapse

MAGIC_NUMBER =
0x5F0F3CF5
DEFAULT_FLAGS =
0x000B
DEFAULT_LOWEST_REC_PPEM =
8
DEFAULT_FONT_DIRECTION_HINT =
2
DEFAULT_GLYPH_DATA_FORMAT =
0
LOCA_FORMAT_SHORT =
0
LOCA_FORMAT_LONG =
1
MAC_STYLE_REGULAR =
0
MAC_EPOCH_OFFSET =

Seconds between 1904-01-01 (Mac epoch) and 1970-01-01 (Unix epoch)

2_082_844_800

Class Method Summary collapse

Class Method Details

.build(font, glyphs:, units_per_em: nil, loca_format: LOCA_FORMAT_LONG) ⇒ Fontisan::Tables::Head

Parameters:

Returns:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/fontisan/ufo/compile/head.rb', line 24

def self.build(font, glyphs:, units_per_em: nil, loca_format: LOCA_FORMAT_LONG)
  bbox = font_bbox(font, glyphs)
  Fontisan::Tables::Head.new(
    version_raw: 0x00010000,
    font_revision_raw: font_revision_fixed(font),
    checksum_adjustment: 0, # patched by FontWriter
    magic_number: MAGIC_NUMBER,
    flags: DEFAULT_FLAGS,
    units_per_em: units_per_em || font.info.units_per_em || 1000,
    created_raw: time_to_longdatetime(font.info.created),
    modified_raw: time_to_longdatetime(font.info.modified),
    x_min: bbox[:x_min].to_i,
    y_min: bbox[:y_min].to_i,
    x_max: bbox[:x_max].to_i,
    y_max: bbox[:y_max].to_i,
    mac_style: MAC_STYLE_REGULAR,
    lowest_rec_ppem: DEFAULT_LOWEST_REC_PPEM,
    font_direction_hint: DEFAULT_FONT_DIRECTION_HINT,
    index_to_loc_format: loca_format,
    glyph_data_format: DEFAULT_GLYPH_DATA_FORMAT,
  )
end