cairo 1.8.5-x86-mingw32 → 1.10.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of cairo might be problematic. Click here for more details.

Files changed (450) hide show
  1. data/NEWS +2 -2
  2. data/Rakefile +44 -7
  3. data/ext/cairo/cairo.def +28 -1
  4. data/ext/cairo/extconf.rb +14 -16
  5. data/ext/cairo/rb_cairo.c +4 -1
  6. data/ext/cairo/rb_cairo.h +65 -1
  7. data/ext/cairo/rb_cairo_constants.c +150 -3
  8. data/ext/cairo/rb_cairo_context.c +17 -0
  9. data/ext/cairo/rb_cairo_device.c +406 -0
  10. data/ext/cairo/rb_cairo_exception.c +83 -32
  11. data/ext/cairo/rb_cairo_io.c +166 -0
  12. data/ext/cairo/rb_cairo_io.h +44 -0
  13. data/ext/cairo/rb_cairo_matrix.c +1 -1
  14. data/ext/cairo/rb_cairo_private.h +3 -0
  15. data/ext/cairo/rb_cairo_region.c +385 -0
  16. data/ext/cairo/rb_cairo_surface.c +674 -199
  17. data/lib/1.8/cairo.so +0 -0
  18. data/lib/1.9/cairo.so +0 -0
  19. data/samples/blur.rb +2 -3
  20. data/samples/{pac2.rb → pac-nomralize.rb} +5 -6
  21. data/samples/pac-tee.rb +170 -0
  22. data/samples/pac.rb +2 -3
  23. data/samples/png.rb +2 -3
  24. data/samples/scalable.rb +2 -3
  25. data/samples/text-on-path.rb +2 -3
  26. data/samples/text2.rb +2 -3
  27. data/test/cairo-test-utils.rb +15 -0
  28. data/test/run-test.rb +5 -4
  29. data/test/test_context.rb +4 -4
  30. data/test/test_font_face.rb +34 -21
  31. data/test/test_recording_surface.rb +18 -0
  32. data/test/test_region.rb +102 -0
  33. data/test/test_script_device.rb +46 -0
  34. data/test/test_script_surface.rb +13 -0
  35. data/test/test_surface.rb +14 -4
  36. data/test/test_tee_surface.rb +32 -0
  37. data/test/test_xml_device.rb +22 -0
  38. data/test/test_xml_surface.rb +32 -0
  39. data/tmp/i386-mingw32/cairo/1.9.2/rbconfig.rb +1 -1
  40. data/vendor/local/bin/libcairo-2.dll +0 -0
  41. data/vendor/local/include/cairo/cairo-deprecated.h +1 -16
  42. data/vendor/local/include/cairo/cairo-features.h +7 -0
  43. data/vendor/local/include/cairo/cairo-ft.h +16 -9
  44. data/vendor/local/include/cairo/cairo-gobject.h +186 -0
  45. data/vendor/local/include/cairo/cairo-pdf.h +27 -1
  46. data/vendor/local/include/cairo/cairo-ps.h +1 -1
  47. data/vendor/local/include/cairo/cairo-script-interpreter.h +117 -0
  48. data/vendor/local/include/cairo/cairo-svg.h +1 -1
  49. data/vendor/local/include/cairo/cairo-version.h +2 -2
  50. data/vendor/local/include/cairo/cairo-win32.h +1 -1
  51. data/vendor/local/include/cairo/cairo.h +382 -26
  52. data/vendor/local/lib/cairo.def +44 -0
  53. data/vendor/local/lib/cairo.lib +0 -0
  54. data/vendor/local/lib/libcairo.dll.a +0 -0
  55. data/vendor/local/lib/pkgconfig/cairo-fc.pc +12 -0
  56. data/vendor/local/lib/pkgconfig/cairo-ft.pc +4 -4
  57. data/vendor/local/lib/pkgconfig/cairo-gobject.pc +12 -0
  58. data/vendor/local/lib/pkgconfig/cairo-pdf.pc +3 -3
  59. data/vendor/local/lib/pkgconfig/cairo-png.pc +3 -3
  60. data/vendor/local/lib/pkgconfig/cairo-ps.pc +3 -3
  61. data/vendor/local/lib/pkgconfig/cairo-svg.pc +3 -3
  62. data/vendor/local/lib/pkgconfig/cairo-win32-font.pc +3 -3
  63. data/vendor/local/lib/pkgconfig/cairo-win32.pc +3 -3
  64. data/vendor/local/lib/pkgconfig/cairo.pc +4 -4
  65. data/vendor/local/manifest/{cairo-dev_1.8.10-4_win32.mft → cairo-dev_1.10.0-1_win32.mft} +34 -27
  66. data/vendor/local/manifest/cairo_1.10.0-1_win32.mft +5 -0
  67. data/vendor/local/share/doc/{cairo_1.8.10-4_win32 → cairo_1.10.0-1_win32}/COPYING +9 -8
  68. data/vendor/local/share/doc/{cairo_1.8.10-4_win32 → cairo_1.10.0-1_win32}/COPYING-LGPL-2.1 +2 -2
  69. data/vendor/local/share/doc/{cairo_1.8.10-4_win32 → cairo_1.10.0-1_win32}/COPYING-MPL-1.1 +0 -0
  70. data/vendor/local/share/gtk-doc/html/cairo/bindings-errors.html +4 -14
  71. data/vendor/local/share/gtk-doc/html/cairo/bindings-fonts.html +5 -15
  72. data/vendor/local/share/gtk-doc/html/cairo/bindings-memory.html +7 -17
  73. data/vendor/local/share/gtk-doc/html/cairo/bindings-overloading.html +6 -16
  74. data/vendor/local/share/gtk-doc/html/cairo/bindings-path.html +6 -16
  75. data/vendor/local/share/gtk-doc/html/cairo/bindings-patterns.html +23 -28
  76. data/vendor/local/share/gtk-doc/html/cairo/bindings-return-values.html +3 -13
  77. data/vendor/local/share/gtk-doc/html/cairo/bindings-streams.html +3 -13
  78. data/vendor/local/share/gtk-doc/html/cairo/bindings-surfaces.html +7 -17
  79. data/vendor/local/share/gtk-doc/html/cairo/cairo-Error-handling.html +373 -0
  80. data/vendor/local/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +330 -0
  81. data/vendor/local/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +478 -0
  82. data/vendor/local/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html +344 -0
  83. data/vendor/local/share/gtk-doc/html/cairo/cairo-PNG-Support.html +320 -0
  84. data/vendor/local/share/gtk-doc/html/cairo/cairo-Paths.html +1291 -0
  85. data/vendor/local/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html +622 -0
  86. data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html +134 -0
  87. data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html +210 -0
  88. data/vendor/local/share/gtk-doc/html/cairo/cairo-Regions.html +834 -0
  89. data/vendor/local/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +318 -0
  90. data/vendor/local/share/gtk-doc/html/cairo/cairo-Transformations.html +410 -0
  91. data/vendor/local/share/gtk-doc/html/cairo/cairo-Types.html +169 -0
  92. data/vendor/local/share/gtk-doc/html/cairo/cairo-User-Fonts.html +715 -0
  93. data/vendor/local/share/gtk-doc/html/cairo/cairo-Version-Information.html +410 -0
  94. data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +335 -0
  95. data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +291 -0
  96. data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html +470 -0
  97. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-device-t.html +595 -0
  98. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +384 -0
  99. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html +644 -0
  100. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html +574 -0
  101. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html +1457 -0
  102. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html +1076 -0
  103. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +1396 -0
  104. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-t.html +2743 -0
  105. data/vendor/local/share/gtk-doc/html/cairo/cairo-drawing.html +13 -20
  106. data/vendor/local/share/gtk-doc/html/cairo/cairo-fonts.html +13 -23
  107. data/vendor/local/share/gtk-doc/html/cairo/cairo-support.html +11 -21
  108. data/vendor/local/share/gtk-doc/html/cairo/cairo-surfaces.html +19 -26
  109. data/vendor/local/share/gtk-doc/html/cairo/cairo-text.html +279 -326
  110. data/vendor/local/share/gtk-doc/html/cairo/cairo.devhelp +411 -355
  111. data/vendor/local/share/gtk-doc/html/cairo/cairo.devhelp2 +579 -480
  112. data/vendor/local/share/gtk-doc/html/cairo/index-1.10.html +147 -0
  113. data/vendor/local/share/gtk-doc/html/cairo/index-1.2.html +88 -65
  114. data/vendor/local/share/gtk-doc/html/cairo/index-1.4.html +72 -47
  115. data/vendor/local/share/gtk-doc/html/cairo/index-1.6.html +43 -32
  116. data/vendor/local/share/gtk-doc/html/cairo/index-1.8.html +42 -41
  117. data/vendor/local/share/gtk-doc/html/cairo/index-all.html +542 -345
  118. data/vendor/local/share/gtk-doc/html/cairo/index.html +36 -39
  119. data/vendor/local/share/gtk-doc/html/cairo/index.sgml +674 -444
  120. data/vendor/local/share/gtk-doc/html/cairo/language-bindings.html +6 -16
  121. data/vendor/local/share/gtk-doc/html/cairo/style.css +152 -54
  122. data/vendor/local/src/tml/packaging/cairo_1.10.0-1_win32.log +1262 -0
  123. data/vendor/local/src/tml/packaging/{cairo_1.8.10-4_win32.sh → cairo_1.10.0-1_win32.sh} +3 -3
  124. metadata +137 -389
  125. data/doc/doc.css +0 -91
  126. data/doc/en/cairo-antialias.html +0 -38
  127. data/doc/en/cairo-clip-not-representable-error.html +0 -47
  128. data/doc/en/cairo-color-base.html +0 -69
  129. data/doc/en/cairo-color-cmyk.html +0 -157
  130. data/doc/en/cairo-color-hsv.html +0 -137
  131. data/doc/en/cairo-color-rgb.html +0 -142
  132. data/doc/en/cairo-color-x11.html +0 -173
  133. data/doc/en/cairo-color.html +0 -238
  134. data/doc/en/cairo-content.html +0 -37
  135. data/doc/en/cairo-context-blur.html +0 -39
  136. data/doc/en/cairo-context-circle.html +0 -39
  137. data/doc/en/cairo-context-color.html +0 -39
  138. data/doc/en/cairo-context-path.html +0 -44
  139. data/doc/en/cairo-context-rectangle.html +0 -39
  140. data/doc/en/cairo-context-triangle.html +0 -39
  141. data/doc/en/cairo-context.html +0 -643
  142. data/doc/en/cairo-error.html +0 -44
  143. data/doc/en/cairo-extend.html +0 -38
  144. data/doc/en/cairo-file-not-found.html +0 -47
  145. data/doc/en/cairo-fill-rule.html +0 -36
  146. data/doc/en/cairo-filter.html +0 -40
  147. data/doc/en/cairo-font-extents.html +0 -129
  148. data/doc/en/cairo-font-face.html +0 -38
  149. data/doc/en/cairo-font-options.html +0 -139
  150. data/doc/en/cairo-font-slant.html +0 -37
  151. data/doc/en/cairo-font-type-mismatch.html +0 -47
  152. data/doc/en/cairo-font-weight.html +0 -36
  153. data/doc/en/cairo-format.html +0 -46
  154. data/doc/en/cairo-glyph.html +0 -99
  155. data/doc/en/cairo-gradient-pattern.html +0 -74
  156. data/doc/en/cairo-hint-metrics.html +0 -37
  157. data/doc/en/cairo-hint-style.html +0 -39
  158. data/doc/en/cairo-image-surface.html +0 -82
  159. data/doc/en/cairo-invalid-clusters.html +0 -47
  160. data/doc/en/cairo-invalid-content-error.html +0 -47
  161. data/doc/en/cairo-invalid-dash-error.html +0 -47
  162. data/doc/en/cairo-invalid-dsc-comment-error.html +0 -47
  163. data/doc/en/cairo-invalid-format-error.html +0 -47
  164. data/doc/en/cairo-invalid-index-error.html +0 -47
  165. data/doc/en/cairo-invalid-matrix-error.html +0 -47
  166. data/doc/en/cairo-invalid-path-data-error.html +0 -47
  167. data/doc/en/cairo-invalid-pop-group-error.html +0 -47
  168. data/doc/en/cairo-invalid-restore-error.html +0 -47
  169. data/doc/en/cairo-invalid-slant.html +0 -47
  170. data/doc/en/cairo-invalid-status-error.html +0 -47
  171. data/doc/en/cairo-invalid-stride-error.html +0 -47
  172. data/doc/en/cairo-invalid-string-error.html +0 -47
  173. data/doc/en/cairo-invalid-visual-error.html +0 -47
  174. data/doc/en/cairo-invalid-weight.html +0 -47
  175. data/doc/en/cairo-line-cap.html +0 -37
  176. data/doc/en/cairo-line-join.html +0 -37
  177. data/doc/en/cairo-linear-pattern.html +0 -60
  178. data/doc/en/cairo-matrix.html +0 -259
  179. data/doc/en/cairo-negative-count.html +0 -47
  180. data/doc/en/cairo-no-current-point-error.html +0 -47
  181. data/doc/en/cairo-null-pointer-error.html +0 -47
  182. data/doc/en/cairo-operator.html +0 -48
  183. data/doc/en/cairo-paper-parse-error.html +0 -47
  184. data/doc/en/cairo-paper-unknown-paper-name.html +0 -66
  185. data/doc/en/cairo-paper-unknown-unit.html +0 -66
  186. data/doc/en/cairo-paper-unrecognized-paper-description.html +0 -66
  187. data/doc/en/cairo-paper.html +0 -184
  188. data/doc/en/cairo-path-close-path.html +0 -49
  189. data/doc/en/cairo-path-curve-to.html +0 -49
  190. data/doc/en/cairo-path-data-type.html +0 -38
  191. data/doc/en/cairo-path-data.html +0 -98
  192. data/doc/en/cairo-path-line-to.html +0 -49
  193. data/doc/en/cairo-path-move-to.html +0 -49
  194. data/doc/en/cairo-path.html +0 -155
  195. data/doc/en/cairo-pattern-type-mismatch-error.html +0 -47
  196. data/doc/en/cairo-pattern.html +0 -99
  197. data/doc/en/cairo-pdf-surface.html +0 -57
  198. data/doc/en/cairo-point.html +0 -74
  199. data/doc/en/cairo-ps-level.html +0 -49
  200. data/doc/en/cairo-ps-surface.html +0 -92
  201. data/doc/en/cairo-quartz-image-surface.html +0 -57
  202. data/doc/en/cairo-quartz-surface.html +0 -57
  203. data/doc/en/cairo-radial-pattern.html +0 -60
  204. data/doc/en/cairo-read-error.html +0 -47
  205. data/doc/en/cairo-rectangle.html +0 -89
  206. data/doc/en/cairo-scaled-font.html +0 -94
  207. data/doc/en/cairo-solid-pattern.html +0 -62
  208. data/doc/en/cairo-subpixel-order.html +0 -39
  209. data/doc/en/cairo-surface-finished-error.html +0 -47
  210. data/doc/en/cairo-surface-pattern.html +0 -57
  211. data/doc/en/cairo-surface-type-mismatch-error.html +0 -47
  212. data/doc/en/cairo-surface.html +0 -121
  213. data/doc/en/cairo-svg-surface.html +0 -77
  214. data/doc/en/cairo-svg-version.html +0 -49
  215. data/doc/en/cairo-temp-file-error.html +0 -47
  216. data/doc/en/cairo-text-cluster-flag.html +0 -35
  217. data/doc/en/cairo-text-cluster.html +0 -84
  218. data/doc/en/cairo-text-extents.html +0 -144
  219. data/doc/en/cairo-toy-font-face.html +0 -67
  220. data/doc/en/cairo-user-font-error.html +0 -47
  221. data/doc/en/cairo-user-font-face-text-to-glyphs-data.html +0 -94
  222. data/doc/en/cairo-user-font-face.html +0 -72
  223. data/doc/en/cairo-user-font-immutable.html +0 -47
  224. data/doc/en/cairo-win32-printing-surface.html +0 -57
  225. data/doc/en/cairo-win32-surface.html +0 -62
  226. data/doc/en/cairo-write-error.html +0 -47
  227. data/doc/en/cairo.html +0 -131
  228. data/doc/en/index.html +0 -1154
  229. data/doc/index.html +0 -18
  230. data/doc/ja/cairo-antialias.html +0 -57
  231. data/doc/ja/cairo-clip-not-representable-error.html +0 -56
  232. data/doc/ja/cairo-color-base.html +0 -75
  233. data/doc/ja/cairo-color-cmyk.html +0 -152
  234. data/doc/ja/cairo-color-hsv.html +0 -135
  235. data/doc/ja/cairo-color-rgb.html +0 -145
  236. data/doc/ja/cairo-color-x11.html +0 -183
  237. data/doc/ja/cairo-color.html +0 -317
  238. data/doc/ja/cairo-content.html +0 -51
  239. data/doc/ja/cairo-context-blur.html +0 -53
  240. data/doc/ja/cairo-context-circle.html +0 -54
  241. data/doc/ja/cairo-context-color.html +0 -52
  242. data/doc/ja/cairo-context-path.html +0 -77
  243. data/doc/ja/cairo-context-rectangle.html +0 -60
  244. data/doc/ja/cairo-context-triangle.html +0 -47
  245. data/doc/ja/cairo-context.html +0 -1542
  246. data/doc/ja/cairo-error.html +0 -56
  247. data/doc/ja/cairo-extend.html +0 -56
  248. data/doc/ja/cairo-file-not-found.html +0 -51
  249. data/doc/ja/cairo-fill-rule.html +0 -58
  250. data/doc/ja/cairo-filter.html +0 -43
  251. data/doc/ja/cairo-font-extents.html +0 -164
  252. data/doc/ja/cairo-font-face.html +0 -55
  253. data/doc/ja/cairo-font-options.html +0 -189
  254. data/doc/ja/cairo-font-slant.html +0 -50
  255. data/doc/ja/cairo-font-type-mismatch.html +0 -52
  256. data/doc/ja/cairo-font-weight.html +0 -47
  257. data/doc/ja/cairo-format.html +0 -81
  258. data/doc/ja/cairo-glyph.html +0 -115
  259. data/doc/ja/cairo-gradient-pattern.html +0 -119
  260. data/doc/ja/cairo-hint-metrics.html +0 -57
  261. data/doc/ja/cairo-hint-style.html +0 -64
  262. data/doc/ja/cairo-image-surface.html +0 -131
  263. data/doc/ja/cairo-invalid-clusters.html +0 -55
  264. data/doc/ja/cairo-invalid-content-error.html +0 -54
  265. data/doc/ja/cairo-invalid-dash-error.html +0 -54
  266. data/doc/ja/cairo-invalid-dsc-comment-error.html +0 -54
  267. data/doc/ja/cairo-invalid-format-error.html +0 -54
  268. data/doc/ja/cairo-invalid-index-error.html +0 -54
  269. data/doc/ja/cairo-invalid-matrix-error.html +0 -54
  270. data/doc/ja/cairo-invalid-path-data-error.html +0 -54
  271. data/doc/ja/cairo-invalid-pop-group-error.html +0 -54
  272. data/doc/ja/cairo-invalid-restore-error.html +0 -55
  273. data/doc/ja/cairo-invalid-slant.html +0 -57
  274. data/doc/ja/cairo-invalid-status-error.html +0 -55
  275. data/doc/ja/cairo-invalid-stride-error.html +0 -55
  276. data/doc/ja/cairo-invalid-string-error.html +0 -54
  277. data/doc/ja/cairo-invalid-visual-error.html +0 -57
  278. data/doc/ja/cairo-invalid-weight.html +0 -57
  279. data/doc/ja/cairo-line-cap.html +0 -50
  280. data/doc/ja/cairo-line-join.html +0 -53
  281. data/doc/ja/cairo-linear-pattern.html +0 -87
  282. data/doc/ja/cairo-matrix.html +0 -354
  283. data/doc/ja/cairo-negative-count.html +0 -52
  284. data/doc/ja/cairo-no-current-point-error.html +0 -54
  285. data/doc/ja/cairo-null-pointer-error.html +0 -54
  286. data/doc/ja/cairo-operator.html +0 -51
  287. data/doc/ja/cairo-paper-parse-error.html +0 -55
  288. data/doc/ja/cairo-paper-unknown-paper-name.html +0 -76
  289. data/doc/ja/cairo-paper-unknown-unit.html +0 -75
  290. data/doc/ja/cairo-paper-unrecognized-paper-description.html +0 -76
  291. data/doc/ja/cairo-paper.html +0 -357
  292. data/doc/ja/cairo-path-close-path.html +0 -57
  293. data/doc/ja/cairo-path-curve-to.html +0 -70
  294. data/doc/ja/cairo-path-data-type.html +0 -53
  295. data/doc/ja/cairo-path-data.html +0 -127
  296. data/doc/ja/cairo-path-line-to.html +0 -62
  297. data/doc/ja/cairo-path-move-to.html +0 -62
  298. data/doc/ja/cairo-path.html +0 -144
  299. data/doc/ja/cairo-pattern-type-mismatch-error.html +0 -56
  300. data/doc/ja/cairo-pattern.html +0 -128
  301. data/doc/ja/cairo-pdf-surface.html +0 -86
  302. data/doc/ja/cairo-point.html +0 -90
  303. data/doc/ja/cairo-ps-level.html +0 -62
  304. data/doc/ja/cairo-ps-surface.html +0 -214
  305. data/doc/ja/cairo-quartz-image-surface.html +0 -75
  306. data/doc/ja/cairo-quartz-surface.html +0 -93
  307. data/doc/ja/cairo-radial-pattern.html +0 -93
  308. data/doc/ja/cairo-read-error.html +0 -55
  309. data/doc/ja/cairo-rectangle.html +0 -109
  310. data/doc/ja/cairo-scaled-font.html +0 -180
  311. data/doc/ja/cairo-solid-pattern.html +0 -87
  312. data/doc/ja/cairo-subpixel-order.html +0 -57
  313. data/doc/ja/cairo-surface-finished-error.html +0 -54
  314. data/doc/ja/cairo-surface-pattern.html +0 -68
  315. data/doc/ja/cairo-surface-type-mismatch-error.html +0 -56
  316. data/doc/ja/cairo-surface.html +0 -213
  317. data/doc/ja/cairo-svg-surface.html +0 -114
  318. data/doc/ja/cairo-svg-version.html +0 -66
  319. data/doc/ja/cairo-temp-file-error.html +0 -50
  320. data/doc/ja/cairo-text-cluster-flag.html +0 -46
  321. data/doc/ja/cairo-text-cluster.html +0 -102
  322. data/doc/ja/cairo-text-extents.html +0 -163
  323. data/doc/ja/cairo-toy-font-face.html +0 -107
  324. data/doc/ja/cairo-user-font-error.html +0 -55
  325. data/doc/ja/cairo-user-font-face-text-to-glyphs-data.html +0 -156
  326. data/doc/ja/cairo-user-font-face.html +0 -268
  327. data/doc/ja/cairo-user-font-immutable.html +0 -54
  328. data/doc/ja/cairo-win32-printing-surface.html +0 -80
  329. data/doc/ja/cairo-win32-surface.html +0 -100
  330. data/doc/ja/cairo-write-error.html +0 -55
  331. data/doc/ja/cairo.html +0 -177
  332. data/doc/ja/index.html +0 -1156
  333. data/pkg-config.rb +0 -313
  334. data/test-unit/Rakefile +0 -30
  335. data/test-unit/bin/testrb +0 -5
  336. data/test-unit/lib/test/unit.rb +0 -280
  337. data/test-unit/lib/test/unit/assertionfailederror.rb +0 -14
  338. data/test-unit/lib/test/unit/assertions.rb +0 -722
  339. data/test-unit/lib/test/unit/attribute.rb +0 -125
  340. data/test-unit/lib/test/unit/autorunner.rb +0 -254
  341. data/test-unit/lib/test/unit/collector.rb +0 -43
  342. data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
  343. data/test-unit/lib/test/unit/collector/dir.rb +0 -108
  344. data/test-unit/lib/test/unit/collector/load.rb +0 -135
  345. data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
  346. data/test-unit/lib/test/unit/color.rb +0 -61
  347. data/test-unit/lib/test/unit/diff.rb +0 -524
  348. data/test-unit/lib/test/unit/error.rb +0 -124
  349. data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
  350. data/test-unit/lib/test/unit/failure.rb +0 -110
  351. data/test-unit/lib/test/unit/fixture.rb +0 -185
  352. data/test-unit/lib/test/unit/notification.rb +0 -125
  353. data/test-unit/lib/test/unit/omission.rb +0 -143
  354. data/test-unit/lib/test/unit/pending.rb +0 -146
  355. data/test-unit/lib/test/unit/priority.rb +0 -146
  356. data/test-unit/lib/test/unit/runner/console.rb +0 -46
  357. data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
  358. data/test-unit/lib/test/unit/testcase.rb +0 -281
  359. data/test-unit/lib/test/unit/testresult.rb +0 -89
  360. data/test-unit/lib/test/unit/testsuite.rb +0 -110
  361. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
  362. data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -195
  363. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -49
  364. data/test-unit/lib/test/unit/ui/testrunner.rb +0 -20
  365. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -77
  366. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  367. data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -41
  368. data/test-unit/lib/test/unit/util/observable.rb +0 -90
  369. data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
  370. data/test-unit/lib/test/unit/version.rb +0 -7
  371. data/test-unit/sample/adder.rb +0 -13
  372. data/test-unit/sample/subtracter.rb +0 -12
  373. data/test-unit/sample/tc_adder.rb +0 -18
  374. data/test-unit/sample/tc_subtracter.rb +0 -18
  375. data/test-unit/sample/ts_examples.rb +0 -7
  376. data/test-unit/test/collector/test_descendant.rb +0 -135
  377. data/test-unit/test/collector/test_dir.rb +0 -406
  378. data/test-unit/test/collector/test_load.rb +0 -333
  379. data/test-unit/test/collector/test_objectspace.rb +0 -98
  380. data/test-unit/test/run-test.rb +0 -13
  381. data/test-unit/test/test_assertions.rb +0 -693
  382. data/test-unit/test/test_attribute.rb +0 -86
  383. data/test-unit/test/test_color.rb +0 -37
  384. data/test-unit/test/test_diff.rb +0 -477
  385. data/test-unit/test/test_emacs_runner.rb +0 -60
  386. data/test-unit/test/test_error.rb +0 -26
  387. data/test-unit/test/test_failure.rb +0 -33
  388. data/test-unit/test/test_fixture.rb +0 -252
  389. data/test-unit/test/test_notification.rb +0 -33
  390. data/test-unit/test/test_omission.rb +0 -81
  391. data/test-unit/test/test_pending.rb +0 -70
  392. data/test-unit/test/test_priority.rb +0 -89
  393. data/test-unit/test/test_testcase.rb +0 -430
  394. data/test-unit/test/test_testresult.rb +0 -113
  395. data/test-unit/test/test_testsuite.rb +0 -129
  396. data/test-unit/test/testunit_test_util.rb +0 -14
  397. data/test-unit/test/ui/test_testrunmediator.rb +0 -20
  398. data/test-unit/test/util/test_backtracefilter.rb +0 -41
  399. data/test-unit/test/util/test_observable.rb +0 -102
  400. data/test-unit/test/util/test_procwrapper.rb +0 -36
  401. data/test/test_pkg_config.rb +0 -123
  402. data/vendor/local/include/libpng14/png.h +0 -2701
  403. data/vendor/local/include/libpng14/pngconf.h +0 -1525
  404. data/vendor/local/include/png.h +0 -2701
  405. data/vendor/local/include/pngconf.h +0 -1525
  406. data/vendor/local/include/zconf.h +0 -461
  407. data/vendor/local/include/zlib.h +0 -1589
  408. data/vendor/local/lib/libpng.def +0 -192
  409. data/vendor/local/lib/libpng.lib +0 -0
  410. data/vendor/local/lib/libpng14.dll.a +0 -0
  411. data/vendor/local/lib/libz.dll.a +0 -0
  412. data/vendor/local/lib/pkgconfig/libpng.pc +0 -11
  413. data/vendor/local/lib/pkgconfig/libpng14.pc +0 -11
  414. data/vendor/local/lib/zdll.lib +0 -0
  415. data/vendor/local/lib/zlib.def +0 -67
  416. data/vendor/local/manifest/cairo_1.8.10-4_win32.mft +0 -5
  417. data/vendor/local/manifest/libpng-dev_1.4.3-1_win32.mft +0 -15
  418. data/vendor/local/manifest/zlib-dev_1.2.5-2_win32.mft +0 -8
  419. data/vendor/local/share/gtk-doc/html/cairo/cairo-context.html +0 -2643
  420. data/vendor/local/share/gtk-doc/html/cairo/cairo-error-status.html +0 -360
  421. data/vendor/local/share/gtk-doc/html/cairo/cairo-font-face.html +0 -408
  422. data/vendor/local/share/gtk-doc/html/cairo/cairo-font-options.html +0 -678
  423. data/vendor/local/share/gtk-doc/html/cairo/cairo-ft-font.html +0 -319
  424. data/vendor/local/share/gtk-doc/html/cairo/cairo-image-surface.html +0 -473
  425. data/vendor/local/share/gtk-doc/html/cairo/cairo-matrix.html +0 -596
  426. data/vendor/local/share/gtk-doc/html/cairo/cairo-paths.html +0 -1274
  427. data/vendor/local/share/gtk-doc/html/cairo/cairo-pattern.html +0 -1485
  428. data/vendor/local/share/gtk-doc/html/cairo/cairo-pdf-surface.html +0 -238
  429. data/vendor/local/share/gtk-doc/html/cairo/cairo-png-functions.html +0 -341
  430. data/vendor/local/share/gtk-doc/html/cairo/cairo-ps-surface.html +0 -622
  431. data/vendor/local/share/gtk-doc/html/cairo/cairo-quartz-font.html +0 -151
  432. data/vendor/local/share/gtk-doc/html/cairo/cairo-quartz-surface.html +0 -219
  433. data/vendor/local/share/gtk-doc/html/cairo/cairo-scaled-font.html +0 -1023
  434. data/vendor/local/share/gtk-doc/html/cairo/cairo-surface.html +0 -1026
  435. data/vendor/local/share/gtk-doc/html/cairo/cairo-svg-surface.html +0 -321
  436. data/vendor/local/share/gtk-doc/html/cairo/cairo-transformations.html +0 -436
  437. data/vendor/local/share/gtk-doc/html/cairo/cairo-types.html +0 -133
  438. data/vendor/local/share/gtk-doc/html/cairo/cairo-user-font.html +0 -735
  439. data/vendor/local/share/gtk-doc/html/cairo/cairo-version-info.html +0 -345
  440. data/vendor/local/share/gtk-doc/html/cairo/cairo-win32-font.html +0 -358
  441. data/vendor/local/share/gtk-doc/html/cairo/cairo-win32-surface.html +0 -312
  442. data/vendor/local/share/gtk-doc/html/cairo/cairo-xlib-surface.html +0 -492
  443. data/vendor/local/share/man/man3/libpng.3 +0 -4455
  444. data/vendor/local/share/man/man3/libpngpf.3 +0 -808
  445. data/vendor/local/share/man/man5/png.5 +0 -74
  446. data/vendor/local/src/tml/packaging/cairo_1.8.10-4_win32.log +0 -920
  447. data/vendor/local/src/tml/packaging/libpng_1.4.3-1_win32.log +0 -272
  448. data/vendor/local/src/tml/packaging/libpng_1.4.3-1_win32.sh +0 -71
  449. data/vendor/local/src/tml/packaging/zlib_1.2.5-2_win32.log +0 -42
  450. data/vendor/local/src/tml/packaging/zlib_1.2.5-2_win32.sh +0 -189
@@ -0,0 +1,169 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>Types</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7
+ <link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
8
+ <link rel="up" href="cairo-support.html" title="Utilities">
9
+ <link rel="prev" href="cairo-Version-Information.html" title="Version Information">
10
+ <link rel="next" href="index-all.html" title="Index">
11
+ <meta name="generator" content="GTK-Doc V1.15 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ </head>
14
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16
+ <tr valign="middle">
17
+ <td><a accesskey="p" href="cairo-Version-Information.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18
+ <td><a accesskey="u" href="cairo-support.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20
+ <th width="100%" align="center">Cairo: A Vector Graphics Library</th>
21
+ <td><a accesskey="n" href="index-all.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22
+ </tr>
23
+ <tr><td colspan="5" class="shortcuts">
24
+ <a href="#cairo-Types.synopsis" class="shortcut">Top</a>
25
+  | 
26
+ <a href="#cairo-Types.description" class="shortcut">Description</a>
27
+ </td></tr>
28
+ </table>
29
+ <div class="refentry" title="Types">
30
+ <a name="cairo-Types"></a><div class="titlepage"></div>
31
+ <div class="refnamediv"><table width="100%"><tr>
32
+ <td valign="top">
33
+ <h2><span class="refentrytitle"><a name="cairo-Types.top_of_page"></a>Types</span></h2>
34
+ <p>Types — Generic data types</p>
35
+ </td>
36
+ <td valign="top" align="right"></td>
37
+ </tr></table></div>
38
+ <div class="refsynopsisdiv" title="Synopsis">
39
+ <a name="cairo-Types.synopsis"></a><h2>Synopsis</h2>
40
+ <pre class="synopsis">typedef <a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t">cairo_bool_t</a>;
41
+ <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t">cairo_user_data_key_t</a>;
42
+ <span class="returnvalue">void</span> (<a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()">*cairo_destroy_func_t</a>) (<em class="parameter"><code><span class="type">void</span> *data</code></em>);
43
+ <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t">cairo_rectangle_int_t</a>;
44
+ </pre>
45
+ </div>
46
+ <div class="refsect1" title="Description">
47
+ <a name="cairo-Types.description"></a><h2>Description</h2>
48
+ <p>
49
+ This section lists generic data types used in the cairo API.
50
+ </p>
51
+ </div>
52
+ <div class="refsect1" title="Details">
53
+ <a name="cairo-Types.details"></a><h2>Details</h2>
54
+ <div class="refsect2" title="cairo_bool_t">
55
+ <a name="cairo-bool-t"></a><h3>cairo_bool_t</h3>
56
+ <pre class="programlisting">typedef int cairo_bool_t;
57
+ </pre>
58
+ <p>
59
+ <a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="type">cairo_bool_t</span></a> is used for boolean values. Returns of type
60
+ <a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="type">cairo_bool_t</span></a> will always be either 0 or 1, but testing against
61
+ these values explicitly is not encouraged; just use the
62
+ value as a boolean condition.
63
+ </p>
64
+ <p>
65
+ </p>
66
+ <div class="informalexample">
67
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
68
+ <tbody>
69
+ <tr>
70
+ <td class="listing_lines" align="right"><pre>1
71
+ 2
72
+ 3</pre></td>
73
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-in-stroke">cairo_in_stroke</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">))</span><span class="normal"> </span><span class="cbracket">{</span>
74
+ <span class="normal"> </span><span class="comment">/* do something */</span>
75
+ <span class="cbracket">}</span></pre></td>
76
+ </tr>
77
+ </tbody>
78
+ </table>
79
+ </div>
80
+
81
+ <p>
82
+ </p>
83
+ </div>
84
+ <hr>
85
+ <div class="refsect2" title="cairo_user_data_key_t">
86
+ <a name="cairo-user-data-key-t"></a><h3>cairo_user_data_key_t</h3>
87
+ <pre class="programlisting">typedef struct {
88
+ int unused;
89
+ } cairo_user_data_key_t;
90
+ </pre>
91
+ <p>
92
+ <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> is used for attaching user data to cairo
93
+ data structures. The actual contents of the struct is never used,
94
+ and there is no need to initialize the object; only the unique
95
+ address of a <span class="type">cairo_data_key_t</span> object is used. Typically, you
96
+ would just use the address of a static <span class="type">cairo_data_key_t</span> object.
97
+ </p>
98
+ <div class="variablelist"><table border="0">
99
+ <col align="left" valign="top">
100
+ <tbody><tr>
101
+ <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="cairo-user-data-key-t.unused"></a>unused</code></em>;</span></p></td>
102
+ <td>not used; ignore.
103
+ </td>
104
+ </tr></tbody>
105
+ </table></div>
106
+ </div>
107
+ <hr>
108
+ <div class="refsect2" title="cairo_destroy_func_t ()">
109
+ <a name="cairo-destroy-func-t"></a><h3>cairo_destroy_func_t ()</h3>
110
+ <pre class="programlisting"><span class="returnvalue">void</span> (*cairo_destroy_func_t) (<em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
111
+ <p>
112
+ <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> the type of function which is called when a
113
+ data element is destroyed. It is passed the pointer to the data
114
+ element and should free any memory and resources allocated for it.
115
+ </p>
116
+ <div class="variablelist"><table border="0">
117
+ <col align="left" valign="top">
118
+ <tbody><tr>
119
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
120
+ <td>The data element being destroyed.
121
+ </td>
122
+ </tr></tbody>
123
+ </table></div>
124
+ </div>
125
+ <hr>
126
+ <div class="refsect2" title="cairo_rectangle_int_t">
127
+ <a name="cairo-rectangle-int-t"></a><h3>cairo_rectangle_int_t</h3>
128
+ <pre class="programlisting">typedef struct {
129
+ int x, y;
130
+ int width, height;
131
+ } cairo_rectangle_int_t;
132
+ </pre>
133
+ <p>
134
+ A data structure for holding a rectangle with integer coordinates.
135
+ </p>
136
+ <div class="variablelist"><table border="0">
137
+ <col align="left" valign="top">
138
+ <tbody>
139
+ <tr>
140
+ <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.x"></a>x</code></em>;</span></p></td>
141
+ <td>X coordinate of the left side of the rectangle
142
+ </td>
143
+ </tr>
144
+ <tr>
145
+ <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.y"></a>y</code></em>;</span></p></td>
146
+ <td>Y coordinate of the the top side of the rectangle
147
+ </td>
148
+ </tr>
149
+ <tr>
150
+ <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.width"></a>width</code></em>;</span></p></td>
151
+ <td>width of the rectangle
152
+ </td>
153
+ </tr>
154
+ <tr>
155
+ <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.height"></a>height</code></em>;</span></p></td>
156
+ <td>height of the rectangle
157
+ </td>
158
+ </tr>
159
+ </tbody>
160
+ </table></div>
161
+ <p class="since">Since 1.10</p>
162
+ </div>
163
+ </div>
164
+ </div>
165
+ <div class="footer">
166
+ <hr>
167
+ Generated by GTK-Doc V1.15</div>
168
+ </body>
169
+ </html>
@@ -0,0 +1,715 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>User Fonts</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7
+ <link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
8
+ <link rel="up" href="cairo-fonts.html" title="Fonts">
9
+ <link rel="prev" href="cairo-Quartz-(CGFont)-Fonts.html" title="Quartz (CGFont) Fonts">
10
+ <link rel="next" href="cairo-surfaces.html" title="Surfaces">
11
+ <meta name="generator" content="GTK-Doc V1.15 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ </head>
14
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16
+ <tr valign="middle">
17
+ <td><a accesskey="p" href="cairo-Quartz-(CGFont)-Fonts.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18
+ <td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20
+ <th width="100%" align="center">Cairo: A Vector Graphics Library</th>
21
+ <td><a accesskey="n" href="cairo-surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22
+ </tr>
23
+ <tr><td colspan="5" class="shortcuts">
24
+ <a href="#cairo-User-Fonts.synopsis" class="shortcut">Top</a>
25
+  | 
26
+ <a href="#cairo-User-Fonts.description" class="shortcut">Description</a>
27
+ </td></tr>
28
+ </table>
29
+ <div class="refentry" title="User Fonts">
30
+ <a name="cairo-User-Fonts"></a><div class="titlepage"></div>
31
+ <div class="refnamediv"><table width="100%"><tr>
32
+ <td valign="top">
33
+ <h2><span class="refentrytitle"><a name="cairo-User-Fonts.top_of_page"></a>User Fonts</span></h2>
34
+ <p>User Fonts — Font support with font data provided by the user</p>
35
+ </td>
36
+ <td valign="top" align="right"></td>
37
+ </tr></table></div>
38
+ <div class="refsynopsisdiv" title="Synopsis">
39
+ <a name="cairo-User-Fonts.synopsis"></a><h2>Synopsis</h2>
40
+ <pre class="synopsis">#define <a class="link" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS" title="CAIRO_HAS_USER_FONT">CAIRO_HAS_USER_FONT</a>
41
+ <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()">*cairo_user_scaled_font_init_func_t</a>)
42
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
43
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
44
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> *extents</code></em>);
45
+ <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()">*cairo_user_scaled_font_render_glyph_func_t</a>)
46
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
47
+ <em class="parameter"><code><span class="type">unsigned long </span> glyph</code></em>,
48
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
49
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> *extents</code></em>);
50
+ <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()">*cairo_user_scaled_font_text_to_glyphs_func_t</a>)
51
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
52
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
53
+ <em class="parameter"><code><span class="type">int</span> utf8_len</code></em>,
54
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> **glyphs</code></em>,
55
+ <em class="parameter"><code><span class="type">int</span> *num_glyphs</code></em>,
56
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> **clusters</code></em>,
57
+ <em class="parameter"><code><span class="type">int</span> *num_clusters</code></em>,
58
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-flags-t" title="enum cairo_text_cluster_flags_t"><span class="type">cairo_text_cluster_flags_t</span></a> *cluster_flags</code></em>);
59
+ <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()">*cairo_user_scaled_font_unicode_to_glyph_func_t</a>)
60
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
61
+ <em class="parameter"><code><span class="type">unsigned long </span> unicode</code></em>,
62
+ <em class="parameter"><code>unsigned <span class="type">long</span> *glyph_index</code></em>);
63
+ <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> * <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-create" title="cairo_user_font_face_create ()">cairo_user_font_face_create</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
64
+ <span class="returnvalue">void</span> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func" title="cairo_user_font_face_set_init_func ()">cairo_user_font_face_set_init_func</a> (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
65
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="type">cairo_user_scaled_font_init_func_t</span></a> init_func</code></em>);
66
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="returnvalue">cairo_user_scaled_font_init_func_t</span></a> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func" title="cairo_user_font_face_get_init_func ()">cairo_user_font_face_get_init_func</a>
67
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);
68
+ <span class="returnvalue">void</span> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func" title="cairo_user_font_face_set_render_glyph_func ()">cairo_user_font_face_set_render_glyph_func</a>
69
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
70
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="type">cairo_user_scaled_font_render_glyph_func_t</span></a> render_glyph_func</code></em>);
71
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_render_glyph_func_t</span></a> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func" title="cairo_user_font_face_get_render_glyph_func ()">cairo_user_font_face_get_render_glyph_func</a>
72
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);
73
+ <span class="returnvalue">void</span> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func" title="cairo_user_font_face_set_unicode_to_glyph_func ()">cairo_user_font_face_set_unicode_to_glyph_func</a>
74
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
75
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> unicode_to_glyph_func</code></em>);
76
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func" title="cairo_user_font_face_get_unicode_to_glyph_func ()">cairo_user_font_face_get_unicode_to_glyph_func</a>
77
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);
78
+ <span class="returnvalue">void</span> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func" title="cairo_user_font_face_set_text_to_glyphs_func ()">cairo_user_font_face_set_text_to_glyphs_func</a>
79
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
80
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> text_to_glyphs_func</code></em>);
81
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="returnvalue">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> <a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func" title="cairo_user_font_face_get_text_to_glyphs_func ()">cairo_user_font_face_get_text_to_glyphs_func</a>
82
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);
83
+ </pre>
84
+ </div>
85
+ <div class="refsect1" title="Description">
86
+ <a name="cairo-User-Fonts.description"></a><h2>Description</h2>
87
+ <p>
88
+ The user-font feature allows the cairo user to provide drawings for glyphs
89
+ in a font. This is most useful in implementing fonts in non-standard
90
+ formats, like SVG fonts and Flash fonts, but can also be used by games and
91
+ other application to draw "funky" fonts.
92
+ </p>
93
+ </div>
94
+ <div class="refsect1" title="Details">
95
+ <a name="cairo-User-Fonts.details"></a><h2>Details</h2>
96
+ <div class="refsect2" title="CAIRO_HAS_USER_FONT">
97
+ <a name="CAIRO-HAS-USER-FONT:CAPS"></a><h3>CAIRO_HAS_USER_FONT</h3>
98
+ <pre class="programlisting">#define CAIRO_HAS_USER_FONT 1
99
+ </pre>
100
+ <p>
101
+ Defined if the user font backend is available.
102
+ This macro can be used to conditionally compile backend-specific code.
103
+ The user font backend is always built in versions of cairo that support
104
+ this feature (1.8 and later).
105
+ </p>
106
+ <p>
107
+ <em class="parameter"><code>Since</code></em>: 1.8
108
+ </p>
109
+ </div>
110
+ <hr>
111
+ <div class="refsect2" title="cairo_user_scaled_font_init_func_t ()">
112
+ <a name="cairo-user-scaled-font-init-func-t"></a><h3>cairo_user_scaled_font_init_func_t ()</h3>
113
+ <pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (*cairo_user_scaled_font_init_func_t)
114
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
115
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
116
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> *extents</code></em>);</pre>
117
+ <p>
118
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="type">cairo_user_scaled_font_init_func_t</span></a> is the type of function which is
119
+ called when a scaled-font needs to be created for a user font-face.
120
+ </p>
121
+ <p>
122
+ The cairo context <em class="parameter"><code>cr</code></em> is not used by the caller, but is prepared in font
123
+ space, similar to what the cairo contexts passed to the render_glyph
124
+ method will look like. The callback can use this context for extents
125
+ computation for example. After the callback is called, <em class="parameter"><code>cr</code></em> is checked
126
+ for any error status.
127
+ </p>
128
+ <p>
129
+ The <em class="parameter"><code>extents</code></em> argument is where the user font sets the font extents for
130
+ <em class="parameter"><code>scaled_font</code></em>. It is in font space, which means that for most cases its
131
+ ascent and descent members should add to 1.0. <em class="parameter"><code>extents</code></em> is preset to
132
+ hold a value of 1.0 for ascent, height, and max_x_advance, and 0.0 for
133
+ descent and max_y_advance members.
134
+ </p>
135
+ <p>
136
+ The callback is optional. If not set, default font extents as described
137
+ in the previous paragraph will be used.
138
+ </p>
139
+ <p>
140
+ Note that <em class="parameter"><code>scaled_font</code></em> is not fully initialized at this
141
+ point and trying to use it for text operations in the callback will result
142
+ in deadlock.
143
+ </p>
144
+ <div class="variablelist"><table border="0">
145
+ <col align="left" valign="top">
146
+ <tbody>
147
+ <tr>
148
+ <td><p><span class="term"><em class="parameter"><code>scaled_font</code></em> :</span></p></td>
149
+ <td>the scaled-font being created
150
+ </td>
151
+ </tr>
152
+ <tr>
153
+ <td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
154
+ <td>a cairo context, in font space
155
+ </td>
156
+ </tr>
157
+ <tr>
158
+ <td><p><span class="term"><em class="parameter"><code>extents</code></em> :</span></p></td>
159
+ <td>font extents to fill in, in font space
160
+ </td>
161
+ </tr>
162
+ <tr>
163
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
164
+ <td> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success, or an error status on error.
165
+
166
+ </td>
167
+ </tr>
168
+ </tbody>
169
+ </table></div>
170
+ <p class="since">Since 1.8</p>
171
+ </div>
172
+ <hr>
173
+ <div class="refsect2" title="cairo_user_scaled_font_render_glyph_func_t ()">
174
+ <a name="cairo-user-scaled-font-render-glyph-func-t"></a><h3>cairo_user_scaled_font_render_glyph_func_t ()</h3>
175
+ <pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (*cairo_user_scaled_font_render_glyph_func_t)
176
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
177
+ <em class="parameter"><code><span class="type">unsigned long </span> glyph</code></em>,
178
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
179
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> *extents</code></em>);</pre>
180
+ <p>
181
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="type">cairo_user_scaled_font_render_glyph_func_t</span></a> is the type of function which
182
+ is called when a user scaled-font needs to render a glyph.
183
+ </p>
184
+ <p>
185
+ The callback is mandatory, and expected to draw the glyph with code <em class="parameter"><code>glyph</code></em> to
186
+ the cairo context <em class="parameter"><code>cr</code></em>. <em class="parameter"><code>cr</code></em> is prepared such that the glyph drawing is done in
187
+ font space. That is, the matrix set on <em class="parameter"><code>cr</code></em> is the scale matrix of <em class="parameter"><code>scaled_font</code></em>,
188
+ The <em class="parameter"><code>extents</code></em> argument is where the user font sets the font extents for
189
+ <em class="parameter"><code>scaled_font</code></em>. However, if user prefers to draw in user space, they can
190
+ achieve that by changing the matrix on <em class="parameter"><code>cr</code></em>. All cairo rendering operations
191
+ to <em class="parameter"><code>cr</code></em> are permitted, however, the result is undefined if any source other
192
+ than the default source on <em class="parameter"><code>cr</code></em> is used. That means, glyph bitmaps should
193
+ be rendered using <a class="link" href="cairo-cairo-t.html#cairo-mask" title="cairo_mask ()"><code class="function">cairo_mask()</code></a> instead of <a class="link" href="cairo-cairo-t.html#cairo-paint" title="cairo_paint ()"><code class="function">cairo_paint()</code></a>.
194
+ </p>
195
+ <p>
196
+ Other non-default settings on <em class="parameter"><code>cr</code></em> include a font size of 1.0 (given that
197
+ it is set up to be in font space), and font options corresponding to
198
+ <em class="parameter"><code>scaled_font</code></em>.
199
+ </p>
200
+ <p>
201
+ The <em class="parameter"><code>extents</code></em> argument is preset to have <code class="literal">x_bearing</code>,
202
+ <code class="literal">width</code>, and <code class="literal">y_advance</code> of zero,
203
+ <code class="literal">y_bearing</code> set to <code class="literal">-font_extents.ascent</code>,
204
+ <code class="literal">height</code> to <code class="literal">font_extents.ascent+font_extents.descent</code>,
205
+ and <code class="literal">x_advance</code> to <code class="literal">font_extents.max_x_advance</code>.
206
+ The only field user needs to set in majority of cases is
207
+ <code class="literal">x_advance</code>.
208
+ If the <code class="literal">width</code> field is zero upon the callback returning
209
+ (which is its preset value), the glyph extents are automatically computed
210
+ based on the drawings done to <em class="parameter"><code>cr</code></em>. This is in most cases exactly what the
211
+ desired behavior is. However, if for any reason the callback sets the
212
+ extents, it must be ink extents, and include the extents of all drawing
213
+ done to <em class="parameter"><code>cr</code></em> in the callback.
214
+ </p>
215
+ <div class="variablelist"><table border="0">
216
+ <col align="left" valign="top">
217
+ <tbody>
218
+ <tr>
219
+ <td><p><span class="term"><em class="parameter"><code>scaled_font</code></em> :</span></p></td>
220
+ <td>user scaled-font
221
+ </td>
222
+ </tr>
223
+ <tr>
224
+ <td><p><span class="term"><em class="parameter"><code>glyph</code></em> :</span></p></td>
225
+ <td>glyph code to render
226
+ </td>
227
+ </tr>
228
+ <tr>
229
+ <td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
230
+ <td>cairo context to draw to, in font space
231
+ </td>
232
+ </tr>
233
+ <tr>
234
+ <td><p><span class="term"><em class="parameter"><code>extents</code></em> :</span></p></td>
235
+ <td>glyph extents to fill in, in font space
236
+ </td>
237
+ </tr>
238
+ <tr>
239
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
240
+ <td> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success, or
241
+ <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> or any other error status on error.
242
+
243
+ </td>
244
+ </tr>
245
+ </tbody>
246
+ </table></div>
247
+ <p class="since">Since 1.8</p>
248
+ </div>
249
+ <hr>
250
+ <div class="refsect2" title="cairo_user_scaled_font_text_to_glyphs_func_t ()">
251
+ <a name="cairo-user-scaled-font-text-to-glyphs-func-t"></a><h3>cairo_user_scaled_font_text_to_glyphs_func_t ()</h3>
252
+ <pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (*cairo_user_scaled_font_text_to_glyphs_func_t)
253
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
254
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
255
+ <em class="parameter"><code><span class="type">int</span> utf8_len</code></em>,
256
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> **glyphs</code></em>,
257
+ <em class="parameter"><code><span class="type">int</span> *num_glyphs</code></em>,
258
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> **clusters</code></em>,
259
+ <em class="parameter"><code><span class="type">int</span> *num_clusters</code></em>,
260
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-flags-t" title="enum cairo_text_cluster_flags_t"><span class="type">cairo_text_cluster_flags_t</span></a> *cluster_flags</code></em>);</pre>
261
+ <p>
262
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> is the type of function which
263
+ is called to convert input text to an array of glyphs. This is used by the
264
+ <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a> operation.
265
+ </p>
266
+ <p>
267
+ Using this callback the user-font has full control on glyphs and their
268
+ positions. That means, it allows for features like ligatures and kerning,
269
+ as well as complex <em class="firstterm">shaping</em> required for scripts like
270
+ Arabic and Indic.
271
+ </p>
272
+ <p>
273
+ The <em class="parameter"><code>num_glyphs</code></em> argument is preset to the number of glyph entries available
274
+ in the <em class="parameter"><code>glyphs</code></em> buffer. If the <em class="parameter"><code>glyphs</code></em> buffer is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the value of
275
+ <em class="parameter"><code>num_glyphs</code></em> will be zero. If the provided glyph array is too short for
276
+ the conversion (or for convenience), a new glyph array may be allocated
277
+ using <a class="link" href="cairo-text.html#cairo-glyph-allocate" title="cairo_glyph_allocate ()"><code class="function">cairo_glyph_allocate()</code></a> and placed in <em class="parameter"><code>glyphs</code></em>. Upon return,
278
+ <em class="parameter"><code>num_glyphs</code></em> should contain the number of generated glyphs. If the value
279
+ <em class="parameter"><code>glyphs</code></em> points at has changed after the call, the caller will free the
280
+ allocated glyph array using <a class="link" href="cairo-text.html#cairo-glyph-free" title="cairo_glyph_free ()"><code class="function">cairo_glyph_free()</code></a>.
281
+ The callback should populate the glyph indices and positions (in font space)
282
+ assuming that the text is to be shown at the origin.
283
+ </p>
284
+ <p>
285
+ If <em class="parameter"><code>clusters</code></em> is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>num_clusters</code></em> and <em class="parameter"><code>cluster_flags</code></em> are also
286
+ non-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and cluster mapping should be computed. The semantics of how
287
+ cluster array allocation works is similar to the glyph array. That is,
288
+ if <em class="parameter"><code>clusters</code></em> initially points to a non-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value, that array may be used
289
+ as a cluster buffer, and <em class="parameter"><code>num_clusters</code></em> points to the number of cluster
290
+ entries available there. If the provided cluster array is too short for
291
+ the conversion (or for convenience), a new cluster array may be allocated
292
+ using <a class="link" href="cairo-text.html#cairo-text-cluster-allocate" title="cairo_text_cluster_allocate ()"><code class="function">cairo_text_cluster_allocate()</code></a> and placed in <em class="parameter"><code>clusters</code></em>. Upon return,
293
+ <em class="parameter"><code>num_clusters</code></em> should contain the number of generated clusters.
294
+ If the value <em class="parameter"><code>clusters</code></em> points at has changed after the call, the caller
295
+ will free the allocated cluster array using <a class="link" href="cairo-text.html#cairo-text-cluster-free" title="cairo_text_cluster_free ()"><code class="function">cairo_text_cluster_free()</code></a>.
296
+ </p>
297
+ <p>
298
+ The callback is optional. If <em class="parameter"><code>num_glyphs</code></em> is negative upon
299
+ the callback returning or if the return value
300
+ is <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a>, the unicode_to_glyph callback
301
+ is tried. See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a>.
302
+ </p>
303
+ <p>
304
+ Note: While cairo does not impose any limitation on glyph indices,
305
+ some applications may assume that a glyph index fits in a 16-bit
306
+ unsigned integer. As such, it is advised that user-fonts keep their
307
+ glyphs in the 0 to 65535 range. Furthermore, some applications may
308
+ assume that glyph 0 is a special glyph-not-found glyph. User-fonts
309
+ are advised to use glyph 0 for such purposes and do not use that
310
+ glyph value for other purposes.
311
+ </p>
312
+ <div class="variablelist"><table border="0">
313
+ <col align="left" valign="top">
314
+ <tbody>
315
+ <tr>
316
+ <td><p><span class="term"><em class="parameter"><code>scaled_font</code></em> :</span></p></td>
317
+ <td>the scaled-font being created
318
+ </td>
319
+ </tr>
320
+ <tr>
321
+ <td><p><span class="term"><em class="parameter"><code>utf8</code></em> :</span></p></td>
322
+ <td>a string of text encoded in UTF-8
323
+ </td>
324
+ </tr>
325
+ <tr>
326
+ <td><p><span class="term"><em class="parameter"><code>utf8_len</code></em> :</span></p></td>
327
+ <td>length of <em class="parameter"><code>utf8</code></em> in bytes
328
+ </td>
329
+ </tr>
330
+ <tr>
331
+ <td><p><span class="term"><em class="parameter"><code>glyphs</code></em> :</span></p></td>
332
+ <td>pointer to array of glyphs to fill, in font space
333
+ </td>
334
+ </tr>
335
+ <tr>
336
+ <td><p><span class="term"><em class="parameter"><code>num_glyphs</code></em> :</span></p></td>
337
+ <td>pointer to number of glyphs
338
+ </td>
339
+ </tr>
340
+ <tr>
341
+ <td><p><span class="term"><em class="parameter"><code>clusters</code></em> :</span></p></td>
342
+ <td>pointer to array of cluster mapping information to fill, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
343
+ </td>
344
+ </tr>
345
+ <tr>
346
+ <td><p><span class="term"><em class="parameter"><code>num_clusters</code></em> :</span></p></td>
347
+ <td>pointer to number of clusters
348
+ </td>
349
+ </tr>
350
+ <tr>
351
+ <td><p><span class="term"><em class="parameter"><code>cluster_flags</code></em> :</span></p></td>
352
+ <td>pointer to location to store cluster flags corresponding to the
353
+ output <em class="parameter"><code>clusters</code></em>
354
+ </td>
355
+ </tr>
356
+ <tr>
357
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
358
+ <td> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success,
359
+ <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a> if fallback options should be tried,
360
+ or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> or any other error status on error.
361
+
362
+ </td>
363
+ </tr>
364
+ </tbody>
365
+ </table></div>
366
+ <p class="since">Since 1.8</p>
367
+ </div>
368
+ <hr>
369
+ <div class="refsect2" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()">
370
+ <a name="cairo-user-scaled-font-unicode-to-glyph-func-t"></a><h3>cairo_user_scaled_font_unicode_to_glyph_func_t ()</h3>
371
+ <pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a> (*cairo_user_scaled_font_unicode_to_glyph_func_t)
372
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
373
+ <em class="parameter"><code><span class="type">unsigned long </span> unicode</code></em>,
374
+ <em class="parameter"><code>unsigned <span class="type">long</span> *glyph_index</code></em>);</pre>
375
+ <p>
376
+ <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> is the type of function which
377
+ is called to convert an input Unicode character to a single glyph.
378
+ This is used by the <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a> operation.
379
+ </p>
380
+ <p>
381
+ This callback is used to provide the same functionality as the
382
+ text_to_glyphs callback does (see <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a>)
383
+ but has much less control on the output,
384
+ in exchange for increased ease of use. The inherent assumption to using
385
+ this callback is that each character maps to one glyph, and that the
386
+ mapping is context independent. It also assumes that glyphs are positioned
387
+ according to their advance width. These mean no ligatures, kerning, or
388
+ complex scripts can be implemented using this callback.
389
+ </p>
390
+ <p>
391
+ The callback is optional, and only used if text_to_glyphs callback is not
392
+ set or fails to return glyphs. If this callback is not set or if it returns
393
+ <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a>, an identity mapping from Unicode
394
+ code-points to glyph indices is assumed.
395
+ </p>
396
+ <p>
397
+ Note: While cairo does not impose any limitation on glyph indices,
398
+ some applications may assume that a glyph index fits in a 16-bit
399
+ unsigned integer. As such, it is advised that user-fonts keep their
400
+ glyphs in the 0 to 65535 range. Furthermore, some applications may
401
+ assume that glyph 0 is a special glyph-not-found glyph. User-fonts
402
+ are advised to use glyph 0 for such purposes and do not use that
403
+ glyph value for other purposes.
404
+ </p>
405
+ <div class="variablelist"><table border="0">
406
+ <col align="left" valign="top">
407
+ <tbody>
408
+ <tr>
409
+ <td><p><span class="term"><em class="parameter"><code>scaled_font</code></em> :</span></p></td>
410
+ <td>the scaled-font being created
411
+ </td>
412
+ </tr>
413
+ <tr>
414
+ <td><p><span class="term"><em class="parameter"><code>unicode</code></em> :</span></p></td>
415
+ <td>input unicode character code-point
416
+ </td>
417
+ </tr>
418
+ <tr>
419
+ <td><p><span class="term"><em class="parameter"><code>glyph_index</code></em> :</span></p></td>
420
+ <td>output glyph index
421
+ </td>
422
+ </tr>
423
+ <tr>
424
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
425
+ <td> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success,
426
+ <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a> if fallback options should be tried,
427
+ or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> or any other error status on error.
428
+
429
+ </td>
430
+ </tr>
431
+ </tbody>
432
+ </table></div>
433
+ <p class="since">Since 1.8</p>
434
+ </div>
435
+ <hr>
436
+ <div class="refsect2" title="cairo_user_font_face_create ()">
437
+ <a name="cairo-user-font-face-create"></a><h3>cairo_user_font_face_create ()</h3>
438
+ <pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> * cairo_user_font_face_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
439
+ <p>
440
+ Creates a new user font-face.
441
+ </p>
442
+ <p>
443
+ Use the setter functions to associate callbacks with the returned
444
+ user font. The only mandatory callback is render_glyph.
445
+ </p>
446
+ <p>
447
+ After the font-face is created, the user can attach arbitrary data
448
+ (the actual font data) to it using <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data" title="cairo_font_face_set_user_data ()"><code class="function">cairo_font_face_set_user_data()</code></a>
449
+ and access it from the user-font callbacks by using
450
+ <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face" title="cairo_scaled_font_get_font_face ()"><code class="function">cairo_scaled_font_get_font_face()</code></a> followed by
451
+ <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data" title="cairo_font_face_get_user_data ()"><code class="function">cairo_font_face_get_user_data()</code></a>.
452
+ </p>
453
+ <div class="variablelist"><table border="0">
454
+ <col align="left" valign="top">
455
+ <tbody><tr>
456
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
457
+ <td> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
458
+ <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.
459
+
460
+ </td>
461
+ </tr></tbody>
462
+ </table></div>
463
+ <p class="since">Since 1.8</p>
464
+ </div>
465
+ <hr>
466
+ <div class="refsect2" title="cairo_user_font_face_set_init_func ()">
467
+ <a name="cairo-user-font-face-set-init-func"></a><h3>cairo_user_font_face_set_init_func ()</h3>
468
+ <pre class="programlisting"><span class="returnvalue">void</span> cairo_user_font_face_set_init_func (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
469
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="type">cairo_user_scaled_font_init_func_t</span></a> init_func</code></em>);</pre>
470
+ <p>
471
+ Sets the scaled-font initialization function of a user-font.
472
+ See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="type">cairo_user_scaled_font_init_func_t</span></a> for details of how the callback
473
+ works.
474
+ </p>
475
+ <p>
476
+ The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
477
+ error will occur. A user font-face is immutable as soon as a scaled-font
478
+ is created from it.
479
+ </p>
480
+ <div class="variablelist"><table border="0">
481
+ <col align="left" valign="top">
482
+ <tbody>
483
+ <tr>
484
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
485
+ <td>A user font face
486
+ </td>
487
+ </tr>
488
+ <tr>
489
+ <td><p><span class="term"><em class="parameter"><code>init_func</code></em> :</span></p></td>
490
+ <td>The init callback, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
491
+ </td>
492
+ </tr>
493
+ </tbody>
494
+ </table></div>
495
+ <p class="since">Since 1.8</p>
496
+ </div>
497
+ <hr>
498
+ <div class="refsect2" title="cairo_user_font_face_get_init_func ()">
499
+ <a name="cairo-user-font-face-get-init-func"></a><h3>cairo_user_font_face_get_init_func ()</h3>
500
+ <pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="returnvalue">cairo_user_scaled_font_init_func_t</span></a> cairo_user_font_face_get_init_func
501
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
502
+ <p>
503
+ Gets the scaled-font initialization function of a user-font.
504
+ </p>
505
+ <div class="variablelist"><table border="0">
506
+ <col align="left" valign="top">
507
+ <tbody>
508
+ <tr>
509
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
510
+ <td>A user font face
511
+ </td>
512
+ </tr>
513
+ <tr>
514
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
515
+ <td> The init callback of <em class="parameter"><code>font_face</code></em>
516
+ or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error has occurred.
517
+
518
+ </td>
519
+ </tr>
520
+ </tbody>
521
+ </table></div>
522
+ <p class="since">Since 1.8</p>
523
+ </div>
524
+ <hr>
525
+ <div class="refsect2" title="cairo_user_font_face_set_render_glyph_func ()">
526
+ <a name="cairo-user-font-face-set-render-glyph-func"></a><h3>cairo_user_font_face_set_render_glyph_func ()</h3>
527
+ <pre class="programlisting"><span class="returnvalue">void</span> cairo_user_font_face_set_render_glyph_func
528
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
529
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="type">cairo_user_scaled_font_render_glyph_func_t</span></a> render_glyph_func</code></em>);</pre>
530
+ <p>
531
+ Sets the glyph rendering function of a user-font.
532
+ See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="type">cairo_user_scaled_font_render_glyph_func_t</span></a> for details of how the callback
533
+ works.
534
+ </p>
535
+ <p>
536
+ The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
537
+ error will occur. A user font-face is immutable as soon as a scaled-font
538
+ is created from it.
539
+ </p>
540
+ <p>
541
+ The render_glyph callback is the only mandatory callback of a user-font.
542
+ If the callback is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and a glyph is tried to be rendered using
543
+ <em class="parameter"><code>font_face</code></em>, a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> will occur.
544
+ </p>
545
+ <div class="variablelist"><table border="0">
546
+ <col align="left" valign="top">
547
+ <tbody>
548
+ <tr>
549
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
550
+ <td>A user font face
551
+ </td>
552
+ </tr>
553
+ <tr>
554
+ <td><p><span class="term"><em class="parameter"><code>render_glyph_func</code></em> :</span></p></td>
555
+ <td>The render_glyph callback, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
556
+ </td>
557
+ </tr>
558
+ </tbody>
559
+ </table></div>
560
+ <p class="since">Since 1.8</p>
561
+ </div>
562
+ <hr>
563
+ <div class="refsect2" title="cairo_user_font_face_get_render_glyph_func ()">
564
+ <a name="cairo-user-font-face-get-render-glyph-func"></a><h3>cairo_user_font_face_get_render_glyph_func ()</h3>
565
+ <pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_render_glyph_func_t</span></a> cairo_user_font_face_get_render_glyph_func
566
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
567
+ <p>
568
+ Gets the glyph rendering function of a user-font.
569
+ </p>
570
+ <div class="variablelist"><table border="0">
571
+ <col align="left" valign="top">
572
+ <tbody>
573
+ <tr>
574
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
575
+ <td>A user font face
576
+ </td>
577
+ </tr>
578
+ <tr>
579
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
580
+ <td> The render_glyph callback of <em class="parameter"><code>font_face</code></em>
581
+ or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error has occurred.
582
+
583
+ </td>
584
+ </tr>
585
+ </tbody>
586
+ </table></div>
587
+ <p class="since">Since 1.8</p>
588
+ </div>
589
+ <hr>
590
+ <div class="refsect2" title="cairo_user_font_face_set_unicode_to_glyph_func ()">
591
+ <a name="cairo-user-font-face-set-unicode-to-glyph-func"></a><h3>cairo_user_font_face_set_unicode_to_glyph_func ()</h3>
592
+ <pre class="programlisting"><span class="returnvalue">void</span> cairo_user_font_face_set_unicode_to_glyph_func
593
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
594
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> unicode_to_glyph_func</code></em>);</pre>
595
+ <p>
596
+ Sets the unicode-to-glyph conversion function of a user-font.
597
+ See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> for details of how the callback
598
+ works.
599
+ </p>
600
+ <p>
601
+ The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
602
+ error will occur. A user font-face is immutable as soon as a scaled-font
603
+ is created from it.
604
+ </p>
605
+ <div class="variablelist"><table border="0">
606
+ <col align="left" valign="top">
607
+ <tbody>
608
+ <tr>
609
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
610
+ <td>A user font face
611
+ </td>
612
+ </tr>
613
+ <tr>
614
+ <td><p><span class="term"><em class="parameter"><code>unicode_to_glyph_func</code></em> :</span></p></td>
615
+ <td>The unicode_to_glyph callback, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
616
+ </td>
617
+ </tr>
618
+ </tbody>
619
+ </table></div>
620
+ <p class="since">Since 1.8</p>
621
+ </div>
622
+ <hr>
623
+ <div class="refsect2" title="cairo_user_font_face_get_unicode_to_glyph_func ()">
624
+ <a name="cairo-user-font-face-get-unicode-to-glyph-func"></a><h3>cairo_user_font_face_get_unicode_to_glyph_func ()</h3>
625
+ <pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> cairo_user_font_face_get_unicode_to_glyph_func
626
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
627
+ <p>
628
+ Gets the unicode-to-glyph conversion function of a user-font.
629
+ </p>
630
+ <div class="variablelist"><table border="0">
631
+ <col align="left" valign="top">
632
+ <tbody>
633
+ <tr>
634
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
635
+ <td>A user font face
636
+ </td>
637
+ </tr>
638
+ <tr>
639
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
640
+ <td> The unicode_to_glyph callback of <em class="parameter"><code>font_face</code></em>
641
+ or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error occurred.
642
+
643
+ </td>
644
+ </tr>
645
+ </tbody>
646
+ </table></div>
647
+ <p class="since">Since 1.8</p>
648
+ </div>
649
+ <hr>
650
+ <div class="refsect2" title="cairo_user_font_face_set_text_to_glyphs_func ()">
651
+ <a name="cairo-user-font-face-set-text-to-glyphs-func"></a><h3>cairo_user_font_face_set_text_to_glyphs_func ()</h3>
652
+ <pre class="programlisting"><span class="returnvalue">void</span> cairo_user_font_face_set_text_to_glyphs_func
653
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
654
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> text_to_glyphs_func</code></em>);</pre>
655
+ <p>
656
+ Sets th text-to-glyphs conversion function of a user-font.
657
+ See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> for details of how the callback
658
+ works.
659
+ </p>
660
+ <p>
661
+ The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
662
+ error will occur. A user font-face is immutable as soon as a scaled-font
663
+ is created from it.
664
+ </p>
665
+ <div class="variablelist"><table border="0">
666
+ <col align="left" valign="top">
667
+ <tbody>
668
+ <tr>
669
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
670
+ <td>A user font face
671
+ </td>
672
+ </tr>
673
+ <tr>
674
+ <td><p><span class="term"><em class="parameter"><code>text_to_glyphs_func</code></em> :</span></p></td>
675
+ <td>The text_to_glyphs callback, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
676
+ </td>
677
+ </tr>
678
+ </tbody>
679
+ </table></div>
680
+ <p class="since">Since 1.8</p>
681
+ </div>
682
+ <hr>
683
+ <div class="refsect2" title="cairo_user_font_face_get_text_to_glyphs_func ()">
684
+ <a name="cairo-user-font-face-get-text-to-glyphs-func"></a><h3>cairo_user_font_face_get_text_to_glyphs_func ()</h3>
685
+ <pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="returnvalue">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> cairo_user_font_face_get_text_to_glyphs_func
686
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
687
+ <p>
688
+ Gets the text-to-glyphs conversion function of a user-font.
689
+ </p>
690
+ <div class="variablelist"><table border="0">
691
+ <col align="left" valign="top">
692
+ <tbody>
693
+ <tr>
694
+ <td><p><span class="term"><em class="parameter"><code>font_face</code></em> :</span></p></td>
695
+ <td>A user font face
696
+ </td>
697
+ </tr>
698
+ <tr>
699
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
700
+ <td> The text_to_glyphs callback of <em class="parameter"><code>font_face</code></em>
701
+ or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error occurred.
702
+
703
+ </td>
704
+ </tr>
705
+ </tbody>
706
+ </table></div>
707
+ <p class="since">Since 1.8</p>
708
+ </div>
709
+ </div>
710
+ </div>
711
+ <div class="footer">
712
+ <hr>
713
+ Generated by GTK-Doc V1.15</div>
714
+ </body>
715
+ </html>