cairo 1.12.9-x86-mingw32 → 1.14.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 (317) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS +27 -0
  3. data/README.rdoc +7 -7
  4. data/Rakefile +72 -23
  5. data/ext/cairo/extconf.rb +3 -3
  6. data/ext/cairo/rb_cairo.h +3 -3
  7. data/ext/cairo/rb_cairo_constants.c +8 -0
  8. data/ext/cairo/rb_cairo_context.c +63 -1
  9. data/ext/cairo/rb_cairo_exception.c +17 -0
  10. data/ext/cairo/rb_cairo_font_face.c +13 -0
  11. data/ext/cairo/rb_cairo_private.c +14 -1
  12. data/ext/cairo/rb_cairo_private.h +12 -1
  13. data/ext/cairo/rb_cairo_surface.c +47 -23
  14. data/lib/2.0/cairo.so +0 -0
  15. data/lib/2.1/cairo.so +0 -0
  16. data/lib/2.2/cairo.so +0 -0
  17. data/lib/cairo/surface.rb +3 -1
  18. data/test/cairo-test-utils.rb +5 -0
  19. data/test/test_constants.rb +11 -0
  20. data/test/test_context.rb +1 -1
  21. data/test/test_exception.rb +9 -0
  22. data/test/test_font_face.rb +1 -1
  23. data/test/test_quartz_image_surface.rb +13 -0
  24. data/test/test_surface.rb +10 -0
  25. data/vendor/local/bin/fc-cache.exe +0 -0
  26. data/vendor/local/bin/fc-cat.exe +0 -0
  27. data/vendor/local/bin/fc-list.exe +0 -0
  28. data/vendor/local/bin/fc-match.exe +0 -0
  29. data/vendor/local/bin/fc-pattern.exe +0 -0
  30. data/vendor/local/bin/fc-query.exe +0 -0
  31. data/vendor/local/bin/fc-scan.exe +0 -0
  32. data/vendor/local/bin/fc-validate.exe +0 -0
  33. data/vendor/local/bin/freetype-config +6 -6
  34. data/vendor/local/bin/libcairo-2.dll +0 -0
  35. data/vendor/local/bin/libcairo-gobject-2.dll +0 -0
  36. data/vendor/local/bin/libcairo-script-interpreter-2.dll +0 -0
  37. data/vendor/local/bin/libfontconfig-1.dll +0 -0
  38. data/vendor/local/bin/libfreetype-6.dll +0 -0
  39. data/vendor/local/bin/libgcc_s_sjlj-1.dll +0 -0
  40. data/vendor/local/bin/libpixman-1-0.dll +0 -0
  41. data/vendor/local/bin/libpng-config +2 -2
  42. data/vendor/local/bin/libpng16-16.dll +0 -0
  43. data/vendor/local/bin/libpng16-config +2 -2
  44. data/vendor/local/bin/libstdc++-6.dll +0 -0
  45. data/vendor/local/bin/libwinpthread-1.dll +0 -0
  46. data/vendor/local/bin/libxml2-2.dll +0 -0
  47. data/vendor/local/bin/png-fix-itxt.exe +0 -0
  48. data/vendor/local/bin/pngfix.exe +0 -0
  49. data/vendor/local/bin/xml2-config +2 -2
  50. data/vendor/local/bin/xmlcatalog.exe +0 -0
  51. data/vendor/local/bin/xmllint.exe +0 -0
  52. data/vendor/local/bin/zlib1.dll +0 -0
  53. data/vendor/local/include/cairo/cairo-version.h +2 -2
  54. data/vendor/local/include/cairo/cairo.h +36 -0
  55. data/vendor/local/include/libpng16/png.h +38 -24
  56. data/vendor/local/include/libpng16/pngconf.h +3 -3
  57. data/vendor/local/include/libpng16/pnglibconf.h +2 -3
  58. data/vendor/local/include/libxml2/libxml/SAX2.h +4 -2
  59. data/vendor/local/include/libxml2/libxml/entities.h +3 -3
  60. data/vendor/local/include/libxml2/libxml/globals.h +12 -5
  61. data/vendor/local/include/libxml2/libxml/relaxng.h +6 -2
  62. data/vendor/local/include/libxml2/libxml/tree.h +49 -42
  63. data/vendor/local/include/libxml2/libxml/xmlIO.h +1 -1
  64. data/vendor/local/include/libxml2/libxml/xmlerror.h +1 -1
  65. data/vendor/local/include/libxml2/libxml/xmlversion.h +4 -4
  66. data/vendor/local/include/pixman-1/pixman-version.h +2 -2
  67. data/vendor/local/include/png.h +38 -24
  68. data/vendor/local/include/pngconf.h +3 -3
  69. data/vendor/local/include/pnglibconf.h +2 -3
  70. data/vendor/local/lib/cmake/libxml2/libxml2-config.cmake +50 -0
  71. data/vendor/local/lib/libcairo-gobject.a +0 -0
  72. data/vendor/local/lib/libcairo-gobject.dll.a +0 -0
  73. data/vendor/local/lib/libcairo-gobject.la +6 -6
  74. data/vendor/local/lib/libcairo-script-interpreter.a +0 -0
  75. data/vendor/local/lib/libcairo-script-interpreter.dll.a +0 -0
  76. data/vendor/local/lib/libcairo-script-interpreter.la +6 -6
  77. data/vendor/local/lib/libcairo.a +0 -0
  78. data/vendor/local/lib/libcairo.dll.a +0 -0
  79. data/vendor/local/lib/libcairo.la +6 -6
  80. data/vendor/local/lib/libfontconfig.dll.a +0 -0
  81. data/vendor/local/lib/libfontconfig.la +2 -2
  82. data/vendor/local/lib/libfreetype.a +0 -0
  83. data/vendor/local/lib/libfreetype.dll.a +0 -0
  84. data/vendor/local/lib/libfreetype.la +2 -2
  85. data/vendor/local/lib/libpixman-1.a +0 -0
  86. data/vendor/local/lib/libpixman-1.dll.a +0 -0
  87. data/vendor/local/lib/libpixman-1.la +3 -3
  88. data/vendor/local/lib/libpng.a +0 -0
  89. data/vendor/local/lib/libpng.dll.a +0 -0
  90. data/vendor/local/lib/libpng.la +4 -4
  91. data/vendor/local/lib/libpng16.a +0 -0
  92. data/vendor/local/lib/libpng16.dll.a +0 -0
  93. data/vendor/local/lib/libpng16.la +4 -4
  94. data/vendor/local/lib/libxml2.a +0 -0
  95. data/vendor/local/lib/libxml2.dll.a +0 -0
  96. data/vendor/local/lib/libxml2.la +3 -3
  97. data/vendor/local/lib/libz.a +0 -0
  98. data/vendor/local/lib/libz.dll.a +0 -0
  99. data/vendor/local/lib/pkgconfig/cairo-fc.pc +2 -2
  100. data/vendor/local/lib/pkgconfig/cairo-ft.pc +2 -2
  101. data/vendor/local/lib/pkgconfig/cairo-gobject.pc +3 -3
  102. data/vendor/local/lib/pkgconfig/cairo-pdf.pc +2 -2
  103. data/vendor/local/lib/pkgconfig/cairo-png.pc +2 -2
  104. data/vendor/local/lib/pkgconfig/cairo-ps.pc +2 -2
  105. data/vendor/local/lib/pkgconfig/cairo-script.pc +2 -2
  106. data/vendor/local/lib/pkgconfig/cairo-svg.pc +2 -2
  107. data/vendor/local/lib/pkgconfig/cairo-win32-font.pc +2 -2
  108. data/vendor/local/lib/pkgconfig/cairo-win32.pc +2 -2
  109. data/vendor/local/lib/pkgconfig/cairo.pc +3 -3
  110. data/vendor/local/lib/pkgconfig/fontconfig.pc +3 -3
  111. data/vendor/local/lib/pkgconfig/freetype2.pc +4 -4
  112. data/vendor/local/lib/pkgconfig/libpng.pc +2 -2
  113. data/vendor/local/lib/pkgconfig/libpng16.pc +2 -2
  114. data/vendor/local/lib/pkgconfig/libxml-2.0.pc +3 -3
  115. data/vendor/local/lib/pkgconfig/pixman-1.pc +2 -2
  116. data/vendor/local/lib/pkgconfig/zlib.pc +3 -3
  117. data/vendor/local/lib/xml2Conf.sh +3 -3
  118. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/Copyright +0 -0
  119. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/examples/testHTML.c +0 -0
  120. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/examples/testSAX.c +0 -0
  121. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/examples/testXPath.c +0 -0
  122. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/examples/xmllint.c +35 -10
  123. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/DOM.gif +0 -0
  124. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/FAQ.html +34 -17
  125. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/Libxml2-Logo-180x168.gif +0 -0
  126. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/Libxml2-Logo-90x34.gif +0 -0
  127. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/encoding.html +20 -10
  128. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/examples.xml +0 -0
  129. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/examples.xsl +0 -0
  130. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/book1.html +0 -0
  131. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/home.png +0 -0
  132. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/index.html +0 -0
  133. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/left.png +0 -0
  134. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-DOCBparser.html +0 -0
  135. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-HTMLparser.html +0 -0
  136. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-HTMLtree.html +0 -0
  137. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-SAX.html +0 -0
  138. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-SAX2.html +0 -0
  139. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-c14n.html +0 -0
  140. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-catalog.html +0 -0
  141. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-chvalid.html +0 -0
  142. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-debugXML.html +0 -0
  143. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-dict.html +0 -0
  144. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-encoding.html +0 -0
  145. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-entities.html +4 -4
  146. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-globals.html +0 -0
  147. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-hash.html +0 -0
  148. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-lib.html +0 -0
  149. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-list.html +0 -0
  150. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-nanoftp.html +0 -0
  151. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-nanohttp.html +0 -0
  152. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-parser.html +0 -0
  153. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-parserInternals.html +0 -0
  154. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-pattern.html +0 -0
  155. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-relaxng.html +0 -0
  156. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-schemasInternals.html +0 -0
  157. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-schematron.html +0 -0
  158. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-threads.html +0 -0
  159. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-tree.html +72 -72
  160. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-uri.html +0 -0
  161. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-valid.html +0 -0
  162. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xinclude.html +0 -0
  163. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xlink.html +0 -0
  164. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlIO.html +0 -0
  165. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlautomata.html +0 -0
  166. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlerror.html +1 -1
  167. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlexports.html +0 -0
  168. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlmemory.html +0 -0
  169. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlmodule.html +0 -0
  170. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlreader.html +0 -0
  171. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlregexp.html +0 -0
  172. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlsave.html +0 -0
  173. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlschemas.html +0 -0
  174. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlschemastypes.html +2 -2
  175. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlstring.html +0 -0
  176. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlunicode.html +0 -0
  177. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlversion.html +0 -0
  178. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xmlwriter.html +0 -0
  179. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xpath.html +0 -0
  180. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xpathInternals.html +0 -0
  181. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xpointer.html +0 -0
  182. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/libxml-xzlib.html +0 -0
  183. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/right.png +0 -0
  184. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/html/up.png +0 -0
  185. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/index.html +0 -0
  186. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/io1.c +0 -0
  187. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/io1.res +0 -0
  188. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/io2.c +0 -0
  189. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/io2.res +0 -0
  190. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/libxml.gif +0 -0
  191. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/parse1.c +0 -0
  192. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/parse2.c +0 -0
  193. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/parse3.c +0 -0
  194. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/parse4.c +0 -0
  195. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/reader1.c +0 -0
  196. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/reader1.res +0 -0
  197. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/reader2.c +0 -0
  198. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/reader3.c +0 -0
  199. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/reader3.res +0 -0
  200. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/reader4.c +0 -0
  201. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/reader4.res +0 -0
  202. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/redhat.gif +0 -0
  203. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/smallfootonly.gif +0 -0
  204. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/structure.gif +0 -0
  205. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/test1.xml +0 -0
  206. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/test2.xml +0 -0
  207. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/test3.xml +0 -0
  208. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/testWriter.c +0 -0
  209. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tree1.c +0 -0
  210. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tree1.res +0 -0
  211. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tree2.c +0 -0
  212. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tree2.res +0 -0
  213. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tst.xml +0 -0
  214. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/apa.html +0 -0
  215. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/apb.html +0 -0
  216. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/apc.html +0 -0
  217. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/apd.html +0 -0
  218. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ape.html +0 -0
  219. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/apf.html +0 -0
  220. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/apg.html +0 -0
  221. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/aph.html +0 -0
  222. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/api.html +0 -0
  223. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s02.html +0 -0
  224. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s03.html +0 -0
  225. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s04.html +0 -0
  226. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s05.html +0 -0
  227. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s06.html +0 -0
  228. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s07.html +0 -0
  229. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s08.html +0 -0
  230. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ar01s09.html +0 -0
  231. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/blank.png +0 -0
  232. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/1.png +0 -0
  233. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/10.png +0 -0
  234. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/2.png +0 -0
  235. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/3.png +0 -0
  236. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/4.png +0 -0
  237. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/5.png +0 -0
  238. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/6.png +0 -0
  239. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/7.png +0 -0
  240. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/8.png +0 -0
  241. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/callouts/9.png +0 -0
  242. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/caution.png +0 -0
  243. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/draft.png +0 -0
  244. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/home.png +0 -0
  245. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/important.png +0 -0
  246. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/next.png +0 -0
  247. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/note.png +0 -0
  248. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/prev.png +0 -0
  249. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/tip.png +0 -0
  250. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/toc-blank.png +0 -0
  251. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/toc-minus.png +0 -0
  252. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/toc-plus.png +0 -0
  253. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/up.png +0 -0
  254. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/images/warning.png +0 -0
  255. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/includeaddattribute.c +0 -0
  256. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/includeaddkeyword.c +0 -0
  257. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/includeconvert.c +0 -0
  258. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/includegetattribute.c +0 -0
  259. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/includekeyword.c +0 -0
  260. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/includexpath.c +0 -0
  261. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/index.html +0 -0
  262. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/ix01.html +0 -0
  263. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/tutorial/xmltutorial.pdf +0 -0
  264. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/w3c.png +0 -0
  265. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/writer.xml +0 -0
  266. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/xml.html +284 -4
  267. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/xpath1.c +0 -0
  268. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/xpath1.res +0 -0
  269. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/xpath2.c +0 -0
  270. data/vendor/local/share/doc/{libxml2-2.9.1 → libxml2-2.9.2}/html/xpath2.res +0 -0
  271. data/vendor/local/share/gtk-doc/html/cairo/cairo-Error-handling.html +11 -3
  272. data/vendor/local/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +12 -29
  273. data/vendor/local/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +11 -27
  274. data/vendor/local/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html +22 -3
  275. data/vendor/local/share/gtk-doc/html/cairo/cairo-Paths.html +43 -100
  276. data/vendor/local/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html +26 -51
  277. data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html +4 -13
  278. data/vendor/local/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html +10 -23
  279. data/vendor/local/share/gtk-doc/html/cairo/cairo-Regions.html +8 -8
  280. data/vendor/local/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +3 -3
  281. data/vendor/local/share/gtk-doc/html/cairo/cairo-Types.html +7 -17
  282. data/vendor/local/share/gtk-doc/html/cairo/cairo-User-Fonts.html +14 -14
  283. data/vendor/local/share/gtk-doc/html/cairo/cairo-Version-Information.html +342 -0
  284. data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +1 -1
  285. data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +5 -5
  286. data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html +2 -2
  287. data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-XRender-Backend.html +1 -1
  288. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-device-t.html +86 -49
  289. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +4 -4
  290. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html +2 -2
  291. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html +71 -119
  292. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html +72 -159
  293. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +146 -58
  294. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-t.html +22 -46
  295. data/vendor/local/share/gtk-doc/html/cairo/cairo-support.html +3 -1
  296. data/vendor/local/share/gtk-doc/html/cairo/cairo-text.html +11 -11
  297. data/vendor/local/share/gtk-doc/html/cairo/cairo.devhelp2 +25 -0
  298. data/vendor/local/share/gtk-doc/html/cairo/home.png +0 -0
  299. data/vendor/local/share/gtk-doc/html/cairo/index-1.8.html +9 -0
  300. data/vendor/local/share/gtk-doc/html/cairo/index-all.html +47 -0
  301. data/vendor/local/share/gtk-doc/html/cairo/index.html +4 -1
  302. data/vendor/local/share/gtk-doc/html/cairo/index.sgml +26 -0
  303. data/vendor/local/share/gtk-doc/html/cairo/left.png +0 -0
  304. data/vendor/local/share/gtk-doc/html/cairo/right.png +0 -0
  305. data/vendor/local/share/gtk-doc/html/cairo/up.png +0 -0
  306. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-entities.html +4 -4
  307. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-tree.html +73 -73
  308. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlerror.html +1 -1
  309. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlschemastypes.html +2 -2
  310. data/vendor/local/share/license/cairo/AUTHORS +5 -1
  311. data/vendor/local/share/license/cairo/README +20 -10
  312. data/vendor/local/share/license/libpng/README +20 -7
  313. data/vendor/local/share/man/man1/xmllint.1 +2 -5
  314. data/vendor/local/share/man/man3/libpng.3 +92 -220
  315. data/vendor/local/share/man/man3/libpngpf.3 +2 -2
  316. data/vendor/local/share/man/man5/png.5 +1 -1
  317. metadata +254 -248
@@ -182,7 +182,7 @@ The number of references to a <a class="link" href="cairo-cairo-scaled-font-t.ht
182
182
  <tbody>
183
183
  <tr>
184
184
  <td><p><span class="term"><em class="parameter"><code>scaled_font</code></em> :</span></p></td>
185
- <td>a <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>, (may be <code class="literal">NULL</code> in which case
185
+ <td>a <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>, (may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in which case
186
186
  this function does nothing)</td>
187
187
  </tr>
188
188
  <tr>
@@ -503,7 +503,7 @@ Converts UTF-8 text to an array of glyphs, optionally with cluster
503
503
  mapping, that can be used to render later using <em class="parameter"><code>scaled_font</code></em>.
504
504
  </p>
505
505
  <p>
506
- If <em class="parameter"><code>glyphs</code></em> initially points to a non-<code class="literal">NULL</code> value, that array is used
506
+ If <em class="parameter"><code>glyphs</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 is used
507
507
  as a glyph buffer, and <em class="parameter"><code>num_glyphs</code></em> should point to the number of glyph
508
508
  entries available there. If the provided glyph array is too short for
509
509
  the conversion, a new glyph array is allocated using <a class="link" href="cairo-text.html#cairo-glyph-allocate" title="cairo_glyph_allocate ()"><code class="function">cairo_glyph_allocate()</code></a>
@@ -514,11 +514,11 @@ array using <a class="link" href="cairo-text.html#cairo-glyph-free" title="cairo
514
514
  array was large enough.
515
515
  </p>
516
516
  <p>
517
- If <em class="parameter"><code>clusters</code></em> is not <code class="literal">NULL</code>, <em class="parameter"><code>num_clusters</code></em> and <em class="parameter"><code>cluster_flags</code></em> should not be <code class="literal">NULL</code>,
517
+ 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> should not be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>,
518
518
  and cluster mapping will be computed.
519
519
  The semantics of how cluster array allocation works is similar to the glyph
520
520
  array. That is,
521
- if <em class="parameter"><code>clusters</code></em> initially points to a non-<code class="literal">NULL</code> value, that array is used
521
+ 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 is used
522
522
  as a cluster buffer, and <em class="parameter"><code>num_clusters</code></em> should point to the number of cluster
523
523
  entries available there. If the provided cluster array is too short for
524
524
  the conversion, a new cluster array is allocated 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>
@@ -529,179 +529,92 @@ array using <a class="link" href="cairo-text.html#cairo-text-cluster-free" title
529
529
  array was large enough.
530
530
  </p>
531
531
  <p>
532
- In the simplest case, <em class="parameter"><code>glyphs</code></em> and <em class="parameter"><code>clusters</code></em> can point to <code class="literal">NULL</code> initially
532
+ In the simplest case, <em class="parameter"><code>glyphs</code></em> and <em class="parameter"><code>clusters</code></em> can point to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> initially
533
533
  and a suitable array will be allocated. In code:
534
534
  </p>
535
- <div class="informalexample">
536
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
537
- <tbody>
538
- <tr>
539
- <td class="listing_lines" align="right"><pre>1
540
- 2
541
- 3
542
- 4
543
- 5
544
- 6
545
- 7
546
- 8
547
- 9
548
- 10
549
- 11
550
- 12
551
- 13
552
- 14
553
- 15
554
- 16
555
- 17
556
- 18
557
- 19
558
- 20
559
- 21
560
- 22
561
- 23</pre></td>
562
- <td class="listing_code"><pre class="programlisting">cairo_status_t status<span class="gtkdoc opt">;</span>
535
+ <div class="informalexample"><pre class="programlisting">
536
+ cairo_status_t status;
563
537
 
564
- cairo_glyph_t <span class="gtkdoc opt">*</span>glyphs <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
565
- <span class="gtkdoc kwb">int</span> num_glyphs<span class="gtkdoc opt">;</span>
566
- cairo_text_cluster_t <span class="gtkdoc opt">*</span>clusters <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
567
- <span class="gtkdoc kwb">int</span> num_clusters<span class="gtkdoc opt">;</span>
568
- cairo_text_cluster_flags_t cluster_flags<span class="gtkdoc opt">;</span>
538
+ cairo_glyph_t *glyphs = NULL;
539
+ int num_glyphs;
540
+ cairo_text_cluster_t *clusters = NULL;
541
+ int num_clusters;
542
+ cairo_text_cluster_flags_t cluster_flags;
569
543
 
570
- status <span class="gtkdoc opt">=</span> <span class="function"><a href="../cairo/cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs</a></span> <span class="gtkdoc opt">(</span>scaled_font<span class="gtkdoc opt">,</span>
571
- x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">,</span>
572
- utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
573
- <span class="gtkdoc opt">&amp;</span>glyphs<span class="gtkdoc opt">, &amp;</span>num_glyphs<span class="gtkdoc opt">,</span>
574
- <span class="gtkdoc opt">&amp;</span>clusters<span class="gtkdoc opt">, &amp;</span>num_clusters<span class="gtkdoc opt">, &amp;</span>cluster_flags<span class="gtkdoc opt">);</span>
544
+ status = cairo_scaled_font_text_to_glyphs (scaled_font,
545
+ x, y,
546
+ utf8, utf8_len,
547
+ &amp;glyphs, &amp;num_glyphs,
548
+ &amp;clusters, &amp;num_clusters, &amp;cluster_flags);
575
549
 
576
- <span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">==</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
577
- <span class="function"><a href="../cairo/cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span>
578
- utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
579
- glyphs<span class="gtkdoc opt">,</span> num_glyphs<span class="gtkdoc opt">,</span>
580
- clusters<span class="gtkdoc opt">,</span> num_clusters<span class="gtkdoc opt">,</span> cluster_flags<span class="gtkdoc opt">);</span>
581
-
582
- <span class="function"><a href="../cairo/cairo-text.html#cairo-glyph-free">cairo_glyph_free</a></span> <span class="gtkdoc opt">(</span>glyphs<span class="gtkdoc opt">);</span>
583
- <span class="function"><a href="../cairo/cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free</a></span> <span class="gtkdoc opt">(</span>clusters<span class="gtkdoc opt">);</span>
584
- <span class="gtkdoc opt">}</span></pre></td>
585
- </tr>
586
- </tbody>
587
- </table>
588
- </div>
550
+ if (status == CAIRO_STATUS_SUCCESS) {
551
+ cairo_show_text_glyphs (cr,
552
+ utf8, utf8_len,
553
+ glyphs, num_glyphs,
554
+ clusters, num_clusters, cluster_flags);
589
555
 
556
+ cairo_glyph_free (glyphs);
557
+ cairo_text_cluster_free (clusters);
558
+ }
559
+ </pre></div>
590
560
  <p>
591
561
  </p>
592
562
  <p>
593
563
  If no cluster mapping is needed:
594
564
  </p>
595
- <div class="informalexample">
596
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
597
- <tbody>
598
- <tr>
599
- <td class="listing_lines" align="right"><pre>1
600
- 2
601
- 3
602
- 4
603
- 5
604
- 6
605
- 7
606
- 8
607
- 9
608
- 10
609
- 11
610
- 12
611
- 13
612
- 14
613
- 15
614
- 16</pre></td>
615
- <td class="listing_code"><pre class="programlisting">cairo_status_t status<span class="gtkdoc opt">;</span>
616
-
617
- cairo_glyph_t <span class="gtkdoc opt">*</span>glyphs <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
618
- <span class="gtkdoc kwb">int</span> num_glyphs<span class="gtkdoc opt">;</span>
565
+ <div class="informalexample"><pre class="programlisting">
566
+ cairo_status_t status;
619
567
 
620
- status <span class="gtkdoc opt">=</span> <span class="function"><a href="../cairo/cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs</a></span> <span class="gtkdoc opt">(</span>scaled_font<span class="gtkdoc opt">,</span>
621
- x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">,</span>
622
- utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
623
- <span class="gtkdoc opt">&amp;</span>glyphs<span class="gtkdoc opt">, &amp;</span>num_glyphs<span class="gtkdoc opt">,</span>
624
- NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span>
625
- NULL<span class="gtkdoc opt">);</span>
568
+ cairo_glyph_t *glyphs = NULL;
569
+ int num_glyphs;
626
570
 
627
- <span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">==</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
628
- <span class="function"><a href="../cairo/cairo-text.html#cairo-show-glyphs">cairo_show_glyphs</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> glyphs<span class="gtkdoc opt">,</span> num_glyphs<span class="gtkdoc opt">);</span>
629
- <span class="function"><a href="../cairo/cairo-text.html#cairo-glyph-free">cairo_glyph_free</a></span> <span class="gtkdoc opt">(</span>glyphs<span class="gtkdoc opt">);</span>
630
- <span class="gtkdoc opt">}</span></pre></td>
631
- </tr>
632
- </tbody>
633
- </table>
634
- </div>
571
+ status = cairo_scaled_font_text_to_glyphs (scaled_font,
572
+ x, y,
573
+ utf8, utf8_len,
574
+ &amp;glyphs, &amp;num_glyphs,
575
+ NULL, NULL,
576
+ NULL);
635
577
 
578
+ if (status == CAIRO_STATUS_SUCCESS) {
579
+ cairo_show_glyphs (cr, glyphs, num_glyphs);
580
+ cairo_glyph_free (glyphs);
581
+ }
582
+ </pre></div>
636
583
  <p>
637
584
  </p>
638
585
  <p>
639
586
  If stack-based glyph and cluster arrays are to be used for small
640
587
  arrays:
641
588
  </p>
642
- <div class="informalexample">
643
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
644
- <tbody>
645
- <tr>
646
- <td class="listing_lines" align="right"><pre>1
647
- 2
648
- 3
649
- 4
650
- 5
651
- 6
652
- 7
653
- 8
654
- 9
655
- 10
656
- 11
657
- 12
658
- 13
659
- 14
660
- 15
661
- 16
662
- 17
663
- 18
664
- 19
665
- 20
666
- 21
667
- 22
668
- 23
669
- 24
670
- 25
671
- 26
672
- 27</pre></td>
673
- <td class="listing_code"><pre class="programlisting">cairo_status_t status<span class="gtkdoc opt">;</span>
674
-
675
- cairo_glyph_t stack_glyphs<span class="gtkdoc opt">[</span><span class="number">40</span><span class="gtkdoc opt">];</span>
676
- cairo_glyph_t <span class="gtkdoc opt">*</span>glyphs <span class="gtkdoc opt">=</span> stack_glyphs<span class="gtkdoc opt">;</span>
677
- <span class="gtkdoc kwb">int</span> num_glyphs <span class="gtkdoc opt">=</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_glyphs<span class="gtkdoc opt">) /</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_glyphs<span class="gtkdoc opt">[</span><span class="number">0</span><span class="gtkdoc opt">]);</span>
678
- cairo_text_cluster_t stack_clusters<span class="gtkdoc opt">[</span><span class="number">40</span><span class="gtkdoc opt">];</span>
679
- cairo_text_cluster_t <span class="gtkdoc opt">*</span>clusters <span class="gtkdoc opt">=</span> stack_clusters<span class="gtkdoc opt">;</span>
680
- <span class="gtkdoc kwb">int</span> num_clusters <span class="gtkdoc opt">=</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_clusters<span class="gtkdoc opt">) /</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_clusters<span class="gtkdoc opt">[</span><span class="number">0</span><span class="gtkdoc opt">]);</span>
681
- cairo_text_cluster_flags_t cluster_flags<span class="gtkdoc opt">;</span>
589
+ <div class="informalexample"><pre class="programlisting">
590
+ cairo_status_t status;
682
591
 
683
- status <span class="gtkdoc opt">=</span> <span class="function"><a href="../cairo/cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs</a></span> <span class="gtkdoc opt">(</span>scaled_font<span class="gtkdoc opt">,</span>
684
- x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">,</span>
685
- utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
686
- <span class="gtkdoc opt">&amp;</span>glyphs<span class="gtkdoc opt">, &amp;</span>num_glyphs<span class="gtkdoc opt">,</span>
687
- <span class="gtkdoc opt">&amp;</span>clusters<span class="gtkdoc opt">, &amp;</span>num_clusters<span class="gtkdoc opt">, &amp;</span>cluster_flags<span class="gtkdoc opt">);</span>
592
+ cairo_glyph_t stack_glyphs[40];
593
+ cairo_glyph_t *glyphs = stack_glyphs;
594
+ int num_glyphs = sizeof (stack_glyphs) / sizeof (stack_glyphs[0]);
595
+ cairo_text_cluster_t stack_clusters[40];
596
+ cairo_text_cluster_t *clusters = stack_clusters;
597
+ int num_clusters = sizeof (stack_clusters) / sizeof (stack_clusters[0]);
598
+ cairo_text_cluster_flags_t cluster_flags;
688
599
 
689
- <span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">==</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
690
- <span class="function"><a href="../cairo/cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span>
691
- utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
692
- glyphs<span class="gtkdoc opt">,</span> num_glyphs<span class="gtkdoc opt">,</span>
693
- clusters<span class="gtkdoc opt">,</span> num_clusters<span class="gtkdoc opt">,</span> cluster_flags<span class="gtkdoc opt">);</span>
600
+ status = cairo_scaled_font_text_to_glyphs (scaled_font,
601
+ x, y,
602
+ utf8, utf8_len,
603
+ &amp;glyphs, &amp;num_glyphs,
604
+ &amp;clusters, &amp;num_clusters, &amp;cluster_flags);
694
605
 
695
- <span class="keyword">if</span> <span class="gtkdoc opt">(</span>glyphs <span class="gtkdoc opt">!=</span> stack_glyphs<span class="gtkdoc opt">)</span>
696
- <span class="function"><a href="../cairo/cairo-text.html#cairo-glyph-free">cairo_glyph_free</a></span> <span class="gtkdoc opt">(</span>glyphs<span class="gtkdoc opt">);</span>
697
- <span class="keyword">if</span> <span class="gtkdoc opt">(</span>clusters <span class="gtkdoc opt">!=</span> stack_clusters<span class="gtkdoc opt">)</span>
698
- <span class="function"><a href="../cairo/cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free</a></span> <span class="gtkdoc opt">(</span>clusters<span class="gtkdoc opt">);</span>
699
- <span class="gtkdoc opt">}</span></pre></td>
700
- </tr>
701
- </tbody>
702
- </table>
703
- </div>
606
+ if (status == CAIRO_STATUS_SUCCESS) {
607
+ cairo_show_text_glyphs (cr,
608
+ utf8, utf8_len,
609
+ glyphs, num_glyphs,
610
+ clusters, num_clusters, cluster_flags);
704
611
 
612
+ if (glyphs != stack_glyphs)
613
+ cairo_glyph_free (glyphs);
614
+ if (clusters != stack_clusters)
615
+ cairo_text_cluster_free (clusters);
616
+ }
617
+ </pre></div>
705
618
  <p>
706
619
  </p>
707
620
  <p>
@@ -747,18 +660,18 @@ same <em class="parameter"><code>scaled_font</code></em> is used for the operati
747
660
  </tr>
748
661
  <tr>
749
662
  <td><p><span class="term"><em class="parameter"><code>clusters</code></em> :</span></p></td>
750
- <td>pointer to array of cluster mapping information to fill, or <code class="literal">NULL</code>
663
+ <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>
751
664
  </td>
752
665
  </tr>
753
666
  <tr>
754
667
  <td><p><span class="term"><em class="parameter"><code>num_clusters</code></em> :</span></p></td>
755
- <td>pointer to number of clusters, or <code class="literal">NULL</code>
668
+ <td>pointer to number of clusters, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
756
669
  </td>
757
670
  </tr>
758
671
  <tr>
759
672
  <td><p><span class="term"><em class="parameter"><code>cluster_flags</code></em> :</span></p></td>
760
673
  <td>pointer to location to store cluster flags corresponding to the
761
- output <em class="parameter"><code>clusters</code></em>, or <code class="literal">NULL</code>
674
+ output <em class="parameter"><code>clusters</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
762
675
  </td>
763
676
  </tr>
764
677
  <tr>
@@ -963,7 +876,7 @@ object is a nil object, 0 will be returned.</td>
963
876
  <em class="parameter"><code><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> destroy</code></em>);</pre>
964
877
  <p>
965
878
  Attach user data to <em class="parameter"><code>scaled_font</code></em>. To remove user data from a surface,
966
- call this function with the key that was used to set it and <code class="literal">NULL</code>
879
+ call this function with the key that was used to set it and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
967
880
  for <em class="parameter"><code>data</code></em>.
968
881
  </p>
969
882
  <div class="variablelist"><table border="0">
@@ -1007,7 +920,7 @@ slot could not be allocated for the user data.</td>
1007
920
  <p>
1008
921
  Return user data previously attached to <em class="parameter"><code>scaled_font</code></em> using the
1009
922
  specified key. If no user data has been attached with the given
1010
- key this function returns <code class="literal">NULL</code>.
923
+ key this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1011
924
  </p>
1012
925
  <div class="variablelist"><table border="0">
1013
926
  <col align="left" valign="top">
@@ -1024,7 +937,7 @@ attached to</td>
1024
937
  </tr>
1025
938
  <tr>
1026
939
  <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1027
- <td>the user data previously attached or <code class="literal">NULL</code>.</td>
940
+ <td>the user data previously attached or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
1028
941
  </tr>
1029
942
  </tbody>
1030
943
  </table></div>
@@ -38,6 +38,9 @@
38
38
  <div class="refsynopsisdiv">
39
39
  <a name="cairo-cairo-surface-t.synopsis"></a><h2>Synopsis</h2>
40
40
  <pre class="synopsis">#define <a class="link" href="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS" title="CAIRO_HAS_MIME_SURFACE">CAIRO_HAS_MIME_SURFACE</a>
41
+ #define <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2">CAIRO_MIME_TYPE_JBIG2</a>
42
+ #define <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a>
43
+ #define <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a>
41
44
  #define <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2">CAIRO_MIME_TYPE_JP2</a>
42
45
  #define <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG">CAIRO_MIME_TYPE_JPEG</a>
43
46
  #define <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG">CAIRO_MIME_TYPE_PNG</a>
@@ -79,6 +82,12 @@ enum <a class="link" href="cairo-cairo-surface-t.html#cairo-conte
79
82
  <span class="returnvalue">void</span> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset" title="cairo_surface_get_device_offset ()">cairo_surface_get_device_offset</a> (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
80
83
  <em class="parameter"><code><span class="type">double</span> *x_offset</code></em>,
81
84
  <em class="parameter"><code><span class="type">double</span> *y_offset</code></em>);
85
+ <span class="returnvalue">void</span> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale" title="cairo_surface_get_device_scale ()">cairo_surface_get_device_scale</a> (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
86
+ <em class="parameter"><code><span class="type">double</span> *x_scale</code></em>,
87
+ <em class="parameter"><code><span class="type">double</span> *y_scale</code></em>);
88
+ <span class="returnvalue">void</span> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale" title="cairo_surface_set_device_scale ()">cairo_surface_set_device_scale</a> (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
89
+ <em class="parameter"><code><span class="type">double</span> x_scale</code></em>,
90
+ <em class="parameter"><code><span class="type">double</span> y_scale</code></em>);
82
91
  <span class="returnvalue">void</span> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution" title="cairo_surface_set_fallback_resolution ()">cairo_surface_set_fallback_resolution</a>
83
92
  (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
84
93
  <em class="parameter"><code><span class="type">double</span> x_pixels_per_inch</code></em>,
@@ -136,54 +145,28 @@ functions. If you do this, keep in mind that it is mandatory that you call
136
145
  you must use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a> after modifying it.
137
146
  </p>
138
147
  <div class="example">
139
- <a name="idp17937024"></a><p class="title"><b>Example 1. Directly modifying an image surface</b></p>
140
- <div class="example-contents">
141
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
142
- <tbody>
143
- <tr>
144
- <td class="listing_lines" align="right"><pre>1
145
- 2
146
- 3
147
- 4
148
- 5
149
- 6
150
- 7
151
- 8
152
- 9
153
- 10
154
- 11
155
- 12
156
- 13
157
- 14
158
- 15
159
- 16
160
- 17
161
- 18
162
- 19</pre></td>
163
- <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span>
164
- <span class="function">modify_image_surface</span> <span class="gtkdoc opt">(</span>cairo_surface_t <span class="gtkdoc opt">*</span>surface<span class="gtkdoc opt">)</span>
165
- <span class="gtkdoc opt">{</span>
166
- <span class="gtkdoc kwb">unsigned char</span> <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
167
- <span class="gtkdoc kwb">int</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> stride<span class="gtkdoc opt">;</span>
148
+ <a name="idp17907312"></a><p class="title"><b>Example 1. Directly modifying an image surface</b></p>
149
+ <div class="example-contents"><pre class="programlisting">
150
+ void
151
+ modify_image_surface (cairo_surface_t *surface)
152
+ {
153
+ unsigned char *data;
154
+ int width, height, stride;
168
155
 
169
- <span class="gtkdoc slc">// flush to ensure all writing to the image was done</span>
170
- <span class="function"><a href="../cairo/cairo-cairo-surface-t.html#cairo-surface-flush">cairo_surface_flush</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
156
+ // flush to ensure all writing to the image was done
157
+ cairo_surface_flush (surface);
171
158
 
172
- <span class="gtkdoc slc">// modify the image</span>
173
- data <span class="gtkdoc opt">=</span> <span class="function"><a href="../cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
174
- width <span class="gtkdoc opt">=</span> <span class="function"><a href="../cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-width">cairo_image_surface_get_width</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
175
- height <span class="gtkdoc opt">=</span> <span class="function"><a href="../cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-height">cairo_image_surface_get_height</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
176
- stride <span class="gtkdoc opt">=</span> <span class="function"><a href="../cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
177
- <span class="function">modify_image_data</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> stride<span class="gtkdoc opt">);</span>
178
-
179
- <span class="gtkdoc slc">// mark the image dirty so Cairo clears its caches.</span>
180
- <span class="function"><a href="../cairo/cairo-cairo-surface-t.html#cairo-surface-mark-dirty">cairo_surface_mark_dirty</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
181
- <span class="gtkdoc opt">}</span></pre></td>
182
- </tr>
183
- </tbody>
184
- </table>
185
- </div>
159
+ // modify the image
160
+ data = cairo_image_surface_get_data (surface);
161
+ width = cairo_image_surface_get_width (surface);
162
+ height = cairo_image_surface_get_height (surface);
163
+ stride = cairo_image_surface_get_stride (surface);
164
+ modify_image_data (data, width, height, stride);
186
165
 
166
+ // mark the image dirty so Cairo clears its caches.
167
+ cairo_surface_mark_dirty (surface);
168
+ }
169
+ </pre></div>
187
170
  </div>
188
171
  <p><br class="example-break">
189
172
  Note that for other surface types it might be necessary to acquire the
@@ -202,6 +185,30 @@ devices.
202
185
  </div>
203
186
  <hr>
204
187
  <div class="refsect2">
188
+ <a name="CAIRO-MIME-TYPE-JBIG2:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2</h3>
189
+ <pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2 "application/x-cairo.jbig2"
190
+ </pre>
191
+ <p>
192
+ </p>
193
+ </div>
194
+ <hr>
195
+ <div class="refsect2">
196
+ <a name="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2_GLOBAL</h3>
197
+ <pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2_GLOBAL "application/x-cairo.jbig2-global"
198
+ </pre>
199
+ <p>
200
+ </p>
201
+ </div>
202
+ <hr>
203
+ <div class="refsect2">
204
+ <a name="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</h3>
205
+ <pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID "application/x-cairo.jbig2-global-id"
206
+ </pre>
207
+ <p>
208
+ </p>
209
+ </div>
210
+ <hr>
211
+ <div class="refsect2">
205
212
  <a name="CAIRO-MIME-TYPE-JP2:CAPS"></a><h3>CAIRO_MIME_TYPE_JP2</h3>
206
213
  <pre class="programlisting">#define CAIRO_MIME_TYPE_JP2 "image/jp2"
207
214
  </pre>
@@ -640,7 +647,7 @@ See <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo
640
647
  </tr>
641
648
  <tr>
642
649
  <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
643
- <td>The device for <em class="parameter"><code>surface</code></em> or <code class="literal">NULL</code> if the surface does
650
+ <td>The device for <em class="parameter"><code>surface</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface does
644
651
  not have an associated device.</td>
645
652
  </tr>
646
653
  </tbody>
@@ -838,6 +845,75 @@ This function returns the previous device offset set by
838
845
  </div>
839
846
  <hr>
840
847
  <div class="refsect2">
848
+ <a name="cairo-surface-get-device-scale"></a><h3>cairo_surface_get_device_scale ()</h3>
849
+ <pre class="programlisting"><span class="returnvalue">void</span> cairo_surface_get_device_scale (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
850
+ <em class="parameter"><code><span class="type">double</span> *x_scale</code></em>,
851
+ <em class="parameter"><code><span class="type">double</span> *y_scale</code></em>);</pre>
852
+ <p>
853
+ This function returns the previous device offset set by
854
+ <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale" title="cairo_surface_set_device_scale ()"><code class="function">cairo_surface_set_device_scale()</code></a>.
855
+ </p>
856
+ <div class="variablelist"><table border="0">
857
+ <col align="left" valign="top">
858
+ <tbody>
859
+ <tr>
860
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
861
+ <td>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
862
+ </td>
863
+ </tr>
864
+ <tr>
865
+ <td><p><span class="term"><em class="parameter"><code>x_scale</code></em> :</span></p></td>
866
+ <td>the scale in the X direction, in device units</td>
867
+ </tr>
868
+ <tr>
869
+ <td><p><span class="term"><em class="parameter"><code>y_scale</code></em> :</span></p></td>
870
+ <td>the scale in the Y direction, in device units</td>
871
+ </tr>
872
+ </tbody>
873
+ </table></div>
874
+ <p class="since">Since 1.14</p>
875
+ </div>
876
+ <hr>
877
+ <div class="refsect2">
878
+ <a name="cairo-surface-set-device-scale"></a><h3>cairo_surface_set_device_scale ()</h3>
879
+ <pre class="programlisting"><span class="returnvalue">void</span> cairo_surface_set_device_scale (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
880
+ <em class="parameter"><code><span class="type">double</span> x_scale</code></em>,
881
+ <em class="parameter"><code><span class="type">double</span> y_scale</code></em>);</pre>
882
+ <p>
883
+ Sets a scale that is multiplied to the device coordinates determined
884
+ by the CTM when drawing to <em class="parameter"><code>surface</code></em>. One common use for this is to
885
+ render to very high resolution display devices at a scale factor, so
886
+ that code that assumes 1 pixel will be a certain size will still work.
887
+ Setting a transformation via <a class="link" href="cairo-Transformations.html#cairo-translate" title="cairo_translate ()"><code class="function">cairo_translate()</code></a> isn't
888
+ sufficient to do this, since functions like
889
+ <a class="link" href="cairo-Transformations.html#cairo-device-to-user" title="cairo_device_to_user ()"><code class="function">cairo_device_to_user()</code></a> will expose the hidden scale.
890
+ </p>
891
+ <p>
892
+ Note that the scale affects drawing to the surface as well as
893
+ using the surface in a source pattern.
894
+ </p>
895
+ <div class="variablelist"><table border="0">
896
+ <col align="left" valign="top">
897
+ <tbody>
898
+ <tr>
899
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
900
+ <td>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
901
+ </td>
902
+ </tr>
903
+ <tr>
904
+ <td><p><span class="term"><em class="parameter"><code>x_scale</code></em> :</span></p></td>
905
+ <td>a scale factor in the X direction</td>
906
+ </tr>
907
+ <tr>
908
+ <td><p><span class="term"><em class="parameter"><code>y_scale</code></em> :</span></p></td>
909
+ <td>a scale factor in the Y direction</td>
910
+ </tr>
911
+ </tbody>
912
+ </table></div>
913
+ <p class="since">Since 1.14</p>
914
+ </div>
915
+ <hr>
916
+ <div class="refsect2">
841
917
  <a name="cairo-surface-set-fallback-resolution"></a><h3>cairo_surface_set_fallback_resolution ()</h3>
842
918
  <pre class="programlisting"><span class="returnvalue">void</span> cairo_surface_set_fallback_resolution
843
919
  (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
@@ -1175,7 +1251,7 @@ object is a nil object, 0 will be returned.</td>
1175
1251
  <em class="parameter"><code><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> destroy</code></em>);</pre>
1176
1252
  <p>
1177
1253
  Attach user data to <em class="parameter"><code>surface</code></em>. To remove user data from a surface,
1178
- call this function with the key that was used to set it and <code class="literal">NULL</code>
1254
+ call this function with the key that was used to set it and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1179
1255
  for <em class="parameter"><code>data</code></em>.
1180
1256
  </p>
1181
1257
  <div class="variablelist"><table border="0">
@@ -1218,7 +1294,7 @@ slot could not be allocated for the user data.</td>
1218
1294
  <p>
1219
1295
  Return user data previously attached to <em class="parameter"><code>surface</code></em> using the specified
1220
1296
  key. If no user data has been attached with the given key this
1221
- function returns <code class="literal">NULL</code>.
1297
+ function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1222
1298
  </p>
1223
1299
  <div class="variablelist"><table border="0">
1224
1300
  <col align="left" valign="top">
@@ -1235,7 +1311,7 @@ attached to</td>
1235
1311
  </tr>
1236
1312
  <tr>
1237
1313
  <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1238
- <td>the user data previously attached or <code class="literal">NULL</code>.</td>
1314
+ <td>the user data previously attached or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
1239
1315
  </tr>
1240
1316
  </tbody>
1241
1317
  </table></div>
@@ -1298,7 +1374,7 @@ whether it actually uses the provided text and cluster data
1298
1374
  to a <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> call.
1299
1375
  </p>
1300
1376
  <p>
1301
- Note: Even if this function returns <code class="literal">FALSE</code>, a
1377
+ Note: Even if this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, a
1302
1378
  <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> operation targeted at <em class="parameter"><code>surface</code></em> will
1303
1379
  still succeed. It just will
1304
1380
  act like a <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a> operation. Users can use this
@@ -1316,8 +1392,8 @@ target surface does not use it.
1316
1392
  <tr>
1317
1393
  <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1318
1394
  <td>
1319
- <code class="literal">TRUE</code> if <em class="parameter"><code>surface</code></em> supports
1320
- <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a>, <code class="literal">FALSE</code> otherwise</td>
1395
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em> supports
1396
+ <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a>, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
1321
1397
  </tr>
1322
1398
  </tbody>
1323
1399
  </table></div>
@@ -1335,7 +1411,7 @@ target surface does not use it.
1335
1411
  <p>
1336
1412
  Attach an image in the format <em class="parameter"><code>mime_type</code></em> to <em class="parameter"><code>surface</code></em>. To remove
1337
1413
  the data from a surface, call this function with same mime type
1338
- and <code class="literal">NULL</code> for <em class="parameter"><code>data</code></em>.
1414
+ and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for <em class="parameter"><code>data</code></em>.
1339
1415
  </p>
1340
1416
  <p>
1341
1417
  The attached image (or filename) data can later be used by backends
@@ -1347,7 +1423,8 @@ memory and disk space.
1347
1423
  <p>
1348
1424
  The recognized MIME types are the following: <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>,
1349
1425
  <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG"><code class="literal">CAIRO_MIME_TYPE_PNG</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2"><code class="literal">CAIRO_MIME_TYPE_JP2</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI"><code class="literal">CAIRO_MIME_TYPE_URI</code></a>,
1350
- <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>.
1426
+ <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2"><code class="literal">CAIRO_MIME_TYPE_JBIG2</code></a>,
1427
+ <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>.
1351
1428
  </p>
1352
1429
  <p>
1353
1430
  See corresponding backend surface docs for details about which MIME
@@ -1355,6 +1432,17 @@ types it can handle. Caution: the associated MIME data will be
1355
1432
  discarded if you draw on the surface afterwards. Use this function
1356
1433
  with care.
1357
1434
  </p>
1435
+ <p>
1436
+ Even if a backend supports a MIME type, that does not mean cairo
1437
+ will always be able to use the attached MIME data. For example, if
1438
+ the backend does not natively support the compositing operation used
1439
+ to apply the MIME data to the backend. In that case, the MIME data
1440
+ will be ignored. Therefore, to apply an image in all cases, it is best
1441
+ to create an image surface which contains the decoded image data and
1442
+ then attach the MIME data to that. This ensures the image will always
1443
+ be used while still allowing the MIME data to be used whenever
1444
+ possible.
1445
+ </p>
1358
1446
  <div class="variablelist"><table border="0">
1359
1447
  <col align="left" valign="top">
1360
1448
  <tbody>
@@ -1405,7 +1493,7 @@ slot could not be allocated for the user data.</td>
1405
1493
  <p>
1406
1494
  Return mime data previously attached to <em class="parameter"><code>surface</code></em> using the
1407
1495
  specified mime type. If no data has been attached with the given
1408
- mime type, <em class="parameter"><code>data</code></em> is set <code class="literal">NULL</code>.
1496
+ mime type, <em class="parameter"><code>data</code></em> is set <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1409
1497
  </p>
1410
1498
  <div class="variablelist"><table border="0">
1411
1499
  <col align="left" valign="top">
@@ -1454,8 +1542,8 @@ Return whether <em class="parameter"><code>surface</code></em> supports <em clas
1454
1542
  <tr>
1455
1543
  <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1456
1544
  <td>
1457
- <code class="literal">TRUE</code> if <em class="parameter"><code>surface</code></em> supports
1458
- <em class="parameter"><code>mime_type</code></em>, <code class="literal">FALSE</code> otherwise</td>
1545
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em> supports
1546
+ <em class="parameter"><code>mime_type</code></em>, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
1459
1547
  </tr>
1460
1548
  </tbody>
1461
1549
  </table></div>
@@ -1469,7 +1557,7 @@ Return whether <em class="parameter"><code>surface</code></em> supports <em clas
1469
1557
  <p>
1470
1558
  Returns an image surface that is the most efficient mechanism for
1471
1559
  modifying the backing store of the target surface. The region retrieved
1472
- may be limited to the <em class="parameter"><code>extents</code></em> or <code class="literal">NULL</code> for the whole surface
1560
+ may be limited to the <em class="parameter"><code>extents</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for the whole surface
1473
1561
  </p>
1474
1562
  <p>
1475
1563
  Note, the use of the original surface as a target or source whilst