pango 3.1.0-x86-mingw32 → 3.1.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +9 -4
  3. data/ext/pango/rbpangolayoutline.c +6 -2
  4. data/lib/2.2/pango.so +0 -0
  5. data/lib/2.3/pango.so +0 -0
  6. data/lib/2.4/pango.so +0 -0
  7. data/sample/layout.rb +1 -1
  8. data/vendor/local/bin/derb.exe +0 -0
  9. data/vendor/local/bin/genbrk.exe +0 -0
  10. data/vendor/local/bin/genccode.exe +0 -0
  11. data/vendor/local/bin/gencfu.exe +0 -0
  12. data/vendor/local/bin/gencmn.exe +0 -0
  13. data/vendor/local/bin/gencnval.exe +0 -0
  14. data/vendor/local/bin/gendict.exe +0 -0
  15. data/vendor/local/bin/gennorm2.exe +0 -0
  16. data/vendor/local/bin/genrb.exe +0 -0
  17. data/vendor/local/bin/gensprep.exe +0 -0
  18. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  19. data/vendor/local/bin/hb-shape.exe +0 -0
  20. data/vendor/local/bin/hb-view.exe +0 -0
  21. data/vendor/local/bin/icu-config +18 -13
  22. data/vendor/local/bin/icuinfo.exe +0 -0
  23. data/vendor/local/bin/icupkg.exe +0 -0
  24. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  25. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  26. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  27. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  28. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  29. data/vendor/local/bin/makeconv.exe +0 -0
  30. data/vendor/local/bin/pango-view.exe +0 -0
  31. data/vendor/local/bin/pkgdata.exe +0 -0
  32. data/vendor/local/bin/uconv.exe +0 -0
  33. data/vendor/local/include/harfbuzz/hb-font.h +5 -0
  34. data/vendor/local/include/harfbuzz/hb-glib.h +2 -1
  35. data/vendor/local/include/harfbuzz/hb-ot-layout.h +19 -0
  36. data/vendor/local/include/harfbuzz/hb-shape-plan.h +19 -0
  37. data/vendor/local/include/harfbuzz/hb-version.h +3 -3
  38. data/vendor/local/include/unicode/alphaindex.h +2 -0
  39. data/vendor/local/include/unicode/appendable.h +2 -0
  40. data/vendor/local/include/unicode/basictz.h +2 -0
  41. data/vendor/local/include/unicode/brkiter.h +7 -0
  42. data/vendor/local/include/unicode/bytestream.h +2 -0
  43. data/vendor/local/include/unicode/bytestrie.h +3 -2
  44. data/vendor/local/include/unicode/bytestriebuilder.h +4 -4
  45. data/vendor/local/include/unicode/calendar.h +2 -0
  46. data/vendor/local/include/unicode/caniter.h +2 -0
  47. data/vendor/local/include/unicode/chariter.h +2 -0
  48. data/vendor/local/include/unicode/choicfmt.h +2 -0
  49. data/vendor/local/include/unicode/coleitr.h +2 -0
  50. data/vendor/local/include/unicode/coll.h +2 -0
  51. data/vendor/local/include/unicode/compactdecimalformat.h +4 -3
  52. data/vendor/local/include/unicode/curramt.h +2 -0
  53. data/vendor/local/include/unicode/currpinf.h +2 -0
  54. data/vendor/local/include/unicode/currunit.h +2 -0
  55. data/vendor/local/include/unicode/datefmt.h +2 -0
  56. data/vendor/local/include/unicode/dbbi.h +2 -0
  57. data/vendor/local/include/unicode/dcfmtsym.h +2 -0
  58. data/vendor/local/include/unicode/decimfmt.h +9 -5
  59. data/vendor/local/include/unicode/docmain.h +3 -1
  60. data/vendor/local/include/unicode/dtfmtsym.h +26 -14
  61. data/vendor/local/include/unicode/dtintrv.h +2 -0
  62. data/vendor/local/include/unicode/dtitvfmt.h +2 -0
  63. data/vendor/local/include/unicode/dtitvinf.h +8 -3
  64. data/vendor/local/include/unicode/dtptngen.h +13 -9
  65. data/vendor/local/include/unicode/dtrule.h +2 -0
  66. data/vendor/local/include/unicode/enumset.h +2 -0
  67. data/vendor/local/include/unicode/errorcode.h +2 -0
  68. data/vendor/local/include/unicode/fieldpos.h +5 -2
  69. data/vendor/local/include/unicode/filteredbrk.h +10 -12
  70. data/vendor/local/include/unicode/fmtable.h +4 -2
  71. data/vendor/local/include/unicode/format.h +2 -0
  72. data/vendor/local/include/unicode/fpositer.h +2 -0
  73. data/vendor/local/include/unicode/gender.h +2 -0
  74. data/vendor/local/include/unicode/gregocal.h +2 -0
  75. data/vendor/local/include/unicode/icudataver.h +2 -0
  76. data/vendor/local/include/unicode/icuplug.h +12 -2
  77. data/vendor/local/include/unicode/idna.h +6 -4
  78. data/vendor/local/include/unicode/listformatter.h +2 -0
  79. data/vendor/local/include/unicode/localpointer.h +19 -28
  80. data/vendor/local/include/unicode/locdspnm.h +2 -0
  81. data/vendor/local/include/unicode/locid.h +2 -0
  82. data/vendor/local/include/unicode/measfmt.h +21 -2
  83. data/vendor/local/include/unicode/measunit.h +50 -24
  84. data/vendor/local/include/unicode/measure.h +2 -0
  85. data/vendor/local/include/unicode/messagepattern.h +2 -0
  86. data/vendor/local/include/unicode/msgfmt.h +2 -0
  87. data/vendor/local/include/unicode/normalizer2.h +2 -0
  88. data/vendor/local/include/unicode/normlzr.h +4 -4
  89. data/vendor/local/include/unicode/numfmt.h +8 -6
  90. data/vendor/local/include/unicode/numsys.h +2 -0
  91. data/vendor/local/include/unicode/parseerr.h +2 -0
  92. data/vendor/local/include/unicode/parsepos.h +2 -0
  93. data/vendor/local/include/unicode/platform.h +8 -0
  94. data/vendor/local/include/unicode/plurfmt.h +2 -0
  95. data/vendor/local/include/unicode/plurrule.h +2 -0
  96. data/vendor/local/include/unicode/ptypes.h +2 -0
  97. data/vendor/local/include/unicode/putil.h +2 -0
  98. data/vendor/local/include/unicode/rbbi.h +18 -66
  99. data/vendor/local/include/unicode/rbnf.h +8 -0
  100. data/vendor/local/include/unicode/rbtz.h +2 -0
  101. data/vendor/local/include/unicode/regex.h +2 -0
  102. data/vendor/local/include/unicode/region.h +3 -1
  103. data/vendor/local/include/unicode/reldatefmt.h +19 -9
  104. data/vendor/local/include/unicode/rep.h +2 -0
  105. data/vendor/local/include/unicode/resbund.h +2 -0
  106. data/vendor/local/include/unicode/schriter.h +2 -0
  107. data/vendor/local/include/unicode/scientificnumberformatter.h +2 -0
  108. data/vendor/local/include/unicode/search.h +2 -0
  109. data/vendor/local/include/unicode/selfmt.h +2 -0
  110. data/vendor/local/include/unicode/simpleformatter.h +2 -0
  111. data/vendor/local/include/unicode/simpletz.h +2 -0
  112. data/vendor/local/include/unicode/smpdtfmt.h +9 -1
  113. data/vendor/local/include/unicode/sortkey.h +2 -0
  114. data/vendor/local/include/unicode/std_string.h +2 -0
  115. data/vendor/local/include/unicode/strenum.h +2 -0
  116. data/vendor/local/include/unicode/stringpiece.h +5 -3
  117. data/vendor/local/include/unicode/stringtriebuilder.h +13 -1
  118. data/vendor/local/include/unicode/stsearch.h +2 -0
  119. data/vendor/local/include/unicode/symtable.h +2 -0
  120. data/vendor/local/include/unicode/tblcoll.h +3 -1
  121. data/vendor/local/include/unicode/timezone.h +2 -0
  122. data/vendor/local/include/unicode/tmunit.h +8 -0
  123. data/vendor/local/include/unicode/tmutamt.h +2 -0
  124. data/vendor/local/include/unicode/tmutfmt.h +5 -0
  125. data/vendor/local/include/unicode/translit.h +2 -0
  126. data/vendor/local/include/unicode/tzfmt.h +2 -0
  127. data/vendor/local/include/unicode/tznames.h +16 -2
  128. data/vendor/local/include/unicode/tzrule.h +2 -0
  129. data/vendor/local/include/unicode/tztrans.h +2 -0
  130. data/vendor/local/include/unicode/ubidi.h +20 -8
  131. data/vendor/local/include/unicode/ubiditransform.h +321 -0
  132. data/vendor/local/include/unicode/ubrk.h +26 -7
  133. data/vendor/local/include/unicode/ucal.h +8 -4
  134. data/vendor/local/include/unicode/ucasemap.h +2 -0
  135. data/vendor/local/include/unicode/ucat.h +2 -0
  136. data/vendor/local/include/unicode/uchar.h +244 -17
  137. data/vendor/local/include/unicode/ucharstrie.h +2 -0
  138. data/vendor/local/include/unicode/ucharstriebuilder.h +2 -0
  139. data/vendor/local/include/unicode/uchriter.h +2 -0
  140. data/vendor/local/include/unicode/uclean.h +2 -0
  141. data/vendor/local/include/unicode/ucnv.h +8 -1
  142. data/vendor/local/include/unicode/ucnv_cb.h +2 -0
  143. data/vendor/local/include/unicode/ucnv_err.h +2 -0
  144. data/vendor/local/include/unicode/ucnvsel.h +2 -0
  145. data/vendor/local/include/unicode/ucol.h +28 -11
  146. data/vendor/local/include/unicode/ucoleitr.h +2 -0
  147. data/vendor/local/include/unicode/uconfig.h +2 -0
  148. data/vendor/local/include/unicode/ucsdet.h +2 -0
  149. data/vendor/local/include/unicode/ucurr.h +5 -1
  150. data/vendor/local/include/unicode/udat.h +13 -11
  151. data/vendor/local/include/unicode/udata.h +8 -1
  152. data/vendor/local/include/unicode/udateintervalformat.h +2 -0
  153. data/vendor/local/include/unicode/udatpg.h +15 -2
  154. data/vendor/local/include/unicode/udisplaycontext.h +34 -2
  155. data/vendor/local/include/unicode/uenum.h +2 -0
  156. data/vendor/local/include/unicode/ufieldpositer.h +4 -2
  157. data/vendor/local/include/unicode/uformattable.h +9 -1
  158. data/vendor/local/include/unicode/ugender.h +2 -0
  159. data/vendor/local/include/unicode/uidna.h +2 -0
  160. data/vendor/local/include/unicode/uiter.h +2 -0
  161. data/vendor/local/include/unicode/uldnames.h +2 -0
  162. data/vendor/local/include/unicode/ulistformatter.h +2 -0
  163. data/vendor/local/include/unicode/uloc.h +9 -3
  164. data/vendor/local/include/unicode/ulocdata.h +20 -2
  165. data/vendor/local/include/unicode/umachine.h +25 -0
  166. data/vendor/local/include/unicode/umisc.h +2 -0
  167. data/vendor/local/include/unicode/umsg.h +2 -0
  168. data/vendor/local/include/unicode/unifilt.h +2 -0
  169. data/vendor/local/include/unicode/unifunct.h +2 -0
  170. data/vendor/local/include/unicode/unimatch.h +2 -0
  171. data/vendor/local/include/unicode/unirepl.h +2 -0
  172. data/vendor/local/include/unicode/uniset.h +3 -1
  173. data/vendor/local/include/unicode/unistr.h +12 -14
  174. data/vendor/local/include/unicode/unorm.h +6 -2
  175. data/vendor/local/include/unicode/unorm2.h +2 -0
  176. data/vendor/local/include/unicode/unum.h +28 -10
  177. data/vendor/local/include/unicode/unumsys.h +2 -0
  178. data/vendor/local/include/unicode/uobject.h +2 -0
  179. data/vendor/local/include/unicode/upluralrules.h +6 -2
  180. data/vendor/local/include/unicode/uregex.h +2 -0
  181. data/vendor/local/include/unicode/uregion.h +6 -2
  182. data/vendor/local/include/unicode/ureldatefmt.h +13 -7
  183. data/vendor/local/include/unicode/urename.h +16 -4
  184. data/vendor/local/include/unicode/urep.h +2 -0
  185. data/vendor/local/include/unicode/ures.h +7 -1
  186. data/vendor/local/include/unicode/uscript.h +41 -29
  187. data/vendor/local/include/unicode/usearch.h +10 -4
  188. data/vendor/local/include/unicode/uset.h +5 -1
  189. data/vendor/local/include/unicode/usetiter.h +2 -0
  190. data/vendor/local/include/unicode/ushape.h +2 -0
  191. data/vendor/local/include/unicode/uspoof.h +876 -363
  192. data/vendor/local/include/unicode/usprep.h +2 -0
  193. data/vendor/local/include/unicode/ustdio.h +2 -0
  194. data/vendor/local/include/unicode/ustream.h +2 -0
  195. data/vendor/local/include/unicode/ustring.h +2 -0
  196. data/vendor/local/include/unicode/ustringtrie.h +2 -0
  197. data/vendor/local/include/unicode/utext.h +2 -0
  198. data/vendor/local/include/unicode/utf.h +2 -0
  199. data/vendor/local/include/unicode/utf16.h +2 -0
  200. data/vendor/local/include/unicode/utf32.h +2 -0
  201. data/vendor/local/include/unicode/utf8.h +2 -0
  202. data/vendor/local/include/unicode/utf_old.h +2 -0
  203. data/vendor/local/include/unicode/utmscale.h +2 -0
  204. data/vendor/local/include/unicode/utrace.h +20 -0
  205. data/vendor/local/include/unicode/utrans.h +2 -0
  206. data/vendor/local/include/unicode/utypes.h +71 -97
  207. data/vendor/local/include/unicode/uvernum.h +13 -12
  208. data/vendor/local/include/unicode/uversion.h +2 -0
  209. data/vendor/local/include/unicode/vtzone.h +2 -0
  210. data/vendor/local/lib/icu/{57.1 → 58.2}/Makefile.inc +8 -9
  211. data/vendor/local/lib/icu/{57.1 → 58.2}/pkgdata.inc +3 -3
  212. data/vendor/local/lib/icu/Makefile.inc +8 -9
  213. data/vendor/local/lib/icu/pkgdata.inc +3 -3
  214. data/vendor/local/lib/icudt.dll +0 -0
  215. data/vendor/local/lib/icudt58.dll +0 -0
  216. data/vendor/local/lib/icuin.dll +0 -0
  217. data/vendor/local/lib/icuin58.dll +0 -0
  218. data/vendor/local/lib/icuio.dll +0 -0
  219. data/vendor/local/lib/icuio58.dll +0 -0
  220. data/vendor/local/lib/icutest.dll +0 -0
  221. data/vendor/local/lib/{icutest57.dll → icutest58.dll} +0 -0
  222. data/vendor/local/lib/icutu.dll +0 -0
  223. data/vendor/local/lib/icutu58.dll +0 -0
  224. data/vendor/local/lib/icuuc.dll +0 -0
  225. data/vendor/local/lib/icuuc58.dll +0 -0
  226. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  227. data/vendor/local/lib/libharfbuzz-icu.la +4 -4
  228. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  229. data/vendor/local/lib/libharfbuzz.la +3 -3
  230. data/vendor/local/lib/libicudt.dll.a +0 -0
  231. data/vendor/local/lib/{icudt57.dll → libicudt58.dll} +0 -0
  232. data/vendor/local/lib/libicuin.dll.a +0 -0
  233. data/vendor/local/lib/libicuio.dll.a +0 -0
  234. data/vendor/local/lib/libicutest.dll.a +0 -0
  235. data/vendor/local/lib/libicutu.dll.a +0 -0
  236. data/vendor/local/lib/libicuuc.dll.a +0 -0
  237. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  238. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  239. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  240. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  241. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +1 -1
  242. data/vendor/local/lib/pkgconfig/harfbuzz.pc +2 -2
  243. data/vendor/local/lib/pkgconfig/icu-i18n.pc +8 -6
  244. data/vendor/local/lib/pkgconfig/icu-io.pc +8 -6
  245. data/vendor/local/lib/pkgconfig/icu-uc.pc +8 -6
  246. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +3 -3
  247. data/vendor/local/share/gtk-doc/html/harfbuzz/pt02.html +1 -1
  248. data/vendor/local/share/icu/{57.1 → 58.2}/LICENSE +52 -60
  249. data/vendor/local/share/icu/{57.1 → 58.2}/config/mh-mingw +4 -2
  250. data/vendor/local/share/icu/{57.1 → 58.2}/install-sh +0 -0
  251. data/vendor/local/share/icu/{57.1 → 58.2}/mkinstalldirs +2 -0
  252. data/vendor/local/share/man/man1/derb.1 +4 -2
  253. data/vendor/local/share/man/man1/genbrk.1 +4 -2
  254. data/vendor/local/share/man/man1/gencfu.1 +3 -1
  255. data/vendor/local/share/man/man1/gencnval.1 +5 -3
  256. data/vendor/local/share/man/man1/gendict.1 +4 -2
  257. data/vendor/local/share/man/man1/genrb.1 +5 -3
  258. data/vendor/local/share/man/man1/icu-config.1 +4 -5
  259. data/vendor/local/share/man/man1/makeconv.1 +5 -3
  260. data/vendor/local/share/man/man1/pkgdata.1 +4 -2
  261. data/vendor/local/share/man/man1/uconv.1 +4 -2
  262. data/vendor/local/share/man/man8/genccode.8 +4 -2
  263. data/vendor/local/share/man/man8/gencmn.8 +5 -3
  264. data/vendor/local/share/man/man8/gensprep.8 +5 -3
  265. data/vendor/local/share/man/man8/icupkg.8 +3 -1
  266. metadata +23 -40
  267. data/vendor/local/include/layout/LEFontInstance.h +0 -524
  268. data/vendor/local/include/layout/LEGlyphFilter.h +0 -45
  269. data/vendor/local/include/layout/LEGlyphStorage.h +0 -546
  270. data/vendor/local/include/layout/LEInsertionList.h +0 -177
  271. data/vendor/local/include/layout/LELanguages.h +0 -109
  272. data/vendor/local/include/layout/LEScripts.h +0 -204
  273. data/vendor/local/include/layout/LESwaps.h +0 -100
  274. data/vendor/local/include/layout/LETableReference.h +0 -435
  275. data/vendor/local/include/layout/LETypes.h +0 -728
  276. data/vendor/local/include/layout/LayoutEngine.h +0 -518
  277. data/vendor/local/include/layout/ParagraphLayout.h +0 -747
  278. data/vendor/local/include/layout/RunArrays.h +0 -676
  279. data/vendor/local/include/layout/loengine.h +0 -225
  280. data/vendor/local/include/layout/playout.h +0 -466
  281. data/vendor/local/include/layout/plruns.h +0 -441
  282. data/vendor/local/lib/icuin57.dll +0 -0
  283. data/vendor/local/lib/icuio57.dll +0 -0
  284. data/vendor/local/lib/icule.dll +0 -0
  285. data/vendor/local/lib/icule57.dll +0 -0
  286. data/vendor/local/lib/iculx.dll +0 -0
  287. data/vendor/local/lib/iculx57.dll +0 -0
  288. data/vendor/local/lib/icutu57.dll +0 -0
  289. data/vendor/local/lib/icuuc57.dll +0 -0
  290. data/vendor/local/lib/libicule.dll.a +0 -0
  291. data/vendor/local/lib/libiculx.dll.a +0 -0
  292. data/vendor/local/lib/pkgconfig/icu-le.pc +0 -38
  293. data/vendor/local/lib/pkgconfig/icu-lx.pc +0 -38
@@ -1,518 +0,0 @@
1
- /*
2
- * (C) Copyright IBM Corp. and others 1998-2014 - All Rights Reserved
3
- */
4
-
5
- #ifndef __LAYOUTENGINE_H
6
- #define __LAYOUTENGINE_H
7
-
8
- #include "LETypes.h"
9
-
10
- /**
11
- * \file
12
- * \brief C++ API: DEPRECATED: Virtual base class for complex text layout.
13
- */
14
-
15
- U_NAMESPACE_BEGIN
16
-
17
- class LEFontInstance;
18
- class LEGlyphFilter;
19
- class LEGlyphStorage;
20
-
21
- /**
22
- * NOTE: This class is deprecated, please instead use HarfBuzz.
23
- * See: http://www.freedesktop.org/wiki/Software/HarfBuzz/
24
- * and http://userguide.icu-project.org/layoutengine
25
- *
26
- * This is a virtual base class used to do complex text layout. The text must all
27
- * be in a single font, script, and language. An instance of a LayoutEngine can be
28
- * created by calling the layoutEngineFactory method. Fonts are identified by
29
- * instances of the LEFontInstance class. Script and language codes are identified
30
- * by integer codes, which are defined in ScriptAndLanuageTags.h.
31
- *
32
- * Note that this class is not public API. It is declared public so that it can be
33
- * exported from the library that it is a part of.
34
- *
35
- * The input to the layout process is an array of characters in logical order,
36
- * and a starting X, Y position for the text. The output is an array of glyph indices,
37
- * an array of character indices for the glyphs, and an array of glyph positions.
38
- * These arrays are protected members of LayoutEngine which can be retreived by a
39
- * public method. The reset method can be called to free these arrays so that the
40
- * LayoutEngine can be reused.
41
- *
42
- * The layout process is done in three steps. There is a protected virtual method
43
- * for each step. These methods have a default implementation which only does
44
- * character to glyph mapping and default positioning using the glyph's advance
45
- * widths. Subclasses can override these methods for more advanced layout.
46
- * There is a public method which invokes the steps in the correct order.
47
- *
48
- * The steps are:
49
- *
50
- * 1) Glyph processing - character to glyph mapping and any other glyph processing
51
- * such as ligature substitution and contextual forms.
52
- *
53
- * 2) Glyph positioning - position the glyphs based on their advance widths.
54
- *
55
- * 3) Glyph position adjustments - adjustment of glyph positions for kerning,
56
- * accent placement, etc.
57
- *
58
- * NOTE: in all methods below, output parameters are references to pointers so
59
- * the method can allocate and free the storage as needed. All storage allocated
60
- * in this way is owned by the object which created it, and will be freed when it
61
- * is no longer needed, or when the object's destructor is invoked.
62
- *
63
- * @see LEFontInstance
64
- * @see ScriptAndLanguageTags.h
65
- *
66
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
67
- * Instead, please use HarfBuzz.
68
- * see http://www.freedesktop.org/wiki/Software/HarfBuzz/
69
- * and http://userguide.icu-project.org/layoutengine
70
- */
71
- class U_LAYOUT_API LayoutEngine : public UObject {
72
- public:
73
- #ifndef U_HIDE_INTERNAL_API
74
- /** @internal Flag to request kerning. Use LE_Kerning_FEATURE_FLAG instead. */
75
- static const le_int32 kTypoFlagKern;
76
- /** @internal Flag to request ligatures. Use LE_Ligatures_FEATURE_FLAG instead. */
77
- static const le_int32 kTypoFlagLiga;
78
- #endif /* U_HIDE_INTERNAL_API */
79
-
80
- protected:
81
- /**
82
- * The object which holds the glyph storage
83
- *
84
- * @internal
85
- */
86
- LEGlyphStorage *fGlyphStorage;
87
-
88
- /**
89
- * The font instance for the text font.
90
- *
91
- * @see LEFontInstance
92
- *
93
- * @internal
94
- */
95
- const LEFontInstance *fFontInstance;
96
-
97
- /**
98
- * The script code for the text
99
- *
100
- * @see ScriptAndLanguageTags.h for script codes.
101
- *
102
- * @internal
103
- */
104
- le_int32 fScriptCode;
105
-
106
- /**
107
- * The langauge code for the text
108
- *
109
- * @see ScriptAndLanguageTags.h for language codes.
110
- *
111
- * @internal
112
- */
113
- le_int32 fLanguageCode;
114
-
115
- /**
116
- * The typographic control flags
117
- *
118
- * @internal
119
- */
120
- le_int32 fTypoFlags;
121
-
122
- /**
123
- * <code>TRUE</code> if <code>mapCharsToGlyphs</code> should replace ZWJ / ZWNJ with a glyph
124
- * with no contours.
125
- *
126
- * @internal
127
- */
128
- le_bool fFilterZeroWidth;
129
-
130
- #ifndef U_HIDE_INTERNAL_API
131
- /**
132
- * This constructs an instance for a given font, script and language. Subclass constructors
133
- * must call this constructor.
134
- *
135
- * @param fontInstance - the font for the text
136
- * @param scriptCode - the script for the text
137
- * @param languageCode - the language for the text
138
- * @param typoFlags - the typographic control flags for the text (a bitfield). Use kTypoFlagKern
139
- * if kerning is desired, kTypoFlagLiga if ligature formation is desired. Others are reserved.
140
- * @param success - set to an error code if the operation fails
141
- *
142
- * @see LEFontInstance
143
- * @see ScriptAndLanguageTags.h
144
- *
145
- * @internal
146
- */
147
- LayoutEngine(const LEFontInstance *fontInstance,
148
- le_int32 scriptCode,
149
- le_int32 languageCode,
150
- le_int32 typoFlags,
151
- LEErrorCode &success);
152
- #endif /* U_HIDE_INTERNAL_API */
153
-
154
- // Do not enclose the protected default constructor with #ifndef U_HIDE_INTERNAL_API
155
- // or else the compiler will create a public default constructor.
156
- /**
157
- * This overrides the default no argument constructor to make it
158
- * difficult for clients to call it. Clients are expected to call
159
- * layoutEngineFactory.
160
- *
161
- * @internal
162
- */
163
- LayoutEngine();
164
-
165
- /**
166
- * This method does any required pre-processing to the input characters. It
167
- * may generate output characters that differ from the input charcters due to
168
- * insertions, deletions, or reorderings. In such cases, it will also generate an
169
- * output character index array reflecting these changes.
170
- *
171
- * Subclasses must override this method.
172
- *
173
- * Input parameters:
174
- * @param chars - the input character context
175
- * @param offset - the index of the first character to process
176
- * @param count - the number of characters to process
177
- * @param max - the number of characters in the input context
178
- * @param rightToLeft - TRUE if the characters are in a right to left directional run
179
- * @param outChars - the output character array, if different from the input
180
- * @param glyphStorage - the object that holds the per-glyph storage. The character index array may be set.
181
- * @param success - set to an error code if the operation fails
182
- *
183
- * @return the output character count (input character count if no change)
184
- *
185
- * @internal
186
- */
187
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
188
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
189
-
190
- /**
191
- * This method does the glyph processing. It converts an array of characters
192
- * into an array of glyph indices and character indices. The characters to be
193
- * processed are passed in a surrounding context. The context is specified as
194
- * a starting address and a maximum character count. An offset and a count are
195
- * used to specify the characters to be processed.
196
- *
197
- * The default implementation of this method only does character to glyph mapping.
198
- * Subclasses needing more elaborate glyph processing must override this method.
199
- *
200
- * Input parameters:
201
- * @param chars - the character context
202
- * @param offset - the offset of the first character to process
203
- * @param count - the number of characters to process
204
- * @param max - the number of characters in the context.
205
- * @param rightToLeft - TRUE if the text is in a right to left directional run
206
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char indices arrays
207
- * will be set.
208
- *
209
- * Output parameters:
210
- * @param success - set to an error code if the operation fails
211
- *
212
- * @return the number of glyphs in the glyph index array
213
- *
214
- * @internal
215
- */
216
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
217
-
218
- /**
219
- * This method does basic glyph positioning. The default implementation positions
220
- * the glyphs based on their advance widths. This is sufficient for most uses. It
221
- * is not expected that many subclasses will override this method.
222
- *
223
- * Input parameters:
224
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph position array will be set.
225
- * @param x - the starting X position
226
- * @param y - the starting Y position
227
- * @param success - set to an error code if the operation fails
228
- *
229
- * @internal
230
- */
231
- virtual void positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success);
232
-
233
- /**
234
- * This method does positioning adjustments like accent positioning and
235
- * kerning. The default implementation does nothing. Subclasses needing
236
- * position adjustments must override this method.
237
- *
238
- * Note that this method has both characters and glyphs as input so that
239
- * it can use the character codes to determine glyph types if that information
240
- * isn't directly available. (e.g. Some Arabic OpenType fonts don't have a GDEF
241
- * table)
242
- *
243
- * @param chars - the input character context
244
- * @param offset - the offset of the first character to process
245
- * @param count - the number of characters to process
246
- * @param reverse - <code>TRUE</code> if the glyphs in the glyph array have been reordered
247
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph positions will be
248
- * adjusted as needed.
249
- * @param success - output parameter set to an error code if the operation fails
250
- *
251
- * @internal
252
- */
253
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
254
-
255
- /**
256
- * This method gets a table from the font associated with
257
- * the text. The default implementation gets the table from
258
- * the font instance. Subclasses which need to get the tables
259
- * some other way must override this method.
260
- *
261
- * @param tableTag - the four byte table tag.
262
- * @param length - length to use
263
- *
264
- * @return the address of the table.
265
- *
266
- * @internal
267
- */
268
- virtual const void *getFontTable(LETag tableTag, size_t &length) const;
269
-
270
- /**
271
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
272
- */
273
- virtual const void *getFontTable(LETag tableTag) const { size_t ignored; return getFontTable(tableTag, ignored); }
274
-
275
- /**
276
- * This method does character to glyph mapping. The default implementation
277
- * uses the font instance to do the mapping. It will allocate the glyph and
278
- * character index arrays if they're not already allocated. If it allocates the
279
- * character index array, it will fill it it.
280
- *
281
- * This method supports right to left
282
- * text with the ability to store the glyphs in reverse order, and by supporting
283
- * character mirroring, which will replace a character which has a left and right
284
- * form, such as parens, with the opposite form before mapping it to a glyph index.
285
- *
286
- * Input parameters:
287
- * @param chars - the input character context
288
- * @param offset - the offset of the first character to be mapped
289
- * @param count - the number of characters to be mapped
290
- * @param reverse - if <code>TRUE</code>, the output will be in reverse order
291
- * @param mirror - if <code>TRUE</code>, do character mirroring
292
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char
293
- * indices arrays will be filled in.
294
- * @param success - set to an error code if the operation fails
295
- *
296
- * @see LEFontInstance
297
- *
298
- * @internal
299
- */
300
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, LEGlyphStorage &glyphStorage, LEErrorCode &success);
301
-
302
- #ifndef U_HIDE_INTERNAL_API
303
- /**
304
- * This is a convenience method that forces the advance width of mark
305
- * glyphs to be zero, which is required for proper selection and highlighting.
306
- *
307
- * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
308
- * @param markFilter - used to identify mark glyphs
309
- * @param success - output parameter set to an error code if the operation fails
310
- *
311
- * @see LEGlyphFilter
312
- *
313
- * @internal
314
- */
315
- static void adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
316
-
317
-
318
- /**
319
- * This is a convenience method that forces the advance width of mark
320
- * glyphs to be zero, which is required for proper selection and highlighting.
321
- * This method uses the input characters to identify marks. This is required in
322
- * cases where the font does not contain enough information to identify them based
323
- * on the glyph IDs.
324
- *
325
- * @param chars - the array of input characters
326
- * @param charCount - the number of input characers
327
- * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
328
- * @param reverse - <code>TRUE</code> if the glyph array has been reordered
329
- * @param markFilter - used to identify mark glyphs
330
- * @param success - output parameter set to an error code if the operation fails
331
- *
332
- * @see LEGlyphFilter
333
- *
334
- * @internal
335
- */
336
- static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
337
- #endif /* U_HIDE_INTERNAL_API */
338
-
339
- public:
340
- /**
341
- * The destructor. It will free any storage allocated for the
342
- * glyph, character index and position arrays by calling the reset
343
- * method. It is declared virtual so that it will be invoked by the
344
- * subclass destructors.
345
- *
346
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
347
- */
348
- virtual ~LayoutEngine();
349
-
350
- /**
351
- * This method will invoke the layout steps in their correct order by calling
352
- * the computeGlyphs, positionGlyphs and adjustGlyphPosition methods. It will
353
- * compute the glyph, character index and position arrays.
354
- *
355
- * @param chars - the input character context
356
- * @param offset - the offset of the first character to process
357
- * @param count - the number of characters to process
358
- * @param max - the number of characters in the input context
359
- * @param rightToLeft - TRUE if the characers are in a right to left directional run
360
- * @param x - the initial X position
361
- * @param y - the initial Y position
362
- * @param success - output parameter set to an error code if the operation fails
363
- *
364
- * @return the number of glyphs in the glyph array
365
- *
366
- * Note: The glyph, character index and position array can be accessed
367
- * using the getter methods below.
368
- *
369
- * Note: If you call this method more than once, you must call the reset()
370
- * method first to free the glyph, character index and position arrays
371
- * allocated by the previous call.
372
- *
373
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
374
- */
375
- virtual le_int32 layoutChars(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, float x, float y, LEErrorCode &success);
376
-
377
- /**
378
- * This method returns the number of glyphs in the glyph array. Note
379
- * that the number of glyphs will be greater than or equal to the number
380
- * of characters used to create the LayoutEngine.
381
- *
382
- * @return the number of glyphs in the glyph array
383
- *
384
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
385
- */
386
- le_int32 getGlyphCount() const;
387
-
388
- /**
389
- * This method copies the glyph array into a caller supplied array.
390
- * The caller must ensure that the array is large enough to hold all
391
- * the glyphs.
392
- *
393
- * @param glyphs - the destiniation glyph array
394
- * @param success - set to an error code if the operation fails
395
- *
396
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
397
- */
398
- void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
399
-
400
- /**
401
- * This method copies the glyph array into a caller supplied array,
402
- * ORing in extra bits. (This functionality is needed by the JDK,
403
- * which uses 32 bits pre glyph idex, with the high 16 bits encoding
404
- * the composite font slot number)
405
- *
406
- * @param glyphs - the destination (32 bit) glyph array
407
- * @param extraBits - this value will be ORed with each glyph index
408
- * @param success - set to an error code if the operation fails
409
- *
410
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
411
- */
412
- virtual void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
413
-
414
- /**
415
- * This method copies the character index array into a caller supplied array.
416
- * The caller must ensure that the array is large enough to hold a
417
- * character index for each glyph.
418
- *
419
- * @param charIndices - the destiniation character index array
420
- * @param success - set to an error code if the operation fails
421
- *
422
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
423
- */
424
- void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
425
-
426
- /**
427
- * This method copies the character index array into a caller supplied array.
428
- * The caller must ensure that the array is large enough to hold a
429
- * character index for each glyph.
430
- *
431
- * @param charIndices - the destiniation character index array
432
- * @param indexBase - an offset which will be added to each index
433
- * @param success - set to an error code if the operation fails
434
- *
435
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
436
- */
437
- void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
438
-
439
- /**
440
- * This method copies the position array into a caller supplied array.
441
- * The caller must ensure that the array is large enough to hold an
442
- * X and Y position for each glyph, plus an extra X and Y for the
443
- * advance of the last glyph.
444
- *
445
- * @param positions - the destiniation position array
446
- * @param success - set to an error code if the operation fails
447
- *
448
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
449
- */
450
- void getGlyphPositions(float positions[], LEErrorCode &success) const;
451
-
452
- /**
453
- * This method returns the X and Y position of the glyph at
454
- * the given index.
455
- *
456
- * Input parameters:
457
- * @param glyphIndex - the index of the glyph
458
- *
459
- * Output parameters:
460
- * @param x - the glyph's X position
461
- * @param y - the glyph's Y position
462
- * @param success - set to an error code if the operation fails
463
- *
464
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
465
- */
466
- void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
467
-
468
- /**
469
- * This method frees the glyph, character index and position arrays
470
- * so that the LayoutEngine can be reused to layout a different
471
- * characer array. (This method is also called by the destructor)
472
- *
473
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
474
- */
475
- virtual void reset();
476
-
477
- /**
478
- * This method returns a LayoutEngine capable of laying out text
479
- * in the given font, script and langauge. Note that the LayoutEngine
480
- * returned may be a subclass of LayoutEngine.
481
- *
482
- * @param fontInstance - the font of the text
483
- * @param scriptCode - the script of the text
484
- * @param languageCode - the language of the text
485
- * @param success - output parameter set to an error code if the operation fails
486
- *
487
- * @return a LayoutEngine which can layout text in the given font.
488
- *
489
- * @see LEFontInstance
490
- *
491
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
492
- */
493
- static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success);
494
-
495
- /**
496
- * Override of existing call that provides flags to control typography.
497
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
498
- */
499
- static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typo_flags, LEErrorCode &success);
500
-
501
- /**
502
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
503
- *
504
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
505
- */
506
- virtual UClassID getDynamicClassID() const;
507
-
508
- /**
509
- * ICU "poor man's RTTI", returns a UClassID for this class.
510
- *
511
- * @deprecated ICU 54. See {@link icu::LayoutEngine}
512
- */
513
- static UClassID getStaticClassID();
514
-
515
- };
516
-
517
- U_NAMESPACE_END
518
- #endif