File: maxp.rb

package info (click to toggle)
ruby-ttfunk 1.0.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 916 kB
  • sloc: ruby: 1,719; makefile: 16
file content (40 lines) | stat: -rw-r--r-- 1,214 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
require 'ttfunk/table'

module TTFunk
  class Table
    class Maxp < Table
      attr_reader :version
      attr_reader :num_glyphs
      attr_reader :max_points
      attr_reader :max_contours
      attr_reader :max_component_points
      attr_reader :max_component_contours
      attr_reader :max_zones
      attr_reader :max_twilight_points
      attr_reader :max_storage
      attr_reader :max_function_defs
      attr_reader :max_instruction_defs
      attr_reader :max_stack_elements
      attr_reader :max_size_of_instructions
      attr_reader :max_component_elements
      attr_reader :max_component_depth

      def self.encode(maxp, mapping)
        num_glyphs = mapping.length
        raw = maxp.raw
        raw[4,2] = [num_glyphs].pack("n")
        return raw
      end

      private

        def parse!
          @version, @num_glyphs, @max_points, @max_contours, @max_component_points,
            @max_component_contours, @max_zones, @max_twilight_points, @max_storage,
            @max_function_defs, @max_instruction_defs, @max_stack_elements,
            @max_size_of_instructions, @max_component_elements, @max_component_depth =
              read(length, "Nn*")
        end
    end
  end
end