class TTFunk::OTFEncoder

Constants

OPTIMAL_TABLE_ORDER

Private Instance Methods

base_table() click to toggle source
# File lib/ttfunk/otf_encoder.rb, line 25
def base_table
  @base_table ||= TTFunk::Table::Simple.new(original, 'BASE').raw
end
cff_table() click to toggle source
# File lib/ttfunk/otf_encoder.rb, line 29
def cff_table
  @cff_table ||= original.cff.encode(new_to_old_glyph, old_to_new_glyph)
end
collect_glyphs(glyph_ids) click to toggle source
# File lib/ttfunk/otf_encoder.rb, line 52
def collect_glyphs(glyph_ids)
  # CFF top indexes are supposed to contain only one font, although they're
  # capable of supporting many (no idea why this is true, maybe for CFF
  # v2??). Anyway it's cool to do top_index[0], don't worry about it.
  glyph_ids.each_with_object({}) do |id, h|
    h[id] = original.cff.top_index[0].charstrings_index[id]
  end
end
glyf_table() click to toggle source

CFF fonts don't maintain a glyf table, all glyph information is stored in the charstrings index. Return an empty hash here to indicate a glyf table should not be encoded.

# File lib/ttfunk/otf_encoder.rb, line 14
def glyf_table
  @glyf_table ||= {}
end
loca_table() click to toggle source

Since CFF fonts don't maintain a glyf table, they also don't maintain a loca table. Return an empty hash here to indicate a loca table shouldn't be encoded.

# File lib/ttfunk/otf_encoder.rb, line 21
def loca_table
  @loca_table ||= {}
end
optimal_table_order() click to toggle source
# File lib/ttfunk/otf_encoder.rb, line 45
def optimal_table_order
  # DSIG is always last
  OPTIMAL_TABLE_ORDER +
    (tables.keys - ['DSIG'] - OPTIMAL_TABLE_ORDER) +
    ['DSIG']
end
tables() click to toggle source
Calls superclass method
# File lib/ttfunk/otf_encoder.rb, line 37
def tables
  @tables ||= super.merge(
    'BASE' => base_table,
    'VORG' => vorg_table,
    'CFF ' => cff_table
  ).compact
end
vorg_table() click to toggle source
# File lib/ttfunk/otf_encoder.rb, line 33
def vorg_table
  @vorg_table ||= TTFunk::Table::Vorg.encode(original.vertical_origins)
end