cairo 1.6.1-x86-mswin32 → 1.7.0-x86-mswin32

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 (410) hide show
  1. data/ChangeLog +285 -0
  2. data/NEWS +33 -0
  3. data/README +15 -4
  4. data/Rakefile +3 -0
  5. data/cairo/bin/libcairo-2.dll +0 -0
  6. data/cairo/bin/libpng12-0.dll +0 -0
  7. data/cairo/include/{libpng13/png.h → png.h} +285 -135
  8. data/cairo/include/{libpng13/pngconf.h → pngconf.h} +116 -72
  9. data/cairo/lib/cairo.lib +0 -0
  10. data/cairo/lib/libcairo.dll.a +0 -0
  11. data/cairo/lib/libpng.def +361 -371
  12. data/cairo/lib/libpng.lib +0 -0
  13. data/cairo/lib/libpng12.dll.a +0 -0
  14. data/cairo/lib/pkgconfig/cairo-pdf.pc +1 -1
  15. data/cairo/lib/pkgconfig/cairo-png.pc +2 -2
  16. data/cairo/lib/pkgconfig/cairo-ps.pc +1 -1
  17. data/cairo/lib/pkgconfig/cairo-svg.pc +1 -1
  18. data/cairo/lib/pkgconfig/cairo-win32-font.pc +1 -1
  19. data/cairo/lib/pkgconfig/cairo-win32.pc +1 -1
  20. data/cairo/lib/pkgconfig/cairo.pc +2 -2
  21. data/cairo/lib/pkgconfig/libpng.pc +10 -14
  22. data/cairo/lib/pkgconfig/libpng12.pc +10 -0
  23. data/cairo/make/{cairo-1.6.4-1.sh → cairo-1.6.4-2.sh} +3 -3
  24. data/cairo/make/libpng-1.2.29.sh +35 -0
  25. data/cairo/manifest/cairo-1.6.4-2.mft +6 -0
  26. data/cairo/manifest/{cairo-dev-1.6.4-1.mft → cairo-dev-1.6.4-2.mft} +2 -2
  27. data/cairo/manifest/libpng-1.2.29.mft +2 -0
  28. data/cairo/manifest/libpng-dev-1.2.29.mft +12 -0
  29. data/cairo/share/doc/{cairo-1.6.4-1 → cairo-1.6.4-2}/COPYING +0 -0
  30. data/cairo/share/doc/{cairo-1.6.4-1 → cairo-1.6.4-2}/COPYING-LGPL-2.1 +0 -0
  31. data/cairo/share/doc/{cairo-1.6.4-1 → cairo-1.6.4-2}/COPYING-MPL-1.1 +0 -0
  32. data/cairo/share/man/man3/libpng.3 +3680 -0
  33. data/cairo/share/man/man3/libpngpf.3 +274 -0
  34. data/cairo/share/man/man5/png.5 +74 -0
  35. data/doc/en/cairo-antialias.html +0 -3
  36. data/doc/en/cairo-clip-not-representable-error.html +0 -3
  37. data/doc/en/cairo-color-base.html +0 -3
  38. data/doc/en/cairo-color-cmyk.html +0 -3
  39. data/doc/en/cairo-color-hsv.html +0 -3
  40. data/doc/en/cairo-color-rgb.html +0 -3
  41. data/doc/en/cairo-color-x11.html +0 -3
  42. data/doc/en/cairo-color.html +0 -3
  43. data/doc/en/cairo-content.html +0 -3
  44. data/doc/en/cairo-context-blur.html +0 -3
  45. data/doc/en/cairo-context-circle.html +0 -3
  46. data/doc/en/cairo-context-color.html +0 -3
  47. data/doc/en/cairo-context-path.html +0 -3
  48. data/doc/en/cairo-context-rectangle.html +0 -3
  49. data/doc/en/cairo-context-triangle.html +0 -3
  50. data/doc/en/cairo-context.html +119 -102
  51. data/doc/en/cairo-error.html +0 -3
  52. data/doc/en/cairo-extend.html +0 -3
  53. data/doc/en/cairo-file-not-found.html +0 -3
  54. data/doc/en/cairo-fill-rule.html +0 -3
  55. data/doc/en/cairo-filter.html +0 -3
  56. data/doc/en/cairo-font-extents.html +67 -12
  57. data/doc/en/cairo-font-face.html +0 -3
  58. data/doc/en/cairo-font-options.html +26 -14
  59. data/doc/en/cairo-font-slant.html +0 -3
  60. data/doc/en/cairo-font-type-mismatch.html +47 -0
  61. data/doc/en/cairo-font-weight.html +0 -3
  62. data/doc/en/cairo-format.html +0 -3
  63. data/doc/en/cairo-glyph.html +0 -3
  64. data/doc/en/cairo-gradient-pattern.html +0 -3
  65. data/doc/en/cairo-hint-metrics.html +0 -3
  66. data/doc/en/cairo-hint-style.html +0 -3
  67. data/doc/en/cairo-image-surface.html +0 -3
  68. data/doc/en/cairo-invalid-clusters.html +47 -0
  69. data/doc/en/cairo-invalid-content-error.html +0 -3
  70. data/doc/en/cairo-invalid-dash-error.html +0 -3
  71. data/doc/en/cairo-invalid-dsc-comment-error.html +0 -3
  72. data/doc/en/cairo-invalid-format-error.html +0 -3
  73. data/doc/en/cairo-invalid-index-error.html +0 -3
  74. data/doc/en/cairo-invalid-matrix-error.html +0 -3
  75. data/doc/en/cairo-invalid-path-data-error.html +0 -3
  76. data/doc/en/cairo-invalid-pop-group-error.html +0 -3
  77. data/doc/en/cairo-invalid-restore-error.html +0 -3
  78. data/doc/en/cairo-invalid-slant.html +47 -0
  79. data/doc/en/cairo-invalid-status-error.html +0 -3
  80. data/doc/en/cairo-invalid-stride-error.html +0 -3
  81. data/doc/en/cairo-invalid-string-error.html +0 -3
  82. data/doc/en/cairo-invalid-visual-error.html +0 -3
  83. data/doc/en/cairo-invalid-weight.html +47 -0
  84. data/doc/en/cairo-lcd-filter.html +39 -0
  85. data/doc/en/cairo-line-cap.html +0 -3
  86. data/doc/en/cairo-line-join.html +0 -3
  87. data/doc/en/cairo-linear-pattern.html +0 -3
  88. data/doc/en/cairo-matrix.html +43 -41
  89. data/doc/en/cairo-negative-count.html +47 -0
  90. data/doc/en/cairo-no-current-point-error.html +0 -3
  91. data/doc/en/cairo-null-pointer-error.html +0 -3
  92. data/doc/en/cairo-operator.html +0 -3
  93. data/doc/en/cairo-paper-parse-error.html +0 -3
  94. data/doc/en/cairo-paper-unknown-paper-name.html +0 -3
  95. data/doc/en/cairo-paper-unknown-unit.html +0 -3
  96. data/doc/en/cairo-paper-unrecognized-paper-description.html +0 -3
  97. data/doc/en/cairo-paper.html +0 -3
  98. data/doc/en/cairo-path-close-path.html +0 -3
  99. data/doc/en/cairo-path-curve-to.html +0 -3
  100. data/doc/en/cairo-path-data-type.html +0 -3
  101. data/doc/en/cairo-path-data.html +0 -3
  102. data/doc/en/cairo-path-line-to.html +0 -3
  103. data/doc/en/cairo-path-move-to.html +0 -3
  104. data/doc/en/cairo-path.html +0 -3
  105. data/doc/en/cairo-pattern-type-mismatch-error.html +0 -3
  106. data/doc/en/cairo-pattern.html +0 -3
  107. data/doc/en/cairo-pdf-surface.html +0 -3
  108. data/doc/en/cairo-point.html +0 -3
  109. data/doc/en/cairo-ps-level.html +0 -3
  110. data/doc/en/cairo-ps-surface.html +0 -3
  111. data/doc/en/cairo-quartz-image-surface.html +0 -3
  112. data/doc/en/cairo-quartz-surface.html +0 -3
  113. data/doc/en/cairo-radial-pattern.html +0 -3
  114. data/doc/en/cairo-read-error.html +0 -3
  115. data/doc/en/cairo-rectangle.html +0 -3
  116. data/doc/en/cairo-scaled-font.html +13 -6
  117. data/doc/en/cairo-solid-pattern.html +0 -3
  118. data/doc/en/cairo-subpixel-order.html +0 -3
  119. data/doc/en/cairo-surface-finished-error.html +0 -3
  120. data/doc/en/cairo-surface-pattern.html +0 -3
  121. data/doc/en/cairo-surface-type-mismatch-error.html +0 -3
  122. data/doc/en/cairo-surface.html +22 -15
  123. data/doc/en/cairo-svg-surface.html +0 -3
  124. data/doc/en/cairo-svg-version.html +0 -3
  125. data/doc/en/cairo-temp-file-error.html +0 -3
  126. data/doc/en/cairo-text-cluster.html +84 -0
  127. data/doc/en/cairo-text-extents.html +78 -13
  128. data/doc/en/cairo-toy-font-face.html +67 -0
  129. data/doc/en/cairo-user-font-error.html +47 -0
  130. data/doc/en/cairo-user-font-face-text-to-glyphs-data.html +94 -0
  131. data/doc/en/cairo-user-font-face.html +72 -0
  132. data/doc/en/cairo-user-font-immutable.html +47 -0
  133. data/doc/en/cairo-win32-printing-surface.html +0 -3
  134. data/doc/en/cairo-win32-surface.html +0 -3
  135. data/doc/en/cairo-write-error.html +0 -3
  136. data/doc/en/cairo.html +92 -80
  137. data/doc/en/index.html +327 -240
  138. data/doc/ja/cairo-clip-not-representable-error.html +1 -1
  139. data/doc/ja/cairo-color-base.html +1 -1
  140. data/doc/ja/cairo-color-cmyk.html +9 -9
  141. data/doc/ja/cairo-color-hsv.html +8 -8
  142. data/doc/ja/cairo-color-rgb.html +9 -9
  143. data/doc/ja/cairo-color.html +8 -8
  144. data/doc/ja/cairo-context-circle.html +1 -1
  145. data/doc/ja/cairo-context-color.html +1 -1
  146. data/doc/ja/cairo-context-path.html +2 -2
  147. data/doc/ja/cairo-context.html +435 -342
  148. data/doc/ja/cairo-font-extents.html +69 -15
  149. data/doc/ja/cairo-font-face.html +3 -3
  150. data/doc/ja/cairo-font-options.html +37 -12
  151. data/doc/ja/cairo-font-slant.html +1 -1
  152. data/doc/ja/cairo-font-type-mismatch.html +52 -0
  153. data/doc/ja/cairo-glyph.html +5 -5
  154. data/doc/ja/cairo-gradient-pattern.html +6 -6
  155. data/doc/ja/cairo-image-surface.html +8 -8
  156. data/doc/ja/cairo-invalid-clusters.html +55 -0
  157. data/doc/ja/cairo-invalid-restore-error.html +1 -1
  158. data/doc/ja/cairo-invalid-slant.html +57 -0
  159. data/doc/ja/cairo-invalid-weight.html +57 -0
  160. data/doc/ja/cairo-lcd-filter.html +63 -0
  161. data/doc/ja/cairo-line-join.html +1 -1
  162. data/doc/ja/cairo-linear-pattern.html +2 -2
  163. data/doc/ja/cairo-matrix.html +35 -24
  164. data/doc/ja/cairo-negative-count.html +52 -0
  165. data/doc/ja/cairo-paper-unknown-paper-name.html +2 -2
  166. data/doc/ja/cairo-paper-unknown-unit.html +2 -2
  167. data/doc/ja/cairo-paper-unrecognized-paper-description.html +1 -1
  168. data/doc/ja/cairo-paper.html +12 -12
  169. data/doc/ja/cairo-path-close-path.html +1 -1
  170. data/doc/ja/cairo-path-curve-to.html +1 -1
  171. data/doc/ja/cairo-path-data.html +8 -8
  172. data/doc/ja/cairo-path-line-to.html +1 -1
  173. data/doc/ja/cairo-path-move-to.html +1 -1
  174. data/doc/ja/cairo-path.html +21 -21
  175. data/doc/ja/cairo-pattern.html +4 -4
  176. data/doc/ja/cairo-pdf-surface.html +2 -2
  177. data/doc/ja/cairo-point.html +5 -5
  178. data/doc/ja/cairo-ps-level.html +2 -2
  179. data/doc/ja/cairo-ps-surface.html +6 -6
  180. data/doc/ja/cairo-quartz-image-surface.html +2 -2
  181. data/doc/ja/cairo-quartz-surface.html +3 -3
  182. data/doc/ja/cairo-radial-pattern.html +2 -2
  183. data/doc/ja/cairo-rectangle.html +5 -5
  184. data/doc/ja/cairo-scaled-font.html +53 -17
  185. data/doc/ja/cairo-solid-pattern.html +3 -3
  186. data/doc/ja/cairo-surface-pattern.html +2 -2
  187. data/doc/ja/cairo-surface.html +58 -36
  188. data/doc/ja/cairo-svg-surface.html +4 -4
  189. data/doc/ja/cairo-svg-version.html +2 -2
  190. data/doc/ja/cairo-text-cluster.html +102 -0
  191. data/doc/ja/cairo-text-extents.html +84 -22
  192. data/doc/ja/cairo-toy-font-face.html +107 -0
  193. data/doc/ja/cairo-user-font-error.html +55 -0
  194. data/doc/ja/cairo-user-font-face-text-to-glyphs-data.html +155 -0
  195. data/doc/ja/cairo-user-font-face.html +268 -0
  196. data/doc/ja/cairo-user-font-immutable.html +54 -0
  197. data/doc/ja/cairo-win32-printing-surface.html +3 -3
  198. data/doc/ja/cairo-win32-surface.html +4 -4
  199. data/doc/ja/cairo.html +110 -77
  200. data/doc/ja/index.html +292 -205
  201. data/extconf.rb +3 -1
  202. data/misc/update-colors.rb +0 -0
  203. data/pkg-config.rb +54 -28
  204. data/samples/agg/aa_test.rb +0 -0
  205. data/samples/blur.rb +0 -0
  206. data/samples/png.rb +0 -0
  207. data/samples/scalable.rb +0 -0
  208. data/samples/text-on-path.rb +0 -0
  209. data/samples/text2.rb +0 -0
  210. data/src/cairo.def +8 -0
  211. data/src/cairo.so +0 -0
  212. data/src/lib/cairo.rb +12 -7
  213. data/src/lib/cairo/constants.rb +1 -0
  214. data/src/libruby-cairo.a +0 -0
  215. data/src/rb_cairo.c +25 -3
  216. data/src/rb_cairo.h +29 -18
  217. data/src/rb_cairo_constants.c +39 -10
  218. data/src/rb_cairo_context.c +156 -15
  219. data/src/rb_cairo_exception.c +143 -3
  220. data/src/rb_cairo_font_extents.c +81 -6
  221. data/src/rb_cairo_font_face.c +646 -4
  222. data/src/rb_cairo_font_options.c +24 -2
  223. data/src/rb_cairo_glyph.c +5 -3
  224. data/src/rb_cairo_matrix.c +17 -1
  225. data/src/rb_cairo_pattern.c +4 -4
  226. data/src/rb_cairo_private.c +169 -5
  227. data/src/rb_cairo_private.h +45 -3
  228. data/src/rb_cairo_scaled_font.c +61 -3
  229. data/src/rb_cairo_surface.c +174 -59
  230. data/src/rb_cairo_text_cluster.c +151 -0
  231. data/src/rb_cairo_text_extents.c +85 -2
  232. data/test-unit/Rakefile +30 -0
  233. data/test-unit/bin/testrb +5 -0
  234. data/test-unit/lib/test/unit.rb +280 -0
  235. data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
  236. data/test-unit/lib/test/unit/assertions.rb +722 -0
  237. data/test-unit/lib/test/unit/attribute.rb +125 -0
  238. data/test-unit/lib/test/unit/autorunner.rb +254 -0
  239. data/test-unit/lib/test/unit/collector.rb +43 -0
  240. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  241. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  242. data/test-unit/lib/test/unit/collector/load.rb +135 -0
  243. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  244. data/test-unit/lib/test/unit/color.rb +61 -0
  245. data/test-unit/lib/test/unit/diff.rb +524 -0
  246. data/test-unit/lib/test/unit/error.rb +124 -0
  247. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  248. data/test-unit/lib/test/unit/failure.rb +110 -0
  249. data/test-unit/lib/test/unit/fixture.rb +185 -0
  250. data/test-unit/lib/test/unit/notification.rb +125 -0
  251. data/test-unit/lib/test/unit/omission.rb +143 -0
  252. data/test-unit/lib/test/unit/pending.rb +146 -0
  253. data/test-unit/lib/test/unit/priority.rb +146 -0
  254. data/test-unit/lib/test/unit/runner/console.rb +46 -0
  255. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  256. data/test-unit/lib/test/unit/testcase.rb +281 -0
  257. data/test-unit/lib/test/unit/testresult.rb +89 -0
  258. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  259. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  260. data/test-unit/lib/test/unit/ui/console/testrunner.rb +195 -0
  261. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  262. data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
  263. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  264. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  265. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  266. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  267. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  268. data/test-unit/lib/test/unit/version.rb +7 -0
  269. data/test-unit/sample/adder.rb +13 -0
  270. data/test-unit/sample/subtracter.rb +12 -0
  271. data/test-unit/sample/tc_adder.rb +18 -0
  272. data/test-unit/sample/tc_subtracter.rb +18 -0
  273. data/test-unit/sample/ts_examples.rb +7 -0
  274. data/test-unit/test/collector/test_descendant.rb +135 -0
  275. data/test-unit/test/collector/test_dir.rb +406 -0
  276. data/test-unit/test/collector/test_load.rb +333 -0
  277. data/test-unit/test/collector/test_objectspace.rb +98 -0
  278. data/test-unit/test/run-test.rb +13 -0
  279. data/test-unit/test/test_assertions.rb +693 -0
  280. data/test-unit/test/test_attribute.rb +86 -0
  281. data/test-unit/test/test_color.rb +37 -0
  282. data/test-unit/test/test_diff.rb +477 -0
  283. data/test-unit/test/test_emacs_runner.rb +60 -0
  284. data/test-unit/test/test_error.rb +26 -0
  285. data/test-unit/test/test_failure.rb +33 -0
  286. data/test-unit/test/test_fixture.rb +252 -0
  287. data/test-unit/test/test_notification.rb +33 -0
  288. data/test-unit/test/test_omission.rb +81 -0
  289. data/test-unit/test/test_pending.rb +70 -0
  290. data/test-unit/test/test_priority.rb +89 -0
  291. data/test-unit/test/test_testcase.rb +430 -0
  292. data/test-unit/test/test_testresult.rb +113 -0
  293. data/test-unit/test/test_testsuite.rb +129 -0
  294. data/test-unit/test/testunit_test_util.rb +14 -0
  295. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  296. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  297. data/test-unit/test/util/test_observable.rb +102 -0
  298. data/test-unit/test/util/test_procwrapper.rb +36 -0
  299. data/test/cairo-test-utils.rb +18 -0
  300. data/test/run-test.rb +14 -1
  301. data/test/test_constants.rb +19 -0
  302. data/test/test_context.rb +117 -0
  303. data/test/test_exception.rb +27 -0
  304. data/test/test_font_extents.rb +36 -0
  305. data/test/test_font_face.rb +244 -0
  306. data/test/test_font_options.rb +32 -0
  307. data/test/test_pkg_config.rb +3 -2
  308. data/test/test_scaled_font.rb +34 -0
  309. data/test/test_surface.rb +41 -0
  310. data/test/test_text_cluster.rb +32 -0
  311. data/test/test_text_extents.rb +40 -0
  312. data/test/test_text_to_glyphs_data.rb +47 -0
  313. metadata +129 -109
  314. data/cairo/bin/libpng13.dll +0 -0
  315. data/cairo/lib/libpng13.dll.a +0 -0
  316. data/cairo/lib/pkgconfig/libpng13.pc +0 -14
  317. data/cairo/manifest/cairo-1.6.4-1.mft +0 -6
  318. data/cairo/manifest/libpng-dev-1.2.8.mft +0 -7
  319. data/doc/en/cairo-antialias.rd +0 -16
  320. data/doc/en/cairo-clip-not-representable-error.rd +0 -17
  321. data/doc/en/cairo-color-base.rd +0 -38
  322. data/doc/en/cairo-color-cmyk.rd +0 -107
  323. data/doc/en/cairo-color-hsv.rd +0 -91
  324. data/doc/en/cairo-color-rgb.rd +0 -95
  325. data/doc/en/cairo-color-x11.rd +0 -151
  326. data/doc/en/cairo-color.rd +0 -213
  327. data/doc/en/cairo-content.rd +0 -15
  328. data/doc/en/cairo-context-blur.rd +0 -15
  329. data/doc/en/cairo-context-circle.rd +0 -15
  330. data/doc/en/cairo-context-color.rd +0 -15
  331. data/doc/en/cairo-context-path.rd +0 -19
  332. data/doc/en/cairo-context-rectangle.rd +0 -15
  333. data/doc/en/cairo-context-triangle.rd +0 -15
  334. data/doc/en/cairo-context.rd +0 -491
  335. data/doc/en/cairo-error.rd +0 -16
  336. data/doc/en/cairo-extend.rd +0 -16
  337. data/doc/en/cairo-file-not-found.rd +0 -17
  338. data/doc/en/cairo-fill-rule.rd +0 -14
  339. data/doc/en/cairo-filter.rd +0 -18
  340. data/doc/en/cairo-font-extents.rd +0 -40
  341. data/doc/en/cairo-font-face.rd +0 -14
  342. data/doc/en/cairo-font-options.rd +0 -94
  343. data/doc/en/cairo-font-slant.rd +0 -15
  344. data/doc/en/cairo-font-weight.rd +0 -14
  345. data/doc/en/cairo-format.rd +0 -22
  346. data/doc/en/cairo-glyph.rd +0 -62
  347. data/doc/en/cairo-gradient-pattern.rd +0 -41
  348. data/doc/en/cairo-hint-metrics.rd +0 -15
  349. data/doc/en/cairo-hint-style.rd +0 -17
  350. data/doc/en/cairo-image-surface.rd +0 -47
  351. data/doc/en/cairo-invalid-content-error.rd +0 -17
  352. data/doc/en/cairo-invalid-dash-error.rd +0 -17
  353. data/doc/en/cairo-invalid-dsc-comment-error.rd +0 -17
  354. data/doc/en/cairo-invalid-format-error.rd +0 -17
  355. data/doc/en/cairo-invalid-index-error.rd +0 -17
  356. data/doc/en/cairo-invalid-matrix-error.rd +0 -17
  357. data/doc/en/cairo-invalid-path-data-error.rd +0 -17
  358. data/doc/en/cairo-invalid-pop-group-error.rd +0 -17
  359. data/doc/en/cairo-invalid-restore-error.rd +0 -17
  360. data/doc/en/cairo-invalid-status-error.rd +0 -17
  361. data/doc/en/cairo-invalid-stride-error.rd +0 -17
  362. data/doc/en/cairo-invalid-string-error.rd +0 -17
  363. data/doc/en/cairo-invalid-visual-error.rd +0 -17
  364. data/doc/en/cairo-line-cap.rd +0 -15
  365. data/doc/en/cairo-line-join.rd +0 -15
  366. data/doc/en/cairo-linear-pattern.rd +0 -28
  367. data/doc/en/cairo-matrix.rd +0 -186
  368. data/doc/en/cairo-no-current-point-error.rd +0 -17
  369. data/doc/en/cairo-null-pointer-error.rd +0 -17
  370. data/doc/en/cairo-operator.rd +0 -26
  371. data/doc/en/cairo-paper-parse-error.rd +0 -17
  372. data/doc/en/cairo-paper-unknown-paper-name.rd +0 -30
  373. data/doc/en/cairo-paper-unknown-unit.rd +0 -30
  374. data/doc/en/cairo-paper-unrecognized-paper-description.rd +0 -30
  375. data/doc/en/cairo-paper.rd +0 -141
  376. data/doc/en/cairo-path-close-path.rd +0 -21
  377. data/doc/en/cairo-path-curve-to.rd +0 -21
  378. data/doc/en/cairo-path-data-type.rd +0 -16
  379. data/doc/en/cairo-path-data.rd +0 -62
  380. data/doc/en/cairo-path-line-to.rd +0 -21
  381. data/doc/en/cairo-path-move-to.rd +0 -21
  382. data/doc/en/cairo-path.rd +0 -109
  383. data/doc/en/cairo-pattern-type-mismatch-error.rd +0 -17
  384. data/doc/en/cairo-pattern.rd +0 -62
  385. data/doc/en/cairo-pdf-surface.rd +0 -27
  386. data/doc/en/cairo-point.rd +0 -42
  387. data/doc/en/cairo-ps-level.rd +0 -24
  388. data/doc/en/cairo-ps-surface.rd +0 -55
  389. data/doc/en/cairo-quartz-image-surface.rd +0 -27
  390. data/doc/en/cairo-quartz-surface.rd +0 -27
  391. data/doc/en/cairo-radial-pattern.rd +0 -28
  392. data/doc/en/cairo-read-error.rd +0 -17
  393. data/doc/en/cairo-rectangle.rd +0 -54
  394. data/doc/en/cairo-scaled-font.rd +0 -50
  395. data/doc/en/cairo-solid-pattern.rd +0 -31
  396. data/doc/en/cairo-subpixel-order.rd +0 -17
  397. data/doc/en/cairo-surface-finished-error.rd +0 -17
  398. data/doc/en/cairo-surface-pattern.rd +0 -27
  399. data/doc/en/cairo-surface-type-mismatch-error.rd +0 -17
  400. data/doc/en/cairo-surface.rd +0 -72
  401. data/doc/en/cairo-svg-surface.rd +0 -44
  402. data/doc/en/cairo-svg-version.rd +0 -24
  403. data/doc/en/cairo-temp-file-error.rd +0 -17
  404. data/doc/en/cairo-text-extents.rd +0 -44
  405. data/doc/en/cairo-win32-printing-surface.rd +0 -27
  406. data/doc/en/cairo-win32-surface.rd +0 -31
  407. data/doc/en/cairo-write-error.rd +0 -17
  408. data/doc/en/cairo.rd +0 -95
  409. data/doc/en/index.rd +0 -1051
  410. data/samples/agg/aa_demo.rb +0 -47
@@ -3,9 +3,9 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2007-05-26 15:13:25 $
6
+ * $Date: 2008-08-17 07:21:42 $
7
7
  *
8
- * Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
8
+ * Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
9
9
  *
10
10
  * This file is made available under the same terms as Ruby
11
11
  *
@@ -160,6 +160,22 @@ cr_options_get_hint_metrics (VALUE self)
160
160
  return INT2NUM (cairo_font_options_get_hint_metrics (_SELF (self)));
161
161
  }
162
162
 
163
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
164
+ static VALUE
165
+ cr_options_set_lcd_filter (VALUE self, VALUE lcd_filter)
166
+ {
167
+ cairo_font_options_set_lcd_filter (_SELF (self),
168
+ RVAL2CRLCDFILTER (lcd_filter));
169
+ return self;
170
+ }
171
+
172
+ static VALUE
173
+ cr_options_get_lcd_filter (VALUE self)
174
+ {
175
+ return INT2NUM (cairo_font_options_get_lcd_filter (_SELF (self)));
176
+ }
177
+ #endif
178
+
163
179
 
164
180
  void
165
181
  Init_cairo_font_options (void)
@@ -192,6 +208,12 @@ Init_cairo_font_options (void)
192
208
  cr_options_set_hint_metrics, 1);
193
209
  rb_define_method (rb_cCairo_FontOptions, "hint_metrics",
194
210
  cr_options_get_hint_metrics, 0);
211
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
212
+ rb_define_method (rb_cCairo_FontOptions, "set_lcd_filter",
213
+ cr_options_set_lcd_filter, 1);
214
+ rb_define_method (rb_cCairo_FontOptions, "lcd_filter",
215
+ cr_options_get_lcd_filter, 0);
216
+ #endif
195
217
 
196
218
  RB_CAIRO_DEF_SETTERS (rb_cCairo_FontOptions);
197
219
  }
@@ -3,7 +3,7 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2007/05/03 02:47:39 $
6
+ * $Date: 2008-08-16 08:16:39 $
7
7
  *
8
8
  * Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
9
9
  * Copyright 2004-2005 MenTaLguY <mental@rydia.com>
@@ -37,7 +37,7 @@ cr_glyph_free (void *ptr)
37
37
  {
38
38
  if (ptr)
39
39
  {
40
- free (ptr);
40
+ xfree (ptr);
41
41
  }
42
42
  }
43
43
 
@@ -46,7 +46,9 @@ rb_cairo_glyph_to_ruby_object (cairo_glyph_t *glyph)
46
46
  {
47
47
  if (glyph)
48
48
  {
49
- cairo_glyph_t *new_glyph = ALLOC (cairo_glyph_t);
49
+ cairo_glyph_t *new_glyph;
50
+
51
+ new_glyph = ALLOC (cairo_glyph_t);
50
52
  *new_glyph = *glyph;
51
53
  return Data_Wrap_Struct (rb_cCairo_Glyph, NULL, cr_glyph_free, new_glyph);
52
54
  }
@@ -3,8 +3,9 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2007/05/21 11:54:44 $
6
+ * $Date: 2008-08-14 12:37:50 $
7
7
  *
8
+ * Copyright 2006-2008 Kouhei Sutou <kou@cozmixng.org>
8
9
  * Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
9
10
  * Copyright 2004-2005 MenTaLguY <mental@rydia.com>
10
11
  *
@@ -18,6 +19,8 @@
18
19
 
19
20
  VALUE rb_cCairo_Matrix;
20
21
 
22
+ static ID cr_id_equal;
23
+
21
24
  #define _SELF (RVAL2CRMATRIX(self))
22
25
 
23
26
  cairo_matrix_t *
@@ -295,10 +298,22 @@ cr_matrix_to_s(VALUE self)
295
298
  return ret;
296
299
  }
297
300
 
301
+ static VALUE
302
+ cr_matrix_equal (VALUE self, VALUE other)
303
+ {
304
+ if (!rb_cairo__is_kind_of (other, rb_cCairo_Matrix))
305
+ return Qfalse;
306
+
307
+ return rb_funcall (cr_matrix_to_a (self),
308
+ cr_id_equal, 1,
309
+ cr_matrix_to_a (other));
310
+ }
298
311
 
299
312
  void
300
313
  Init_cairo_matrix (void)
301
314
  {
315
+ cr_id_equal = rb_intern ("==");
316
+
302
317
  rb_cCairo_Matrix =
303
318
  rb_define_class_under (rb_mCairo, "Matrix", rb_cObject);
304
319
 
@@ -344,6 +359,7 @@ Init_cairo_matrix (void)
344
359
  rb_define_method (rb_cCairo_Matrix, "set", cr_matrix_set, 6);
345
360
  rb_define_method (rb_cCairo_Matrix, "to_a", cr_matrix_to_a, 0);
346
361
  rb_define_method (rb_cCairo_Matrix, "to_s", cr_matrix_to_s, 0);
362
+ rb_define_method (rb_cCairo_Matrix, "==", cr_matrix_equal, 1);
347
363
 
348
364
 
349
365
  RB_CAIRO_DEF_SETTERS (rb_cCairo_Matrix);
@@ -3,7 +3,7 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2007/05/22 14:24:34 $
6
+ * $Date: 2008-06-12 10:59:54 $
7
7
  *
8
8
  * Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
9
9
  * Copyright 2004-2005 MenTaLguY <mental@rydia.com>
@@ -137,10 +137,10 @@ cr_solid_pattern_initialize (int argc, VALUE *argv, VALUE self)
137
137
  }
138
138
 
139
139
  if (n == 1 && rb_cairo__is_kind_of (red, rb_cArray) &&
140
- (RARRAY (red)->len == 3 || RARRAY (red)->len == 4))
140
+ (RARRAY_LEN (red) == 3 || RARRAY_LEN (red) == 4))
141
141
  {
142
142
  VALUE ary = red;
143
- n = RARRAY (ary)->len;
143
+ n = RARRAY_LEN (ary);
144
144
 
145
145
  red = rb_ary_entry (ary, 0);
146
146
  green = rb_ary_entry (ary, 1);
@@ -247,7 +247,7 @@ cr_gradient_pattern_add_color_stop_generic (int argc, VALUE *argv, VALUE self)
247
247
  if (n == 2 && rb_cairo__is_kind_of (red, rb_cArray))
248
248
  {
249
249
  VALUE ary = red;
250
- n = RARRAY (ary)->len + 1;
250
+ n = RARRAY_LEN (ary) + 1;
251
251
 
252
252
  red = rb_ary_entry (ary, 0);
253
253
  green = rb_ary_entry (ary, 1);
@@ -3,9 +3,9 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2007/05/18 14:07:48 $
6
+ * $Date: 2008-08-17 07:21:42 $
7
7
  *
8
- * Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
8
+ * Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
9
9
  *
10
10
  * This file is made available under the same terms as Ruby
11
11
  *
@@ -14,7 +14,11 @@
14
14
  #include "rb_cairo.h"
15
15
  #include "rb_cairo_private.h"
16
16
 
17
- static ID id_normalize_const_name;
17
+ static ID cr_id_normalize_const_name;
18
+ static ID cr_id_objects;
19
+ static ID cr_id_dup;
20
+ static ID cr_id_inspect;
21
+ static ID cr_id_exit_application;
18
22
 
19
23
  VALUE
20
24
  rb_cairo__float_array (double *values, unsigned count)
@@ -50,7 +54,8 @@ rb_cairo__const_get (VALUE name, const char *prefix)
50
54
  char *const_name, *normalized_name;
51
55
  size_t prefix_len, normalized_name_len;
52
56
 
53
- rb_normalized_name = rb_funcall (rb_mCairo, id_normalize_const_name, 1, name);
57
+ rb_normalized_name = rb_funcall (rb_mCairo,
58
+ cr_id_normalize_const_name, 1, name);
54
59
  normalized_name = RVAL2CSTR (rb_normalized_name);
55
60
 
56
61
  prefix_len = strlen (prefix);
@@ -70,9 +75,168 @@ rb_cairo__is_kind_of (VALUE object, VALUE klass)
70
75
  return RVAL2CBOOL (rb_obj_is_kind_of (object, klass));
71
76
  }
72
77
 
78
+ rb_cairo__object_holder_t *
79
+ rb_cairo__object_holder_new (VALUE klass, VALUE object)
80
+ {
81
+ rb_cairo__object_holder_t *holder;
82
+
83
+ holder = ALLOC(rb_cairo__object_holder_t);
84
+ rb_cairo__gc_guard_add (klass, object);
85
+ holder->object = object;
86
+ return holder;
87
+ }
88
+
89
+ void
90
+ rb_cairo__object_holder_free (VALUE klass, void *ptr)
91
+ {
92
+ rb_cairo__object_holder_t *holder = ptr;
93
+
94
+ if (!NIL_P (holder->object))
95
+ rb_cairo__gc_guard_remove (klass, holder->object);
96
+
97
+ xfree (holder);
98
+ }
99
+
100
+ void
101
+ rb_cairo__initialize_gc_guard_holder_class (VALUE klass)
102
+ {
103
+ rb_ivar_set (klass, cr_id_objects, rb_hash_new ());
104
+ }
105
+
106
+ void
107
+ rb_cairo__gc_guard_add (VALUE klass, VALUE object)
108
+ {
109
+ rb_hash_aset (rb_ivar_get (klass, cr_id_objects), object, Qnil);
110
+ }
111
+
112
+ void
113
+ rb_cairo__gc_guard_remove (VALUE klass, VALUE object)
114
+ {
115
+ rb_hash_delete (rb_ivar_get (klass, cr_id_objects), object);
116
+ }
117
+
118
+ VALUE
119
+ rb_cairo__gc_guarded_objects (VALUE klass)
120
+ {
121
+ return rb_funcall (rb_ivar_get (klass, cr_id_objects), cr_id_dup, 0);
122
+ }
123
+
124
+ const char *
125
+ rb_cairo__inspect (VALUE object)
126
+ {
127
+ VALUE inspected;
128
+
129
+ inspected = rb_funcall (object, cr_id_inspect, 0);
130
+ return RSTRING_PTR (inspected);
131
+ }
132
+
133
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
134
+ VALUE
135
+ rb_cairo__glyphs_to_ruby_object (cairo_glyph_t *glyphs, int num_glyphs)
136
+ {
137
+ int i;
138
+ VALUE rb_glyphs;
139
+
140
+ rb_glyphs = rb_ary_new2 (num_glyphs);
141
+ for (i = 0; i < num_glyphs; i++)
142
+ {
143
+ RARRAY_PTR (rb_glyphs)[i] = CRGLYPH2RVAL (glyphs + i);
144
+ }
145
+
146
+ return rb_glyphs;
147
+ }
148
+
149
+ void
150
+ rb_cairo__glyphs_from_ruby_object (VALUE rb_glyphs,
151
+ cairo_glyph_t **glyphs, int *num_glyphs)
152
+ {
153
+ int i, len;
154
+
155
+ if (NIL_P (rb_glyphs))
156
+ {
157
+ *num_glyphs = -1;
158
+ return;
159
+ }
160
+
161
+ len = RARRAY_LEN (rb_glyphs);
162
+ if (*num_glyphs < len)
163
+ *glyphs = cairo_glyph_allocate (len);
164
+ *num_glyphs = len;
165
+ for (i = 0; i < len; i++)
166
+ {
167
+ cairo_glyph_t *glyph;
168
+
169
+ glyph = *glyphs + i;
170
+ *glyph = *(RVAL2CRGLYPH (RARRAY_PTR (rb_glyphs)[i]));
171
+ }
172
+ }
173
+
174
+ VALUE
175
+ rb_cairo__text_clusters_to_ruby_object (cairo_text_cluster_t *clusters,
176
+ int num_clusters)
177
+ {
178
+ int i;
179
+ VALUE rb_clusters;
180
+
181
+ rb_clusters = rb_ary_new2 (num_clusters);
182
+ for (i = 0; i < num_clusters; i++)
183
+ {
184
+ RARRAY_PTR (rb_clusters)[i] = CRTEXTCLUSTER2RVAL (clusters + i);
185
+ }
186
+
187
+ return rb_clusters;
188
+ }
189
+
190
+ void
191
+ rb_cairo__text_clusters_from_ruby_object (VALUE rb_clusters,
192
+ cairo_text_cluster_t **clusters,
193
+ int *num_clusters)
194
+ {
195
+ int i, len;
196
+
197
+ if (NIL_P (rb_clusters))
198
+ {
199
+ *num_clusters = -1;
200
+ return;
201
+ }
202
+
203
+ len = RARRAY_LEN (rb_clusters);
204
+ if (*num_clusters < len)
205
+ *clusters = cairo_text_cluster_allocate (len);
206
+ *num_clusters = len;
207
+ for (i = 0; i < len; i++)
208
+ {
209
+ cairo_text_cluster_t *cluster;
210
+
211
+ cluster = *clusters + i;
212
+ *cluster = *(RVAL2CRTEXTCLUSTER (RARRAY_PTR (rb_clusters)[i]));
213
+ }
214
+ }
215
+ #endif
216
+
217
+ VALUE
218
+ rb_cairo__invoke_callback (cr_callback_func_t func, VALUE data)
219
+ {
220
+ int state = 0;
221
+ VALUE result, exception;
222
+
223
+ result = rb_protect (func, data, &state);
224
+ if (state)
225
+ {
226
+ exception = RB_ERRINFO;
227
+ if (exception)
228
+ rb_funcall (rb_mCairo, cr_id_exit_application, 2,
229
+ exception, INT2NUM (EXIT_FAILURE));
230
+ }
231
+ return result;
232
+ }
73
233
 
74
234
  void
75
235
  Init_cairo_private (void)
76
236
  {
77
- id_normalize_const_name = rb_intern ("normalize_const_name");
237
+ cr_id_normalize_const_name = rb_intern ("normalize_const_name");
238
+ cr_id_objects = rb_intern ("objects");
239
+ cr_id_dup = rb_intern ("dup");
240
+ cr_id_inspect = rb_intern ("inspect");
241
+ cr_id_exit_application = rb_intern ("exit_application");
78
242
  }
@@ -3,9 +3,9 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2008-01-11 08:03:39 $
6
+ * $Date: 2008-08-17 07:21:42 $
7
7
  *
8
- * Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
8
+ * Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
9
9
  *
10
10
  * This file is made available under the same terms as Ruby
11
11
  *
@@ -17,6 +17,8 @@
17
17
  #define CR_TRUE 1
18
18
  #define CR_FALSE 0
19
19
 
20
+ #define CAIRO_INT_STATUS_UNSUPPORTED 100
21
+
20
22
  #define CSTR2RVAL(str) rb_str_new2(str)
21
23
  #define RVAL2CSTR(str) StringValueCStr(str)
22
24
 
@@ -27,6 +29,14 @@
27
29
  # define RSTRING_LEN(string) (RSTRING(string)->len)
28
30
  #endif
29
31
 
32
+ #ifndef RARRAY_PTR
33
+ # define RARRAY_PTR(array) (RARRAY(array)->ptr)
34
+ #endif
35
+
36
+ #ifndef RARRAY_LEN
37
+ # define RARRAY_LEN(array) (RARRAY(array)->len)
38
+ #endif
39
+
30
40
  #ifdef HAVE_RB_ERRINFO
31
41
  # define RB_ERRINFO (rb_errinfo())
32
42
  #else
@@ -49,12 +59,13 @@ extern void Init_cairo_scaled_font (void);
49
59
  extern void Init_cairo_text_extents (void);
50
60
  extern void Init_cairo_pattern (void);
51
61
  extern void Init_cairo_glyph (void);
62
+ extern void Init_cairo_text_cluster (void);
52
63
 
53
64
  #define RB_CAIRO__GLYPHS_TO_ARRAY(rb_array, glyphs, length) \
54
65
  do \
55
66
  { \
56
67
  Check_Type (rb_array, T_ARRAY); \
57
- length = RARRAY (rb_array)->len; \
68
+ length = RARRAY_LEN (rb_array); \
58
69
  glyphs = ALLOCA_N (cairo_glyph_t, length); \
59
70
  \
60
71
  if (!glyphs) \
@@ -69,4 +80,35 @@ void rb_cairo__glyphs_to_array (VALUE rb_array, cairo_glyph_t *glyphs, int lengt
69
80
  VALUE rb_cairo__const_get (VALUE name, const char *prefix);
70
81
  cairo_bool_t rb_cairo__is_kind_of (VALUE object, VALUE klass);
71
82
 
83
+ typedef struct rb_cairo__object_holder {
84
+ VALUE object;
85
+ } rb_cairo__object_holder_t;
86
+
87
+ rb_cairo__object_holder_t *rb_cairo__object_holder_new (VALUE klass, VALUE object);
88
+ void rb_cairo__object_holder_free (VALUE klass, void *ptr);
89
+
90
+
91
+ void rb_cairo__initialize_gc_guard_holder_class (VALUE klass);
92
+ void rb_cairo__gc_guard_add (VALUE klass, VALUE object);
93
+ void rb_cairo__gc_guard_remove (VALUE klass, VALUE object);
94
+ VALUE rb_cairo__gc_guarded_objects (VALUE klass);
95
+
96
+ const char *rb_cairo__inspect (VALUE object);
97
+
98
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
99
+ VALUE rb_cairo__glyphs_to_ruby_object (cairo_glyph_t *glyphs, int num_glyphs);
100
+ void rb_cairo__glyphs_from_ruby_object (VALUE rb_glyphs,
101
+ cairo_glyph_t **glyphs, int *num_glyphs);
102
+ VALUE rb_cairo__text_clusters_to_ruby_object (cairo_text_cluster_t *clusters,
103
+ int num_clusters);
104
+ void rb_cairo__text_clusters_from_ruby_object (VALUE rb_clusters,
105
+ cairo_text_cluster_t **clusters,
106
+ int *num_clusters);
107
+ #endif
108
+
109
+ cairo_status_t rb_cairo__exception_to_status (VALUE exception);
110
+
111
+ typedef VALUE (*cr_callback_func_t) (VALUE user_data);
112
+ VALUE rb_cairo__invoke_callback (cr_callback_func_t func, VALUE user_data);
113
+
72
114
  #endif
@@ -3,9 +3,9 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2007/05/20 09:18:49 $
6
+ * $Date: 2008-08-16 08:34:19 $
7
7
  *
8
- * Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
8
+ * Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
9
9
  *
10
10
  * This file is made available under the same terms as Ruby
11
11
  *
@@ -114,6 +114,42 @@ cr_scaled_font_glyph_extents (VALUE self, VALUE rb_glyphs)
114
114
  return CRTEXTEXTENTS2RVAL (&extents);
115
115
  }
116
116
 
117
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
118
+ static VALUE
119
+ cr_scaled_font_text_to_glyphs (VALUE self, VALUE rb_x, VALUE rb_y, VALUE rb_utf8)
120
+ {
121
+ double x, y;
122
+ const char *utf8;
123
+ int utf8_len;
124
+ cairo_glyph_t *glyphs = NULL;
125
+ int num_glyphs;
126
+ cairo_text_cluster_t *clusters = NULL;
127
+ int num_clusters;
128
+ cairo_bool_t backward;
129
+ cairo_status_t status;
130
+ VALUE rb_glyphs, rb_clusters;
131
+
132
+ x = NUM2DBL (rb_x);
133
+ y = NUM2DBL (rb_y);
134
+ utf8 = RSTRING_PTR (rb_utf8);
135
+ utf8_len = RSTRING_LEN (rb_utf8);
136
+
137
+ status = cairo_scaled_font_text_to_glyphs (_SELF (self),
138
+ x, y, utf8, utf8_len,
139
+ &glyphs, &num_glyphs,
140
+ &clusters, &num_clusters,
141
+ &backward);
142
+ rb_cairo_check_status (status);
143
+
144
+ rb_glyphs = rb_cairo__glyphs_to_ruby_object (glyphs, num_glyphs);
145
+ cairo_glyph_free (glyphs);
146
+ rb_clusters = rb_cairo__text_clusters_to_ruby_object (clusters, num_clusters);
147
+ cairo_text_cluster_free (clusters);
148
+
149
+ return rb_ary_new3 (3, rb_glyphs, rb_clusters, CBOOL2RVAL (backward));
150
+ }
151
+ #endif
152
+
117
153
  static VALUE
118
154
  cr_scaled_font_get_font_face (VALUE self)
119
155
  {
@@ -144,13 +180,27 @@ cr_scaled_font_get_ctm (VALUE self)
144
180
  static VALUE
145
181
  cr_scaled_font_get_font_options (VALUE self)
146
182
  {
147
- cairo_font_options_t *options = cairo_font_options_create();
183
+ cairo_font_options_t *options;
184
+
185
+ options = cairo_font_options_create();
148
186
  cairo_scaled_font_get_font_options (_SELF (self), options);
149
187
  cr_scaled_font_check_status (_SELF (self));
150
188
  rb_cairo_check_status (cairo_font_options_status (options));
151
189
  return CRFONTOPTIONS2RVAL (options);
152
190
  }
153
191
 
192
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
193
+ static VALUE
194
+ cr_scaled_font_get_scale_matrix (VALUE self)
195
+ {
196
+ cairo_matrix_t matrix;
197
+
198
+ cairo_scaled_font_get_scale_matrix (_SELF (self), &matrix);
199
+ cr_scaled_font_check_status (_SELF (self));
200
+ return CRMATRIX2RVAL (&matrix);
201
+ }
202
+ #endif
203
+
154
204
  void
155
205
  Init_cairo_scaled_font (void)
156
206
  {
@@ -167,6 +217,10 @@ Init_cairo_scaled_font (void)
167
217
  cr_scaled_font_text_extents, 1);
168
218
  rb_define_method (rb_cCairo_ScaledFont, "glyph_extents",
169
219
  cr_scaled_font_glyph_extents, 1);
220
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
221
+ rb_define_method (rb_cCairo_ScaledFont, "text_to_glyphs",
222
+ cr_scaled_font_text_to_glyphs, 3);
223
+ #endif
170
224
  rb_define_method (rb_cCairo_ScaledFont, "font_face",
171
225
  cr_scaled_font_get_font_face, 0);
172
226
  rb_define_method (rb_cCairo_ScaledFont, "font_matrix",
@@ -174,4 +228,8 @@ Init_cairo_scaled_font (void)
174
228
  rb_define_method (rb_cCairo_ScaledFont, "ctm", cr_scaled_font_get_ctm, 0);
175
229
  rb_define_method (rb_cCairo_ScaledFont, "font_options",
176
230
  cr_scaled_font_get_font_options, 0);
231
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
232
+ rb_define_method (rb_cCairo_ScaledFont, "scale_matrix",
233
+ cr_scaled_font_get_scale_matrix, 0);
234
+ #endif
177
235
  }