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,7 +3,7 @@
3
3
  * Ruby Cairo Binding
4
4
  *
5
5
  * $Author: kou $
6
- * $Date: 2008-04-16 14:48:23 $
6
+ * $Date: 2008-08-16 12:52:17 $
7
7
  *
8
8
  * Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
9
9
  * Copyright 2004-2005 MenTaLguY <mental@rydia.com>
@@ -15,9 +15,34 @@
15
15
  #include "rb_cairo.h"
16
16
  #include "rb_cairo_private.h"
17
17
 
18
- #include "rubyio.h"
18
+ #ifdef HAVE_RUBY_ST_H
19
+ # include <ruby/st.h>
20
+ #else
21
+ # include <st.h>
22
+ #endif
23
+
24
+ #ifdef CAIRO_HAS_WIN32_SURFACE
25
+ # define OpenFile OpenFile_win32
26
+ # include <cairo-win32.h>
27
+ # undef OpenFile
28
+ #endif
19
29
 
20
- #if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_PDF_SURFACE || CAIRO_HAS_SVG_SURFACE
30
+ #include <rubyio.h>
31
+
32
+ #ifdef CAIRO_HAS_QUARTZ_SURFACE
33
+ # ifndef HAVE_TYPE_ENUM_RUBY_VALUE_TYPE
34
+ enum ruby_value_type {
35
+ RUBY_T_DATA = T_DATA
36
+ };
37
+ # endif
38
+ # undef T_DATA
39
+ # include <cairo-quartz.h>
40
+ # define T_DATA RUBY_T_DATA
41
+ #endif
42
+
43
+ #if defined(CAIRO_HAS_PS_SURFACE) || \
44
+ defined(CAIRO_HAS_PDF_SURFACE) || \
45
+ defined(CAIRO_HAS_SVG_SURFACE)
21
46
  # define HAS_CREATE_CR_CLOSURE_SURFACE 1
22
47
  #else
23
48
  # define HAS_CREATE_CR_CLOSURE_SURFACE 0
@@ -42,6 +67,8 @@ static ID cr_id_parse;
42
67
  static ID cr_id_size;
43
68
  static ID cr_id_set_unit;
44
69
  static cairo_user_data_key_t cr_closure_key;
70
+ static cairo_user_data_key_t cr_object_holder_key;
71
+ static cairo_user_data_key_t cr_finished_key;
45
72
 
46
73
  #define _SELF (RVAL2CRSURFACE(self))
47
74
 
@@ -106,7 +133,7 @@ cr_surface_get_klass (cairo_surface_t *surface)
106
133
  break;
107
134
  #endif
108
135
  default:
109
- rb_raise (rb_eArgError, "unknown source type: %d", type);
136
+ klass = rb_cCairo_Surface;
110
137
  break;
111
138
  }
112
139
 
@@ -132,6 +159,11 @@ typedef struct cr_io_callback_closure {
132
159
  unsigned int length;
133
160
  } cr_io_callback_closure_t;
134
161
 
162
+ typedef struct cr_invoke_data {
163
+ cr_callback_func_t func;
164
+ VALUE data;
165
+ } cr_invoke_data_t;
166
+
135
167
  #if HAS_CREATE_CR_CLOSURE_SURFACE
136
168
  static cr_io_callback_closure_t *
137
169
  cr_closure_new (VALUE target)
@@ -148,7 +180,7 @@ cr_closure_new (VALUE target)
148
180
  static void
149
181
  cr_closure_destroy (cr_io_callback_closure_t *closure)
150
182
  {
151
- free (closure);
183
+ xfree (closure);
152
184
  }
153
185
 
154
186
  static void
@@ -167,6 +199,17 @@ cr_surface_io_func_rescue (VALUE io_closure)
167
199
  return Qnil;
168
200
  }
169
201
 
202
+ static VALUE
203
+ cr_surface_invoke_io_func (VALUE user_data)
204
+ {
205
+ cr_invoke_data_t *data;
206
+
207
+ data = (cr_invoke_data_t *)user_data;
208
+ return rb_rescue2 (data->func, data->data,
209
+ cr_surface_io_func_rescue, data->data, rb_eException,
210
+ (VALUE)0);
211
+ }
212
+
170
213
  /* write callback */
171
214
  static VALUE
172
215
  cr_surface_write_func_invoke (VALUE write_closure)
@@ -199,15 +242,16 @@ cr_surface_write_func (void *write_closure,
199
242
  const unsigned char *data, unsigned int length)
200
243
  {
201
244
  cr_io_callback_closure_t *closure;
245
+ cr_invoke_data_t invoke_data;
202
246
 
203
247
  closure = (cr_io_callback_closure_t *)write_closure;
204
248
  closure->data = (unsigned char *)data;
205
249
  closure->length = length;
206
-
207
- rb_rescue2 (cr_surface_write_func_invoke, (VALUE) closure,
208
- cr_surface_io_func_rescue, (VALUE) closure, rb_eException,
209
- (VALUE)0);
210
-
250
+
251
+ invoke_data.func = cr_surface_write_func_invoke;
252
+ invoke_data.data = (VALUE)closure;
253
+ rb_cairo__invoke_callback (cr_surface_invoke_io_func, (VALUE)&invoke_data);
254
+
211
255
  if (NIL_P (closure->error))
212
256
  return CAIRO_STATUS_SUCCESS;
213
257
  else
@@ -243,14 +287,16 @@ cr_surface_read_func (void *read_closure,
243
287
  unsigned char *data, unsigned int length)
244
288
  {
245
289
  cr_io_callback_closure_t *closure;
290
+ cr_invoke_data_t invoke_data;
246
291
 
247
292
  closure = (cr_io_callback_closure_t *)read_closure;
248
293
  closure->data = data;
249
294
  closure->length = length;
250
- rb_rescue2 (cr_surface_read_func_invoke, (VALUE) closure,
251
- cr_surface_io_func_rescue, (VALUE) closure, rb_eException,
252
- (VALUE)0);
253
-
295
+
296
+ invoke_data.func = cr_surface_read_func_invoke;
297
+ invoke_data.data = (VALUE)closure;
298
+ rb_cairo__invoke_callback (cr_surface_invoke_io_func, (VALUE)&invoke_data);
299
+
254
300
  if (NIL_P (closure->error))
255
301
  return CAIRO_STATUS_SUCCESS;
256
302
  else
@@ -267,16 +313,30 @@ rb_cairo_surface_from_ruby_object (VALUE obj)
267
313
  rb_raise (rb_eTypeError, "not a cairo surface");
268
314
  }
269
315
  Data_Get_Struct (obj, cairo_surface_t, surface);
316
+ if (!surface)
317
+ rb_cairo_check_status (CAIRO_STATUS_NULL_POINTER);
270
318
  return surface;
271
319
  }
272
320
 
321
+ static rb_cairo__object_holder_t *
322
+ cr_object_holder_new (VALUE object)
323
+ {
324
+ return rb_cairo__object_holder_new (rb_cCairo_Surface, object);
325
+ }
326
+
327
+ static void
328
+ cr_object_holder_free (void *ptr)
329
+ {
330
+ rb_cairo__object_holder_free (rb_cCairo_Surface, ptr);
331
+ }
332
+
273
333
  static void
274
334
  cr_surface_free (void *ptr)
275
335
  {
276
- if (ptr)
277
- {
278
- cairo_surface_destroy ((cairo_surface_t *) ptr);
279
- }
336
+ cairo_surface_t *surface = ptr;
337
+
338
+ if (surface)
339
+ cairo_surface_destroy (surface);
280
340
  }
281
341
 
282
342
  VALUE
@@ -299,9 +359,11 @@ VALUE
299
359
  rb_cairo_surface_to_ruby_object_with_destroy (cairo_surface_t *surface)
300
360
  {
301
361
  VALUE rb_surface;
362
+
302
363
  rb_surface = rb_cairo_surface_to_ruby_object (surface);
303
364
  if (surface)
304
365
  cairo_surface_destroy (surface);
366
+
305
367
  return rb_surface;
306
368
  }
307
369
 
@@ -312,23 +374,48 @@ cr_surface_allocate (VALUE klass)
312
374
  }
313
375
 
314
376
  /* Surface manipulation */
315
- static void
316
- yield_and_finish (VALUE self)
377
+ static VALUE
378
+ cr_surface_destroy (VALUE self)
317
379
  {
318
380
  cairo_surface_t *surface;
319
- cairo_status_t status;
320
381
 
321
- rb_yield (self);
382
+ surface = _SELF;
383
+ cairo_surface_destroy (surface);
384
+ DATA_PTR (self) = NULL;
385
+
386
+ return self;
387
+ }
388
+
389
+ static VALUE
390
+ cr_surface_finish (VALUE self)
391
+ {
392
+ cairo_surface_t *surface;
393
+ cr_io_callback_closure_t *closure;
322
394
 
323
395
  surface = _SELF;
324
- if (cairo_surface_status (surface))
325
- return;
396
+ closure = cairo_surface_get_user_data (surface, &cr_closure_key);
397
+
326
398
  cairo_surface_finish (surface);
327
- status = cairo_surface_status (surface);
328
- if (status == CAIRO_STATUS_SUCCESS || status == CAIRO_STATUS_SURFACE_FINISHED)
329
- return;
399
+ cairo_surface_set_user_data (surface, &cr_finished_key, (void *)CR_TRUE, NULL);
400
+ cairo_surface_set_user_data (surface, &cr_object_holder_key, NULL, NULL);
330
401
 
402
+ if (closure && !NIL_P (closure->error))
403
+ rb_exc_raise (closure->error);
331
404
  cr_surface_check_status (surface);
405
+
406
+ return self;
407
+ }
408
+
409
+ static void
410
+ yield_and_finish (VALUE self)
411
+ {
412
+ cairo_surface_t *surface;
413
+
414
+ rb_yield (self);
415
+
416
+ surface = _SELF;
417
+ if (!cairo_surface_get_user_data (surface, &cr_finished_key))
418
+ cr_surface_finish (self);
332
419
  }
333
420
 
334
421
  static VALUE
@@ -343,21 +430,6 @@ cr_surface_create_similar (VALUE self, VALUE content, VALUE width, VALUE height)
343
430
  return CRSURFACE2RVAL_WITH_DESTROY (surface);
344
431
  }
345
432
 
346
- static VALUE
347
- cr_surface_finish (VALUE self)
348
- {
349
- cr_io_callback_closure_t *closure;
350
- closure = cairo_surface_get_user_data (_SELF, &cr_closure_key);
351
-
352
- cairo_surface_finish (_SELF);
353
-
354
- if (closure && !NIL_P (closure->error))
355
- rb_exc_raise (closure->error);
356
-
357
- cr_surface_check_status (_SELF);
358
- return self;
359
- }
360
-
361
433
  static VALUE
362
434
  cr_surface_get_content (VALUE self)
363
435
  {
@@ -365,7 +437,7 @@ cr_surface_get_content (VALUE self)
365
437
  }
366
438
 
367
439
 
368
- #if CAIRO_HAS_PNG_FUNCTIONS
440
+ #ifdef CAIRO_HAS_PNG_FUNCTIONS
369
441
  static VALUE
370
442
  cr_surface_write_to_png_stream (VALUE self, VALUE target)
371
443
  {
@@ -491,6 +563,23 @@ cr_surface_set_fallback_resolution (VALUE self,
491
563
  return self;
492
564
  }
493
565
 
566
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
567
+ static VALUE
568
+ cr_surface_get_fallback_resolution (VALUE self)
569
+ {
570
+ double x_pixels_per_inch, y_pixels_per_inch;
571
+
572
+ cairo_surface_get_fallback_resolution (_SELF,
573
+ &x_pixels_per_inch,
574
+ &y_pixels_per_inch);
575
+ cr_surface_check_status (_SELF);
576
+ return rb_ary_new3 (2,
577
+ rb_float_new (x_pixels_per_inch),
578
+ rb_float_new (y_pixels_per_inch));
579
+ }
580
+ #endif
581
+
582
+
494
583
  #if CAIRO_CHECK_VERSION(1, 5, 2)
495
584
  static VALUE
496
585
  cr_surface_copy_page (VALUE self)
@@ -510,7 +599,7 @@ cr_surface_show_page (VALUE self)
510
599
  #endif
511
600
 
512
601
  /* Image-surface functions */
513
- #if CAIRO_HAS_PNG_FUNCTIONS
602
+ #ifdef CAIRO_HAS_PNG_FUNCTIONS
514
603
  static cairo_surface_t *
515
604
  cr_image_surface_create_from_png_stream (VALUE target)
516
605
  {
@@ -700,6 +789,9 @@ cr_ ## type ## _surface_initialize (int argc, VALUE *argv, VALUE self) \
700
789
  rb_ivar_set (self, cr_id_target, target); \
701
790
  cairo_surface_set_user_data (surface, &cr_closure_key, \
702
791
  closure, cr_closure_free); \
792
+ cairo_surface_set_user_data (surface, &cr_object_holder_key, \
793
+ cr_object_holder_new(self), \
794
+ cr_object_holder_free); \
703
795
  } \
704
796
  } \
705
797
  else \
@@ -747,7 +839,7 @@ cr_ ## type ## _surface_set_size (int argc, VALUE *argv, VALUE self) \
747
839
  return Qnil; \
748
840
  }
749
841
 
750
- #if CAIRO_HAS_PS_SURFACE
842
+ #ifdef CAIRO_HAS_PS_SURFACE
751
843
  /* PS-surface functions */
752
844
  DEFINE_SURFACE(ps)
753
845
  DEFINE_SURFACE_SET_SIZE(ps)
@@ -807,13 +899,13 @@ cr_ps_surface_set_eps (VALUE self, VALUE eps)
807
899
  # endif
808
900
  #endif
809
901
 
810
- #if CAIRO_HAS_PDF_SURFACE
902
+ #ifdef CAIRO_HAS_PDF_SURFACE
811
903
  /* PDF-surface functions */
812
904
  DEFINE_SURFACE(pdf)
813
905
  DEFINE_SURFACE_SET_SIZE(pdf)
814
906
  #endif
815
907
 
816
- #if CAIRO_HAS_SVG_SURFACE
908
+ #ifdef CAIRO_HAS_SVG_SURFACE
817
909
  /* SVG-surface functions */
818
910
  DEFINE_SURFACE(svg)
819
911
 
@@ -826,7 +918,7 @@ cr_svg_surface_restrict_to_version (VALUE self, VALUE version)
826
918
  }
827
919
  #endif
828
920
 
829
- #if CAIRO_HAS_WIN32_SURFACE
921
+ #ifdef CAIRO_HAS_WIN32_SURFACE
830
922
  /* WIN32-surface functions */
831
923
 
832
924
  /* from dl/dl.h (ruby 1.9) */
@@ -964,7 +1056,7 @@ cr_win32_surface_get_image (VALUE self)
964
1056
  # endif
965
1057
  #endif
966
1058
 
967
- #if CAIRO_HAS_QUARTZ_SURFACE && defined(HAVE_RUBY_COCOA)
1059
+ #if defined(CAIRO_HAS_QUARTZ_SURFACE) && defined(HAVE_RUBY_COCOA)
968
1060
  /* Quartz-surface functions */
969
1061
 
970
1062
  #include <objc/objc-runtime.h>
@@ -1083,6 +1175,20 @@ cr_quartz_image_surface_get_image (VALUE self)
1083
1175
  # endif
1084
1176
  #endif
1085
1177
 
1178
+ static int
1179
+ cr_finish_all_guarded_surfaces_at_end_iter (VALUE key, VALUE value, VALUE data)
1180
+ {
1181
+ cr_surface_finish (key);
1182
+ return ST_CONTINUE;
1183
+ }
1184
+
1185
+ static void
1186
+ cr_finish_all_guarded_surfaces_at_end (VALUE data)
1187
+ {
1188
+ rb_hash_foreach (rb_cairo__gc_guarded_objects (rb_cCairo_Surface),
1189
+ cr_finish_all_guarded_surfaces_at_end_iter,
1190
+ Qnil);
1191
+ }
1086
1192
 
1087
1193
  void
1088
1194
  Init_cairo_surface (void)
@@ -1098,9 +1204,14 @@ Init_cairo_surface (void)
1098
1204
  rb_cCairo_Surface =
1099
1205
  rb_define_class_under (rb_mCairo, "Surface", rb_cObject);
1100
1206
  rb_define_alloc_func (rb_cCairo_Surface, cr_surface_allocate);
1101
-
1207
+
1208
+ rb_cairo__initialize_gc_guard_holder_class (rb_cCairo_Surface);
1209
+ rb_set_end_proc(cr_finish_all_guarded_surfaces_at_end, Qnil);
1210
+
1211
+
1102
1212
  rb_define_method (rb_cCairo_Surface, "create_similar",
1103
1213
  cr_surface_create_similar, 3);
1214
+ rb_define_method (rb_cCairo_Surface, "destroy", cr_surface_destroy, 0);
1104
1215
  rb_define_method (rb_cCairo_Surface, "finish", cr_surface_finish, 0);
1105
1216
  rb_define_method (rb_cCairo_Surface, "content", cr_surface_get_content, 0);
1106
1217
 
@@ -1114,6 +1225,10 @@ Init_cairo_surface (void)
1114
1225
  cr_surface_get_device_offset, 0);
1115
1226
  rb_define_method (rb_cCairo_Surface, "set_fallback_resolution",
1116
1227
  cr_surface_set_fallback_resolution, 2);
1228
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
1229
+ rb_define_method (rb_cCairo_Surface, "fallback_resolution",
1230
+ cr_surface_get_fallback_resolution, 0);
1231
+ #endif
1117
1232
  #if CAIRO_CHECK_VERSION(1, 5, 2)
1118
1233
  rb_define_method (rb_cCairo_Surface, "copy_page",
1119
1234
  cr_surface_copy_page, 2);
@@ -1121,7 +1236,7 @@ Init_cairo_surface (void)
1121
1236
  cr_surface_show_page, 2);
1122
1237
  #endif
1123
1238
 
1124
- #if CAIRO_HAS_PNG_FUNCTIONS
1239
+ #ifdef CAIRO_HAS_PNG_FUNCTIONS
1125
1240
  rb_define_method (rb_cCairo_Surface, "write_to_png",
1126
1241
  cr_surface_write_to_png_generic, 1);
1127
1242
  #endif
@@ -1132,7 +1247,7 @@ Init_cairo_surface (void)
1132
1247
  rb_cCairo_ImageSurface =
1133
1248
  rb_define_class_under (rb_mCairo, "ImageSurface", rb_cCairo_Surface);
1134
1249
 
1135
- #if CAIRO_HAS_PNG_FUNCTIONS
1250
+ #ifdef CAIRO_HAS_PNG_FUNCTIONS
1136
1251
  rb_define_singleton_method (rb_cCairo_ImageSurface, "from_png",
1137
1252
  cr_image_surface_create_from_png_generic, 1);
1138
1253
  #endif
@@ -1159,7 +1274,7 @@ Init_cairo_surface (void)
1159
1274
  rb_define_method (rb_cCairo_ ## name ## Surface, "initialize", \
1160
1275
  cr_ ## type ## _surface_initialize, -1);
1161
1276
 
1162
- #if CAIRO_HAS_PS_SURFACE
1277
+ #ifdef CAIRO_HAS_PS_SURFACE
1163
1278
  /* PS-surface */
1164
1279
  INIT_SURFACE(ps, PS)
1165
1280
 
@@ -1171,17 +1286,17 @@ Init_cairo_surface (void)
1171
1286
  rb_define_method (rb_cCairo_PSSurface, "dsc_begin_page_setup",
1172
1287
  cr_ps_surface_dsc_begin_page_setup, 0);
1173
1288
 
1174
- #if CAIRO_CHECK_VERSION(1, 5, 2)
1289
+ # if CAIRO_CHECK_VERSION(1, 5, 2)
1175
1290
  rb_define_method (rb_cCairo_PSSurface, "restrict_to_level",
1176
1291
  cr_ps_surface_restrict_to_level, 1);
1177
1292
  rb_define_method (rb_cCairo_PSSurface, "eps?", cr_ps_surface_get_eps, 0);
1178
1293
  rb_define_method (rb_cCairo_PSSurface, "set_eps", cr_ps_surface_set_eps, 1);
1179
- #endif
1294
+ # endif
1180
1295
 
1181
1296
  RB_CAIRO_DEF_SETTERS (rb_cCairo_PSSurface);
1182
1297
  #endif
1183
1298
 
1184
- #if CAIRO_HAS_PDF_SURFACE
1299
+ #ifdef CAIRO_HAS_PDF_SURFACE
1185
1300
  /* PDF-surface */
1186
1301
  INIT_SURFACE(pdf, PDF)
1187
1302
 
@@ -1191,7 +1306,7 @@ Init_cairo_surface (void)
1191
1306
  RB_CAIRO_DEF_SETTERS (rb_cCairo_PDFSurface);
1192
1307
  #endif
1193
1308
 
1194
- #if CAIRO_HAS_SVG_SURFACE
1309
+ #ifdef CAIRO_HAS_SVG_SURFACE
1195
1310
  /* SVG-surface */
1196
1311
  INIT_SURFACE(svg, SVG)
1197
1312
 
@@ -1201,7 +1316,7 @@ Init_cairo_surface (void)
1201
1316
  RB_CAIRO_DEF_SETTERS (rb_cCairo_SVGSurface);
1202
1317
  #endif
1203
1318
 
1204
- #if CAIRO_HAS_WIN32_SURFACE
1319
+ #ifdef CAIRO_HAS_WIN32_SURFACE
1205
1320
  /* Win32-surface */
1206
1321
  rb_cCairo_Win32Surface =
1207
1322
  rb_define_class_under (rb_mCairo, "Win32Surface", rb_cCairo_Surface);
@@ -1227,7 +1342,7 @@ Init_cairo_surface (void)
1227
1342
 
1228
1343
  #endif
1229
1344
 
1230
- #if CAIRO_HAS_QUARTZ_SURFACE && defined(HAVE_RUBY_COCOA)
1345
+ #if defined(CAIRO_HAS_QUARTZ_SURFACE) && defined(HAVE_RUBY_COCOA)
1231
1346
  /* Quartz-surface */
1232
1347
 
1233
1348
  rb_cCairo_QuartzSurface =