ft-ffi 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +7 -0
  2. data/FTL.TXT +169 -0
  3. data/LICENSE.md +21 -0
  4. data/README.md +0 -0
  5. data/lib/freetype27.dll +0 -0
  6. data/lib/ft-ffi.rb +36 -0
  7. data/lib/ft-ffi/config.rb +79 -0
  8. data/lib/ft-ffi/constant/cff_hinting.rb +10 -0
  9. data/lib/ft-ffi/enum/auto_hinter_script.rb +12 -0
  10. data/lib/ft-ffi/enum/bdf_pcf/property_type.rb +12 -0
  11. data/lib/ft-ffi/enum/encoding.rb +19 -0
  12. data/lib/ft-ffi/enum/face_flag.rb +21 -0
  13. data/lib/ft-ffi/enum/gasp_table.rb +14 -0
  14. data/lib/ft-ffi/enum/glyph_bbox_mode.rb +10 -0
  15. data/lib/ft-ffi/enum/glyph_format.rb +12 -0
  16. data/lib/ft-ffi/enum/kerning_mode.rb +9 -0
  17. data/lib/ft-ffi/enum/lcd_filter.rb +16 -0
  18. data/lib/ft-ffi/enum/load_flag.rb +20 -0
  19. data/lib/ft-ffi/enum/module_bit_flag.rb +20 -0
  20. data/lib/ft-ffi/enum/open_args_flag.rb +13 -0
  21. data/lib/ft-ffi/enum/outline_flag.rb +21 -0
  22. data/lib/ft-ffi/enum/outline_orientation.rb +14 -0
  23. data/lib/ft-ffi/enum/pixel_mode.rb +17 -0
  24. data/lib/ft-ffi/enum/postscript/blend_flags.rb +25 -0
  25. data/lib/ft-ffi/enum/postscript/dict_keys.rb +62 -0
  26. data/lib/ft-ffi/enum/postscript/enconding_type.rb +13 -0
  27. data/lib/ft-ffi/enum/raster_params_flag.rb +12 -0
  28. data/lib/ft-ffi/enum/render_mode.rb +7 -0
  29. data/lib/ft-ffi/enum/sfnt_tag.rb +18 -0
  30. data/lib/ft-ffi/enum/size_request_type.rb +14 -0
  31. data/lib/ft-ffi/enum/slot_internal_flag.rb +5 -0
  32. data/lib/ft-ffi/enum/stroker_border.rb +10 -0
  33. data/lib/ft-ffi/enum/stroker_linecap.rb +11 -0
  34. data/lib/ft-ffi/enum/stroker_linejoin.rb +13 -0
  35. data/lib/ft-ffi/enum/style_flag.rb +11 -0
  36. data/lib/ft-ffi/enum/subglyph_flag.rb +16 -0
  37. data/lib/ft-ffi/enum/true_type/adobe_id.rb +13 -0
  38. data/lib/ft-ffi/enum/true_type/apple_id.rb +15 -0
  39. data/lib/ft-ffi/enum/true_type/iso_id.rb +12 -0
  40. data/lib/ft-ffi/enum/true_type/mac_id.rb +43 -0
  41. data/lib/ft-ffi/enum/true_type/ms_id.rb +17 -0
  42. data/lib/ft-ffi/enum/true_type/platform.rb +15 -0
  43. data/lib/ft-ffi/enum/true_type/true_type_engine_type.rb +11 -0
  44. data/lib/ft-ffi/enum/validate_open_type.rb +15 -0
  45. data/lib/ft-ffi/enum/validation_level.rb +11 -0
  46. data/lib/ft-ffi/enum/winfnt_id.rb +27 -0
  47. data/lib/ft-ffi/function/bitmap_handling.rb +39 -0
  48. data/lib/ft-ffi/function/cache.rb +132 -0
  49. data/lib/ft-ffi/function/char_map.rb +21 -0
  50. data/lib/ft-ffi/function/cid_fonts.rb +19 -0
  51. data/lib/ft-ffi/function/computation.rb +120 -0
  52. data/lib/ft-ffi/function/face.rb +218 -0
  53. data/lib/ft-ffi/function/font_formats.rb +11 -0
  54. data/lib/ft-ffi/function/glyph.rb +16 -0
  55. data/lib/ft-ffi/function/glyph_loader.rb +37 -0
  56. data/lib/ft-ffi/function/glyph_management.rb +40 -0
  57. data/lib/ft-ffi/function/glyph_slot.rb +41 -0
  58. data/lib/ft-ffi/function/glyph_stroker.rb +98 -0
  59. data/lib/ft-ffi/function/gzip.rb +20 -0
  60. data/lib/ft-ffi/function/lcd_filtering.rb +14 -0
  61. data/lib/ft-ffi/function/library.rb +11 -0
  62. data/lib/ft-ffi/function/list.rb +43 -0
  63. data/lib/ft-ffi/function/memory.rb +55 -0
  64. data/lib/ft-ffi/function/module_management.rb +98 -0
  65. data/lib/ft-ffi/function/multiple_master.rb +29 -0
  66. data/lib/ft-ffi/function/open_type.rb +18 -0
  67. data/lib/ft-ffi/function/outline.rb +87 -0
  68. data/lib/ft-ffi/function/pfr.rb +31 -0
  69. data/lib/ft-ffi/function/postscript.rb +30 -0
  70. data/lib/ft-ffi/function/resource_fork.rb +35 -0
  71. data/lib/ft-ffi/function/sfont.rb +19 -0
  72. data/lib/ft-ffi/function/size.rb +20 -0
  73. data/lib/ft-ffi/function/stream.rb +125 -0
  74. data/lib/ft-ffi/function/system.rb +11 -0
  75. data/lib/ft-ffi/function/true_type.rb +37 -0
  76. data/lib/ft-ffi/function/ttgx.rb +26 -0
  77. data/lib/ft-ffi/function/validator.rb +13 -0
  78. data/lib/ft-ffi/function/version.rb +20 -0
  79. data/lib/ft-ffi/function/win_fnt.rb +9 -0
  80. data/lib/ft-ffi/lib_base.rb +204 -0
  81. data/lib/ft-ffi/macro/basic_type.rb +19 -0
  82. data/lib/ft-ffi/macro/cache.rb +7 -0
  83. data/lib/ft-ffi/macro/error.rb +18 -0
  84. data/lib/ft-ffi/macro/module.rb +26 -0
  85. data/lib/ft-ffi/struct/bbox.rb +19 -0
  86. data/lib/ft-ffi/struct/bdf/property_rec.rb +15 -0
  87. data/lib/ft-ffi/struct/bitmap.rb +23 -0
  88. data/lib/ft-ffi/struct/bitmap_glyph_rec.rb +18 -0
  89. data/lib/ft-ffi/struct/bitmap_size.rb +17 -0
  90. data/lib/ft-ffi/struct/char_map_rec.rb +16 -0
  91. data/lib/ft-ffi/struct/cmap_class_rec.rb +32 -0
  92. data/lib/ft-ffi/struct/cmap_rec.rb +10 -0
  93. data/lib/ft-ffi/struct/data.rb +8 -0
  94. data/lib/ft-ffi/struct/driver_class_rec.rb +50 -0
  95. data/lib/ft-ffi/struct/driver_rec.rb +14 -0
  96. data/lib/ft-ffi/struct/face_internal_rec.rb +15 -0
  97. data/lib/ft-ffi/struct/face_rec.rb +67 -0
  98. data/lib/ft-ffi/struct/frame_field.rb +9 -0
  99. data/lib/ft-ffi/struct/ftc_image_type_rec.rb +11 -0
  100. data/lib/ft-ffi/struct/ftc_sbit_rec.rb +19 -0
  101. data/lib/ft-ffi/struct/ftc_scaler_rec.rb +12 -0
  102. data/lib/ft-ffi/struct/generic.rb +18 -0
  103. data/lib/ft-ffi/struct/glyph/glyph_class.rb +23 -0
  104. data/lib/ft-ffi/struct/glyph/glyph_load_rec.rb +13 -0
  105. data/lib/ft-ffi/struct/glyph/glyph_loader_rec.rb +17 -0
  106. data/lib/ft-ffi/struct/glyph/glyph_metrics.rb +23 -0
  107. data/lib/ft-ffi/struct/glyph/glyph_rec.rb +22 -0
  108. data/lib/ft-ffi/struct/glyph/glyph_slot_rec.rb +51 -0
  109. data/lib/ft-ffi/struct/incremental_funcs_rec.rb +15 -0
  110. data/lib/ft-ffi/struct/incremental_interface_rec.rb +8 -0
  111. data/lib/ft-ffi/struct/incremental_metrics_rec.rb +10 -0
  112. data/lib/ft-ffi/struct/library_rec.rb +34 -0
  113. data/lib/ft-ffi/struct/list_node_rec.rb +7 -0
  114. data/lib/ft-ffi/struct/list_rec.rb +22 -0
  115. data/lib/ft-ffi/struct/matrix.rb +17 -0
  116. data/lib/ft-ffi/struct/memory_rec.rb +15 -0
  117. data/lib/ft-ffi/struct/module_class.rb +26 -0
  118. data/lib/ft-ffi/struct/module_rec.rb +12 -0
  119. data/lib/ft-ffi/struct/multiple_masters/multi_master.rb +12 -0
  120. data/lib/ft-ffi/struct/multiple_masters/multiple_master_var.rb +13 -0
  121. data/lib/ft-ffi/struct/multiple_masters/multiple_masters_axis.rb +10 -0
  122. data/lib/ft-ffi/struct/multiple_masters/var_axis.rb +13 -0
  123. data/lib/ft-ffi/struct/multiple_masters/var_named_style.rb +9 -0
  124. data/lib/ft-ffi/struct/open_args.rb +17 -0
  125. data/lib/ft-ffi/struct/outline.rb +18 -0
  126. data/lib/ft-ffi/struct/outline_funcs.rb +26 -0
  127. data/lib/ft-ffi/struct/outline_glyph_rec.rb +17 -0
  128. data/lib/ft-ffi/struct/parameter.rb +12 -0
  129. data/lib/ft-ffi/struct/postscript/cid_face_dict_rect.rb +24 -0
  130. data/lib/ft-ffi/struct/postscript/cid_face_info_rec.rb +32 -0
  131. data/lib/ft-ffi/struct/postscript/font_info_rec.rb +16 -0
  132. data/lib/ft-ffi/struct/postscript/private_rec.rb +42 -0
  133. data/lib/ft-ffi/struct/prop_glyph_to_script_map.rb +8 -0
  134. data/lib/ft-ffi/struct/prop_increase_x_height.rb +8 -0
  135. data/lib/ft-ffi/struct/raster_funcs.rb +20 -0
  136. data/lib/ft-ffi/struct/raster_params.rb +28 -0
  137. data/lib/ft-ffi/struct/renderer_class.rb +27 -0
  138. data/lib/ft-ffi/struct/renderer_rec.rb +21 -0
  139. data/lib/ft-ffi/struct/service_cache_rec.rb +11 -0
  140. data/lib/ft-ffi/struct/service_desc_rec.rb +8 -0
  141. data/lib/ft-ffi/struct/sfnt_name.rb +14 -0
  142. data/lib/ft-ffi/struct/size_metrics.rb +18 -0
  143. data/lib/ft-ffi/struct/size_rec.rb +20 -0
  144. data/lib/ft-ffi/struct/size_request_rec.rb +11 -0
  145. data/lib/ft-ffi/struct/slot_internal_rec.rb +16 -0
  146. data/lib/ft-ffi/struct/span.rb +10 -0
  147. data/lib/ft-ffi/struct/stream_desc.rb +9 -0
  148. data/lib/ft-ffi/struct/stream_rec.rb +24 -0
  149. data/lib/ft-ffi/struct/stubs.rb +15 -0
  150. data/lib/ft-ffi/struct/sub_glyph_rec.rb +12 -0
  151. data/lib/ft-ffi/struct/true_type/header.rb +30 -0
  152. data/lib/ft-ffi/struct/true_type/hori_header.rb +28 -0
  153. data/lib/ft-ffi/struct/true_type/max_profile.rb +21 -0
  154. data/lib/ft-ffi/struct/true_type/os2.rb +53 -0
  155. data/lib/ft-ffi/struct/true_type/pclt.rb +21 -0
  156. data/lib/ft-ffi/struct/true_type/postscript.rb +16 -0
  157. data/lib/ft-ffi/struct/true_type/vert_header.rb +28 -0
  158. data/lib/ft-ffi/struct/unit_vector.rb +15 -0
  159. data/lib/ft-ffi/struct/validator_rec.rb +10 -0
  160. data/lib/ft-ffi/struct/vector.rb +15 -0
  161. data/lib/ft-ffi/struct/win_fnt_header_rec.rb +43 -0
  162. data/lib/ft-ffi/typedef/ftc_face_id.rb +6 -0
  163. data/lib/ft-ffi/version.rb +3 -0
  164. metadata +249 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 11796eafe482d26fd91deff6d719183d58644bce
4
+ data.tar.gz: 34f944ca743640fa9a82e56c757c5bbee84d25b3
5
+ SHA512:
6
+ metadata.gz: c13522a01a285aaa8927a7d5e8fda52457db4155646b9096e34d580995ccf1db7500c70da93d049f1e67874603f6c778dbc37f1e8c9c3fb092bd7009949e046d
7
+ data.tar.gz: 6d9294a9a52bcef66c55da061b371f6b8715e0e7def512c499eed8b3b8c507678a747fcaa5fe27172e9a871197cc21f281a2f5b864c68a4437989a30fcb65e58
data/FTL.TXT ADDED
@@ -0,0 +1,169 @@
1
+ The FreeType Project LICENSE
2
+ ----------------------------
3
+
4
+ 2006-Jan-27
5
+
6
+ Copyright 1996-2002, 2006 by
7
+ David Turner, Robert Wilhelm, and Werner Lemberg
8
+
9
+
10
+
11
+ Introduction
12
+ ============
13
+
14
+ The FreeType Project is distributed in several archive packages;
15
+ some of them may contain, in addition to the FreeType font engine,
16
+ various tools and contributions which rely on, or relate to, the
17
+ FreeType Project.
18
+
19
+ This license applies to all files found in such packages, and
20
+ which do not fall under their own explicit license. The license
21
+ affects thus the FreeType font engine, the test programs,
22
+ documentation and makefiles, at the very least.
23
+
24
+ This license was inspired by the BSD, Artistic, and IJG
25
+ (Independent JPEG Group) licenses, which all encourage inclusion
26
+ and use of free software in commercial and freeware products
27
+ alike. As a consequence, its main points are that:
28
+
29
+ o We don't promise that this software works. However, we will be
30
+ interested in any kind of bug reports. (`as is' distribution)
31
+
32
+ o You can use this software for whatever you want, in parts or
33
+ full form, without having to pay us. (`royalty-free' usage)
34
+
35
+ o You may not pretend that you wrote this software. If you use
36
+ it, or only parts of it, in a program, you must acknowledge
37
+ somewhere in your documentation that you have used the
38
+ FreeType code. (`credits')
39
+
40
+ We specifically permit and encourage the inclusion of this
41
+ software, with or without modifications, in commercial products.
42
+ We disclaim all warranties covering The FreeType Project and
43
+ assume no liability related to The FreeType Project.
44
+
45
+
46
+ Finally, many people asked us for a preferred form for a
47
+ credit/disclaimer to use in compliance with this license. We thus
48
+ encourage you to use the following text:
49
+
50
+ """
51
+ Portions of this software are copyright © <year> The FreeType
52
+ Project (www.freetype.org). All rights reserved.
53
+ """
54
+
55
+ Please replace <year> with the value from the FreeType version you
56
+ actually use.
57
+
58
+
59
+ Legal Terms
60
+ ===========
61
+
62
+ 0. Definitions
63
+ --------------
64
+
65
+ Throughout this license, the terms `package', `FreeType Project',
66
+ and `FreeType archive' refer to the set of files originally
67
+ distributed by the authors (David Turner, Robert Wilhelm, and
68
+ Werner Lemberg) as the `FreeType Project', be they named as alpha,
69
+ beta or final release.
70
+
71
+ `You' refers to the licensee, or person using the project, where
72
+ `using' is a generic term including compiling the project's source
73
+ code as well as linking it to form a `program' or `executable'.
74
+ This program is referred to as `a program using the FreeType
75
+ engine'.
76
+
77
+ This license applies to all files distributed in the original
78
+ FreeType Project, including all source code, binaries and
79
+ documentation, unless otherwise stated in the file in its
80
+ original, unmodified form as distributed in the original archive.
81
+ If you are unsure whether or not a particular file is covered by
82
+ this license, you must contact us to verify this.
83
+
84
+ The FreeType Project is copyright (C) 1996-2000 by David Turner,
85
+ Robert Wilhelm, and Werner Lemberg. All rights reserved except as
86
+ specified below.
87
+
88
+ 1. No Warranty
89
+ --------------
90
+
91
+ THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
92
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
93
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
94
+ PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
95
+ BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
96
+ USE, OF THE FREETYPE PROJECT.
97
+
98
+ 2. Redistribution
99
+ -----------------
100
+
101
+ This license grants a worldwide, royalty-free, perpetual and
102
+ irrevocable right and license to use, execute, perform, compile,
103
+ display, copy, create derivative works of, distribute and
104
+ sublicense the FreeType Project (in both source and object code
105
+ forms) and derivative works thereof for any purpose; and to
106
+ authorize others to exercise some or all of the rights granted
107
+ herein, subject to the following conditions:
108
+
109
+ o Redistribution of source code must retain this license file
110
+ (`FTL.TXT') unaltered; any additions, deletions or changes to
111
+ the original files must be clearly indicated in accompanying
112
+ documentation. The copyright notices of the unaltered,
113
+ original files must be preserved in all copies of source
114
+ files.
115
+
116
+ o Redistribution in binary form must provide a disclaimer that
117
+ states that the software is based in part of the work of the
118
+ FreeType Team, in the distribution documentation. We also
119
+ encourage you to put an URL to the FreeType web page in your
120
+ documentation, though this isn't mandatory.
121
+
122
+ These conditions apply to any software derived from or based on
123
+ the FreeType Project, not just the unmodified files. If you use
124
+ our work, you must acknowledge us. However, no fee need be paid
125
+ to us.
126
+
127
+ 3. Advertising
128
+ --------------
129
+
130
+ Neither the FreeType authors and contributors nor you shall use
131
+ the name of the other for commercial, advertising, or promotional
132
+ purposes without specific prior written permission.
133
+
134
+ We suggest, but do not require, that you use one or more of the
135
+ following phrases to refer to this software in your documentation
136
+ or advertising materials: `FreeType Project', `FreeType Engine',
137
+ `FreeType library', or `FreeType Distribution'.
138
+
139
+ As you have not signed this license, you are not required to
140
+ accept it. However, as the FreeType Project is copyrighted
141
+ material, only this license, or another one contracted with the
142
+ authors, grants you the right to use, distribute, and modify it.
143
+ Therefore, by using, distributing, or modifying the FreeType
144
+ Project, you indicate that you understand and accept all the terms
145
+ of this license.
146
+
147
+ 4. Contacts
148
+ -----------
149
+
150
+ There are two mailing lists related to FreeType:
151
+
152
+ o freetype@nongnu.org
153
+
154
+ Discusses general use and applications of FreeType, as well as
155
+ future and wanted additions to the library and distribution.
156
+ If you are looking for support, start in this list if you
157
+ haven't found anything to help you in the documentation.
158
+
159
+ o freetype-devel@nongnu.org
160
+
161
+ Discusses bugs, as well as engine internals, design issues,
162
+ specific licenses, porting, etc.
163
+
164
+ Our home page can be found at
165
+
166
+ http://www.freetype.org
167
+
168
+
169
+ --- end of FTL.TXT ---
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Pedro Miranda
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
File without changes
Binary file
@@ -0,0 +1,36 @@
1
+ require_relative 'ft-ffi/version'
2
+ require 'ffi-additions/struct'
3
+ require 'ft-ffi/config'
4
+
5
+ module FT
6
+ class FreeTypeError < StandardError; end
7
+ require_relative 'ft-ffi/lib_base'
8
+
9
+ extend LibBase
10
+
11
+ require 'ft-ffi/struct/stubs'
12
+ require 'ft-ffi/struct/library_rec'
13
+ require 'ft-ffi/struct/service_desc_rec'
14
+ require 'ft-ffi/struct/glyph/glyph_metrics'
15
+
16
+ if CONFIG_OPTION[:ENVIRONMENT_PROPERTIES]
17
+ # FT_Error ft_property_string_set(
18
+ # FT_Library library,
19
+ # const FT_String* module_name,
20
+ # const FT_String* property_name,
21
+ # FT_String* value );
22
+ attach_function 'property_string_set', 'ft_property_string_set', [LibraryRec.ptr, :string, :string, :string], :FT_Error
23
+
24
+ # FT_Pointer ft_service_list_lookup( FT_ServiceDesc service_descriptors, const char* service_id );
25
+ attach_function 'service_list_lookup', 'ft_service_list_lookup', [ServiceDescRec.ptr, :string], :FT_Pointer
26
+
27
+ # void ft_synthesize_vertical_metrics( FT_Glyph_Metrics* metrics, FT_Pos advance );
28
+ attach_function 'synthesize_vertical_metrics', 'ft_synthesize_vertical_metrics', [Glyph_Metrics.ptr, :FT_Pos], :void
29
+ end
30
+
31
+ # TODO use FT_Library_Version
32
+ # FREETYPE_MAJOR = 2
33
+ # FREETYPE_MINOR = 6
34
+ # FREETYPE_PATCH = 5
35
+
36
+ end
@@ -0,0 +1,79 @@
1
+ module FT
2
+ CONFIG_OPTION = {}
3
+
4
+ CONFIG_OPTION[:ENVIRONMENT_PROPERTIES] = true
5
+ CONFIG_OPTION[:SUBPIXEL_RENDERING] = false
6
+ CONFIG_OPTION[:FORCE_INT64] = false
7
+ CONFIG_OPTION[:INLINE_MULFIX] = true
8
+ CONFIG_OPTION[:USE_LZW] = true
9
+ CONFIG_OPTION[:USE_ZLIB] = true
10
+ CONFIG_OPTION[:SYSTEM_ZLIB] = false
11
+ CONFIG_OPTION[:USE_BZIP2] = false
12
+ CONFIG_OPTION[:DISABLE_STREAM_SUPPORT] = false
13
+ CONFIG_OPTION[:USE_PNG] = false
14
+ CONFIG_OPTION[:USE_HARFBUZZ] = false
15
+ CONFIG_OPTION[:POSTSCRIPT_NAMES] = true
16
+ CONFIG_OPTION[:ADOBE_GLYPH_LIST] = true
17
+ CONFIG_OPTION[:MAC_FONTS] = true
18
+ CONFIG_OPTION[:GUESSING_EMBEDDED_RFORK] = CONFIG_OPTION[:MAC_FONTS]
19
+ CONFIG_OPTION[:INCREMENTAL] = true
20
+ CONFIG_OPTION[:USE_MODULE_ERRORS] = false
21
+ CONFIG_OPTION[:PIC] = false
22
+ CONFIG_OPTION[:ENVIRONMENT_PROPERTIES] = true
23
+ CONFIG_OPTION[:NO_DEFAULT_SYSTEM] = false
24
+
25
+ RENDER_POOL_SIZE = 16384
26
+
27
+ # DEBUG_LEVEL = ERROR
28
+ # DEBUG_LEVEL = DEBUG
29
+ DEBUG_AUTOFIT = false
30
+ DEBUG_MEMORY = false
31
+
32
+ module TT
33
+ CONFIG_OPTION[:EMBEDDED_BITMAPS] = true
34
+ CONFIG_OPTION[:POSTSCRIPT_NAMES] = true
35
+ CONFIG_OPTION[:SFNT_NAMES] = true
36
+ CONFIG_OPTION[:BYTECODE_INTERPRETER] = true
37
+ CONFIG_OPTION[:COMPONENT_OFFSET_SCALED] = true
38
+ CONFIG_OPTION[:GX_VAR_SUPPORT] = true
39
+ CONFIG_OPTION[:BDF] = true
40
+ CONFIG_OPTION[:MAX_RUNNABLE_OPCODES] = 1000000
41
+ # CONFIG_OPTION[:SUBPIXEL_HINTING] = 1
42
+ # CONFIG_OPTION[:SUBPIXEL_HINTING] = 2
43
+
44
+ USE_BYTECODE_INTERPRETER = CONFIG_OPTION[:BYTECODE_INTERPRETER]
45
+ CONFIG_OPTION[:SUBPIXEL_HINTING_INFINALITY] = CONFIG_OPTION[:SUBPIXEL_HINTING] == 1
46
+ CONFIG_OPTION[:SUBPIXEL_HINTING_MINIMAL] = CONFIG_OPTION[:SUBPIXEL_HINTING] == 2
47
+ end
48
+
49
+ module T1
50
+ MAX_DICT_DEPTH = 5
51
+ MAX_SUBRS_CALLS = 16
52
+ MAX_CHARSTRINGS_OPERANDS = 256
53
+ CONFIG_OPTION[:NO_AFM] = false
54
+ CONFIG_OPTION[:NO_MM_SUPPORT] = false
55
+ end
56
+
57
+ module CFF
58
+ CONFIG_OPTION[:DARKENING_PARAMETER_X1] = 500
59
+ CONFIG_OPTION[:DARKENING_PARAMETER_Y1] = 400
60
+
61
+ CONFIG_OPTION[:DARKENING_PARAMETER_X2] = 1000
62
+ CONFIG_OPTION[:DARKENING_PARAMETER_Y2] = 275
63
+
64
+ CONFIG_OPTION[:DARKENING_PARAMETER_X3] = 1667
65
+ CONFIG_OPTION[:DARKENING_PARAMETER_Y3] = 275
66
+
67
+ CONFIG_OPTION[:DARKENING_PARAMETER_X4] = 2333
68
+ CONFIG_OPTION[:DARKENING_PARAMETER_Y4] = 0
69
+
70
+ CONFIG_OPTION[:OLD_ENGINE] = false
71
+ end
72
+
73
+ module AF
74
+ CONFIG_OPTION[:CJK] = true
75
+ CONFIG_OPTION[:INDIC] = true
76
+ CONFIG_OPTION[:USE_WARPER] = true
77
+ end
78
+ end
79
+
@@ -0,0 +1,10 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ CFFHinting = enum :cff_hinting, [
5
+ :FREETYPE, 0,
6
+ :ADOBE, 1
7
+ ]
8
+
9
+ define_prefix(:CFF_HINTING, CFFHinting)
10
+ end
@@ -0,0 +1,12 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ AutohinterScript = enum :autohinter_script, [
5
+ :NONE, 0,
6
+ :LATIN, 1,
7
+ :CJK, 2,
8
+ :INDIC, 3
9
+ ]
10
+
11
+ define_prefix(:AUTOHINTER_SCRIPT, AutohinterScript)
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ PropertyType = enum :property_type, [
5
+ :NONE, 0,
6
+ :ATOM, 1,
7
+ :INTEGER, 2,
8
+ :CARDINAL, 3
9
+ ]
10
+
11
+ # define_prefix(:BDF_PROPERTY_TYPE, PropertyType)
12
+ end
@@ -0,0 +1,19 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ Encoding = enum :encoding, [
5
+ :MS_SYMBOL, 0x73796d62, #'symb'
6
+ :UNICODE, 0x756e6963, #'unic'
7
+ :SJIS, 0x736a6973, #'sjis'
8
+ :GB2312, 0x67622020, #'gb '
9
+ :BIG5, 0x62696735, #'big5'
10
+ :WANSUNG, 0x77616e73, #'wans'
11
+ :JOHAB, 0x6a6f6861, #'joha'
12
+ :ADOBE_STANDARD, 0x41444f42, #'ADOB'
13
+ :ADOBE_EXPERT, 0x41444245, #'ADBE'
14
+ :ADOBE_CUSTOM, 0x41444243, #'ADBC'
15
+ :ADOBE_LATIN_1, 0x6c617431, #'lat1'
16
+ :OLD_LATIN_2, 0x6c617432, #'lat2'
17
+ :APPLE_ROMAN, 0x61726d6e, #'armn'
18
+ ]
19
+ end
@@ -0,0 +1,21 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ # https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_FACE_FLAG_XXX
5
+ FaceFlag = enum :face_flag, [
6
+ :SCALABLE, 0x0001,
7
+ :FIXED_SIZES, 0x0002,
8
+ :FIXED_WIDTH, 0x0004,
9
+ :SFNT, 0x0008,
10
+ :HORIZONTAL, 0x0010,
11
+ :VERTICAL, 0x0020,
12
+ :KERNING, 0x0040,
13
+ :FAST_GLYPHS, 0x0080,
14
+ :MULTIPLE_MASTERS, 0x0100,
15
+ :GLYPH_NAMES, 0x0200,
16
+ :EXTERNAL_STREAM, 0x0400,
17
+ :HINTER, 0x0800,
18
+ :CID_KEYED, 0x1000,
19
+ :TRICKY, 0x2000
20
+ ]
21
+ end
@@ -0,0 +1,14 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ # https://www.freetype.org/freetype2/docs/reference/ft2-gasp_table.html#FT_GASP_XXX
5
+ GaspTable = enum :gasp_table, [
6
+ :NO_TABLE, -1,
7
+ :DO_GRIDFIT, 0x01,
8
+ :DO_GRAY, 0x02,
9
+ :SYMMETRIC_SMOOTHING, 0x08,
10
+ :SYMMETRIC_GRIDFIT, 0x10,
11
+ ]
12
+
13
+ # define_prefix(:GASP, GaspTable)
14
+ end
@@ -0,0 +1,10 @@
1
+ module FT
2
+ # https://www.freetype.org/freetype2/docs/reference/ft2-glyph_management.html#FT_Glyph_BBox_Mode
3
+ GlyphBBoxMode = enum :glyph_bbox_mode, [
4
+ :GLYPH_BBOX_UNSCALED, 0,
5
+ :GLYPH_BBOX_SUBPIXELS,0,
6
+ :GLYPH_BBOX_GRIDFIT, 1,
7
+ :GLYPH_BBOX_TRUNCATE, 2,
8
+ :GLYPH_BBOX_PIXELS, 3
9
+ ]
10
+ end
@@ -0,0 +1,12 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ # https://www.freetype.org/freetype2/docs/reference/ft2-basic_types.html#FT_Glyph_Format
5
+ GlyphFormat = enum :glyph_format, [
6
+ :NONE, 0,
7
+ :COMPOSITE, 0x636f6d70, #'comp'
8
+ :BITMAP, 0x62697473, #'bits'
9
+ :OUTLINE, 0x6f75746c, #'outl'
10
+ :PLOTTER, 0x706c6f74 #'plot'
11
+ ]
12
+ end
@@ -0,0 +1,9 @@
1
+ require 'ft-ffi'
2
+
3
+ module FT
4
+ KerningMode = enum :kerning_mode, [
5
+ :DEFAULT,
6
+ :UNFITTED,
7
+ :UNSCALED
8
+ ]
9
+ end