cairo 1.7.0-x86-mswin32 → 1.8.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 (167) hide show
  1. data/ChangeLog +32 -0
  2. data/NEWS +9 -1
  3. data/README +1 -0
  4. data/Rakefile +2 -2
  5. data/cairo/DLL_FAQ.txt +397 -0
  6. data/cairo/README.txt +53 -0
  7. data/cairo/USAGE.txt +94 -0
  8. data/cairo/bin/libcairo-2.dll +0 -0
  9. data/cairo/bin/libpng12-0.dll +0 -0
  10. data/cairo/bin/zlib1.dll +0 -0
  11. data/cairo/include/cairo/cairo-deprecated.h +0 -4
  12. data/cairo/include/cairo/cairo-features.h +7 -22
  13. data/cairo/include/cairo/cairo-pdf.h +1 -1
  14. data/cairo/include/cairo/cairo-ps.h +1 -1
  15. data/cairo/include/cairo/cairo-svg.h +1 -1
  16. data/cairo/include/cairo/cairo-version.h +8 -0
  17. data/cairo/include/cairo/cairo-win32.h +9 -1
  18. data/cairo/include/cairo/cairo.h +420 -32
  19. data/cairo/include/libpng12/png.h +3592 -0
  20. data/cairo/include/libpng12/pngconf.h +1481 -0
  21. data/cairo/include/png.h +36 -13
  22. data/cairo/include/pngconf.h +3 -3
  23. data/cairo/include/zconf.h +332 -0
  24. data/cairo/include/zlib.h +1357 -0
  25. data/cairo/lib/cairo.def +22 -0
  26. data/cairo/lib/cairo.lib +0 -0
  27. data/cairo/lib/libcairo.dll.a +0 -0
  28. data/cairo/lib/libpng.def +1 -0
  29. data/cairo/lib/libpng.lib +0 -0
  30. data/cairo/lib/libpng12.dll.a +0 -0
  31. data/cairo/lib/pkgconfig/cairo-pdf.pc +5 -5
  32. data/cairo/lib/pkgconfig/cairo-png.pc +5 -5
  33. data/cairo/lib/pkgconfig/cairo-ps.pc +5 -5
  34. data/cairo/lib/pkgconfig/cairo-svg.pc +4 -4
  35. data/cairo/lib/pkgconfig/cairo-win32-font.pc +4 -4
  36. data/cairo/lib/pkgconfig/cairo-win32.pc +4 -4
  37. data/cairo/lib/pkgconfig/cairo.pc +4 -4
  38. data/cairo/lib/pkgconfig/libpng.pc +3 -2
  39. data/cairo/lib/pkgconfig/libpng12.pc +3 -2
  40. data/cairo/lib/zdll.exp +0 -0
  41. data/cairo/lib/zdll.lib +0 -0
  42. data/cairo/lib/zlib.def +60 -0
  43. data/cairo/manifest/cairo-dev_1.8.0-1_win32.mft +76 -0
  44. data/cairo/manifest/cairo_1.8.0-1_win32.mft +5 -0
  45. data/cairo/manifest/{libpng-dev-1.2.29.mft → libpng-dev_1.2.32-1_win32.mft} +5 -2
  46. data/cairo/manifest/libpng_1.2.32-1_win32.mft +2 -0
  47. data/cairo/share/doc/{cairo-1.6.4-2 → cairo_1.8.0-1_win32}/COPYING +0 -0
  48. data/cairo/share/doc/{cairo-1.6.4-2 → cairo_1.8.0-1_win32}/COPYING-LGPL-2.1 +0 -0
  49. data/cairo/share/doc/{cairo-1.6.4-2 → cairo_1.8.0-1_win32}/COPYING-MPL-1.1 +0 -0
  50. data/cairo/share/gtk-doc/html/cairo/bindings-errors.html +15 -11
  51. data/cairo/share/gtk-doc/html/cairo/bindings-fonts.html +15 -11
  52. data/cairo/share/gtk-doc/html/cairo/bindings-memory.html +20 -16
  53. data/cairo/share/gtk-doc/html/cairo/bindings-overloading.html +16 -12
  54. data/cairo/share/gtk-doc/html/cairo/bindings-path.html +17 -13
  55. data/cairo/share/gtk-doc/html/cairo/bindings-patterns.html +25 -21
  56. data/cairo/share/gtk-doc/html/cairo/bindings-return-values.html +17 -13
  57. data/cairo/share/gtk-doc/html/cairo/bindings-streams.html +14 -10
  58. data/cairo/share/gtk-doc/html/cairo/bindings-surfaces.html +19 -15
  59. data/cairo/share/gtk-doc/html/cairo/cairo-context.html +2721 -0
  60. data/cairo/share/gtk-doc/html/cairo/cairo-drawing.html +57 -0
  61. data/cairo/share/gtk-doc/html/cairo/cairo-error-status.html +361 -0
  62. data/cairo/share/gtk-doc/html/cairo/cairo-font-face.html +418 -0
  63. data/cairo/share/gtk-doc/html/cairo/cairo-font-options.html +695 -0
  64. data/cairo/share/gtk-doc/html/cairo/cairo-fonts.html +63 -0
  65. data/cairo/share/gtk-doc/html/cairo/cairo-ft-font.html +318 -0
  66. data/cairo/share/gtk-doc/html/cairo/cairo-image-surface.html +486 -0
  67. data/cairo/share/gtk-doc/html/cairo/{cairo-cairo-matrix-t.html → cairo-matrix.html} +137 -156
  68. data/cairo/share/gtk-doc/html/cairo/{cairo-Paths.html → cairo-paths.html} +275 -306
  69. data/cairo/share/gtk-doc/html/cairo/cairo-pattern.html +1524 -0
  70. data/cairo/share/gtk-doc/html/cairo/{cairo-PDF-Surfaces.html → cairo-pdf-surface.html} +60 -70
  71. data/cairo/share/gtk-doc/html/cairo/cairo-png-functions.html +332 -0
  72. data/cairo/share/gtk-doc/html/cairo/{cairo-PostScript-Surfaces.html → cairo-ps-surface.html} +131 -150
  73. data/cairo/share/gtk-doc/html/cairo/cairo-quartz-font.html +153 -0
  74. data/cairo/share/gtk-doc/html/cairo/{cairo-Quartz-Surfaces.html → cairo-quartz-surface.html} +53 -62
  75. data/cairo/share/gtk-doc/html/cairo/cairo-scaled-font.html +1051 -0
  76. data/cairo/share/gtk-doc/html/cairo/cairo-support.html +54 -0
  77. data/cairo/share/gtk-doc/html/cairo/cairo-surface.html +1064 -0
  78. data/cairo/share/gtk-doc/html/cairo/cairo-surfaces.html +69 -0
  79. data/cairo/share/gtk-doc/html/cairo/cairo-svg-surface.html +324 -0
  80. data/cairo/share/gtk-doc/html/cairo/cairo-text.html +1264 -0
  81. data/cairo/share/gtk-doc/html/cairo/{cairo-Transformations.html → cairo-transformations.html} +98 -115
  82. data/cairo/share/gtk-doc/html/cairo/cairo-types.html +134 -0
  83. data/cairo/share/gtk-doc/html/cairo/cairo-user-font.html +769 -0
  84. data/cairo/share/gtk-doc/html/cairo/cairo-version-info.html +355 -0
  85. data/cairo/share/gtk-doc/html/cairo/cairo-win32-font.html +366 -0
  86. data/cairo/share/gtk-doc/html/cairo/cairo-win32-surface.html +321 -0
  87. data/cairo/share/gtk-doc/html/cairo/{cairo-XLib-Surfaces.html → cairo-xlib-surface.html} +104 -121
  88. data/cairo/share/gtk-doc/html/cairo/cairo.devhelp +390 -405
  89. data/cairo/share/gtk-doc/html/cairo/cairo.devhelp2 +390 -405
  90. data/cairo/share/gtk-doc/html/cairo/index-1.2.html +63 -59
  91. data/cairo/share/gtk-doc/html/cairo/index-1.4.html +45 -41
  92. data/cairo/share/gtk-doc/html/cairo/index-1.6.html +29 -23
  93. data/cairo/share/gtk-doc/html/cairo/index-1.8.html +107 -0
  94. data/cairo/share/gtk-doc/html/cairo/index-all.html +759 -0
  95. data/cairo/share/gtk-doc/html/cairo/index.html +51 -41
  96. data/cairo/share/gtk-doc/html/cairo/index.sgml +478 -466
  97. data/cairo/share/gtk-doc/html/cairo/language-bindings.html +22 -18
  98. data/cairo/share/gtk-doc/html/cairo/style.css +14 -2
  99. data/cairo/share/man/man3/libpng.3 +443 -17
  100. data/cairo/share/man/man3/libpngpf.3 +618 -102
  101. data/cairo/share/man/man5/png.5 +1 -1
  102. data/cairo/src/tml/make/cairo_1.8.0-1_win32.log +1021 -0
  103. data/cairo/src/tml/make/cairo_1.8.0-1_win32.sh +68 -0
  104. data/cairo/src/tml/make/libpng_1.2.32-1_win32.log +269 -0
  105. data/cairo/src/tml/make/libpng_1.2.32-1_win32.sh +63 -0
  106. data/cairo/test/example_d.exe +0 -0
  107. data/cairo/test/minigzip_d.exe +0 -0
  108. data/cairo/test/testzlib_d.exe +0 -0
  109. data/cairo/test/untgz_d.exe +0 -0
  110. data/doc/en/cairo-context.html +81 -91
  111. data/doc/en/cairo-font-options.html +11 -26
  112. data/doc/en/cairo-text-cluster-flag.html +35 -0
  113. data/doc/en/cairo-user-font-face-text-to-glyphs-data.html +3 -3
  114. data/doc/en/cairo.html +38 -42
  115. data/doc/en/index.html +129 -142
  116. data/doc/ja/cairo-font-options.html +3 -25
  117. data/doc/ja/cairo-text-cluster-flag.html +46 -0
  118. data/doc/ja/cairo-user-font-face-text-to-glyphs-data.html +16 -15
  119. data/doc/ja/cairo.html +3 -7
  120. data/doc/ja/index.html +9 -17
  121. data/src/cairo.def +1 -1
  122. data/src/cairo.so +0 -0
  123. data/src/lib/cairo/constants.rb +3 -1
  124. data/src/libruby-cairo.a +0 -0
  125. data/src/rb_cairo.c +2 -2
  126. data/src/rb_cairo.h +5 -5
  127. data/src/rb_cairo_constants.c +12 -19
  128. data/src/rb_cairo_context.c +25 -21
  129. data/src/rb_cairo_font_face.c +44 -29
  130. data/src/rb_cairo_font_options.c +1 -23
  131. data/src/rb_cairo_scaled_font.c +5 -5
  132. data/test/test_constants.rb +6 -9
  133. data/test/test_context.rb +0 -12
  134. data/test/test_font_face.rb +7 -7
  135. data/test/test_font_options.rb +2 -21
  136. data/test/test_scaled_font.rb +3 -3
  137. data/test/test_text_to_glyphs_data.rb +19 -15
  138. metadata +68 -45
  139. data/cairo/make/cairo-1.6.4-2.sh +0 -55
  140. data/cairo/make/libpng-1.2.29.sh +0 -35
  141. data/cairo/manifest/cairo-1.6.4-2.mft +0 -6
  142. data/cairo/manifest/cairo-dev-1.6.4-2.mft +0 -72
  143. data/cairo/manifest/libpng-1.2.29.mft +0 -2
  144. data/cairo/share/gtk-doc/html/cairo/Drawing.html +0 -53
  145. data/cairo/share/gtk-doc/html/cairo/Fonts.html +0 -56
  146. data/cairo/share/gtk-doc/html/cairo/Support.html +0 -50
  147. data/cairo/share/gtk-doc/html/cairo/Surfaces.html +0 -65
  148. data/cairo/share/gtk-doc/html/cairo/cairo-Error-Handling.html +0 -328
  149. data/cairo/share/gtk-doc/html/cairo/cairo-Font-Options.html +0 -720
  150. data/cairo/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +0 -297
  151. data/cairo/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +0 -484
  152. data/cairo/share/gtk-doc/html/cairo/cairo-PNG-Support.html +0 -345
  153. data/cairo/share/gtk-doc/html/cairo/cairo-Patterns.html +0 -1560
  154. data/cairo/share/gtk-doc/html/cairo/cairo-Quartz-Fonts.html +0 -161
  155. data/cairo/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +0 -337
  156. data/cairo/share/gtk-doc/html/cairo/cairo-Scaled-Fonts.html +0 -823
  157. data/cairo/share/gtk-doc/html/cairo/cairo-Text.html +0 -836
  158. data/cairo/share/gtk-doc/html/cairo/cairo-Types.html +0 -143
  159. data/cairo/share/gtk-doc/html/cairo/cairo-Version-Information.html +0 -325
  160. data/cairo/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +0 -381
  161. data/cairo/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +0 -331
  162. data/cairo/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +0 -427
  163. data/cairo/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +0 -995
  164. data/cairo/share/gtk-doc/html/cairo/cairo-cairo-t.html +0 -2795
  165. data/cairo/share/gtk-doc/html/cairo/ix01.html +0 -693
  166. data/doc/en/cairo-lcd-filter.html +0 -39
  167. data/doc/ja/cairo-lcd-filter.html +0 -63
@@ -0,0 +1,54 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>Utilities</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
7
+ <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
8
+ <link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
9
+ <link rel="prev" href="cairo-xlib-surface.html" title="XLib Surfaces">
10
+ <link rel="next" href="cairo-matrix.html" title="cairo_matrix_t">
11
+ <meta name="generator" content="GTK-Doc V1.10 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ <link rel="chapter" href="cairo-drawing.html" title="Drawing">
14
+ <link rel="chapter" href="cairo-fonts.html" title="Fonts">
15
+ <link rel="chapter" href="cairo-surfaces.html" title="Surfaces">
16
+ <link rel="chapter" href="cairo-support.html" title="Utilities">
17
+ <link rel="index" href="index-all.html" title="Index">
18
+ <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2">
19
+ <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4">
20
+ <link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6">
21
+ <link rel="index" href="index-1.8.html" title="Index of new symbols in 1.8">
22
+ <link rel="appendix" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
23
+ </head>
24
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
25
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
26
+ <td><a accesskey="p" href="cairo-xlib-surface.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
27
+ <td> </td>
28
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
29
+ <th width="100%" align="center">Cairo: A Vector Graphics Library</th>
30
+ <td><a accesskey="n" href="cairo-matrix.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
31
+ </tr></table>
32
+ <div class="chapter" lang="en">
33
+ <div class="titlepage"><div><div><h2 class="title">
34
+ <a name="cairo-support"></a>Utilities</h2></div></div></div>
35
+ <div class="toc"><dl>
36
+ <dt>
37
+ <span class="refentrytitle"><a href="cairo-matrix.html">cairo_matrix_t</a></span><span class="refpurpose"> — Generic matrix operations</span>
38
+ </dt>
39
+ <dt>
40
+ <span class="refentrytitle"><a href="cairo-error-status.html">Error handling</a></span><span class="refpurpose"> — Decoding cairo's status</span>
41
+ </dt>
42
+ <dt>
43
+ <span class="refentrytitle"><a href="cairo-version-info.html">Version Information</a></span><span class="refpurpose"> — Compile-time and run-time version checks.</span>
44
+ </dt>
45
+ <dt>
46
+ <span class="refentrytitle"><a href="cairo-types.html">Types</a></span><span class="refpurpose"> — Generic data types</span>
47
+ </dt>
48
+ </dl></div>
49
+ </div>
50
+ <div class="footer">
51
+ <hr>
52
+ Generated by GTK-Doc V1.10</div>
53
+ </body>
54
+ </html>
@@ -0,0 +1,1064 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>cairo_surface_t</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
7
+ <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
8
+ <link rel="up" href="cairo-surfaces.html" title="Surfaces">
9
+ <link rel="prev" href="cairo-surfaces.html" title="Surfaces">
10
+ <link rel="next" href="cairo-image-surface.html" title="Image Surfaces">
11
+ <meta name="generator" content="GTK-Doc V1.10 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ <link rel="chapter" href="cairo-drawing.html" title="Drawing">
14
+ <link rel="chapter" href="cairo-fonts.html" title="Fonts">
15
+ <link rel="chapter" href="cairo-surfaces.html" title="Surfaces">
16
+ <link rel="chapter" href="cairo-support.html" title="Utilities">
17
+ <link rel="index" href="index-all.html" title="Index">
18
+ <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2">
19
+ <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4">
20
+ <link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6">
21
+ <link rel="index" href="index-1.8.html" title="Index of new symbols in 1.8">
22
+ <link rel="appendix" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
23
+ </head>
24
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
25
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
26
+ <tr valign="middle">
27
+ <td><a accesskey="p" href="cairo-surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
28
+ <td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
29
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
30
+ <th width="100%" align="center">Cairo: A Vector Graphics Library</th>
31
+ <td><a accesskey="n" href="cairo-image-surface.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
32
+ </tr>
33
+ <tr><td colspan="5" class="shortcuts"><nobr><a href="#cairo-surface.synopsis" class="shortcut">Top</a>
34
+  | 
35
+ <a href="#cairo-surface.description" class="shortcut">Description</a></nobr></td></tr>
36
+ </table>
37
+ <div class="refentry" lang="en">
38
+ <a name="cairo-surface"></a><div class="titlepage"></div>
39
+ <div class="refnamediv"><table width="100%"><tr>
40
+ <td valign="top">
41
+ <h2><span class="refentrytitle"><a name="cairo-surface.top_of_page"></a>cairo_surface_t</span></h2>
42
+ <p>cairo_surface_t — Base class for surfaces</p>
43
+ </td>
44
+ <td valign="top" align="right"></td>
45
+ </tr></table></div>
46
+ <div class="refsynopsisdiv">
47
+ <a name="cairo-surface.synopsis"></a><h2>Synopsis</h2>
48
+ <pre class="synopsis">
49
+ typedef <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a>;
50
+ enum <a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t">cairo_content_t</a>;
51
+ <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a>* <a class="link" href="cairo-surface.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()">cairo_surface_create_similar</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *other,
52
+ <a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t">cairo_content_t</a> content,
53
+ int width,
54
+ int height);
55
+ <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a>* <a class="link" href="cairo-surface.html#cairo-surface-reference" title="cairo_surface_reference ()">cairo_surface_reference</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
56
+ void <a class="link" href="cairo-surface.html#cairo-surface-destroy" title="cairo_surface_destroy ()">cairo_surface_destroy</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
57
+ <a class="link" href="cairo-error-status.html#cairo-status-t" title="enum cairo_status_t">cairo_status_t</a> <a class="link" href="cairo-surface.html#cairo-surface-status" title="cairo_surface_status ()">cairo_surface_status</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
58
+ void <a class="link" href="cairo-surface.html#cairo-surface-finish" title="cairo_surface_finish ()">cairo_surface_finish</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
59
+ void <a class="link" href="cairo-surface.html#cairo-surface-flush" title="cairo_surface_flush ()">cairo_surface_flush</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
60
+ void <a class="link" href="cairo-surface.html#cairo-surface-get-font-options" title="cairo_surface_get_font_options ()">cairo_surface_get_font_options</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
61
+ <a class="link" href="cairo-font-options.html#cairo-font-options-t" title="cairo_font_options_t">cairo_font_options_t</a> *options);
62
+ <a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t">cairo_content_t</a> <a class="link" href="cairo-surface.html#cairo-surface-get-content" title="cairo_surface_get_content ()">cairo_surface_get_content</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
63
+ void <a class="link" href="cairo-surface.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()">cairo_surface_mark_dirty</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
64
+ void <a class="link" href="cairo-surface.html#cairo-surface-mark-dirty-rectangle" title="cairo_surface_mark_dirty_rectangle ()">cairo_surface_mark_dirty_rectangle</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
65
+ int x,
66
+ int y,
67
+ int width,
68
+ int height);
69
+ void <a class="link" href="cairo-surface.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()">cairo_surface_set_device_offset</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
70
+ double x_offset,
71
+ double y_offset);
72
+ void <a class="link" href="cairo-surface.html#cairo-surface-get-device-offset" title="cairo_surface_get_device_offset ()">cairo_surface_get_device_offset</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
73
+ double *x_offset,
74
+ double *y_offset);
75
+ void <a class="link" href="cairo-surface.html#cairo-surface-set-fallback-resolution" title="cairo_surface_set_fallback_resolution ()">cairo_surface_set_fallback_resolution</a>
76
+ (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
77
+ double x_pixels_per_inch,
78
+ double y_pixels_per_inch);
79
+ void <a class="link" href="cairo-surface.html#cairo-surface-get-fallback-resolution" title="cairo_surface_get_fallback_resolution ()">cairo_surface_get_fallback_resolution</a>
80
+ (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
81
+ double *x_pixels_per_inch,
82
+ double *y_pixels_per_inch);
83
+ enum <a class="link" href="cairo-surface.html#cairo-surface-type-t" title="enum cairo_surface_type_t">cairo_surface_type_t</a>;
84
+ <a class="link" href="cairo-surface.html#cairo-surface-type-t" title="enum cairo_surface_type_t">cairo_surface_type_t</a> <a class="link" href="cairo-surface.html#cairo-surface-get-type" title="cairo_surface_get_type ()">cairo_surface_get_type</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
85
+ unsigned int <a class="link" href="cairo-surface.html#cairo-surface-get-reference-count" title="cairo_surface_get_reference_count ()">cairo_surface_get_reference_count</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
86
+ <a class="link" href="cairo-error-status.html#cairo-status-t" title="enum cairo_status_t">cairo_status_t</a> <a class="link" href="cairo-surface.html#cairo-surface-set-user-data" title="cairo_surface_set_user_data ()">cairo_surface_set_user_data</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
87
+ const <a class="link" href="cairo-types.html#cairo-user-data-key-t" title="cairo_user_data_key_t">cairo_user_data_key_t</a> *key,
88
+ void *user_data,
89
+ <a class="link" href="cairo-types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()">cairo_destroy_func_t</a> destroy);
90
+ void* <a class="link" href="cairo-surface.html#cairo-surface-get-user-data" title="cairo_surface_get_user_data ()">cairo_surface_get_user_data</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
91
+ const <a class="link" href="cairo-types.html#cairo-user-data-key-t" title="cairo_user_data_key_t">cairo_user_data_key_t</a> *key);
92
+ void <a class="link" href="cairo-surface.html#cairo-surface-copy-page" title="cairo_surface_copy_page ()">cairo_surface_copy_page</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
93
+ void <a class="link" href="cairo-surface.html#cairo-surface-show-page" title="cairo_surface_show_page ()">cairo_surface_show_page</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
94
+ <a class="link" href="cairo-types.html#cairo-bool-t" title="cairo_bool_t">cairo_bool_t</a> <a class="link" href="cairo-surface.html#cairo-surface-has-show-text-glyphs" title="cairo_surface_has_show_text_glyphs ()">cairo_surface_has_show_text_glyphs</a> (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);
95
+ </pre>
96
+ </div>
97
+ <div class="refsect1" lang="en">
98
+ <a name="cairo-surface.description"></a><h2>Description</h2>
99
+ <p>
100
+ <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> is the abstract type representing all different drawing
101
+ targets that cairo can render to. The actual drawings are
102
+ performed using a cairo <em class="firstterm">context</em>.
103
+ </p>
104
+ <p>
105
+ A cairo surface is created by using <em class="firstterm">backend</em>-specific
106
+ constructors, typically of the form
107
+ cairo_<span class="emphasis"><em>backend</em></span><code class="function">_surface_create()</code>.
108
+ </p>
109
+ </div>
110
+ <div class="refsect1" lang="en">
111
+ <a name="cairo-surface.details"></a><h2>Details</h2>
112
+ <div class="refsect2" lang="en">
113
+ <a name="cairo-surface-t"></a><h3>cairo_surface_t</h3>
114
+ <pre class="programlisting">typedef struct _cairo_surface cairo_surface_t;
115
+ </pre>
116
+ <p>
117
+ A <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> represents an image, either as the destination
118
+ of a drawing operation or as source when drawing onto another
119
+ surface. To draw to a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>, create a cairo context
120
+ with the surface as the target, using <a class="link" href="cairo-context.html#cairo-create" title="cairo_create ()"><code class="function">cairo_create()</code></a>.
121
+ </p>
122
+ <p>
123
+ There are different subtypes of <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for
124
+ different drawing backends; for example, <a class="link" href="cairo-image-surface.html#cairo-image-surface-create" title="cairo_image_surface_create ()"><code class="function">cairo_image_surface_create()</code></a>
125
+ creates a bitmap image in memory.
126
+ The type of a surface can be queried with <a class="link" href="cairo-surface.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a>.
127
+ </p>
128
+ <p>
129
+ Memory management of <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> is done with
130
+ <a class="link" href="cairo-surface.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a> and <a class="link" href="cairo-surface.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a>.</p>
131
+ <p>
132
+
133
+ </p>
134
+ </div>
135
+ <hr>
136
+ <div class="refsect2" lang="en">
137
+ <a name="cairo-content-t"></a><h3>enum cairo_content_t</h3>
138
+ <pre class="programlisting">typedef enum _cairo_content {
139
+ CAIRO_CONTENT_COLOR = 0x1000,
140
+ CAIRO_CONTENT_ALPHA = 0x2000,
141
+ CAIRO_CONTENT_COLOR_ALPHA = 0x3000
142
+ } cairo_content_t;
143
+ </pre>
144
+ <p>
145
+ <a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> is used to describe the content that a surface will
146
+ contain, whether color information, alpha information (translucence
147
+ vs. opacity), or both.
148
+ </p>
149
+ <p>
150
+ Note: The large values here are designed to keep <a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a>
151
+ values distinct from <a class="link" href="cairo-image-surface.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> values so that the
152
+ implementation can detect the error if users confuse the two types.</p>
153
+ <p>
154
+
155
+ </p>
156
+ <div class="variablelist"><table border="0">
157
+ <col align="left" valign="top">
158
+ <tbody>
159
+ <tr>
160
+ <td><p><a name="CAIRO-CONTENT-COLOR:CAPS"></a><span class="term"><code class="literal">CAIRO_CONTENT_COLOR</code></span></p></td>
161
+ <td> The surface will hold color content only.
162
+ </td>
163
+ </tr>
164
+ <tr>
165
+ <td><p><a name="CAIRO-CONTENT-ALPHA:CAPS"></a><span class="term"><code class="literal">CAIRO_CONTENT_ALPHA</code></span></p></td>
166
+ <td> The surface will hold alpha content only.
167
+ </td>
168
+ </tr>
169
+ <tr>
170
+ <td><p><a name="CAIRO-CONTENT-COLOR-ALPHA:CAPS"></a><span class="term"><code class="literal">CAIRO_CONTENT_COLOR_ALPHA</code></span></p></td>
171
+ <td> The surface will hold color and alpha content.
172
+ </td>
173
+ </tr>
174
+ </tbody>
175
+ </table></div>
176
+ </div>
177
+ <hr>
178
+ <div class="refsect2" lang="en">
179
+ <a name="cairo-surface-create-similar"></a><h3>cairo_surface_create_similar ()</h3>
180
+ <pre class="programlisting"><a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a>* cairo_surface_create_similar (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *other,
181
+ <a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t">cairo_content_t</a> content,
182
+ int width,
183
+ int height);</pre>
184
+ <p>
185
+ Create a new surface that is as compatible as possible with an
186
+ existing surface. For example the new surface will have the same
187
+ fallback resolution and font options as <em class="parameter"><code>other</code></em>. Generally, the new
188
+ surface will also use the same backend as <em class="parameter"><code>other</code></em>, unless that is
189
+ not possible for some reason. The type of the returned surface may
190
+ be examined with <a class="link" href="cairo-surface.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a>.
191
+ </p>
192
+ <p>
193
+ Initially the surface contents are all 0 (transparent if contents
194
+ have transparency, black otherwise.)</p>
195
+ <p>
196
+
197
+ </p>
198
+ <div class="variablelist"><table border="0">
199
+ <col align="left" valign="top">
200
+ <tbody>
201
+ <tr>
202
+ <td><p><span class="term"><em class="parameter"><code>other</code></em> :</span></p></td>
203
+ <td> an existing surface used to select the backend of the new surface
204
+ </td>
205
+ </tr>
206
+ <tr>
207
+ <td><p><span class="term"><em class="parameter"><code>content</code></em> :</span></p></td>
208
+ <td> the content for the new surface
209
+ </td>
210
+ </tr>
211
+ <tr>
212
+ <td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
213
+ <td> width of the new surface, (in device-space units)
214
+ </td>
215
+ </tr>
216
+ <tr>
217
+ <td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
218
+ <td> height of the new surface (in device-space units)
219
+ </td>
220
+ </tr>
221
+ <tr>
222
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
223
+ <td> a pointer to the newly allocated surface. The caller
224
+ owns the surface and should call <a class="link" href="cairo-surface.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
225
+ with it.
226
+
227
+ This function always returns a valid pointer, but it will return a
228
+ pointer to a "nil" surface if <em class="parameter"><code>other</code></em> is already in an error state
229
+ or any other error occurs.
230
+ </td>
231
+ </tr>
232
+ </tbody>
233
+ </table></div>
234
+ </div>
235
+ <hr>
236
+ <div class="refsect2" lang="en">
237
+ <a name="cairo-surface-reference"></a><h3>cairo_surface_reference ()</h3>
238
+ <pre class="programlisting"><a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a>* cairo_surface_reference (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
239
+ <p>
240
+ Increases the reference count on <em class="parameter"><code>surface</code></em> by one. This prevents
241
+ <em class="parameter"><code>surface</code></em> from being destroyed until a matching call to
242
+ <a class="link" href="cairo-surface.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> is made.
243
+ </p>
244
+ <p>
245
+ The number of references to a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> can be get using
246
+ <a class="link" href="cairo-surface.html#cairo-surface-get-reference-count" title="cairo_surface_get_reference_count ()"><code class="function">cairo_surface_get_reference_count()</code></a>.</p>
247
+ <p>
248
+
249
+ </p>
250
+ <div class="variablelist"><table border="0">
251
+ <col align="left" valign="top">
252
+ <tbody>
253
+ <tr>
254
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
255
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
256
+ </td>
257
+ </tr>
258
+ <tr>
259
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
260
+ <td> the referenced <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>.
261
+ </td>
262
+ </tr>
263
+ </tbody>
264
+ </table></div>
265
+ </div>
266
+ <hr>
267
+ <div class="refsect2" lang="en">
268
+ <a name="cairo-surface-destroy"></a><h3>cairo_surface_destroy ()</h3>
269
+ <pre class="programlisting">void cairo_surface_destroy (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
270
+ <p>
271
+ Decreases the reference count on <em class="parameter"><code>surface</code></em> by one. If the result is
272
+ zero, then <em class="parameter"><code>surface</code></em> and all associated resources are freed. See
273
+ <a class="link" href="cairo-surface.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a>.</p>
274
+ <p>
275
+
276
+ </p>
277
+ <div class="variablelist"><table border="0">
278
+ <col align="left" valign="top">
279
+ <tbody><tr>
280
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
281
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
282
+ </td>
283
+ </tr></tbody>
284
+ </table></div>
285
+ </div>
286
+ <hr>
287
+ <div class="refsect2" lang="en">
288
+ <a name="cairo-surface-status"></a><h3>cairo_surface_status ()</h3>
289
+ <pre class="programlisting"><a class="link" href="cairo-error-status.html#cairo-status-t" title="enum cairo_status_t">cairo_status_t</a> cairo_surface_status (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
290
+ <p>
291
+ Checks whether an error has previously occurred for this
292
+ surface.</p>
293
+ <p>
294
+
295
+ </p>
296
+ <div class="variablelist"><table border="0">
297
+ <col align="left" valign="top">
298
+ <tbody>
299
+ <tr>
300
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
301
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
302
+ </td>
303
+ </tr>
304
+ <tr>
305
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
306
+ <td> <a class="link" href="cairo-error-status.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a class="link" href="cairo-error-status.html#CAIRO-STATUS-NULL-POINTER:CAPS"><code class="literal">CAIRO_STATUS_NULL_POINTER</code></a>,
307
+ <a class="link" href="cairo-error-status.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>, <a class="link" href="cairo-error-status.html#CAIRO-STATUS-READ-ERROR:CAPS"><code class="literal">CAIRO_STATUS_READ_ERROR</code></a>,
308
+ <a class="link" href="cairo-error-status.html#CAIRO-STATUS-INVALID-CONTENT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_CONTENT</code></a>, <a class="link" href="cairo-error-status.html#CAIRO-STATUS-INVALID-FORMAT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_FORMAT</code></a>, or
309
+ <a class="link" href="cairo-error-status.html#CAIRO-STATUS-INVALID-VISUAL:CAPS"><code class="literal">CAIRO_STATUS_INVALID_VISUAL</code></a>.
310
+ </td>
311
+ </tr>
312
+ </tbody>
313
+ </table></div>
314
+ </div>
315
+ <hr>
316
+ <div class="refsect2" lang="en">
317
+ <a name="cairo-surface-finish"></a><h3>cairo_surface_finish ()</h3>
318
+ <pre class="programlisting">void cairo_surface_finish (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
319
+ <p>
320
+ This function finishes the surface and drops all references to
321
+ external resources. For example, for the Xlib backend it means
322
+ that cairo will no longer access the drawable, which can be freed.
323
+ After calling <a class="link" href="cairo-surface.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> the only valid operations on a
324
+ surface are getting and setting user, referencing and
325
+ destroying, and flushing and finishing it.
326
+ Further drawing to the surface will not affect the
327
+ surface but will instead trigger a <a class="link" href="cairo-error-status.html#CAIRO-STATUS-SURFACE-FINISHED:CAPS"><code class="literal">CAIRO_STATUS_SURFACE_FINISHED</code></a>
328
+ error.
329
+ </p>
330
+ <p>
331
+ When the last call to <a class="link" href="cairo-surface.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> decreases the
332
+ reference count to zero, cairo will call <a class="link" href="cairo-surface.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> if
333
+ it hasn't been called already, before freeing the resources
334
+ associated with the surface.</p>
335
+ <p>
336
+
337
+ </p>
338
+ <div class="variablelist"><table border="0">
339
+ <col align="left" valign="top">
340
+ <tbody><tr>
341
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
342
+ <td> the <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> to finish
343
+ </td>
344
+ </tr></tbody>
345
+ </table></div>
346
+ </div>
347
+ <hr>
348
+ <div class="refsect2" lang="en">
349
+ <a name="cairo-surface-flush"></a><h3>cairo_surface_flush ()</h3>
350
+ <pre class="programlisting">void cairo_surface_flush (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
351
+ <p>
352
+ Do any pending drawing for the surface and also restore any
353
+ temporary modification's cairo has made to the surface's
354
+ state. This function must be called before switching from
355
+ drawing on the surface with cairo to drawing on it directly
356
+ with native APIs. If the surface doesn't support direct access,
357
+ then this function does nothing.</p>
358
+ <p>
359
+
360
+ </p>
361
+ <div class="variablelist"><table border="0">
362
+ <col align="left" valign="top">
363
+ <tbody><tr>
364
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
365
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
366
+ </td>
367
+ </tr></tbody>
368
+ </table></div>
369
+ </div>
370
+ <hr>
371
+ <div class="refsect2" lang="en">
372
+ <a name="cairo-surface-get-font-options"></a><h3>cairo_surface_get_font_options ()</h3>
373
+ <pre class="programlisting">void cairo_surface_get_font_options (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
374
+ <a class="link" href="cairo-font-options.html#cairo-font-options-t" title="cairo_font_options_t">cairo_font_options_t</a> *options);</pre>
375
+ <p>
376
+ Retrieves the default font rendering options for the surface.
377
+ This allows display surfaces to report the correct subpixel order
378
+ for rendering on them, print surfaces to disable hinting of
379
+ metrics and so forth. The result can then be used with
380
+ <a class="link" href="cairo-scaled-font.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.</p>
381
+ <p>
382
+
383
+ </p>
384
+ <div class="variablelist"><table border="0">
385
+ <col align="left" valign="top">
386
+ <tbody>
387
+ <tr>
388
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
389
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
390
+ </td>
391
+ </tr>
392
+ <tr>
393
+ <td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td>
394
+ <td> a <a class="link" href="cairo-font-options.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> object into which to store
395
+ the retrieved options. All existing values are overwritten
396
+ </td>
397
+ </tr>
398
+ </tbody>
399
+ </table></div>
400
+ </div>
401
+ <hr>
402
+ <div class="refsect2" lang="en">
403
+ <a name="cairo-surface-get-content"></a><h3>cairo_surface_get_content ()</h3>
404
+ <pre class="programlisting"><a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t">cairo_content_t</a> cairo_surface_get_content (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
405
+ <p>
406
+ This function returns the content type of <em class="parameter"><code>surface</code></em> which indicates
407
+ whether the surface contains color and/or alpha information. See
408
+ <a class="link" href="cairo-surface.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a>.</p>
409
+ <p>
410
+
411
+ </p>
412
+ <div class="variablelist"><table border="0">
413
+ <col align="left" valign="top">
414
+ <tbody>
415
+ <tr>
416
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
417
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
418
+ </td>
419
+ </tr>
420
+ <tr>
421
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
422
+ <td> The content type of <em class="parameter"><code>surface</code></em>.
423
+
424
+ </td>
425
+ </tr>
426
+ </tbody>
427
+ </table></div>
428
+ <p class="since">Since 1.2
429
+ </p>
430
+ </div>
431
+ <hr>
432
+ <div class="refsect2" lang="en">
433
+ <a name="cairo-surface-mark-dirty"></a><h3>cairo_surface_mark_dirty ()</h3>
434
+ <pre class="programlisting">void cairo_surface_mark_dirty (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
435
+ <p>
436
+ Tells cairo that drawing has been done to surface using means other
437
+ than cairo, and that cairo should reread any cached areas. Note
438
+ that you must call <a class="link" href="cairo-surface.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> before doing such drawing.</p>
439
+ <p>
440
+
441
+ </p>
442
+ <div class="variablelist"><table border="0">
443
+ <col align="left" valign="top">
444
+ <tbody><tr>
445
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
446
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
447
+ </td>
448
+ </tr></tbody>
449
+ </table></div>
450
+ </div>
451
+ <hr>
452
+ <div class="refsect2" lang="en">
453
+ <a name="cairo-surface-mark-dirty-rectangle"></a><h3>cairo_surface_mark_dirty_rectangle ()</h3>
454
+ <pre class="programlisting">void cairo_surface_mark_dirty_rectangle (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
455
+ int x,
456
+ int y,
457
+ int width,
458
+ int height);</pre>
459
+ <p>
460
+ Like <a class="link" href="cairo-surface.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a>, but drawing has been done only to
461
+ the specified rectangle, so that cairo can retain cached contents
462
+ for other parts of the surface.
463
+ </p>
464
+ <p>
465
+ Any cached clip set on the surface will be reset by this function,
466
+ to make sure that future cairo calls have the clip set that they
467
+ expect.</p>
468
+ <p>
469
+
470
+ </p>
471
+ <div class="variablelist"><table border="0">
472
+ <col align="left" valign="top">
473
+ <tbody>
474
+ <tr>
475
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
476
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
477
+ </td>
478
+ </tr>
479
+ <tr>
480
+ <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
481
+ <td> X coordinate of dirty rectangle
482
+ </td>
483
+ </tr>
484
+ <tr>
485
+ <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
486
+ <td> Y coordinate of dirty rectangle
487
+ </td>
488
+ </tr>
489
+ <tr>
490
+ <td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
491
+ <td> width of dirty rectangle
492
+ </td>
493
+ </tr>
494
+ <tr>
495
+ <td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
496
+ <td> height of dirty rectangle
497
+ </td>
498
+ </tr>
499
+ </tbody>
500
+ </table></div>
501
+ </div>
502
+ <hr>
503
+ <div class="refsect2" lang="en">
504
+ <a name="cairo-surface-set-device-offset"></a><h3>cairo_surface_set_device_offset ()</h3>
505
+ <pre class="programlisting">void cairo_surface_set_device_offset (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
506
+ double x_offset,
507
+ double y_offset);</pre>
508
+ <p>
509
+ Sets an offset that is added to the device coordinates determined
510
+ by the CTM when drawing to <em class="parameter"><code>surface</code></em>. One use case for this function
511
+ is when we want to create a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> that redirects drawing
512
+ for a portion of an onscreen surface to an offscreen surface in a
513
+ way that is completely invisible to the user of the cairo
514
+ API. 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
515
+ sufficient to do this, since functions like
516
+ <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 offset.
517
+ </p>
518
+ <p>
519
+ Note that the offset affects drawing to the surface as well as
520
+ using the surface in a source pattern.</p>
521
+ <p>
522
+
523
+ </p>
524
+ <div class="variablelist"><table border="0">
525
+ <col align="left" valign="top">
526
+ <tbody>
527
+ <tr>
528
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
529
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
530
+ </td>
531
+ </tr>
532
+ <tr>
533
+ <td><p><span class="term"><em class="parameter"><code>x_offset</code></em> :</span></p></td>
534
+ <td> the offset in the X direction, in device units
535
+ </td>
536
+ </tr>
537
+ <tr>
538
+ <td><p><span class="term"><em class="parameter"><code>y_offset</code></em> :</span></p></td>
539
+ <td> the offset in the Y direction, in device units
540
+ </td>
541
+ </tr>
542
+ </tbody>
543
+ </table></div>
544
+ </div>
545
+ <hr>
546
+ <div class="refsect2" lang="en">
547
+ <a name="cairo-surface-get-device-offset"></a><h3>cairo_surface_get_device_offset ()</h3>
548
+ <pre class="programlisting">void cairo_surface_get_device_offset (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
549
+ double *x_offset,
550
+ double *y_offset);</pre>
551
+ <p>
552
+ This function returns the previous device offset set by
553
+ <a class="link" href="cairo-surface.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()"><code class="function">cairo_surface_set_device_offset()</code></a>.</p>
554
+ <p>
555
+
556
+ </p>
557
+ <div class="variablelist"><table border="0">
558
+ <col align="left" valign="top">
559
+ <tbody>
560
+ <tr>
561
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
562
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
563
+ </td>
564
+ </tr>
565
+ <tr>
566
+ <td><p><span class="term"><em class="parameter"><code>x_offset</code></em> :</span></p></td>
567
+ <td> the offset in the X direction, in device units
568
+ </td>
569
+ </tr>
570
+ <tr>
571
+ <td><p><span class="term"><em class="parameter"><code>y_offset</code></em> :</span></p></td>
572
+ <td> the offset in the Y direction, in device units
573
+ </td>
574
+ </tr>
575
+ </tbody>
576
+ </table></div>
577
+ <p class="since">Since 1.2
578
+ </p>
579
+ </div>
580
+ <hr>
581
+ <div class="refsect2" lang="en">
582
+ <a name="cairo-surface-set-fallback-resolution"></a><h3>cairo_surface_set_fallback_resolution ()</h3>
583
+ <pre class="programlisting">void cairo_surface_set_fallback_resolution
584
+ (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
585
+ double x_pixels_per_inch,
586
+ double y_pixels_per_inch);</pre>
587
+ <p>
588
+ Set the horizontal and vertical resolution for image fallbacks.
589
+ </p>
590
+ <p>
591
+ When certain operations aren't supported natively by a backend,
592
+ cairo will fallback by rendering operations to an image and then
593
+ overlaying that image onto the output. For backends that are
594
+ natively vector-oriented, this function can be used to set the
595
+ resolution used for these image fallbacks, (larger values will
596
+ result in more detailed images, but also larger file sizes).
597
+ </p>
598
+ <p>
599
+ Some examples of natively vector-oriented backends are the ps, pdf,
600
+ and svg backends.
601
+ </p>
602
+ <p>
603
+ For backends that are natively raster-oriented, image fallbacks are
604
+ still possible, but they are always performed at the native
605
+ device resolution. So this function has no effect on those
606
+ backends.
607
+ </p>
608
+ <p>
609
+ Note: The fallback resolution only takes effect at the time of
610
+ completing a page (with <a class="link" href="cairo-context.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a> or <a class="link" href="cairo-context.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>) so
611
+ there is currently no way to have more than one fallback resolution
612
+ in effect on a single page.
613
+ </p>
614
+ <p>
615
+ The default fallback resoultion is 300 pixels per inch in both
616
+ dimensions.</p>
617
+ <p>
618
+
619
+ </p>
620
+ <div class="variablelist"><table border="0">
621
+ <col align="left" valign="top">
622
+ <tbody>
623
+ <tr>
624
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
625
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
626
+ </td>
627
+ </tr>
628
+ <tr>
629
+ <td><p><span class="term"><em class="parameter"><code>x_pixels_per_inch</code></em> :</span></p></td>
630
+ <td> horizontal setting for pixels per inch
631
+ </td>
632
+ </tr>
633
+ <tr>
634
+ <td><p><span class="term"><em class="parameter"><code>y_pixels_per_inch</code></em> :</span></p></td>
635
+ <td> vertical setting for pixels per inch
636
+ </td>
637
+ </tr>
638
+ </tbody>
639
+ </table></div>
640
+ <p class="since">Since 1.2
641
+ </p>
642
+ </div>
643
+ <hr>
644
+ <div class="refsect2" lang="en">
645
+ <a name="cairo-surface-get-fallback-resolution"></a><h3>cairo_surface_get_fallback_resolution ()</h3>
646
+ <pre class="programlisting">void cairo_surface_get_fallback_resolution
647
+ (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
648
+ double *x_pixels_per_inch,
649
+ double *y_pixels_per_inch);</pre>
650
+ <p>
651
+ This function returns the previous fallback resolution set by
652
+ <a class="link" href="cairo-surface.html#cairo-surface-set-fallback-resolution" title="cairo_surface_set_fallback_resolution ()"><code class="function">cairo_surface_set_fallback_resolution()</code></a>, or default fallback
653
+ resolution if never set.</p>
654
+ <p>
655
+
656
+ </p>
657
+ <div class="variablelist"><table border="0">
658
+ <col align="left" valign="top">
659
+ <tbody>
660
+ <tr>
661
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
662
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
663
+ </td>
664
+ </tr>
665
+ <tr>
666
+ <td><p><span class="term"><em class="parameter"><code>x_pixels_per_inch</code></em> :</span></p></td>
667
+ <td> horizontal pixels per inch
668
+ </td>
669
+ </tr>
670
+ <tr>
671
+ <td><p><span class="term"><em class="parameter"><code>y_pixels_per_inch</code></em> :</span></p></td>
672
+ <td> vertical pixels per inch
673
+ </td>
674
+ </tr>
675
+ </tbody>
676
+ </table></div>
677
+ <p class="since">Since 1.8
678
+ </p>
679
+ </div>
680
+ <hr>
681
+ <div class="refsect2" lang="en">
682
+ <a name="cairo-surface-type-t"></a><h3>enum cairo_surface_type_t</h3>
683
+ <pre class="programlisting">typedef enum _cairo_surface_type {
684
+ CAIRO_SURFACE_TYPE_IMAGE,
685
+ CAIRO_SURFACE_TYPE_PDF,
686
+ CAIRO_SURFACE_TYPE_PS,
687
+ CAIRO_SURFACE_TYPE_XLIB,
688
+ CAIRO_SURFACE_TYPE_XCB,
689
+ CAIRO_SURFACE_TYPE_GLITZ,
690
+ CAIRO_SURFACE_TYPE_QUARTZ,
691
+ CAIRO_SURFACE_TYPE_WIN32,
692
+ CAIRO_SURFACE_TYPE_BEOS,
693
+ CAIRO_SURFACE_TYPE_DIRECTFB,
694
+ CAIRO_SURFACE_TYPE_SVG,
695
+ CAIRO_SURFACE_TYPE_OS2,
696
+ CAIRO_SURFACE_TYPE_WIN32_PRINTING,
697
+ CAIRO_SURFACE_TYPE_QUARTZ_IMAGE
698
+ } cairo_surface_type_t;
699
+ </pre>
700
+ <p>
701
+ <a class="link" href="cairo-surface.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="type">cairo_surface_type_t</span></a> is used to describe the type of a given
702
+ surface. The surface types are also known as "backends" or "surface
703
+ backends" within cairo.
704
+ </p>
705
+ <p>
706
+ The type of a surface is determined by the function used to create
707
+ it, which will generally be of the form cairo_<span class="emphasis"><em>type</em></span><code class="function">_surface_create()</code>,
708
+ (though see <a class="link" href="cairo-surface.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a> as well).
709
+ </p>
710
+ <p>
711
+ The surface type can be queried with <a class="link" href="cairo-surface.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a>
712
+ </p>
713
+ <p>
714
+ The various <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> functions can be used with surfaces of
715
+ any type, but some backends also provide type-specific functions
716
+ that must only be called with a surface of the appropriate
717
+ type. These functions have names that begin with
718
+ cairo_<span class="emphasis"><em>type</em></span>_surface such as <a class="link" href="cairo-image-surface.html#cairo-image-surface-get-width" title="cairo_image_surface_get_width ()"><code class="function">cairo_image_surface_get_width()</code></a>.
719
+ </p>
720
+ <p>
721
+ The behavior of calling a type-specific function with a surface of
722
+ the wrong type is undefined.
723
+ </p>
724
+ <p>
725
+ New entries may be added in future versions.</p>
726
+ <p>
727
+
728
+ </p>
729
+ <div class="variablelist"><table border="0">
730
+ <col align="left" valign="top">
731
+ <tbody>
732
+ <tr>
733
+ <td><p><a name="CAIRO-SURFACE-TYPE-IMAGE:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_IMAGE</code></span></p></td>
734
+ <td> The surface is of type image
735
+ </td>
736
+ </tr>
737
+ <tr>
738
+ <td><p><a name="CAIRO-SURFACE-TYPE-PDF:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_PDF</code></span></p></td>
739
+ <td> The surface is of type pdf
740
+ </td>
741
+ </tr>
742
+ <tr>
743
+ <td><p><a name="CAIRO-SURFACE-TYPE-PS:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_PS</code></span></p></td>
744
+ <td> The surface is of type ps
745
+ </td>
746
+ </tr>
747
+ <tr>
748
+ <td><p><a name="CAIRO-SURFACE-TYPE-XLIB:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_XLIB</code></span></p></td>
749
+ <td> The surface is of type xlib
750
+ </td>
751
+ </tr>
752
+ <tr>
753
+ <td><p><a name="CAIRO-SURFACE-TYPE-XCB:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_XCB</code></span></p></td>
754
+ <td> The surface is of type xcb
755
+ </td>
756
+ </tr>
757
+ <tr>
758
+ <td><p><a name="CAIRO-SURFACE-TYPE-GLITZ:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_GLITZ</code></span></p></td>
759
+ <td> The surface is of type glitz
760
+ </td>
761
+ </tr>
762
+ <tr>
763
+ <td><p><a name="CAIRO-SURFACE-TYPE-QUARTZ:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_QUARTZ</code></span></p></td>
764
+ <td> The surface is of type quartz
765
+ </td>
766
+ </tr>
767
+ <tr>
768
+ <td><p><a name="CAIRO-SURFACE-TYPE-WIN32:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_WIN32</code></span></p></td>
769
+ <td> The surface is of type win32
770
+ </td>
771
+ </tr>
772
+ <tr>
773
+ <td><p><a name="CAIRO-SURFACE-TYPE-BEOS:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_BEOS</code></span></p></td>
774
+ <td> The surface is of type beos
775
+ </td>
776
+ </tr>
777
+ <tr>
778
+ <td><p><a name="CAIRO-SURFACE-TYPE-DIRECTFB:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_DIRECTFB</code></span></p></td>
779
+ <td> The surface is of type directfb
780
+ </td>
781
+ </tr>
782
+ <tr>
783
+ <td><p><a name="CAIRO-SURFACE-TYPE-SVG:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_SVG</code></span></p></td>
784
+ <td> The surface is of type svg
785
+ </td>
786
+ </tr>
787
+ <tr>
788
+ <td><p><a name="CAIRO-SURFACE-TYPE-OS2:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_OS2</code></span></p></td>
789
+ <td> The surface is of type os2
790
+ </td>
791
+ </tr>
792
+ <tr>
793
+ <td><p><a name="CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_WIN32_PRINTING</code></span></p></td>
794
+ <td> The surface is a win32 printing surface
795
+ </td>
796
+ </tr>
797
+ <tr>
798
+ <td><p><a name="CAIRO-SURFACE-TYPE-QUARTZ-IMAGE:CAPS"></a><span class="term"><code class="literal">CAIRO_SURFACE_TYPE_QUARTZ_IMAGE</code></span></p></td>
799
+ <td> The surface is of type quartz_image
800
+ </td>
801
+ </tr>
802
+ </tbody>
803
+ </table></div>
804
+ <p class="since">Since 1.2
805
+ </p>
806
+ </div>
807
+ <hr>
808
+ <div class="refsect2" lang="en">
809
+ <a name="cairo-surface-get-type"></a><h3>cairo_surface_get_type ()</h3>
810
+ <pre class="programlisting"><a class="link" href="cairo-surface.html#cairo-surface-type-t" title="enum cairo_surface_type_t">cairo_surface_type_t</a> cairo_surface_get_type (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
811
+ <p>
812
+ This function returns the type of the backend used to create
813
+ a surface. See <a class="link" href="cairo-surface.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="type">cairo_surface_type_t</span></a> for available types.</p>
814
+ <p>
815
+
816
+ </p>
817
+ <div class="variablelist"><table border="0">
818
+ <col align="left" valign="top">
819
+ <tbody>
820
+ <tr>
821
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
822
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
823
+ </td>
824
+ </tr>
825
+ <tr>
826
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
827
+ <td> The type of <em class="parameter"><code>surface</code></em>.
828
+
829
+ </td>
830
+ </tr>
831
+ </tbody>
832
+ </table></div>
833
+ <p class="since">Since 1.2
834
+ </p>
835
+ </div>
836
+ <hr>
837
+ <div class="refsect2" lang="en">
838
+ <a name="cairo-surface-get-reference-count"></a><h3>cairo_surface_get_reference_count ()</h3>
839
+ <pre class="programlisting">unsigned int cairo_surface_get_reference_count (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
840
+ <p>
841
+ Returns the current reference count of <em class="parameter"><code>surface</code></em>.</p>
842
+ <p>
843
+
844
+ </p>
845
+ <div class="variablelist"><table border="0">
846
+ <col align="left" valign="top">
847
+ <tbody>
848
+ <tr>
849
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
850
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
851
+ </td>
852
+ </tr>
853
+ <tr>
854
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
855
+ <td> the current reference count of <em class="parameter"><code>surface</code></em>. If the
856
+ object is a nil object, 0 will be returned.
857
+
858
+ </td>
859
+ </tr>
860
+ </tbody>
861
+ </table></div>
862
+ <p class="since">Since 1.4
863
+ </p>
864
+ </div>
865
+ <hr>
866
+ <div class="refsect2" lang="en">
867
+ <a name="cairo-surface-set-user-data"></a><h3>cairo_surface_set_user_data ()</h3>
868
+ <pre class="programlisting"><a class="link" href="cairo-error-status.html#cairo-status-t" title="enum cairo_status_t">cairo_status_t</a> cairo_surface_set_user_data (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
869
+ const <a class="link" href="cairo-types.html#cairo-user-data-key-t" title="cairo_user_data_key_t">cairo_user_data_key_t</a> *key,
870
+ void *user_data,
871
+ <a class="link" href="cairo-types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()">cairo_destroy_func_t</a> destroy);</pre>
872
+ <p>
873
+ Attach user data to <em class="parameter"><code>surface</code></em>. To remove user data from a surface,
874
+ call this function with the key that was used to set it and <code class="literal">NULL</code>
875
+ for <em class="parameter"><code>data</code></em>.</p>
876
+ <p>
877
+
878
+ </p>
879
+ <div class="variablelist"><table border="0">
880
+ <col align="left" valign="top">
881
+ <tbody>
882
+ <tr>
883
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
884
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
885
+ </td>
886
+ </tr>
887
+ <tr>
888
+ <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
889
+ <td> the address of a <a class="link" href="cairo-types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> to attach the user data to
890
+ </td>
891
+ </tr>
892
+ <tr>
893
+ <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
894
+ <td> the user data to attach to the surface
895
+ </td>
896
+ </tr>
897
+ <tr>
898
+ <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
899
+ <td> a <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> which will be called when the
900
+ surface is destroyed or when new user data is attached using the
901
+ same key.
902
+ </td>
903
+ </tr>
904
+ <tr>
905
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
906
+ <td> <a class="link" href="cairo-error-status.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-error-status.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
907
+ slot could not be allocated for the user data.
908
+ </td>
909
+ </tr>
910
+ </tbody>
911
+ </table></div>
912
+ </div>
913
+ <hr>
914
+ <div class="refsect2" lang="en">
915
+ <a name="cairo-surface-get-user-data"></a><h3>cairo_surface_get_user_data ()</h3>
916
+ <pre class="programlisting">void* cairo_surface_get_user_data (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface,
917
+ const <a class="link" href="cairo-types.html#cairo-user-data-key-t" title="cairo_user_data_key_t">cairo_user_data_key_t</a> *key);</pre>
918
+ <p>
919
+ Return user data previously attached to <em class="parameter"><code>surface</code></em> using the specified
920
+ key. If no user data has been attached with the given key this
921
+ function returns <code class="literal">NULL</code>.</p>
922
+ <p>
923
+
924
+ </p>
925
+ <div class="variablelist"><table border="0">
926
+ <col align="left" valign="top">
927
+ <tbody>
928
+ <tr>
929
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
930
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
931
+ </td>
932
+ </tr>
933
+ <tr>
934
+ <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
935
+ <td> the address of the <a class="link" href="cairo-types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> the user data was
936
+ attached to
937
+ </td>
938
+ </tr>
939
+ <tr>
940
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
941
+ <td> the user data previously attached or <code class="literal">NULL</code>.
942
+ </td>
943
+ </tr>
944
+ </tbody>
945
+ </table></div>
946
+ </div>
947
+ <hr>
948
+ <div class="refsect2" lang="en">
949
+ <a name="cairo-surface-copy-page"></a><h3>cairo_surface_copy_page ()</h3>
950
+ <pre class="programlisting">void cairo_surface_copy_page (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
951
+ <p>
952
+ Emits the current page for backends that support multiple pages,
953
+ but doesn't clear it, so that the contents of the current page will
954
+ be retained for the next page. Use <a class="link" href="cairo-surface.html#cairo-surface-show-page" title="cairo_surface_show_page ()"><code class="function">cairo_surface_show_page()</code></a> if you
955
+ want to get an empty page after the emission.
956
+ </p>
957
+ <p>
958
+ There is a convenience function for this that takes a <a class="link" href="cairo-context.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>,
959
+ namely <a class="link" href="cairo-context.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>.</p>
960
+ <p>
961
+
962
+ </p>
963
+ <div class="variablelist"><table border="0">
964
+ <col align="left" valign="top">
965
+ <tbody><tr>
966
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
967
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
968
+ </td>
969
+ </tr></tbody>
970
+ </table></div>
971
+ <p class="since">Since 1.6
972
+ </p>
973
+ </div>
974
+ <hr>
975
+ <div class="refsect2" lang="en">
976
+ <a name="cairo-surface-show-page"></a><h3>cairo_surface_show_page ()</h3>
977
+ <pre class="programlisting">void cairo_surface_show_page (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
978
+ <p>
979
+ Emits and clears the current page for backends that support multiple
980
+ pages. Use <a class="link" href="cairo-surface.html#cairo-surface-copy-page" title="cairo_surface_copy_page ()"><code class="function">cairo_surface_copy_page()</code></a> if you don't want to clear the page.
981
+ </p>
982
+ <p>
983
+ There is a convenience function for this that takes a <a class="link" href="cairo-context.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>,
984
+ namely <a class="link" href="cairo-context.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a>.</p>
985
+ <p>
986
+
987
+ </p>
988
+ <div class="variablelist"><table border="0">
989
+ <col align="left" valign="top">
990
+ <tbody><tr>
991
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
992
+ <td> a <span class="type">cairo_Surface_t</span>
993
+ </td>
994
+ </tr></tbody>
995
+ </table></div>
996
+ <p class="since">Since 1.6
997
+ </p>
998
+ </div>
999
+ <hr>
1000
+ <div class="refsect2" lang="en">
1001
+ <a name="cairo-surface-has-show-text-glyphs"></a><h3>cairo_surface_has_show_text_glyphs ()</h3>
1002
+ <pre class="programlisting"><a class="link" href="cairo-types.html#cairo-bool-t" title="cairo_bool_t">cairo_bool_t</a> cairo_surface_has_show_text_glyphs (<a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a> *surface);</pre>
1003
+ <p>
1004
+ Returns whether the surface supports
1005
+ sophisticated <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> operations. That is,
1006
+ whether it actually uses the provided text and cluster data
1007
+ 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.
1008
+ </p>
1009
+ <p>
1010
+ Note: Even if this function returns <code class="literal">FALSE</code>, a
1011
+ <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
1012
+ still succeed. It just will
1013
+ 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
1014
+ function to avoid computing UTF-8 text and cluster mapping if the
1015
+ target surface does not use it.
1016
+ </p>
1017
+ <p>
1018
+ There is a convenience function for this that takes a <a class="link" href="cairo-context.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>,
1019
+ namely <a
1020
+ href="../cairo/cairo-text.html#cairo-has-show-text-glyphs"
1021
+ ><code class="function">cairo_has_show_text_glyphs()</code></a>.</p>
1022
+ <p>
1023
+
1024
+ </p>
1025
+ <div class="variablelist"><table border="0">
1026
+ <col align="left" valign="top">
1027
+ <tbody>
1028
+ <tr>
1029
+ <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td>
1030
+ <td> a <a class="link" href="cairo-surface.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
1031
+ </td>
1032
+ </tr>
1033
+ <tr>
1034
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1035
+ <td> <code class="literal">TRUE</code> if <em class="parameter"><code>surface</code></em> supports
1036
+ <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
1037
+
1038
+ </td>
1039
+ </tr>
1040
+ </tbody>
1041
+ </table></div>
1042
+ <p class="since">Since 1.8
1043
+ </p>
1044
+ </div>
1045
+ </div>
1046
+ <div class="refsect1" lang="en">
1047
+ <a name="cairo-surface.see-also"></a><h2>See Also</h2>
1048
+ <p>
1049
+ </p>
1050
+ <div class="itemizedlist"><ul type="disc">
1051
+ <li>#<a class="link" href="cairo-context.html#cairo-t" title="cairo_t"><code class="function">cairo_t()</code></a>
1052
+ </li>
1053
+ <li>#<a class="link" href="cairo-pattern.html#cairo-pattern-t" title="cairo_pattern_t"><code class="function">cairo_pattern_t()</code></a>
1054
+ </li>
1055
+ </ul></div>
1056
+ <p>
1057
+ </p>
1058
+ </div>
1059
+ </div>
1060
+ <div class="footer">
1061
+ <hr>
1062
+ Generated by GTK-Doc V1.10</div>
1063
+ </body>
1064
+ </html>