This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module TTFunk
|
||||
# SFNT table directory.
|
||||
class Directory
|
||||
# Table descriptors
|
||||
# @return [Hash{String => Hash}]
|
||||
attr_reader :tables
|
||||
|
||||
# Scaler type
|
||||
# @return [Integer]
|
||||
attr_reader :scaler_type
|
||||
|
||||
def initialize(io, offset = 0)
|
||||
io.seek(offset)
|
||||
|
||||
# https://www.microsoft.com/typography/otspec/otff.htm#offsetTable
|
||||
# We're ignoring searchRange, entrySelector, and rangeShift here, but
|
||||
# skipping past them to get to the table information.
|
||||
@scaler_type, table_count = io.read(12).unpack('Nn')
|
||||
|
||||
@tables = {}
|
||||
table_count.times do
|
||||
tag, checksum, offset, length = io.read(16).unpack('a4N*')
|
||||
@tables[tag] = {
|
||||
tag: tag,
|
||||
checksum: checksum,
|
||||
offset: offset,
|
||||
length: length,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user