annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
jpayne@68 2 <html>
jpayne@68 3 <head>
jpayne@68 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
jpayne@68 5 <title>cairo_surface_t: Cairo: A Vector Graphics Library</title>
jpayne@68 6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
jpayne@68 7 <link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
jpayne@68 8 <link rel="up" href="cairo-surfaces.html" title="Surfaces">
jpayne@68 9 <link rel="prev" href="cairo-cairo-device-t.html" title="cairo_device_t">
jpayne@68 10 <link rel="next" href="cairo-Image-Surfaces.html" title="Image Surfaces">
jpayne@68 11 <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
jpayne@68 12 <link rel="stylesheet" href="style.css" type="text/css">
jpayne@68 13 </head>
jpayne@68 14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
jpayne@68 15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
jpayne@68 16 <td width="100%" align="left" class="shortcuts">
jpayne@68 17 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
jpayne@68 18 <a href="#cairo-cairo-surface-t.description" class="shortcut">Description</a></span>
jpayne@68 19 </td>
jpayne@68 20 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
jpayne@68 21 <td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
jpayne@68 22 <td><a accesskey="p" href="cairo-cairo-device-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
jpayne@68 23 <td><a accesskey="n" href="cairo-Image-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
jpayne@68 24 </tr></table>
jpayne@68 25 <div class="refentry">
jpayne@68 26 <a name="cairo-cairo-surface-t"></a><div class="titlepage"></div>
jpayne@68 27 <div class="refnamediv"><table width="100%"><tr>
jpayne@68 28 <td valign="top">
jpayne@68 29 <h2><span class="refentrytitle"><a name="cairo-cairo-surface-t.top_of_page"></a>cairo_surface_t</span></h2>
jpayne@68 30 <p>cairo_surface_t — Base class for surfaces</p>
jpayne@68 31 </td>
jpayne@68 32 <td class="gallery_image" valign="top" align="right"></td>
jpayne@68 33 </tr></table></div>
jpayne@68 34 <div class="refsect1">
jpayne@68 35 <a name="cairo-cairo-surface-t.functions"></a><h2>Functions</h2>
jpayne@68 36 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 37 <colgroup>
jpayne@68 38 <col width="150px" class="functions_return">
jpayne@68 39 <col class="functions_name">
jpayne@68 40 </colgroup>
jpayne@68 41 <tbody>
jpayne@68 42 <tr>
jpayne@68 43 <td class="function_type">
jpayne@68 44 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 45 </td>
jpayne@68 46 <td class="function_name">
jpayne@68 47 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()">cairo_surface_create_similar</a> <span class="c_punctuation">()</span>
jpayne@68 48 </td>
jpayne@68 49 </tr>
jpayne@68 50 <tr>
jpayne@68 51 <td class="function_type">
jpayne@68 52 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 53 </td>
jpayne@68 54 <td class="function_name">
jpayne@68 55 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image" title="cairo_surface_create_similar_image ()">cairo_surface_create_similar_image</a> <span class="c_punctuation">()</span>
jpayne@68 56 </td>
jpayne@68 57 </tr>
jpayne@68 58 <tr>
jpayne@68 59 <td class="function_type">
jpayne@68 60 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 61 </td>
jpayne@68 62 <td class="function_name">
jpayne@68 63 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle" title="cairo_surface_create_for_rectangle ()">cairo_surface_create_for_rectangle</a> <span class="c_punctuation">()</span>
jpayne@68 64 </td>
jpayne@68 65 </tr>
jpayne@68 66 <tr>
jpayne@68 67 <td class="function_type">
jpayne@68 68 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 69 </td>
jpayne@68 70 <td class="function_name">
jpayne@68 71 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()">cairo_surface_reference</a> <span class="c_punctuation">()</span>
jpayne@68 72 </td>
jpayne@68 73 </tr>
jpayne@68 74 <tr>
jpayne@68 75 <td class="function_type">
jpayne@68 76 <span class="returnvalue">void</span>
jpayne@68 77 </td>
jpayne@68 78 <td class="function_name">
jpayne@68 79 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()">cairo_surface_destroy</a> <span class="c_punctuation">()</span>
jpayne@68 80 </td>
jpayne@68 81 </tr>
jpayne@68 82 <tr>
jpayne@68 83 <td class="function_type">
jpayne@68 84 <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
jpayne@68 85 </td>
jpayne@68 86 <td class="function_name">
jpayne@68 87 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()">cairo_surface_status</a> <span class="c_punctuation">()</span>
jpayne@68 88 </td>
jpayne@68 89 </tr>
jpayne@68 90 <tr>
jpayne@68 91 <td class="function_type">
jpayne@68 92 <span class="returnvalue">void</span>
jpayne@68 93 </td>
jpayne@68 94 <td class="function_name">
jpayne@68 95 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()">cairo_surface_finish</a> <span class="c_punctuation">()</span>
jpayne@68 96 </td>
jpayne@68 97 </tr>
jpayne@68 98 <tr>
jpayne@68 99 <td class="function_type">
jpayne@68 100 <span class="returnvalue">void</span>
jpayne@68 101 </td>
jpayne@68 102 <td class="function_name">
jpayne@68 103 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()">cairo_surface_flush</a> <span class="c_punctuation">()</span>
jpayne@68 104 </td>
jpayne@68 105 </tr>
jpayne@68 106 <tr>
jpayne@68 107 <td class="function_type">
jpayne@68 108 <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
jpayne@68 109 </td>
jpayne@68 110 <td class="function_name">
jpayne@68 111 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device" title="cairo_surface_get_device ()">cairo_surface_get_device</a> <span class="c_punctuation">()</span>
jpayne@68 112 </td>
jpayne@68 113 </tr>
jpayne@68 114 <tr>
jpayne@68 115 <td class="function_type">
jpayne@68 116 <span class="returnvalue">void</span>
jpayne@68 117 </td>
jpayne@68 118 <td class="function_name">
jpayne@68 119 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-font-options" title="cairo_surface_get_font_options ()">cairo_surface_get_font_options</a> <span class="c_punctuation">()</span>
jpayne@68 120 </td>
jpayne@68 121 </tr>
jpayne@68 122 <tr>
jpayne@68 123 <td class="function_type">
jpayne@68 124 <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="returnvalue">cairo_content_t</span></a>
jpayne@68 125 </td>
jpayne@68 126 <td class="function_name">
jpayne@68 127 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-content" title="cairo_surface_get_content ()">cairo_surface_get_content</a> <span class="c_punctuation">()</span>
jpayne@68 128 </td>
jpayne@68 129 </tr>
jpayne@68 130 <tr>
jpayne@68 131 <td class="function_type">
jpayne@68 132 <span class="returnvalue">void</span>
jpayne@68 133 </td>
jpayne@68 134 <td class="function_name">
jpayne@68 135 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()">cairo_surface_mark_dirty</a> <span class="c_punctuation">()</span>
jpayne@68 136 </td>
jpayne@68 137 </tr>
jpayne@68 138 <tr>
jpayne@68 139 <td class="function_type">
jpayne@68 140 <span class="returnvalue">void</span>
jpayne@68 141 </td>
jpayne@68 142 <td class="function_name">
jpayne@68 143 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle" title="cairo_surface_mark_dirty_rectangle ()">cairo_surface_mark_dirty_rectangle</a> <span class="c_punctuation">()</span>
jpayne@68 144 </td>
jpayne@68 145 </tr>
jpayne@68 146 <tr>
jpayne@68 147 <td class="function_type">
jpayne@68 148 <span class="returnvalue">void</span>
jpayne@68 149 </td>
jpayne@68 150 <td class="function_name">
jpayne@68 151 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()">cairo_surface_set_device_offset</a> <span class="c_punctuation">()</span>
jpayne@68 152 </td>
jpayne@68 153 </tr>
jpayne@68 154 <tr>
jpayne@68 155 <td class="function_type">
jpayne@68 156 <span class="returnvalue">void</span>
jpayne@68 157 </td>
jpayne@68 158 <td class="function_name">
jpayne@68 159 <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> <span class="c_punctuation">()</span>
jpayne@68 160 </td>
jpayne@68 161 </tr>
jpayne@68 162 <tr>
jpayne@68 163 <td class="function_type">
jpayne@68 164 <span class="returnvalue">void</span>
jpayne@68 165 </td>
jpayne@68 166 <td class="function_name">
jpayne@68 167 <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> <span class="c_punctuation">()</span>
jpayne@68 168 </td>
jpayne@68 169 </tr>
jpayne@68 170 <tr>
jpayne@68 171 <td class="function_type">
jpayne@68 172 <span class="returnvalue">void</span>
jpayne@68 173 </td>
jpayne@68 174 <td class="function_name">
jpayne@68 175 <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> <span class="c_punctuation">()</span>
jpayne@68 176 </td>
jpayne@68 177 </tr>
jpayne@68 178 <tr>
jpayne@68 179 <td class="function_type">
jpayne@68 180 <span class="returnvalue">void</span>
jpayne@68 181 </td>
jpayne@68 182 <td class="function_name">
jpayne@68 183 <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> <span class="c_punctuation">()</span>
jpayne@68 184 </td>
jpayne@68 185 </tr>
jpayne@68 186 <tr>
jpayne@68 187 <td class="function_type">
jpayne@68 188 <span class="returnvalue">void</span>
jpayne@68 189 </td>
jpayne@68 190 <td class="function_name">
jpayne@68 191 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution" title="cairo_surface_get_fallback_resolution ()">cairo_surface_get_fallback_resolution</a> <span class="c_punctuation">()</span>
jpayne@68 192 </td>
jpayne@68 193 </tr>
jpayne@68 194 <tr>
jpayne@68 195 <td class="function_type">
jpayne@68 196 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="returnvalue">cairo_surface_type_t</span></a>
jpayne@68 197 </td>
jpayne@68 198 <td class="function_name">
jpayne@68 199 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()">cairo_surface_get_type</a> <span class="c_punctuation">()</span>
jpayne@68 200 </td>
jpayne@68 201 </tr>
jpayne@68 202 <tr>
jpayne@68 203 <td class="function_type">unsigned <span class="returnvalue">int</span>
jpayne@68 204 </td>
jpayne@68 205 <td class="function_name">
jpayne@68 206 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count" title="cairo_surface_get_reference_count ()">cairo_surface_get_reference_count</a> <span class="c_punctuation">()</span>
jpayne@68 207 </td>
jpayne@68 208 </tr>
jpayne@68 209 <tr>
jpayne@68 210 <td class="function_type">
jpayne@68 211 <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
jpayne@68 212 </td>
jpayne@68 213 <td class="function_name">
jpayne@68 214 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data" title="cairo_surface_set_user_data ()">cairo_surface_set_user_data</a> <span class="c_punctuation">()</span>
jpayne@68 215 </td>
jpayne@68 216 </tr>
jpayne@68 217 <tr>
jpayne@68 218 <td class="function_type">
jpayne@68 219 <span class="returnvalue">void</span> *
jpayne@68 220 </td>
jpayne@68 221 <td class="function_name">
jpayne@68 222 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-user-data" title="cairo_surface_get_user_data ()">cairo_surface_get_user_data</a> <span class="c_punctuation">()</span>
jpayne@68 223 </td>
jpayne@68 224 </tr>
jpayne@68 225 <tr>
jpayne@68 226 <td class="function_type">
jpayne@68 227 <span class="returnvalue">void</span>
jpayne@68 228 </td>
jpayne@68 229 <td class="function_name">
jpayne@68 230 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy-page" title="cairo_surface_copy_page ()">cairo_surface_copy_page</a> <span class="c_punctuation">()</span>
jpayne@68 231 </td>
jpayne@68 232 </tr>
jpayne@68 233 <tr>
jpayne@68 234 <td class="function_type">
jpayne@68 235 <span class="returnvalue">void</span>
jpayne@68 236 </td>
jpayne@68 237 <td class="function_name">
jpayne@68 238 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page" title="cairo_surface_show_page ()">cairo_surface_show_page</a> <span class="c_punctuation">()</span>
jpayne@68 239 </td>
jpayne@68 240 </tr>
jpayne@68 241 <tr>
jpayne@68 242 <td class="function_type">
jpayne@68 243 <a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
jpayne@68 244 </td>
jpayne@68 245 <td class="function_name">
jpayne@68 246 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs" title="cairo_surface_has_show_text_glyphs ()">cairo_surface_has_show_text_glyphs</a> <span class="c_punctuation">()</span>
jpayne@68 247 </td>
jpayne@68 248 </tr>
jpayne@68 249 <tr>
jpayne@68 250 <td class="function_type">
jpayne@68 251 <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
jpayne@68 252 </td>
jpayne@68 253 <td class="function_name">
jpayne@68 254 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data" title="cairo_surface_set_mime_data ()">cairo_surface_set_mime_data</a> <span class="c_punctuation">()</span>
jpayne@68 255 </td>
jpayne@68 256 </tr>
jpayne@68 257 <tr>
jpayne@68 258 <td class="function_type">
jpayne@68 259 <span class="returnvalue">void</span>
jpayne@68 260 </td>
jpayne@68 261 <td class="function_name">
jpayne@68 262 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data" title="cairo_surface_get_mime_data ()">cairo_surface_get_mime_data</a> <span class="c_punctuation">()</span>
jpayne@68 263 </td>
jpayne@68 264 </tr>
jpayne@68 265 <tr>
jpayne@68 266 <td class="function_type">
jpayne@68 267 <a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
jpayne@68 268 </td>
jpayne@68 269 <td class="function_name">
jpayne@68 270 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type" title="cairo_surface_supports_mime_type ()">cairo_surface_supports_mime_type</a> <span class="c_punctuation">()</span>
jpayne@68 271 </td>
jpayne@68 272 </tr>
jpayne@68 273 <tr>
jpayne@68 274 <td class="function_type">
jpayne@68 275 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 276 </td>
jpayne@68 277 <td class="function_name">
jpayne@68 278 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()">cairo_surface_map_to_image</a> <span class="c_punctuation">()</span>
jpayne@68 279 </td>
jpayne@68 280 </tr>
jpayne@68 281 <tr>
jpayne@68 282 <td class="function_type">
jpayne@68 283 <span class="returnvalue">void</span>
jpayne@68 284 </td>
jpayne@68 285 <td class="function_name">
jpayne@68 286 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image" title="cairo_surface_unmap_image ()">cairo_surface_unmap_image</a> <span class="c_punctuation">()</span>
jpayne@68 287 </td>
jpayne@68 288 </tr>
jpayne@68 289 </tbody>
jpayne@68 290 </table></div>
jpayne@68 291 </div>
jpayne@68 292 <div class="refsect1">
jpayne@68 293 <a name="cairo-cairo-surface-t.other"></a><h2>Types and Values</h2>
jpayne@68 294 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 295 <colgroup>
jpayne@68 296 <col width="150px" class="name">
jpayne@68 297 <col class="description">
jpayne@68 298 </colgroup>
jpayne@68 299 <tbody>
jpayne@68 300 <tr>
jpayne@68 301 <td class="define_keyword">#define</td>
jpayne@68 302 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS" title="CAIRO_HAS_MIME_SURFACE">CAIRO_HAS_MIME_SURFACE</a></td>
jpayne@68 303 </tr>
jpayne@68 304 <tr>
jpayne@68 305 <td class="define_keyword">#define</td>
jpayne@68 306 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX">CAIRO_MIME_TYPE_CCITT_FAX</a></td>
jpayne@68 307 </tr>
jpayne@68 308 <tr>
jpayne@68 309 <td class="define_keyword">#define</td>
jpayne@68 310 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</a></td>
jpayne@68 311 </tr>
jpayne@68 312 <tr>
jpayne@68 313 <td class="define_keyword">#define</td>
jpayne@68 314 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" title="CAIRO_MIME_TYPE_EPS">CAIRO_MIME_TYPE_EPS</a></td>
jpayne@68 315 </tr>
jpayne@68 316 <tr>
jpayne@68 317 <td class="define_keyword">#define</td>
jpayne@68 318 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS">CAIRO_MIME_TYPE_EPS_PARAMS</a></td>
jpayne@68 319 </tr>
jpayne@68 320 <tr>
jpayne@68 321 <td class="define_keyword">#define</td>
jpayne@68 322 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2">CAIRO_MIME_TYPE_JBIG2</a></td>
jpayne@68 323 </tr>
jpayne@68 324 <tr>
jpayne@68 325 <td class="define_keyword">#define</td>
jpayne@68 326 <td class="function_name"><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></td>
jpayne@68 327 </tr>
jpayne@68 328 <tr>
jpayne@68 329 <td class="define_keyword">#define</td>
jpayne@68 330 <td class="function_name"><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></td>
jpayne@68 331 </tr>
jpayne@68 332 <tr>
jpayne@68 333 <td class="define_keyword">#define</td>
jpayne@68 334 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2">CAIRO_MIME_TYPE_JP2</a></td>
jpayne@68 335 </tr>
jpayne@68 336 <tr>
jpayne@68 337 <td class="define_keyword">#define</td>
jpayne@68 338 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG">CAIRO_MIME_TYPE_JPEG</a></td>
jpayne@68 339 </tr>
jpayne@68 340 <tr>
jpayne@68 341 <td class="define_keyword">#define</td>
jpayne@68 342 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG">CAIRO_MIME_TYPE_PNG</a></td>
jpayne@68 343 </tr>
jpayne@68 344 <tr>
jpayne@68 345 <td class="define_keyword">#define</td>
jpayne@68 346 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI">CAIRO_MIME_TYPE_URI</a></td>
jpayne@68 347 </tr>
jpayne@68 348 <tr>
jpayne@68 349 <td class="define_keyword">#define</td>
jpayne@68 350 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID">CAIRO_MIME_TYPE_UNIQUE_ID</a></td>
jpayne@68 351 </tr>
jpayne@68 352 <tr>
jpayne@68 353 <td class="typedef_keyword">typedef</td>
jpayne@68 354 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a></td>
jpayne@68 355 </tr>
jpayne@68 356 <tr>
jpayne@68 357 <td class="datatype_keyword">enum</td>
jpayne@68 358 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t">cairo_content_t</a></td>
jpayne@68 359 </tr>
jpayne@68 360 <tr>
jpayne@68 361 <td class="datatype_keyword">enum</td>
jpayne@68 362 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t">cairo_surface_type_t</a></td>
jpayne@68 363 </tr>
jpayne@68 364 </tbody>
jpayne@68 365 </table></div>
jpayne@68 366 </div>
jpayne@68 367 <div class="refsect1">
jpayne@68 368 <a name="cairo-cairo-surface-t.description"></a><h2>Description</h2>
jpayne@68 369 <p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> is the abstract type representing all different drawing
jpayne@68 370 targets that cairo can render to. The actual drawings are
jpayne@68 371 performed using a cairo <em class="firstterm">context</em>.</p>
jpayne@68 372 <p>A cairo surface is created by using <em class="firstterm">backend</em>-specific
jpayne@68 373 constructors, typically of the form
jpayne@68 374 <code class="function">cairo_<span class="emphasis"><em>backend</em></span>_surface_create()</code>.</p>
jpayne@68 375 <p>Most surface types allow accessing the surface without using Cairo
jpayne@68 376 functions. If you do this, keep in mind that it is mandatory that you call
jpayne@68 377 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> before reading from or writing to the surface and that
jpayne@68 378 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.</p>
jpayne@68 379 <div class="example">
jpayne@68 380 <a name="id-1.5.3.5.5"></a><p class="title"><b>Example 1. Directly modifying an image surface</b></p>
jpayne@68 381 <div class="example-contents">
jpayne@68 382 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
jpayne@68 383 <tbody>
jpayne@68 384 <tr>
jpayne@68 385 <td class="listing_lines" align="right"><pre>1
jpayne@68 386 2
jpayne@68 387 3
jpayne@68 388 4
jpayne@68 389 5
jpayne@68 390 6
jpayne@68 391 7
jpayne@68 392 8
jpayne@68 393 9
jpayne@68 394 10
jpayne@68 395 11
jpayne@68 396 12
jpayne@68 397 13
jpayne@68 398 14
jpayne@68 399 15
jpayne@68 400 16
jpayne@68 401 17
jpayne@68 402 18
jpayne@68 403 19</pre></td>
jpayne@68 404 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span>
jpayne@68 405 <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>
jpayne@68 406 <span class="gtkdoc opt">{</span>
jpayne@68 407 <span class="gtkdoc kwb">unsigned char</span> <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
jpayne@68 408 <span class="gtkdoc kwb">int</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> stride<span class="gtkdoc opt">;</span>
jpayne@68 409
jpayne@68 410 <span class="gtkdoc slc">// flush to ensure all writing to the image was done</span>
jpayne@68 411 <span class="function"><a href="cairo-cairo-surface-t.html#cairo-surface-flush">cairo_surface_flush</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
jpayne@68 412
jpayne@68 413 <span class="gtkdoc slc">// modify the image</span>
jpayne@68 414 data <span class="gtkdoc opt">=</span> <span class="function"><a href="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>
jpayne@68 415 width <span class="gtkdoc opt">=</span> <span class="function"><a href="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>
jpayne@68 416 height <span class="gtkdoc opt">=</span> <span class="function"><a href="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>
jpayne@68 417 stride <span class="gtkdoc opt">=</span> <span class="function"><a href="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>
jpayne@68 418 <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>
jpayne@68 419
jpayne@68 420 <span class="gtkdoc slc">// mark the image dirty so Cairo clears its caches.</span>
jpayne@68 421 <span class="function"><a href="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>
jpayne@68 422 <span class="gtkdoc opt">}</span></pre></td>
jpayne@68 423 </tr>
jpayne@68 424 </tbody>
jpayne@68 425 </table>
jpayne@68 426 </div>
jpayne@68 427
jpayne@68 428 </div>
jpayne@68 429 <br class="example-break"><p>Note that for other surface types it might be necessary to acquire the
jpayne@68 430 surface's device first. See <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a> for a discussion of
jpayne@68 431 devices.</p>
jpayne@68 432 </div>
jpayne@68 433 <div class="refsect1">
jpayne@68 434 <a name="cairo-cairo-surface-t.functions_details"></a><h2>Functions</h2>
jpayne@68 435 <div class="refsect2">
jpayne@68 436 <a name="cairo-surface-create-similar"></a><h3>cairo_surface_create_similar ()</h3>
jpayne@68 437 <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 438 cairo_surface_create_similar (<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> *other</code></em>,
jpayne@68 439 <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> content</code></em>,
jpayne@68 440 <em class="parameter"><code><span class="type">int</span> width</code></em>,
jpayne@68 441 <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
jpayne@68 442 <p>Create a new surface that is as compatible as possible with an
jpayne@68 443 existing surface. For example the new surface will have the same
jpayne@68 444 device scale, fallback resolution and font options as
jpayne@68 445 <em class="parameter"><code>other</code></em>
jpayne@68 446 . Generally, the new surface will also use the same backend
jpayne@68 447 as <em class="parameter"><code>other</code></em>
jpayne@68 448 , unless that is not possible for some reason. The type of
jpayne@68 449 the returned surface may be examined with
jpayne@68 450 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a>.</p>
jpayne@68 451 <p>Initially the surface contents are all 0 (transparent if contents
jpayne@68 452 have transparency, black otherwise.)</p>
jpayne@68 453 <p>Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image" title="cairo_surface_create_similar_image ()"><code class="function">cairo_surface_create_similar_image()</code></a> if you need an image surface
jpayne@68 454 which can be painted quickly to the target surface.</p>
jpayne@68 455 <div class="refsect3">
jpayne@68 456 <a name="cairo-surface-create-similar.parameters"></a><h4>Parameters</h4>
jpayne@68 457 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 458 <colgroup>
jpayne@68 459 <col width="150px" class="parameters_name">
jpayne@68 460 <col class="parameters_description">
jpayne@68 461 <col width="200px" class="parameters_annotations">
jpayne@68 462 </colgroup>
jpayne@68 463 <tbody>
jpayne@68 464 <tr>
jpayne@68 465 <td class="parameter_name"><p>other</p></td>
jpayne@68 466 <td class="parameter_description"><p>an existing surface used to select the backend of the new surface</p></td>
jpayne@68 467 <td class="parameter_annotations"> </td>
jpayne@68 468 </tr>
jpayne@68 469 <tr>
jpayne@68 470 <td class="parameter_name"><p>content</p></td>
jpayne@68 471 <td class="parameter_description"><p>the content for the new surface</p></td>
jpayne@68 472 <td class="parameter_annotations"> </td>
jpayne@68 473 </tr>
jpayne@68 474 <tr>
jpayne@68 475 <td class="parameter_name"><p>width</p></td>
jpayne@68 476 <td class="parameter_description"><p>width of the new surface, (in device-space units)</p></td>
jpayne@68 477 <td class="parameter_annotations"> </td>
jpayne@68 478 </tr>
jpayne@68 479 <tr>
jpayne@68 480 <td class="parameter_name"><p>height</p></td>
jpayne@68 481 <td class="parameter_description"><p>height of the new surface (in device-space units)</p></td>
jpayne@68 482 <td class="parameter_annotations"> </td>
jpayne@68 483 </tr>
jpayne@68 484 </tbody>
jpayne@68 485 </table></div>
jpayne@68 486 </div>
jpayne@68 487 <div class="refsect3">
jpayne@68 488 <a name="cairo-surface-create-similar.returns"></a><h4>Returns</h4>
jpayne@68 489 <p> a pointer to the newly allocated surface. The caller
jpayne@68 490 owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
jpayne@68 491 with it.</p>
jpayne@68 492 <p>This function always returns a valid pointer, but it will return a
jpayne@68 493 pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
jpayne@68 494 is already in an error state
jpayne@68 495 or any other error occurs.</p>
jpayne@68 496 </div>
jpayne@68 497 <p class="since">Since: 1.0</p>
jpayne@68 498 </div>
jpayne@68 499 <hr>
jpayne@68 500 <div class="refsect2">
jpayne@68 501 <a name="cairo-surface-create-similar-image"></a><h3>cairo_surface_create_similar_image ()</h3>
jpayne@68 502 <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 503 cairo_surface_create_similar_image (<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> *other</code></em>,
jpayne@68 504 <em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
jpayne@68 505 <em class="parameter"><code><span class="type">int</span> width</code></em>,
jpayne@68 506 <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
jpayne@68 507 <p>Create a new image surface that is as compatible as possible for uploading
jpayne@68 508 to and the use in conjunction with an existing surface. However, this surface
jpayne@68 509 can still be used like any normal image surface. Unlike
jpayne@68 510 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a> the new image surface won't inherit
jpayne@68 511 the device scale from <em class="parameter"><code>other</code></em>
jpayne@68 512 .</p>
jpayne@68 513 <p>Initially the surface contents are all 0 (transparent if contents
jpayne@68 514 have transparency, black otherwise.)</p>
jpayne@68 515 <p>Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a> if you don't need an image surface.</p>
jpayne@68 516 <div class="refsect3">
jpayne@68 517 <a name="cairo-surface-create-similar-image.parameters"></a><h4>Parameters</h4>
jpayne@68 518 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 519 <colgroup>
jpayne@68 520 <col width="150px" class="parameters_name">
jpayne@68 521 <col class="parameters_description">
jpayne@68 522 <col width="200px" class="parameters_annotations">
jpayne@68 523 </colgroup>
jpayne@68 524 <tbody>
jpayne@68 525 <tr>
jpayne@68 526 <td class="parameter_name"><p>other</p></td>
jpayne@68 527 <td class="parameter_description"><p>an existing surface used to select the preference of the new surface</p></td>
jpayne@68 528 <td class="parameter_annotations"> </td>
jpayne@68 529 </tr>
jpayne@68 530 <tr>
jpayne@68 531 <td class="parameter_name"><p>format</p></td>
jpayne@68 532 <td class="parameter_description"><p>the format for the new surface</p></td>
jpayne@68 533 <td class="parameter_annotations"> </td>
jpayne@68 534 </tr>
jpayne@68 535 <tr>
jpayne@68 536 <td class="parameter_name"><p>width</p></td>
jpayne@68 537 <td class="parameter_description"><p>width of the new surface, (in pixels)</p></td>
jpayne@68 538 <td class="parameter_annotations"> </td>
jpayne@68 539 </tr>
jpayne@68 540 <tr>
jpayne@68 541 <td class="parameter_name"><p>height</p></td>
jpayne@68 542 <td class="parameter_description"><p>height of the new surface (in pixels)</p></td>
jpayne@68 543 <td class="parameter_annotations"> </td>
jpayne@68 544 </tr>
jpayne@68 545 </tbody>
jpayne@68 546 </table></div>
jpayne@68 547 </div>
jpayne@68 548 <div class="refsect3">
jpayne@68 549 <a name="cairo-surface-create-similar-image.returns"></a><h4>Returns</h4>
jpayne@68 550 <p> a pointer to the newly allocated image surface. The caller
jpayne@68 551 owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
jpayne@68 552 with it.</p>
jpayne@68 553 <p>This function always returns a valid pointer, but it will return a
jpayne@68 554 pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
jpayne@68 555 is already in an error state
jpayne@68 556 or any other error occurs.</p>
jpayne@68 557 </div>
jpayne@68 558 <p class="since">Since: 1.12</p>
jpayne@68 559 </div>
jpayne@68 560 <hr>
jpayne@68 561 <div class="refsect2">
jpayne@68 562 <a name="cairo-surface-create-for-rectangle"></a><h3>cairo_surface_create_for_rectangle ()</h3>
jpayne@68 563 <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 564 cairo_surface_create_for_rectangle (<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> *target</code></em>,
jpayne@68 565 <em class="parameter"><code><span class="type">double</span> x</code></em>,
jpayne@68 566 <em class="parameter"><code><span class="type">double</span> y</code></em>,
jpayne@68 567 <em class="parameter"><code><span class="type">double</span> width</code></em>,
jpayne@68 568 <em class="parameter"><code><span class="type">double</span> height</code></em>);</pre>
jpayne@68 569 <p>Create a new surface that is a rectangle within the target surface.
jpayne@68 570 All operations drawn to this surface are then clipped and translated
jpayne@68 571 onto the target surface. Nothing drawn via this sub-surface outside of
jpayne@68 572 its bounds is drawn onto the target surface, making this a useful method
jpayne@68 573 for passing constrained child surfaces to library routines that draw
jpayne@68 574 directly onto the parent surface, i.e. with no further backend allocations,
jpayne@68 575 double buffering or copies.</p>
jpayne@68 576 <div class="note"><p>The semantics of subsurfaces have not been finalized yet
jpayne@68 577 unless the rectangle is in full device units, is contained within
jpayne@68 578 the extents of the target surface, and the target or subsurface's
jpayne@68 579 device transforms are not changed.</p></div>
jpayne@68 580 <div class="refsect3">
jpayne@68 581 <a name="cairo-surface-create-for-rectangle.parameters"></a><h4>Parameters</h4>
jpayne@68 582 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 583 <colgroup>
jpayne@68 584 <col width="150px" class="parameters_name">
jpayne@68 585 <col class="parameters_description">
jpayne@68 586 <col width="200px" class="parameters_annotations">
jpayne@68 587 </colgroup>
jpayne@68 588 <tbody>
jpayne@68 589 <tr>
jpayne@68 590 <td class="parameter_name"><p>target</p></td>
jpayne@68 591 <td class="parameter_description"><p>an existing surface for which the sub-surface will point to</p></td>
jpayne@68 592 <td class="parameter_annotations"> </td>
jpayne@68 593 </tr>
jpayne@68 594 <tr>
jpayne@68 595 <td class="parameter_name"><p>x</p></td>
jpayne@68 596 <td class="parameter_description"><p>the x-origin of the sub-surface from the top-left of the target surface (in device-space units)</p></td>
jpayne@68 597 <td class="parameter_annotations"> </td>
jpayne@68 598 </tr>
jpayne@68 599 <tr>
jpayne@68 600 <td class="parameter_name"><p>y</p></td>
jpayne@68 601 <td class="parameter_description"><p>the y-origin of the sub-surface from the top-left of the target surface (in device-space units)</p></td>
jpayne@68 602 <td class="parameter_annotations"> </td>
jpayne@68 603 </tr>
jpayne@68 604 <tr>
jpayne@68 605 <td class="parameter_name"><p>width</p></td>
jpayne@68 606 <td class="parameter_description"><p>width of the sub-surface (in device-space units)</p></td>
jpayne@68 607 <td class="parameter_annotations"> </td>
jpayne@68 608 </tr>
jpayne@68 609 <tr>
jpayne@68 610 <td class="parameter_name"><p>height</p></td>
jpayne@68 611 <td class="parameter_description"><p>height of the sub-surface (in device-space units)</p></td>
jpayne@68 612 <td class="parameter_annotations"> </td>
jpayne@68 613 </tr>
jpayne@68 614 </tbody>
jpayne@68 615 </table></div>
jpayne@68 616 </div>
jpayne@68 617 <div class="refsect3">
jpayne@68 618 <a name="cairo-surface-create-for-rectangle.returns"></a><h4>Returns</h4>
jpayne@68 619 <p> a pointer to the newly allocated surface. The caller
jpayne@68 620 owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
jpayne@68 621 with it.</p>
jpayne@68 622 <p>This function always returns a valid pointer, but it will return a
jpayne@68 623 pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
jpayne@68 624 is already in an error state
jpayne@68 625 or any other error occurs.</p>
jpayne@68 626 </div>
jpayne@68 627 <p class="since">Since: 1.10</p>
jpayne@68 628 </div>
jpayne@68 629 <hr>
jpayne@68 630 <div class="refsect2">
jpayne@68 631 <a name="cairo-surface-reference"></a><h3>cairo_surface_reference ()</h3>
jpayne@68 632 <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 633 cairo_surface_reference (<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>);</pre>
jpayne@68 634 <p>Increases the reference count on <em class="parameter"><code>surface</code></em>
jpayne@68 635 by one. This prevents
jpayne@68 636 <em class="parameter"><code>surface</code></em>
jpayne@68 637 from being destroyed until a matching call to
jpayne@68 638 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> is made.</p>
jpayne@68 639 <p>Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count" title="cairo_surface_get_reference_count ()"><code class="function">cairo_surface_get_reference_count()</code></a> to get the number of
jpayne@68 640 references to 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>.</p>
jpayne@68 641 <div class="refsect3">
jpayne@68 642 <a name="cairo-surface-reference.parameters"></a><h4>Parameters</h4>
jpayne@68 643 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 644 <colgroup>
jpayne@68 645 <col width="150px" class="parameters_name">
jpayne@68 646 <col class="parameters_description">
jpayne@68 647 <col width="200px" class="parameters_annotations">
jpayne@68 648 </colgroup>
jpayne@68 649 <tbody><tr>
jpayne@68 650 <td class="parameter_name"><p>surface</p></td>
jpayne@68 651 <td class="parameter_description"><p>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></p></td>
jpayne@68 652 <td class="parameter_annotations"> </td>
jpayne@68 653 </tr></tbody>
jpayne@68 654 </table></div>
jpayne@68 655 </div>
jpayne@68 656 <div class="refsect3">
jpayne@68 657 <a name="cairo-surface-reference.returns"></a><h4>Returns</h4>
jpayne@68 658 <p> the referenced <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>.</p>
jpayne@68 659 </div>
jpayne@68 660 <p class="since">Since: 1.0</p>
jpayne@68 661 </div>
jpayne@68 662 <hr>
jpayne@68 663 <div class="refsect2">
jpayne@68 664 <a name="cairo-surface-destroy"></a><h3>cairo_surface_destroy ()</h3>
jpayne@68 665 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 666 cairo_surface_destroy (<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>);</pre>
jpayne@68 667 <p>Decreases the reference count on <em class="parameter"><code>surface</code></em>
jpayne@68 668 by one. If the result is
jpayne@68 669 zero, then <em class="parameter"><code>surface</code></em>
jpayne@68 670 and all associated resources are freed. See
jpayne@68 671 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a>.</p>
jpayne@68 672 <div class="refsect3">
jpayne@68 673 <a name="cairo-surface-destroy.parameters"></a><h4>Parameters</h4>
jpayne@68 674 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 675 <colgroup>
jpayne@68 676 <col width="150px" class="parameters_name">
jpayne@68 677 <col class="parameters_description">
jpayne@68 678 <col width="200px" class="parameters_annotations">
jpayne@68 679 </colgroup>
jpayne@68 680 <tbody><tr>
jpayne@68 681 <td class="parameter_name"><p>surface</p></td>
jpayne@68 682 <td class="parameter_description"><p>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></p></td>
jpayne@68 683 <td class="parameter_annotations"> </td>
jpayne@68 684 </tr></tbody>
jpayne@68 685 </table></div>
jpayne@68 686 </div>
jpayne@68 687 <p class="since">Since: 1.0</p>
jpayne@68 688 </div>
jpayne@68 689 <hr>
jpayne@68 690 <div class="refsect2">
jpayne@68 691 <a name="cairo-surface-status"></a><h3>cairo_surface_status ()</h3>
jpayne@68 692 <pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
jpayne@68 693 cairo_surface_status (<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>);</pre>
jpayne@68 694 <p>Checks whether an error has previously occurred for this
jpayne@68 695 surface.</p>
jpayne@68 696 <div class="refsect3">
jpayne@68 697 <a name="cairo-surface-status.parameters"></a><h4>Parameters</h4>
jpayne@68 698 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 699 <colgroup>
jpayne@68 700 <col width="150px" class="parameters_name">
jpayne@68 701 <col class="parameters_description">
jpayne@68 702 <col width="200px" class="parameters_annotations">
jpayne@68 703 </colgroup>
jpayne@68 704 <tbody><tr>
jpayne@68 705 <td class="parameter_name"><p>surface</p></td>
jpayne@68 706 <td class="parameter_description"><p>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></p></td>
jpayne@68 707 <td class="parameter_annotations"> </td>
jpayne@68 708 </tr></tbody>
jpayne@68 709 </table></div>
jpayne@68 710 </div>
jpayne@68 711 <div class="refsect3">
jpayne@68 712 <a name="cairo-surface-status.returns"></a><h4>Returns</h4>
jpayne@68 713 <p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NULL-POINTER:CAPS"><code class="literal">CAIRO_STATUS_NULL_POINTER</code></a>,
jpayne@68 714 <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-READ-ERROR:CAPS"><code class="literal">CAIRO_STATUS_READ_ERROR</code></a>,
jpayne@68 715 <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-CONTENT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_CONTENT</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-FORMAT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_FORMAT</code></a>, or
jpayne@68 716 <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-VISUAL:CAPS"><code class="literal">CAIRO_STATUS_INVALID_VISUAL</code></a>.</p>
jpayne@68 717 </div>
jpayne@68 718 <p class="since">Since: 1.0</p>
jpayne@68 719 </div>
jpayne@68 720 <hr>
jpayne@68 721 <div class="refsect2">
jpayne@68 722 <a name="cairo-surface-finish"></a><h3>cairo_surface_finish ()</h3>
jpayne@68 723 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 724 cairo_surface_finish (<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>);</pre>
jpayne@68 725 <p>This function finishes the surface and drops all references to
jpayne@68 726 external resources. For example, for the Xlib backend it means
jpayne@68 727 that cairo will no longer access the drawable, which can be freed.
jpayne@68 728 After calling <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> the only valid operations on a
jpayne@68 729 surface are getting and setting user, referencing and
jpayne@68 730 destroying, and flushing and finishing it.
jpayne@68 731 Further drawing to the surface will not affect the
jpayne@68 732 surface but will instead trigger a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SURFACE-FINISHED:CAPS"><code class="literal">CAIRO_STATUS_SURFACE_FINISHED</code></a>
jpayne@68 733 error.</p>
jpayne@68 734 <p>When the last call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> decreases the
jpayne@68 735 reference count to zero, cairo will call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> if
jpayne@68 736 it hasn't been called already, before freeing the resources
jpayne@68 737 associated with the surface.</p>
jpayne@68 738 <div class="refsect3">
jpayne@68 739 <a name="cairo-surface-finish.parameters"></a><h4>Parameters</h4>
jpayne@68 740 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 741 <colgroup>
jpayne@68 742 <col width="150px" class="parameters_name">
jpayne@68 743 <col class="parameters_description">
jpayne@68 744 <col width="200px" class="parameters_annotations">
jpayne@68 745 </colgroup>
jpayne@68 746 <tbody><tr>
jpayne@68 747 <td class="parameter_name"><p>surface</p></td>
jpayne@68 748 <td class="parameter_description"><p>the <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> to finish</p></td>
jpayne@68 749 <td class="parameter_annotations"> </td>
jpayne@68 750 </tr></tbody>
jpayne@68 751 </table></div>
jpayne@68 752 </div>
jpayne@68 753 <p class="since">Since: 1.0</p>
jpayne@68 754 </div>
jpayne@68 755 <hr>
jpayne@68 756 <div class="refsect2">
jpayne@68 757 <a name="cairo-surface-flush"></a><h3>cairo_surface_flush ()</h3>
jpayne@68 758 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 759 cairo_surface_flush (<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>);</pre>
jpayne@68 760 <p>Do any pending drawing for the surface and also restore any temporary
jpayne@68 761 modifications cairo has made to the surface's state. This function
jpayne@68 762 must be called before switching from drawing on the surface with
jpayne@68 763 cairo to drawing on it directly with native APIs, or accessing its
jpayne@68 764 memory outside of Cairo. If the surface doesn't support direct
jpayne@68 765 access, then this function does nothing.</p>
jpayne@68 766 <div class="refsect3">
jpayne@68 767 <a name="cairo-surface-flush.parameters"></a><h4>Parameters</h4>
jpayne@68 768 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 769 <colgroup>
jpayne@68 770 <col width="150px" class="parameters_name">
jpayne@68 771 <col class="parameters_description">
jpayne@68 772 <col width="200px" class="parameters_annotations">
jpayne@68 773 </colgroup>
jpayne@68 774 <tbody><tr>
jpayne@68 775 <td class="parameter_name"><p>surface</p></td>
jpayne@68 776 <td class="parameter_description"><p>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></p></td>
jpayne@68 777 <td class="parameter_annotations"> </td>
jpayne@68 778 </tr></tbody>
jpayne@68 779 </table></div>
jpayne@68 780 </div>
jpayne@68 781 <p class="since">Since: 1.0</p>
jpayne@68 782 </div>
jpayne@68 783 <hr>
jpayne@68 784 <div class="refsect2">
jpayne@68 785 <a name="cairo-surface-get-device"></a><h3>cairo_surface_get_device ()</h3>
jpayne@68 786 <pre class="programlisting"><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
jpayne@68 787 cairo_surface_get_device (<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>);</pre>
jpayne@68 788 <p>This function returns the device for a <em class="parameter"><code>surface</code></em>
jpayne@68 789 .
jpayne@68 790 See <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a>.</p>
jpayne@68 791 <div class="refsect3">
jpayne@68 792 <a name="cairo-surface-get-device.parameters"></a><h4>Parameters</h4>
jpayne@68 793 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 794 <colgroup>
jpayne@68 795 <col width="150px" class="parameters_name">
jpayne@68 796 <col class="parameters_description">
jpayne@68 797 <col width="200px" class="parameters_annotations">
jpayne@68 798 </colgroup>
jpayne@68 799 <tbody><tr>
jpayne@68 800 <td class="parameter_name"><p>surface</p></td>
jpayne@68 801 <td class="parameter_description"><p>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></p></td>
jpayne@68 802 <td class="parameter_annotations"> </td>
jpayne@68 803 </tr></tbody>
jpayne@68 804 </table></div>
jpayne@68 805 </div>
jpayne@68 806 <div class="refsect3">
jpayne@68 807 <a name="cairo-surface-get-device.returns"></a><h4>Returns</h4>
jpayne@68 808 <p> The device for <em class="parameter"><code>surface</code></em>
jpayne@68 809 or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface does
jpayne@68 810 not have an associated device.</p>
jpayne@68 811 </div>
jpayne@68 812 <p class="since">Since: 1.10</p>
jpayne@68 813 </div>
jpayne@68 814 <hr>
jpayne@68 815 <div class="refsect2">
jpayne@68 816 <a name="cairo-surface-get-font-options"></a><h3>cairo_surface_get_font_options ()</h3>
jpayne@68 817 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 818 cairo_surface_get_font_options (<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>,
jpayne@68 819 <em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
jpayne@68 820 <p>Retrieves the default font rendering options for the surface.
jpayne@68 821 This allows display surfaces to report the correct subpixel order
jpayne@68 822 for rendering on them, print surfaces to disable hinting of
jpayne@68 823 metrics and so forth. The result can then be used with
jpayne@68 824 <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.</p>
jpayne@68 825 <div class="refsect3">
jpayne@68 826 <a name="cairo-surface-get-font-options.parameters"></a><h4>Parameters</h4>
jpayne@68 827 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 828 <colgroup>
jpayne@68 829 <col width="150px" class="parameters_name">
jpayne@68 830 <col class="parameters_description">
jpayne@68 831 <col width="200px" class="parameters_annotations">
jpayne@68 832 </colgroup>
jpayne@68 833 <tbody>
jpayne@68 834 <tr>
jpayne@68 835 <td class="parameter_name"><p>surface</p></td>
jpayne@68 836 <td class="parameter_description"><p>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></p></td>
jpayne@68 837 <td class="parameter_annotations"> </td>
jpayne@68 838 </tr>
jpayne@68 839 <tr>
jpayne@68 840 <td class="parameter_name"><p>options</p></td>
jpayne@68 841 <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> object into which to store
jpayne@68 842 the retrieved options. All existing values are overwritten</p></td>
jpayne@68 843 <td class="parameter_annotations"> </td>
jpayne@68 844 </tr>
jpayne@68 845 </tbody>
jpayne@68 846 </table></div>
jpayne@68 847 </div>
jpayne@68 848 <p class="since">Since: 1.0</p>
jpayne@68 849 </div>
jpayne@68 850 <hr>
jpayne@68 851 <div class="refsect2">
jpayne@68 852 <a name="cairo-surface-get-content"></a><h3>cairo_surface_get_content ()</h3>
jpayne@68 853 <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="returnvalue">cairo_content_t</span></a>
jpayne@68 854 cairo_surface_get_content (<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>);</pre>
jpayne@68 855 <p>This function returns the content type of <em class="parameter"><code>surface</code></em>
jpayne@68 856 which indicates
jpayne@68 857 whether the surface contains color and/or alpha information. See
jpayne@68 858 <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a>.</p>
jpayne@68 859 <div class="refsect3">
jpayne@68 860 <a name="cairo-surface-get-content.parameters"></a><h4>Parameters</h4>
jpayne@68 861 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 862 <colgroup>
jpayne@68 863 <col width="150px" class="parameters_name">
jpayne@68 864 <col class="parameters_description">
jpayne@68 865 <col width="200px" class="parameters_annotations">
jpayne@68 866 </colgroup>
jpayne@68 867 <tbody><tr>
jpayne@68 868 <td class="parameter_name"><p>surface</p></td>
jpayne@68 869 <td class="parameter_description"><p>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></p></td>
jpayne@68 870 <td class="parameter_annotations"> </td>
jpayne@68 871 </tr></tbody>
jpayne@68 872 </table></div>
jpayne@68 873 </div>
jpayne@68 874 <div class="refsect3">
jpayne@68 875 <a name="cairo-surface-get-content.returns"></a><h4>Returns</h4>
jpayne@68 876 <p> The content type of <em class="parameter"><code>surface</code></em>
jpayne@68 877 .</p>
jpayne@68 878 </div>
jpayne@68 879 <p class="since">Since: 1.2</p>
jpayne@68 880 </div>
jpayne@68 881 <hr>
jpayne@68 882 <div class="refsect2">
jpayne@68 883 <a name="cairo-surface-mark-dirty"></a><h3>cairo_surface_mark_dirty ()</h3>
jpayne@68 884 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 885 cairo_surface_mark_dirty (<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>);</pre>
jpayne@68 886 <p>Tells cairo that drawing has been done to surface using means other
jpayne@68 887 than cairo, and that cairo should reread any cached areas. Note
jpayne@68 888 that you must call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> before doing such drawing.</p>
jpayne@68 889 <div class="refsect3">
jpayne@68 890 <a name="cairo-surface-mark-dirty.parameters"></a><h4>Parameters</h4>
jpayne@68 891 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 892 <colgroup>
jpayne@68 893 <col width="150px" class="parameters_name">
jpayne@68 894 <col class="parameters_description">
jpayne@68 895 <col width="200px" class="parameters_annotations">
jpayne@68 896 </colgroup>
jpayne@68 897 <tbody><tr>
jpayne@68 898 <td class="parameter_name"><p>surface</p></td>
jpayne@68 899 <td class="parameter_description"><p>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></p></td>
jpayne@68 900 <td class="parameter_annotations"> </td>
jpayne@68 901 </tr></tbody>
jpayne@68 902 </table></div>
jpayne@68 903 </div>
jpayne@68 904 <p class="since">Since: 1.0</p>
jpayne@68 905 </div>
jpayne@68 906 <hr>
jpayne@68 907 <div class="refsect2">
jpayne@68 908 <a name="cairo-surface-mark-dirty-rectangle"></a><h3>cairo_surface_mark_dirty_rectangle ()</h3>
jpayne@68 909 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 910 cairo_surface_mark_dirty_rectangle (<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>,
jpayne@68 911 <em class="parameter"><code><span class="type">int</span> x</code></em>,
jpayne@68 912 <em class="parameter"><code><span class="type">int</span> y</code></em>,
jpayne@68 913 <em class="parameter"><code><span class="type">int</span> width</code></em>,
jpayne@68 914 <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
jpayne@68 915 <p>Like <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>, but drawing has been done only to
jpayne@68 916 the specified rectangle, so that cairo can retain cached contents
jpayne@68 917 for other parts of the surface.</p>
jpayne@68 918 <p>Any cached clip set on the surface will be reset by this function,
jpayne@68 919 to make sure that future cairo calls have the clip set that they
jpayne@68 920 expect.</p>
jpayne@68 921 <div class="refsect3">
jpayne@68 922 <a name="cairo-surface-mark-dirty-rectangle.parameters"></a><h4>Parameters</h4>
jpayne@68 923 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 924 <colgroup>
jpayne@68 925 <col width="150px" class="parameters_name">
jpayne@68 926 <col class="parameters_description">
jpayne@68 927 <col width="200px" class="parameters_annotations">
jpayne@68 928 </colgroup>
jpayne@68 929 <tbody>
jpayne@68 930 <tr>
jpayne@68 931 <td class="parameter_name"><p>surface</p></td>
jpayne@68 932 <td class="parameter_description"><p>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></p></td>
jpayne@68 933 <td class="parameter_annotations"> </td>
jpayne@68 934 </tr>
jpayne@68 935 <tr>
jpayne@68 936 <td class="parameter_name"><p>x</p></td>
jpayne@68 937 <td class="parameter_description"><p>X coordinate of dirty rectangle</p></td>
jpayne@68 938 <td class="parameter_annotations"> </td>
jpayne@68 939 </tr>
jpayne@68 940 <tr>
jpayne@68 941 <td class="parameter_name"><p>y</p></td>
jpayne@68 942 <td class="parameter_description"><p>Y coordinate of dirty rectangle</p></td>
jpayne@68 943 <td class="parameter_annotations"> </td>
jpayne@68 944 </tr>
jpayne@68 945 <tr>
jpayne@68 946 <td class="parameter_name"><p>width</p></td>
jpayne@68 947 <td class="parameter_description"><p>width of dirty rectangle</p></td>
jpayne@68 948 <td class="parameter_annotations"> </td>
jpayne@68 949 </tr>
jpayne@68 950 <tr>
jpayne@68 951 <td class="parameter_name"><p>height</p></td>
jpayne@68 952 <td class="parameter_description"><p>height of dirty rectangle</p></td>
jpayne@68 953 <td class="parameter_annotations"> </td>
jpayne@68 954 </tr>
jpayne@68 955 </tbody>
jpayne@68 956 </table></div>
jpayne@68 957 </div>
jpayne@68 958 <p class="since">Since: 1.0</p>
jpayne@68 959 </div>
jpayne@68 960 <hr>
jpayne@68 961 <div class="refsect2">
jpayne@68 962 <a name="cairo-surface-set-device-offset"></a><h3>cairo_surface_set_device_offset ()</h3>
jpayne@68 963 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 964 cairo_surface_set_device_offset (<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>,
jpayne@68 965 <em class="parameter"><code><span class="type">double</span> x_offset</code></em>,
jpayne@68 966 <em class="parameter"><code><span class="type">double</span> y_offset</code></em>);</pre>
jpayne@68 967 <p>Sets an offset that is added to the device coordinates determined
jpayne@68 968 by the CTM when drawing to <em class="parameter"><code>surface</code></em>
jpayne@68 969 . One use case for this function
jpayne@68 970 is when we want to create 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> that redirects drawing
jpayne@68 971 for a portion of an onscreen surface to an offscreen surface in a
jpayne@68 972 way that is completely invisible to the user of the cairo
jpayne@68 973 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
jpayne@68 974 sufficient to do this, since functions like
jpayne@68 975 <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.</p>
jpayne@68 976 <p>Note that the offset affects drawing to the surface as well as
jpayne@68 977 using the surface in a source pattern.</p>
jpayne@68 978 <div class="refsect3">
jpayne@68 979 <a name="cairo-surface-set-device-offset.parameters"></a><h4>Parameters</h4>
jpayne@68 980 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 981 <colgroup>
jpayne@68 982 <col width="150px" class="parameters_name">
jpayne@68 983 <col class="parameters_description">
jpayne@68 984 <col width="200px" class="parameters_annotations">
jpayne@68 985 </colgroup>
jpayne@68 986 <tbody>
jpayne@68 987 <tr>
jpayne@68 988 <td class="parameter_name"><p>surface</p></td>
jpayne@68 989 <td class="parameter_description"><p>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></p></td>
jpayne@68 990 <td class="parameter_annotations"> </td>
jpayne@68 991 </tr>
jpayne@68 992 <tr>
jpayne@68 993 <td class="parameter_name"><p>x_offset</p></td>
jpayne@68 994 <td class="parameter_description"><p>the offset in the X direction, in device units</p></td>
jpayne@68 995 <td class="parameter_annotations"> </td>
jpayne@68 996 </tr>
jpayne@68 997 <tr>
jpayne@68 998 <td class="parameter_name"><p>y_offset</p></td>
jpayne@68 999 <td class="parameter_description"><p>the offset in the Y direction, in device units</p></td>
jpayne@68 1000 <td class="parameter_annotations"> </td>
jpayne@68 1001 </tr>
jpayne@68 1002 </tbody>
jpayne@68 1003 </table></div>
jpayne@68 1004 </div>
jpayne@68 1005 <p class="since">Since: 1.0</p>
jpayne@68 1006 </div>
jpayne@68 1007 <hr>
jpayne@68 1008 <div class="refsect2">
jpayne@68 1009 <a name="cairo-surface-get-device-offset"></a><h3>cairo_surface_get_device_offset ()</h3>
jpayne@68 1010 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1011 cairo_surface_get_device_offset (<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>,
jpayne@68 1012 <em class="parameter"><code><span class="type">double</span> *x_offset</code></em>,
jpayne@68 1013 <em class="parameter"><code><span class="type">double</span> *y_offset</code></em>);</pre>
jpayne@68 1014 <p>This function returns the previous device offset set by
jpayne@68 1015 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()"><code class="function">cairo_surface_set_device_offset()</code></a>.</p>
jpayne@68 1016 <div class="refsect3">
jpayne@68 1017 <a name="cairo-surface-get-device-offset.parameters"></a><h4>Parameters</h4>
jpayne@68 1018 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1019 <colgroup>
jpayne@68 1020 <col width="150px" class="parameters_name">
jpayne@68 1021 <col class="parameters_description">
jpayne@68 1022 <col width="200px" class="parameters_annotations">
jpayne@68 1023 </colgroup>
jpayne@68 1024 <tbody>
jpayne@68 1025 <tr>
jpayne@68 1026 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1027 <td class="parameter_description"><p>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></p></td>
jpayne@68 1028 <td class="parameter_annotations"> </td>
jpayne@68 1029 </tr>
jpayne@68 1030 <tr>
jpayne@68 1031 <td class="parameter_name"><p>x_offset</p></td>
jpayne@68 1032 <td class="parameter_description"><p>the offset in the X direction, in device units</p></td>
jpayne@68 1033 <td class="parameter_annotations"> </td>
jpayne@68 1034 </tr>
jpayne@68 1035 <tr>
jpayne@68 1036 <td class="parameter_name"><p>y_offset</p></td>
jpayne@68 1037 <td class="parameter_description"><p>the offset in the Y direction, in device units</p></td>
jpayne@68 1038 <td class="parameter_annotations"> </td>
jpayne@68 1039 </tr>
jpayne@68 1040 </tbody>
jpayne@68 1041 </table></div>
jpayne@68 1042 </div>
jpayne@68 1043 <p class="since">Since: 1.2</p>
jpayne@68 1044 </div>
jpayne@68 1045 <hr>
jpayne@68 1046 <div class="refsect2">
jpayne@68 1047 <a name="cairo-surface-get-device-scale"></a><h3>cairo_surface_get_device_scale ()</h3>
jpayne@68 1048 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1049 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>,
jpayne@68 1050 <em class="parameter"><code><span class="type">double</span> *x_scale</code></em>,
jpayne@68 1051 <em class="parameter"><code><span class="type">double</span> *y_scale</code></em>);</pre>
jpayne@68 1052 <p>This function returns the previous device offset set by
jpayne@68 1053 <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>.</p>
jpayne@68 1054 <div class="refsect3">
jpayne@68 1055 <a name="cairo-surface-get-device-scale.parameters"></a><h4>Parameters</h4>
jpayne@68 1056 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1057 <colgroup>
jpayne@68 1058 <col width="150px" class="parameters_name">
jpayne@68 1059 <col class="parameters_description">
jpayne@68 1060 <col width="200px" class="parameters_annotations">
jpayne@68 1061 </colgroup>
jpayne@68 1062 <tbody>
jpayne@68 1063 <tr>
jpayne@68 1064 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1065 <td class="parameter_description"><p>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></p></td>
jpayne@68 1066 <td class="parameter_annotations"> </td>
jpayne@68 1067 </tr>
jpayne@68 1068 <tr>
jpayne@68 1069 <td class="parameter_name"><p>x_scale</p></td>
jpayne@68 1070 <td class="parameter_description"><p>the scale in the X direction, in device units</p></td>
jpayne@68 1071 <td class="parameter_annotations"> </td>
jpayne@68 1072 </tr>
jpayne@68 1073 <tr>
jpayne@68 1074 <td class="parameter_name"><p>y_scale</p></td>
jpayne@68 1075 <td class="parameter_description"><p>the scale in the Y direction, in device units</p></td>
jpayne@68 1076 <td class="parameter_annotations"> </td>
jpayne@68 1077 </tr>
jpayne@68 1078 </tbody>
jpayne@68 1079 </table></div>
jpayne@68 1080 </div>
jpayne@68 1081 <p class="since">Since: 1.14</p>
jpayne@68 1082 </div>
jpayne@68 1083 <hr>
jpayne@68 1084 <div class="refsect2">
jpayne@68 1085 <a name="cairo-surface-set-device-scale"></a><h3>cairo_surface_set_device_scale ()</h3>
jpayne@68 1086 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1087 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>,
jpayne@68 1088 <em class="parameter"><code><span class="type">double</span> x_scale</code></em>,
jpayne@68 1089 <em class="parameter"><code><span class="type">double</span> y_scale</code></em>);</pre>
jpayne@68 1090 <p>Sets a scale that is multiplied to the device coordinates determined
jpayne@68 1091 by the CTM when drawing to <em class="parameter"><code>surface</code></em>
jpayne@68 1092 . One common use for this is to
jpayne@68 1093 render to very high resolution display devices at a scale factor, so
jpayne@68 1094 that code that assumes 1 pixel will be a certain size will still work.
jpayne@68 1095 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
jpayne@68 1096 sufficient to do this, since functions like
jpayne@68 1097 <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.</p>
jpayne@68 1098 <p>Note that the scale affects drawing to the surface as well as
jpayne@68 1099 using the surface in a source pattern.</p>
jpayne@68 1100 <div class="refsect3">
jpayne@68 1101 <a name="cairo-surface-set-device-scale.parameters"></a><h4>Parameters</h4>
jpayne@68 1102 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1103 <colgroup>
jpayne@68 1104 <col width="150px" class="parameters_name">
jpayne@68 1105 <col class="parameters_description">
jpayne@68 1106 <col width="200px" class="parameters_annotations">
jpayne@68 1107 </colgroup>
jpayne@68 1108 <tbody>
jpayne@68 1109 <tr>
jpayne@68 1110 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1111 <td class="parameter_description"><p>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></p></td>
jpayne@68 1112 <td class="parameter_annotations"> </td>
jpayne@68 1113 </tr>
jpayne@68 1114 <tr>
jpayne@68 1115 <td class="parameter_name"><p>x_scale</p></td>
jpayne@68 1116 <td class="parameter_description"><p>a scale factor in the X direction</p></td>
jpayne@68 1117 <td class="parameter_annotations"> </td>
jpayne@68 1118 </tr>
jpayne@68 1119 <tr>
jpayne@68 1120 <td class="parameter_name"><p>y_scale</p></td>
jpayne@68 1121 <td class="parameter_description"><p>a scale factor in the Y direction</p></td>
jpayne@68 1122 <td class="parameter_annotations"> </td>
jpayne@68 1123 </tr>
jpayne@68 1124 </tbody>
jpayne@68 1125 </table></div>
jpayne@68 1126 </div>
jpayne@68 1127 <p class="since">Since: 1.14</p>
jpayne@68 1128 </div>
jpayne@68 1129 <hr>
jpayne@68 1130 <div class="refsect2">
jpayne@68 1131 <a name="cairo-surface-set-fallback-resolution"></a><h3>cairo_surface_set_fallback_resolution ()</h3>
jpayne@68 1132 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1133 cairo_surface_set_fallback_resolution (<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>,
jpayne@68 1134 <em class="parameter"><code><span class="type">double</span> x_pixels_per_inch</code></em>,
jpayne@68 1135 <em class="parameter"><code><span class="type">double</span> y_pixels_per_inch</code></em>);</pre>
jpayne@68 1136 <p>Set the horizontal and vertical resolution for image fallbacks.</p>
jpayne@68 1137 <p>When certain operations aren't supported natively by a backend,
jpayne@68 1138 cairo will fallback by rendering operations to an image and then
jpayne@68 1139 overlaying that image onto the output. For backends that are
jpayne@68 1140 natively vector-oriented, this function can be used to set the
jpayne@68 1141 resolution used for these image fallbacks, (larger values will
jpayne@68 1142 result in more detailed images, but also larger file sizes).</p>
jpayne@68 1143 <p>Some examples of natively vector-oriented backends are the ps, pdf,
jpayne@68 1144 and svg backends.</p>
jpayne@68 1145 <p>For backends that are natively raster-oriented, image fallbacks are
jpayne@68 1146 still possible, but they are always performed at the native
jpayne@68 1147 device resolution. So this function has no effect on those
jpayne@68 1148 backends.</p>
jpayne@68 1149 <p>Note: The fallback resolution only takes effect at the time of
jpayne@68 1150 completing a page (with <a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>) so
jpayne@68 1151 there is currently no way to have more than one fallback resolution
jpayne@68 1152 in effect on a single page.</p>
jpayne@68 1153 <p>The default fallback resoultion is 300 pixels per inch in both
jpayne@68 1154 dimensions.</p>
jpayne@68 1155 <div class="refsect3">
jpayne@68 1156 <a name="cairo-surface-set-fallback-resolution.parameters"></a><h4>Parameters</h4>
jpayne@68 1157 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1158 <colgroup>
jpayne@68 1159 <col width="150px" class="parameters_name">
jpayne@68 1160 <col class="parameters_description">
jpayne@68 1161 <col width="200px" class="parameters_annotations">
jpayne@68 1162 </colgroup>
jpayne@68 1163 <tbody>
jpayne@68 1164 <tr>
jpayne@68 1165 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1166 <td class="parameter_description"><p>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></p></td>
jpayne@68 1167 <td class="parameter_annotations"> </td>
jpayne@68 1168 </tr>
jpayne@68 1169 <tr>
jpayne@68 1170 <td class="parameter_name"><p>x_pixels_per_inch</p></td>
jpayne@68 1171 <td class="parameter_description"><p>horizontal setting for pixels per inch</p></td>
jpayne@68 1172 <td class="parameter_annotations"> </td>
jpayne@68 1173 </tr>
jpayne@68 1174 <tr>
jpayne@68 1175 <td class="parameter_name"><p>y_pixels_per_inch</p></td>
jpayne@68 1176 <td class="parameter_description"><p>vertical setting for pixels per inch</p></td>
jpayne@68 1177 <td class="parameter_annotations"> </td>
jpayne@68 1178 </tr>
jpayne@68 1179 </tbody>
jpayne@68 1180 </table></div>
jpayne@68 1181 </div>
jpayne@68 1182 <p class="since">Since: 1.2</p>
jpayne@68 1183 </div>
jpayne@68 1184 <hr>
jpayne@68 1185 <div class="refsect2">
jpayne@68 1186 <a name="cairo-surface-get-fallback-resolution"></a><h3>cairo_surface_get_fallback_resolution ()</h3>
jpayne@68 1187 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1188 cairo_surface_get_fallback_resolution (<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>,
jpayne@68 1189 <em class="parameter"><code><span class="type">double</span> *x_pixels_per_inch</code></em>,
jpayne@68 1190 <em class="parameter"><code><span class="type">double</span> *y_pixels_per_inch</code></em>);</pre>
jpayne@68 1191 <p>This function returns the previous fallback resolution set by
jpayne@68 1192 <a class="link" href="cairo-cairo-surface-t.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
jpayne@68 1193 resolution if never set.</p>
jpayne@68 1194 <div class="refsect3">
jpayne@68 1195 <a name="cairo-surface-get-fallback-resolution.parameters"></a><h4>Parameters</h4>
jpayne@68 1196 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1197 <colgroup>
jpayne@68 1198 <col width="150px" class="parameters_name">
jpayne@68 1199 <col class="parameters_description">
jpayne@68 1200 <col width="200px" class="parameters_annotations">
jpayne@68 1201 </colgroup>
jpayne@68 1202 <tbody>
jpayne@68 1203 <tr>
jpayne@68 1204 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1205 <td class="parameter_description"><p>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></p></td>
jpayne@68 1206 <td class="parameter_annotations"> </td>
jpayne@68 1207 </tr>
jpayne@68 1208 <tr>
jpayne@68 1209 <td class="parameter_name"><p>x_pixels_per_inch</p></td>
jpayne@68 1210 <td class="parameter_description"><p>horizontal pixels per inch</p></td>
jpayne@68 1211 <td class="parameter_annotations"> </td>
jpayne@68 1212 </tr>
jpayne@68 1213 <tr>
jpayne@68 1214 <td class="parameter_name"><p>y_pixels_per_inch</p></td>
jpayne@68 1215 <td class="parameter_description"><p>vertical pixels per inch</p></td>
jpayne@68 1216 <td class="parameter_annotations"> </td>
jpayne@68 1217 </tr>
jpayne@68 1218 </tbody>
jpayne@68 1219 </table></div>
jpayne@68 1220 </div>
jpayne@68 1221 <p class="since">Since: 1.8</p>
jpayne@68 1222 </div>
jpayne@68 1223 <hr>
jpayne@68 1224 <div class="refsect2">
jpayne@68 1225 <a name="cairo-surface-get-type"></a><h3>cairo_surface_get_type ()</h3>
jpayne@68 1226 <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="returnvalue">cairo_surface_type_t</span></a>
jpayne@68 1227 cairo_surface_get_type (<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>);</pre>
jpayne@68 1228 <p>This function returns the type of the backend used to create
jpayne@68 1229 a surface. See <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="type">cairo_surface_type_t</span></a> for available types.</p>
jpayne@68 1230 <div class="refsect3">
jpayne@68 1231 <a name="cairo-surface-get-type.parameters"></a><h4>Parameters</h4>
jpayne@68 1232 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1233 <colgroup>
jpayne@68 1234 <col width="150px" class="parameters_name">
jpayne@68 1235 <col class="parameters_description">
jpayne@68 1236 <col width="200px" class="parameters_annotations">
jpayne@68 1237 </colgroup>
jpayne@68 1238 <tbody><tr>
jpayne@68 1239 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1240 <td class="parameter_description"><p>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></p></td>
jpayne@68 1241 <td class="parameter_annotations"> </td>
jpayne@68 1242 </tr></tbody>
jpayne@68 1243 </table></div>
jpayne@68 1244 </div>
jpayne@68 1245 <div class="refsect3">
jpayne@68 1246 <a name="cairo-surface-get-type.returns"></a><h4>Returns</h4>
jpayne@68 1247 <p> The type of <em class="parameter"><code>surface</code></em>
jpayne@68 1248 .</p>
jpayne@68 1249 </div>
jpayne@68 1250 <p class="since">Since: 1.2</p>
jpayne@68 1251 </div>
jpayne@68 1252 <hr>
jpayne@68 1253 <div class="refsect2">
jpayne@68 1254 <a name="cairo-surface-get-reference-count"></a><h3>cairo_surface_get_reference_count ()</h3>
jpayne@68 1255 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
jpayne@68 1256 cairo_surface_get_reference_count (<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>);</pre>
jpayne@68 1257 <p>Returns the current reference count of <em class="parameter"><code>surface</code></em>
jpayne@68 1258 .</p>
jpayne@68 1259 <div class="refsect3">
jpayne@68 1260 <a name="cairo-surface-get-reference-count.parameters"></a><h4>Parameters</h4>
jpayne@68 1261 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1262 <colgroup>
jpayne@68 1263 <col width="150px" class="parameters_name">
jpayne@68 1264 <col class="parameters_description">
jpayne@68 1265 <col width="200px" class="parameters_annotations">
jpayne@68 1266 </colgroup>
jpayne@68 1267 <tbody><tr>
jpayne@68 1268 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1269 <td class="parameter_description"><p>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></p></td>
jpayne@68 1270 <td class="parameter_annotations"> </td>
jpayne@68 1271 </tr></tbody>
jpayne@68 1272 </table></div>
jpayne@68 1273 </div>
jpayne@68 1274 <div class="refsect3">
jpayne@68 1275 <a name="cairo-surface-get-reference-count.returns"></a><h4>Returns</h4>
jpayne@68 1276 <p> the current reference count of <em class="parameter"><code>surface</code></em>
jpayne@68 1277 . If the
jpayne@68 1278 object is a nil object, 0 will be returned.</p>
jpayne@68 1279 </div>
jpayne@68 1280 <p class="since">Since: 1.4</p>
jpayne@68 1281 </div>
jpayne@68 1282 <hr>
jpayne@68 1283 <div class="refsect2">
jpayne@68 1284 <a name="cairo-surface-set-user-data"></a><h3>cairo_surface_set_user_data ()</h3>
jpayne@68 1285 <pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
jpayne@68 1286 cairo_surface_set_user_data (<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>,
jpayne@68 1287 <em class="parameter"><code>const <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> *key</code></em>,
jpayne@68 1288 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
jpayne@68 1289 <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>
jpayne@68 1290 <p>Attach user data to <em class="parameter"><code>surface</code></em>
jpayne@68 1291 . To remove user data from a surface,
jpayne@68 1292 call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
jpayne@68 1293 for <em class="parameter"><code>data</code></em>
jpayne@68 1294 .</p>
jpayne@68 1295 <div class="refsect3">
jpayne@68 1296 <a name="cairo-surface-set-user-data.parameters"></a><h4>Parameters</h4>
jpayne@68 1297 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1298 <colgroup>
jpayne@68 1299 <col width="150px" class="parameters_name">
jpayne@68 1300 <col class="parameters_description">
jpayne@68 1301 <col width="200px" class="parameters_annotations">
jpayne@68 1302 </colgroup>
jpayne@68 1303 <tbody>
jpayne@68 1304 <tr>
jpayne@68 1305 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1306 <td class="parameter_description"><p>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></p></td>
jpayne@68 1307 <td class="parameter_annotations"> </td>
jpayne@68 1308 </tr>
jpayne@68 1309 <tr>
jpayne@68 1310 <td class="parameter_name"><p>key</p></td>
jpayne@68 1311 <td class="parameter_description"><p>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</p></td>
jpayne@68 1312 <td class="parameter_annotations"> </td>
jpayne@68 1313 </tr>
jpayne@68 1314 <tr>
jpayne@68 1315 <td class="parameter_name"><p>user_data</p></td>
jpayne@68 1316 <td class="parameter_description"><p>the user data to attach to the surface</p></td>
jpayne@68 1317 <td class="parameter_annotations"> </td>
jpayne@68 1318 </tr>
jpayne@68 1319 <tr>
jpayne@68 1320 <td class="parameter_name"><p>destroy</p></td>
jpayne@68 1321 <td class="parameter_description"><p>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
jpayne@68 1322 surface is destroyed or when new user data is attached using the
jpayne@68 1323 same key.</p></td>
jpayne@68 1324 <td class="parameter_annotations"> </td>
jpayne@68 1325 </tr>
jpayne@68 1326 </tbody>
jpayne@68 1327 </table></div>
jpayne@68 1328 </div>
jpayne@68 1329 <div class="refsect3">
jpayne@68 1330 <a name="cairo-surface-set-user-data.returns"></a><h4>Returns</h4>
jpayne@68 1331 <p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
jpayne@68 1332 slot could not be allocated for the user data.</p>
jpayne@68 1333 </div>
jpayne@68 1334 <p class="since">Since: 1.0</p>
jpayne@68 1335 </div>
jpayne@68 1336 <hr>
jpayne@68 1337 <div class="refsect2">
jpayne@68 1338 <a name="cairo-surface-get-user-data"></a><h3>cairo_surface_get_user_data ()</h3>
jpayne@68 1339 <pre class="programlisting"><span class="returnvalue">void</span> *
jpayne@68 1340 cairo_surface_get_user_data (<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>,
jpayne@68 1341 <em class="parameter"><code>const <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> *key</code></em>);</pre>
jpayne@68 1342 <p>Return user data previously attached to <em class="parameter"><code>surface</code></em>
jpayne@68 1343 using the specified
jpayne@68 1344 key. If no user data has been attached with the given key this
jpayne@68 1345 function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
jpayne@68 1346 <div class="refsect3">
jpayne@68 1347 <a name="cairo-surface-get-user-data.parameters"></a><h4>Parameters</h4>
jpayne@68 1348 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1349 <colgroup>
jpayne@68 1350 <col width="150px" class="parameters_name">
jpayne@68 1351 <col class="parameters_description">
jpayne@68 1352 <col width="200px" class="parameters_annotations">
jpayne@68 1353 </colgroup>
jpayne@68 1354 <tbody>
jpayne@68 1355 <tr>
jpayne@68 1356 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1357 <td class="parameter_description"><p>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></p></td>
jpayne@68 1358 <td class="parameter_annotations"> </td>
jpayne@68 1359 </tr>
jpayne@68 1360 <tr>
jpayne@68 1361 <td class="parameter_name"><p>key</p></td>
jpayne@68 1362 <td class="parameter_description"><p>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
jpayne@68 1363 attached to</p></td>
jpayne@68 1364 <td class="parameter_annotations"> </td>
jpayne@68 1365 </tr>
jpayne@68 1366 </tbody>
jpayne@68 1367 </table></div>
jpayne@68 1368 </div>
jpayne@68 1369 <div class="refsect3">
jpayne@68 1370 <a name="cairo-surface-get-user-data.returns"></a><h4>Returns</h4>
jpayne@68 1371 <p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
jpayne@68 1372 </div>
jpayne@68 1373 <p class="since">Since: 1.0</p>
jpayne@68 1374 </div>
jpayne@68 1375 <hr>
jpayne@68 1376 <div class="refsect2">
jpayne@68 1377 <a name="cairo-surface-copy-page"></a><h3>cairo_surface_copy_page ()</h3>
jpayne@68 1378 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1379 cairo_surface_copy_page (<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>);</pre>
jpayne@68 1380 <p>Emits the current page for backends that support multiple pages,
jpayne@68 1381 but doesn't clear it, so that the contents of the current page will
jpayne@68 1382 be retained for the next page. Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page" title="cairo_surface_show_page ()"><code class="function">cairo_surface_show_page()</code></a> if you
jpayne@68 1383 want to get an empty page after the emission.</p>
jpayne@68 1384 <p>There is a convenience function for this that takes a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>,
jpayne@68 1385 namely <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>.</p>
jpayne@68 1386 <div class="refsect3">
jpayne@68 1387 <a name="cairo-surface-copy-page.parameters"></a><h4>Parameters</h4>
jpayne@68 1388 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1389 <colgroup>
jpayne@68 1390 <col width="150px" class="parameters_name">
jpayne@68 1391 <col class="parameters_description">
jpayne@68 1392 <col width="200px" class="parameters_annotations">
jpayne@68 1393 </colgroup>
jpayne@68 1394 <tbody><tr>
jpayne@68 1395 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1396 <td class="parameter_description"><p>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></p></td>
jpayne@68 1397 <td class="parameter_annotations"> </td>
jpayne@68 1398 </tr></tbody>
jpayne@68 1399 </table></div>
jpayne@68 1400 </div>
jpayne@68 1401 <p class="since">Since: 1.6</p>
jpayne@68 1402 </div>
jpayne@68 1403 <hr>
jpayne@68 1404 <div class="refsect2">
jpayne@68 1405 <a name="cairo-surface-show-page"></a><h3>cairo_surface_show_page ()</h3>
jpayne@68 1406 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1407 cairo_surface_show_page (<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>);</pre>
jpayne@68 1408 <p>Emits and clears the current page for backends that support multiple
jpayne@68 1409 pages. Use <a class="link" href="cairo-cairo-surface-t.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.</p>
jpayne@68 1410 <p>There is a convenience function for this that takes a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>,
jpayne@68 1411 namely <a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a>.</p>
jpayne@68 1412 <div class="refsect3">
jpayne@68 1413 <a name="cairo-surface-show-page.parameters"></a><h4>Parameters</h4>
jpayne@68 1414 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1415 <colgroup>
jpayne@68 1416 <col width="150px" class="parameters_name">
jpayne@68 1417 <col class="parameters_description">
jpayne@68 1418 <col width="200px" class="parameters_annotations">
jpayne@68 1419 </colgroup>
jpayne@68 1420 <tbody><tr>
jpayne@68 1421 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1422 <td class="parameter_description"><p>a <span class="type">cairo_Surface_t</span></p></td>
jpayne@68 1423 <td class="parameter_annotations"> </td>
jpayne@68 1424 </tr></tbody>
jpayne@68 1425 </table></div>
jpayne@68 1426 </div>
jpayne@68 1427 <p class="since">Since: 1.6</p>
jpayne@68 1428 </div>
jpayne@68 1429 <hr>
jpayne@68 1430 <div class="refsect2">
jpayne@68 1431 <a name="cairo-surface-has-show-text-glyphs"></a><h3>cairo_surface_has_show_text_glyphs ()</h3>
jpayne@68 1432 <pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
jpayne@68 1433 cairo_surface_has_show_text_glyphs (<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>);</pre>
jpayne@68 1434 <p>Returns whether the surface supports
jpayne@68 1435 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,
jpayne@68 1436 whether it actually uses the provided text and cluster data
jpayne@68 1437 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.</p>
jpayne@68 1438 <p>Note: Even if this function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, a
jpayne@68 1439 <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>
jpayne@68 1440 will
jpayne@68 1441 still succeed. It just will
jpayne@68 1442 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
jpayne@68 1443 function to avoid computing UTF-8 text and cluster mapping if the
jpayne@68 1444 target surface does not use it.</p>
jpayne@68 1445 <div class="refsect3">
jpayne@68 1446 <a name="cairo-surface-has-show-text-glyphs.parameters"></a><h4>Parameters</h4>
jpayne@68 1447 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1448 <colgroup>
jpayne@68 1449 <col width="150px" class="parameters_name">
jpayne@68 1450 <col class="parameters_description">
jpayne@68 1451 <col width="200px" class="parameters_annotations">
jpayne@68 1452 </colgroup>
jpayne@68 1453 <tbody><tr>
jpayne@68 1454 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1455 <td class="parameter_description"><p>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></p></td>
jpayne@68 1456 <td class="parameter_annotations"> </td>
jpayne@68 1457 </tr></tbody>
jpayne@68 1458 </table></div>
jpayne@68 1459 </div>
jpayne@68 1460 <div class="refsect3">
jpayne@68 1461 <a name="cairo-surface-has-show-text-glyphs.returns"></a><h4>Returns</h4>
jpayne@68 1462 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em>
jpayne@68 1463 supports
jpayne@68 1464 <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="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
jpayne@68 1465 </div>
jpayne@68 1466 <p class="since">Since: 1.8</p>
jpayne@68 1467 </div>
jpayne@68 1468 <hr>
jpayne@68 1469 <div class="refsect2">
jpayne@68 1470 <a name="cairo-surface-set-mime-data"></a><h3>cairo_surface_set_mime_data ()</h3>
jpayne@68 1471 <pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
jpayne@68 1472 cairo_surface_set_mime_data (<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>,
jpayne@68 1473 <em class="parameter"><code>const <span class="type">char</span> *mime_type</code></em>,
jpayne@68 1474 <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
jpayne@68 1475 <em class="parameter"><code><span class="type">unsigned long </span> length</code></em>,
jpayne@68 1476 <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>,
jpayne@68 1477 <em class="parameter"><code><span class="type">void</span> *closure</code></em>);</pre>
jpayne@68 1478 <p>Attach an image in the format <em class="parameter"><code>mime_type</code></em>
jpayne@68 1479 to <em class="parameter"><code>surface</code></em>
jpayne@68 1480 . To remove
jpayne@68 1481 the data from a surface, call this function with same mime type
jpayne@68 1482 and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for <em class="parameter"><code>data</code></em>
jpayne@68 1483 .</p>
jpayne@68 1484 <p>The attached image (or filename) data can later be used by backends
jpayne@68 1485 which support it (currently: PDF, PS, SVG and Win32 Printing
jpayne@68 1486 surfaces) to emit this data instead of making a snapshot of the
jpayne@68 1487 <em class="parameter"><code>surface</code></em>
jpayne@68 1488 . This approach tends to be faster and requires less
jpayne@68 1489 memory and disk space.</p>
jpayne@68 1490 <p>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>,
jpayne@68 1491 <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>,
jpayne@68 1492 <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>,
jpayne@68 1493 <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>,
jpayne@68 1494 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>.</p>
jpayne@68 1495 <p>See corresponding backend surface docs for details about which MIME
jpayne@68 1496 types it can handle. Caution: the associated MIME data will be
jpayne@68 1497 discarded if you draw on the surface afterwards. Use this function
jpayne@68 1498 with care.</p>
jpayne@68 1499 <p>Even if a backend supports a MIME type, that does not mean cairo
jpayne@68 1500 will always be able to use the attached MIME data. For example, if
jpayne@68 1501 the backend does not natively support the compositing operation used
jpayne@68 1502 to apply the MIME data to the backend. In that case, the MIME data
jpayne@68 1503 will be ignored. Therefore, to apply an image in all cases, it is best
jpayne@68 1504 to create an image surface which contains the decoded image data and
jpayne@68 1505 then attach the MIME data to that. This ensures the image will always
jpayne@68 1506 be used while still allowing the MIME data to be used whenever
jpayne@68 1507 possible.</p>
jpayne@68 1508 <div class="refsect3">
jpayne@68 1509 <a name="cairo-surface-set-mime-data.parameters"></a><h4>Parameters</h4>
jpayne@68 1510 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1511 <colgroup>
jpayne@68 1512 <col width="150px" class="parameters_name">
jpayne@68 1513 <col class="parameters_description">
jpayne@68 1514 <col width="200px" class="parameters_annotations">
jpayne@68 1515 </colgroup>
jpayne@68 1516 <tbody>
jpayne@68 1517 <tr>
jpayne@68 1518 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1519 <td class="parameter_description"><p>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></p></td>
jpayne@68 1520 <td class="parameter_annotations"> </td>
jpayne@68 1521 </tr>
jpayne@68 1522 <tr>
jpayne@68 1523 <td class="parameter_name"><p>mime_type</p></td>
jpayne@68 1524 <td class="parameter_description"><p>the MIME type of the image data</p></td>
jpayne@68 1525 <td class="parameter_annotations"> </td>
jpayne@68 1526 </tr>
jpayne@68 1527 <tr>
jpayne@68 1528 <td class="parameter_name"><p>data</p></td>
jpayne@68 1529 <td class="parameter_description"><p>the image data to attach to the surface</p></td>
jpayne@68 1530 <td class="parameter_annotations"> </td>
jpayne@68 1531 </tr>
jpayne@68 1532 <tr>
jpayne@68 1533 <td class="parameter_name"><p>length</p></td>
jpayne@68 1534 <td class="parameter_description"><p>the length of the image data</p></td>
jpayne@68 1535 <td class="parameter_annotations"> </td>
jpayne@68 1536 </tr>
jpayne@68 1537 <tr>
jpayne@68 1538 <td class="parameter_name"><p>destroy</p></td>
jpayne@68 1539 <td class="parameter_description"><p>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
jpayne@68 1540 surface is destroyed or when new image data is attached using the
jpayne@68 1541 same mime type.</p></td>
jpayne@68 1542 <td class="parameter_annotations"> </td>
jpayne@68 1543 </tr>
jpayne@68 1544 <tr>
jpayne@68 1545 <td class="parameter_name"><p>closure</p></td>
jpayne@68 1546 <td class="parameter_description"><p>the data to be passed to the <em class="parameter"><code>destroy</code></em>
jpayne@68 1547 notifier</p></td>
jpayne@68 1548 <td class="parameter_annotations"> </td>
jpayne@68 1549 </tr>
jpayne@68 1550 </tbody>
jpayne@68 1551 </table></div>
jpayne@68 1552 </div>
jpayne@68 1553 <div class="refsect3">
jpayne@68 1554 <a name="cairo-surface-set-mime-data.returns"></a><h4>Returns</h4>
jpayne@68 1555 <p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
jpayne@68 1556 slot could not be allocated for the user data.</p>
jpayne@68 1557 </div>
jpayne@68 1558 <p class="since">Since: 1.10</p>
jpayne@68 1559 </div>
jpayne@68 1560 <hr>
jpayne@68 1561 <div class="refsect2">
jpayne@68 1562 <a name="cairo-surface-get-mime-data"></a><h3>cairo_surface_get_mime_data ()</h3>
jpayne@68 1563 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1564 cairo_surface_get_mime_data (<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>,
jpayne@68 1565 <em class="parameter"><code>const <span class="type">char</span> *mime_type</code></em>,
jpayne@68 1566 <em class="parameter"><code>const unsigned <span class="type">char</span> **data</code></em>,
jpayne@68 1567 <em class="parameter"><code>unsigned <span class="type">long</span> *length</code></em>);</pre>
jpayne@68 1568 <p>Return mime data previously attached to <em class="parameter"><code>surface</code></em>
jpayne@68 1569 using the
jpayne@68 1570 specified mime type. If no data has been attached with the given
jpayne@68 1571 mime type, <em class="parameter"><code>data</code></em>
jpayne@68 1572 is set <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
jpayne@68 1573 <div class="refsect3">
jpayne@68 1574 <a name="cairo-surface-get-mime-data.parameters"></a><h4>Parameters</h4>
jpayne@68 1575 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1576 <colgroup>
jpayne@68 1577 <col width="150px" class="parameters_name">
jpayne@68 1578 <col class="parameters_description">
jpayne@68 1579 <col width="200px" class="parameters_annotations">
jpayne@68 1580 </colgroup>
jpayne@68 1581 <tbody>
jpayne@68 1582 <tr>
jpayne@68 1583 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1584 <td class="parameter_description"><p>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></p></td>
jpayne@68 1585 <td class="parameter_annotations"> </td>
jpayne@68 1586 </tr>
jpayne@68 1587 <tr>
jpayne@68 1588 <td class="parameter_name"><p>mime_type</p></td>
jpayne@68 1589 <td class="parameter_description"><p>the mime type of the image data</p></td>
jpayne@68 1590 <td class="parameter_annotations"> </td>
jpayne@68 1591 </tr>
jpayne@68 1592 <tr>
jpayne@68 1593 <td class="parameter_name"><p>data</p></td>
jpayne@68 1594 <td class="parameter_description"><p>the image data to attached to the surface</p></td>
jpayne@68 1595 <td class="parameter_annotations"> </td>
jpayne@68 1596 </tr>
jpayne@68 1597 <tr>
jpayne@68 1598 <td class="parameter_name"><p>length</p></td>
jpayne@68 1599 <td class="parameter_description"><p>the length of the image data</p></td>
jpayne@68 1600 <td class="parameter_annotations"> </td>
jpayne@68 1601 </tr>
jpayne@68 1602 </tbody>
jpayne@68 1603 </table></div>
jpayne@68 1604 </div>
jpayne@68 1605 <p class="since">Since: 1.10</p>
jpayne@68 1606 </div>
jpayne@68 1607 <hr>
jpayne@68 1608 <div class="refsect2">
jpayne@68 1609 <a name="cairo-surface-supports-mime-type"></a><h3>cairo_surface_supports_mime_type ()</h3>
jpayne@68 1610 <pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
jpayne@68 1611 cairo_surface_supports_mime_type (<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>,
jpayne@68 1612 <em class="parameter"><code>const <span class="type">char</span> *mime_type</code></em>);</pre>
jpayne@68 1613 <p>Return whether <em class="parameter"><code>surface</code></em>
jpayne@68 1614 supports <em class="parameter"><code>mime_type</code></em>
jpayne@68 1615 .</p>
jpayne@68 1616 <div class="refsect3">
jpayne@68 1617 <a name="cairo-surface-supports-mime-type.parameters"></a><h4>Parameters</h4>
jpayne@68 1618 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1619 <colgroup>
jpayne@68 1620 <col width="150px" class="parameters_name">
jpayne@68 1621 <col class="parameters_description">
jpayne@68 1622 <col width="200px" class="parameters_annotations">
jpayne@68 1623 </colgroup>
jpayne@68 1624 <tbody>
jpayne@68 1625 <tr>
jpayne@68 1626 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1627 <td class="parameter_description"><p>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></p></td>
jpayne@68 1628 <td class="parameter_annotations"> </td>
jpayne@68 1629 </tr>
jpayne@68 1630 <tr>
jpayne@68 1631 <td class="parameter_name"><p>mime_type</p></td>
jpayne@68 1632 <td class="parameter_description"><p>the mime type</p></td>
jpayne@68 1633 <td class="parameter_annotations"> </td>
jpayne@68 1634 </tr>
jpayne@68 1635 </tbody>
jpayne@68 1636 </table></div>
jpayne@68 1637 </div>
jpayne@68 1638 <div class="refsect3">
jpayne@68 1639 <a name="cairo-surface-supports-mime-type.returns"></a><h4>Returns</h4>
jpayne@68 1640 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em>
jpayne@68 1641 supports
jpayne@68 1642 <em class="parameter"><code>mime_type</code></em>
jpayne@68 1643 , <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
jpayne@68 1644 </div>
jpayne@68 1645 <p class="since">Since: 1.12</p>
jpayne@68 1646 </div>
jpayne@68 1647 <hr>
jpayne@68 1648 <div class="refsect2">
jpayne@68 1649 <a name="cairo-surface-map-to-image"></a><h3>cairo_surface_map_to_image ()</h3>
jpayne@68 1650 <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
jpayne@68 1651 cairo_surface_map_to_image (<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>,
jpayne@68 1652 <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *extents</code></em>);</pre>
jpayne@68 1653 <p>Returns an image surface that is the most efficient mechanism for
jpayne@68 1654 modifying the backing store of the target surface. The region retrieved
jpayne@68 1655 may be limited to the <em class="parameter"><code>extents</code></em>
jpayne@68 1656 or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for the whole surface</p>
jpayne@68 1657 <p>Note, the use of the original surface as a target or source whilst
jpayne@68 1658 it is mapped is undefined. The result of mapping the surface
jpayne@68 1659 multiple times is undefined. Calling <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> or
jpayne@68 1660 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> on the resulting image surface results in
jpayne@68 1661 undefined behavior. Changing the device transform of the image
jpayne@68 1662 surface or of <em class="parameter"><code>surface</code></em>
jpayne@68 1663 before the image surface is unmapped results
jpayne@68 1664 in undefined behavior.</p>
jpayne@68 1665 <div class="refsect3">
jpayne@68 1666 <a name="cairo-surface-map-to-image.parameters"></a><h4>Parameters</h4>
jpayne@68 1667 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1668 <colgroup>
jpayne@68 1669 <col width="150px" class="parameters_name">
jpayne@68 1670 <col class="parameters_description">
jpayne@68 1671 <col width="200px" class="parameters_annotations">
jpayne@68 1672 </colgroup>
jpayne@68 1673 <tbody>
jpayne@68 1674 <tr>
jpayne@68 1675 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1676 <td class="parameter_description"><p>an existing surface used to extract the image from</p></td>
jpayne@68 1677 <td class="parameter_annotations"> </td>
jpayne@68 1678 </tr>
jpayne@68 1679 <tr>
jpayne@68 1680 <td class="parameter_name"><p>extents</p></td>
jpayne@68 1681 <td class="parameter_description"><p>limit the extraction to an rectangular region</p></td>
jpayne@68 1682 <td class="parameter_annotations"> </td>
jpayne@68 1683 </tr>
jpayne@68 1684 </tbody>
jpayne@68 1685 </table></div>
jpayne@68 1686 </div>
jpayne@68 1687 <div class="refsect3">
jpayne@68 1688 <a name="cairo-surface-map-to-image.returns"></a><h4>Returns</h4>
jpayne@68 1689 <p> a pointer to the newly allocated image surface. The caller
jpayne@68 1690 must use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image" title="cairo_surface_unmap_image ()"><code class="function">cairo_surface_unmap_image()</code></a> to destroy this image surface.</p>
jpayne@68 1691 <p>This function always returns a valid pointer, but it will return a
jpayne@68 1692 pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
jpayne@68 1693 is already in an error state
jpayne@68 1694 or any other error occurs. If the returned pointer does not have an
jpayne@68 1695 error status, it is guaranteed to be an image surface whose format
jpayne@68 1696 is not <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-INVALID:CAPS"><code class="literal">CAIRO_FORMAT_INVALID</code></a>.</p>
jpayne@68 1697 </div>
jpayne@68 1698 <p class="since">Since: 1.12</p>
jpayne@68 1699 </div>
jpayne@68 1700 <hr>
jpayne@68 1701 <div class="refsect2">
jpayne@68 1702 <a name="cairo-surface-unmap-image"></a><h3>cairo_surface_unmap_image ()</h3>
jpayne@68 1703 <pre class="programlisting"><span class="returnvalue">void</span>
jpayne@68 1704 cairo_surface_unmap_image (<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>,
jpayne@68 1705 <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> *image</code></em>);</pre>
jpayne@68 1706 <p>Unmaps the image surface as returned from <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()"><code class="function">cairo_surface_map_to_image()</code></a>.</p>
jpayne@68 1707 <p>The content of the image will be uploaded to the target surface.
jpayne@68 1708 Afterwards, the image is destroyed.</p>
jpayne@68 1709 <p>Using an image surface which wasn't returned by <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()"><code class="function">cairo_surface_map_to_image()</code></a>
jpayne@68 1710 results in undefined behavior.</p>
jpayne@68 1711 <div class="refsect3">
jpayne@68 1712 <a name="cairo-surface-unmap-image.parameters"></a><h4>Parameters</h4>
jpayne@68 1713 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1714 <colgroup>
jpayne@68 1715 <col width="150px" class="parameters_name">
jpayne@68 1716 <col class="parameters_description">
jpayne@68 1717 <col width="200px" class="parameters_annotations">
jpayne@68 1718 </colgroup>
jpayne@68 1719 <tbody>
jpayne@68 1720 <tr>
jpayne@68 1721 <td class="parameter_name"><p>surface</p></td>
jpayne@68 1722 <td class="parameter_description"><p>the surface passed to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()"><code class="function">cairo_surface_map_to_image()</code></a>.</p></td>
jpayne@68 1723 <td class="parameter_annotations"> </td>
jpayne@68 1724 </tr>
jpayne@68 1725 <tr>
jpayne@68 1726 <td class="parameter_name"><p>image</p></td>
jpayne@68 1727 <td class="parameter_description"><p>the currently mapped image</p></td>
jpayne@68 1728 <td class="parameter_annotations"> </td>
jpayne@68 1729 </tr>
jpayne@68 1730 </tbody>
jpayne@68 1731 </table></div>
jpayne@68 1732 </div>
jpayne@68 1733 <p class="since">Since: 1.12</p>
jpayne@68 1734 </div>
jpayne@68 1735 </div>
jpayne@68 1736 <div class="refsect1">
jpayne@68 1737 <a name="cairo-cairo-surface-t.other_details"></a><h2>Types and Values</h2>
jpayne@68 1738 <div class="refsect2">
jpayne@68 1739 <a name="CAIRO-HAS-MIME-SURFACE:CAPS"></a><h3>CAIRO_HAS_MIME_SURFACE</h3>
jpayne@68 1740 <pre class="programlisting">#define CAIRO_HAS_MIME_SURFACE 1
jpayne@68 1741 </pre>
jpayne@68 1742 </div>
jpayne@68 1743 <hr>
jpayne@68 1744 <div class="refsect2">
jpayne@68 1745 <a name="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"></a><h3>CAIRO_MIME_TYPE_CCITT_FAX</h3>
jpayne@68 1746 <pre class="programlisting">#define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax"
jpayne@68 1747 </pre>
jpayne@68 1748 <p>Group 3 or Group 4 CCITT facsimile encoding (International
jpayne@68 1749 Telecommunication Union, Recommendations T.4 and T.6.)</p>
jpayne@68 1750 <p class="since">Since: 1.16</p>
jpayne@68 1751 </div>
jpayne@68 1752 <hr>
jpayne@68 1753 <div class="refsect2">
jpayne@68 1754 <a name="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"></a><h3>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</h3>
jpayne@68 1755 <pre class="programlisting">#define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params"
jpayne@68 1756 </pre>
jpayne@68 1757 <p>Decode parameters for Group 3 or Group 4 CCITT facsimile encoding.
jpayne@68 1758 See <a class="link" href="cairo-PDF-Surfaces.html#ccitt" title="CCITT Fax Images">CCITT Fax Images</a>.</p>
jpayne@68 1759 <p class="since">Since: 1.16</p>
jpayne@68 1760 </div>
jpayne@68 1761 <hr>
jpayne@68 1762 <div class="refsect2">
jpayne@68 1763 <a name="CAIRO-MIME-TYPE-EPS:CAPS"></a><h3>CAIRO_MIME_TYPE_EPS</h3>
jpayne@68 1764 <pre class="programlisting">#define CAIRO_MIME_TYPE_EPS "application/postscript"
jpayne@68 1765 </pre>
jpayne@68 1766 <p>Encapsulated PostScript file.
jpayne@68 1767 <a class="ulink" href="http://wwwimages.adobe.com/content/dam/Adobe/endevnet/postscript/pdfs/5002.EPSF_Spec.pdf" target="_top">Encapsulated PostScript File Format Specification</a></p>
jpayne@68 1768 <p class="since">Since: 1.16</p>
jpayne@68 1769 </div>
jpayne@68 1770 <hr>
jpayne@68 1771 <div class="refsect2">
jpayne@68 1772 <a name="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"></a><h3>CAIRO_MIME_TYPE_EPS_PARAMS</h3>
jpayne@68 1773 <pre class="programlisting">#define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params"
jpayne@68 1774 </pre>
jpayne@68 1775 <p>Embedding parameters Encapsulated PostScript data.
jpayne@68 1776 See <a class="link" href="cairo-PostScript-Surfaces.html#eps" title="Embedding EPS files">Embedding EPS files</a>.</p>
jpayne@68 1777 <p class="since">Since: 1.16</p>
jpayne@68 1778 </div>
jpayne@68 1779 <hr>
jpayne@68 1780 <div class="refsect2">
jpayne@68 1781 <a name="CAIRO-MIME-TYPE-JBIG2:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2</h3>
jpayne@68 1782 <pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2 "application/x-cairo.jbig2"
jpayne@68 1783 </pre>
jpayne@68 1784 <p>Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544).</p>
jpayne@68 1785 <p class="since">Since: 1.14</p>
jpayne@68 1786 </div>
jpayne@68 1787 <hr>
jpayne@68 1788 <div class="refsect2">
jpayne@68 1789 <a name="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2_GLOBAL</h3>
jpayne@68 1790 <pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2_GLOBAL "application/x-cairo.jbig2-global"
jpayne@68 1791 </pre>
jpayne@68 1792 <p>Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544) global segment.</p>
jpayne@68 1793 <p class="since">Since: 1.14</p>
jpayne@68 1794 </div>
jpayne@68 1795 <hr>
jpayne@68 1796 <div class="refsect2">
jpayne@68 1797 <a name="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</h3>
jpayne@68 1798 <pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID "application/x-cairo.jbig2-global-id"
jpayne@68 1799 </pre>
jpayne@68 1800 <p>An unique identifier shared by a JBIG2 global segment and all JBIG2 images
jpayne@68 1801 that depend on the global segment.</p>
jpayne@68 1802 <p class="since">Since: 1.14</p>
jpayne@68 1803 </div>
jpayne@68 1804 <hr>
jpayne@68 1805 <div class="refsect2">
jpayne@68 1806 <a name="CAIRO-MIME-TYPE-JP2:CAPS"></a><h3>CAIRO_MIME_TYPE_JP2</h3>
jpayne@68 1807 <pre class="programlisting">#define CAIRO_MIME_TYPE_JP2 "image/jp2"
jpayne@68 1808 </pre>
jpayne@68 1809 <p>The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1).</p>
jpayne@68 1810 <p class="since">Since: 1.10</p>
jpayne@68 1811 </div>
jpayne@68 1812 <hr>
jpayne@68 1813 <div class="refsect2">
jpayne@68 1814 <a name="CAIRO-MIME-TYPE-JPEG:CAPS"></a><h3>CAIRO_MIME_TYPE_JPEG</h3>
jpayne@68 1815 <pre class="programlisting">#define CAIRO_MIME_TYPE_JPEG "image/jpeg"
jpayne@68 1816 </pre>
jpayne@68 1817 <p>The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1).</p>
jpayne@68 1818 <p class="since">Since: 1.10</p>
jpayne@68 1819 </div>
jpayne@68 1820 <hr>
jpayne@68 1821 <div class="refsect2">
jpayne@68 1822 <a name="CAIRO-MIME-TYPE-PNG:CAPS"></a><h3>CAIRO_MIME_TYPE_PNG</h3>
jpayne@68 1823 <pre class="programlisting">#define CAIRO_MIME_TYPE_PNG "image/png"
jpayne@68 1824 </pre>
jpayne@68 1825 <p>The Portable Network Graphics image file format (ISO/IEC 15948).</p>
jpayne@68 1826 <p class="since">Since: 1.10</p>
jpayne@68 1827 </div>
jpayne@68 1828 <hr>
jpayne@68 1829 <div class="refsect2">
jpayne@68 1830 <a name="CAIRO-MIME-TYPE-URI:CAPS"></a><h3>CAIRO_MIME_TYPE_URI</h3>
jpayne@68 1831 <pre class="programlisting">#define CAIRO_MIME_TYPE_URI "text/x-uri"
jpayne@68 1832 </pre>
jpayne@68 1833 <p>URI for an image file (unofficial MIME type).</p>
jpayne@68 1834 <p class="since">Since: 1.10</p>
jpayne@68 1835 </div>
jpayne@68 1836 <hr>
jpayne@68 1837 <div class="refsect2">
jpayne@68 1838 <a name="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"></a><h3>CAIRO_MIME_TYPE_UNIQUE_ID</h3>
jpayne@68 1839 <pre class="programlisting">#define CAIRO_MIME_TYPE_UNIQUE_ID "application/x-cairo.uuid"
jpayne@68 1840 </pre>
jpayne@68 1841 <p>Unique identifier for a surface (cairo specific MIME type). All surfaces with
jpayne@68 1842 the same unique identifier will only be embedded once.</p>
jpayne@68 1843 <p class="since">Since: 1.12</p>
jpayne@68 1844 </div>
jpayne@68 1845 <hr>
jpayne@68 1846 <div class="refsect2">
jpayne@68 1847 <a name="cairo-surface-t"></a><h3>cairo_surface_t</h3>
jpayne@68 1848 <pre class="programlisting">typedef struct _cairo_surface cairo_surface_t;
jpayne@68 1849 </pre>
jpayne@68 1850 <p>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> represents an image, either as the destination
jpayne@68 1851 of a drawing operation or as source when drawing onto another
jpayne@68 1852 surface. To draw to 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>, create a cairo context
jpayne@68 1853 with the surface as the target, using <a class="link" href="cairo-cairo-t.html#cairo-create" title="cairo_create ()"><code class="function">cairo_create()</code></a>.</p>
jpayne@68 1854 <p>There are different subtypes of <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for
jpayne@68 1855 different drawing backends; for example, <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create" title="cairo_image_surface_create ()"><code class="function">cairo_image_surface_create()</code></a>
jpayne@68 1856 creates a bitmap image in memory.
jpayne@68 1857 The type of a surface can be queried with <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a>.</p>
jpayne@68 1858 <p>The initial contents of a surface after creation depend upon the manner
jpayne@68 1859 of its creation. If cairo creates the surface and backing storage for
jpayne@68 1860 the user, it will be initially cleared; for example,
jpayne@68 1861 <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create" title="cairo_image_surface_create ()"><code class="function">cairo_image_surface_create()</code></a> and <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a>.
jpayne@68 1862 Alternatively, if the user passes in a reference to some backing storage
jpayne@68 1863 and asks cairo to wrap that in 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>, then the contents are
jpayne@68 1864 not modified; for example, <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data" title="cairo_image_surface_create_for_data ()"><code class="function">cairo_image_surface_create_for_data()</code></a> and
jpayne@68 1865 <a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create" title="cairo_xlib_surface_create ()"><code class="function">cairo_xlib_surface_create()</code></a>.</p>
jpayne@68 1866 <p>Memory management of <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> is done with
jpayne@68 1867 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a> and <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a>.</p>
jpayne@68 1868 <p class="since">Since: 1.0</p>
jpayne@68 1869 </div>
jpayne@68 1870 <hr>
jpayne@68 1871 <div class="refsect2">
jpayne@68 1872 <a name="cairo-content-t"></a><h3>enum cairo_content_t</h3>
jpayne@68 1873 <p><a class="link" href="cairo-cairo-surface-t.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
jpayne@68 1874 contain, whether color information, alpha information (translucence
jpayne@68 1875 vs. opacity), or both.</p>
jpayne@68 1876 <p>Note: The large values here are designed to keep <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a>
jpayne@68 1877 values distinct from <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> values so that the
jpayne@68 1878 implementation can detect the error if users confuse the two types.</p>
jpayne@68 1879 <div class="refsect3">
jpayne@68 1880 <a name="cairo-content-t.members"></a><h4>Members</h4>
jpayne@68 1881 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1882 <colgroup>
jpayne@68 1883 <col width="300px" class="enum_members_name">
jpayne@68 1884 <col class="enum_members_description">
jpayne@68 1885 <col width="200px" class="enum_members_annotations">
jpayne@68 1886 </colgroup>
jpayne@68 1887 <tbody>
jpayne@68 1888 <tr>
jpayne@68 1889 <td class="enum_member_name"><p><a name="CAIRO-CONTENT-COLOR:CAPS"></a>CAIRO_CONTENT_COLOR</p></td>
jpayne@68 1890 <td class="enum_member_description">
jpayne@68 1891 <p>The surface will hold color content only. (Since 1.0)</p>
jpayne@68 1892 </td>
jpayne@68 1893 <td class="enum_member_annotations"> </td>
jpayne@68 1894 </tr>
jpayne@68 1895 <tr>
jpayne@68 1896 <td class="enum_member_name"><p><a name="CAIRO-CONTENT-ALPHA:CAPS"></a>CAIRO_CONTENT_ALPHA</p></td>
jpayne@68 1897 <td class="enum_member_description">
jpayne@68 1898 <p>The surface will hold alpha content only. (Since 1.0)</p>
jpayne@68 1899 </td>
jpayne@68 1900 <td class="enum_member_annotations"> </td>
jpayne@68 1901 </tr>
jpayne@68 1902 <tr>
jpayne@68 1903 <td class="enum_member_name"><p><a name="CAIRO-CONTENT-COLOR-ALPHA:CAPS"></a>CAIRO_CONTENT_COLOR_ALPHA</p></td>
jpayne@68 1904 <td class="enum_member_description">
jpayne@68 1905 <p>The surface will hold color and alpha content. (Since 1.0)</p>
jpayne@68 1906 </td>
jpayne@68 1907 <td class="enum_member_annotations"> </td>
jpayne@68 1908 </tr>
jpayne@68 1909 </tbody>
jpayne@68 1910 </table></div>
jpayne@68 1911 </div>
jpayne@68 1912 <p class="since">Since: 1.0</p>
jpayne@68 1913 </div>
jpayne@68 1914 <hr>
jpayne@68 1915 <div class="refsect2">
jpayne@68 1916 <a name="cairo-surface-type-t"></a><h3>enum cairo_surface_type_t</h3>
jpayne@68 1917 <p><a class="link" href="cairo-cairo-surface-t.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
jpayne@68 1918 surface. The surface types are also known as "backends" or "surface
jpayne@68 1919 backends" within cairo.</p>
jpayne@68 1920 <p>The type of a surface is determined by the function used to create
jpayne@68 1921 it, which will generally be of the form
jpayne@68 1922 <code class="function">cairo_<span class="emphasis"><em>type</em></span>_surface_create()</code>,
jpayne@68 1923 (though see <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a> as well).</p>
jpayne@68 1924 <p>The surface type can be queried with <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a></p>
jpayne@68 1925 <p>The various <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> functions can be used with surfaces of
jpayne@68 1926 any type, but some backends also provide type-specific functions
jpayne@68 1927 that must only be called with a surface of the appropriate
jpayne@68 1928 type. These functions have names that begin with
jpayne@68 1929 <code class="literal">cairo_<span class="emphasis"><em>type</em></span>_surface</code> such as <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-width" title="cairo_image_surface_get_width ()"><code class="function">cairo_image_surface_get_width()</code></a>.</p>
jpayne@68 1930 <p>The behavior of calling a type-specific function with a surface of
jpayne@68 1931 the wrong type is undefined.</p>
jpayne@68 1932 <p>New entries may be added in future versions.</p>
jpayne@68 1933 <div class="refsect3">
jpayne@68 1934 <a name="cairo-surface-type-t.members"></a><h4>Members</h4>
jpayne@68 1935 <div class="informaltable"><table class="informaltable" width="100%" border="0">
jpayne@68 1936 <colgroup>
jpayne@68 1937 <col width="300px" class="enum_members_name">
jpayne@68 1938 <col class="enum_members_description">
jpayne@68 1939 <col width="200px" class="enum_members_annotations">
jpayne@68 1940 </colgroup>
jpayne@68 1941 <tbody>
jpayne@68 1942 <tr>
jpayne@68 1943 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-IMAGE:CAPS"></a>CAIRO_SURFACE_TYPE_IMAGE</p></td>
jpayne@68 1944 <td class="enum_member_description">
jpayne@68 1945 <p>The surface is of type image, since 1.2</p>
jpayne@68 1946 </td>
jpayne@68 1947 <td class="enum_member_annotations"> </td>
jpayne@68 1948 </tr>
jpayne@68 1949 <tr>
jpayne@68 1950 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-PDF:CAPS"></a>CAIRO_SURFACE_TYPE_PDF</p></td>
jpayne@68 1951 <td class="enum_member_description">
jpayne@68 1952 <p>The surface is of type pdf, since 1.2</p>
jpayne@68 1953 </td>
jpayne@68 1954 <td class="enum_member_annotations"> </td>
jpayne@68 1955 </tr>
jpayne@68 1956 <tr>
jpayne@68 1957 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-PS:CAPS"></a>CAIRO_SURFACE_TYPE_PS</p></td>
jpayne@68 1958 <td class="enum_member_description">
jpayne@68 1959 <p>The surface is of type ps, since 1.2</p>
jpayne@68 1960 </td>
jpayne@68 1961 <td class="enum_member_annotations"> </td>
jpayne@68 1962 </tr>
jpayne@68 1963 <tr>
jpayne@68 1964 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-XLIB:CAPS"></a>CAIRO_SURFACE_TYPE_XLIB</p></td>
jpayne@68 1965 <td class="enum_member_description">
jpayne@68 1966 <p>The surface is of type xlib, since 1.2</p>
jpayne@68 1967 </td>
jpayne@68 1968 <td class="enum_member_annotations"> </td>
jpayne@68 1969 </tr>
jpayne@68 1970 <tr>
jpayne@68 1971 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-XCB:CAPS"></a>CAIRO_SURFACE_TYPE_XCB</p></td>
jpayne@68 1972 <td class="enum_member_description">
jpayne@68 1973 <p>The surface is of type xcb, since 1.2</p>
jpayne@68 1974 </td>
jpayne@68 1975 <td class="enum_member_annotations"> </td>
jpayne@68 1976 </tr>
jpayne@68 1977 <tr>
jpayne@68 1978 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-GLITZ:CAPS"></a>CAIRO_SURFACE_TYPE_GLITZ</p></td>
jpayne@68 1979 <td class="enum_member_description">
jpayne@68 1980 <p>The surface is of type glitz, since 1.2</p>
jpayne@68 1981 </td>
jpayne@68 1982 <td class="enum_member_annotations"> </td>
jpayne@68 1983 </tr>
jpayne@68 1984 <tr>
jpayne@68 1985 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-QUARTZ:CAPS"></a>CAIRO_SURFACE_TYPE_QUARTZ</p></td>
jpayne@68 1986 <td class="enum_member_description">
jpayne@68 1987 <p>The surface is of type quartz, since 1.2</p>
jpayne@68 1988 </td>
jpayne@68 1989 <td class="enum_member_annotations"> </td>
jpayne@68 1990 </tr>
jpayne@68 1991 <tr>
jpayne@68 1992 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-WIN32:CAPS"></a>CAIRO_SURFACE_TYPE_WIN32</p></td>
jpayne@68 1993 <td class="enum_member_description">
jpayne@68 1994 <p>The surface is of type win32, since 1.2</p>
jpayne@68 1995 </td>
jpayne@68 1996 <td class="enum_member_annotations"> </td>
jpayne@68 1997 </tr>
jpayne@68 1998 <tr>
jpayne@68 1999 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-BEOS:CAPS"></a>CAIRO_SURFACE_TYPE_BEOS</p></td>
jpayne@68 2000 <td class="enum_member_description">
jpayne@68 2001 <p>The surface is of type beos, since 1.2</p>
jpayne@68 2002 </td>
jpayne@68 2003 <td class="enum_member_annotations"> </td>
jpayne@68 2004 </tr>
jpayne@68 2005 <tr>
jpayne@68 2006 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-DIRECTFB:CAPS"></a>CAIRO_SURFACE_TYPE_DIRECTFB</p></td>
jpayne@68 2007 <td class="enum_member_description">
jpayne@68 2008 <p>The surface is of type directfb, since 1.2</p>
jpayne@68 2009 </td>
jpayne@68 2010 <td class="enum_member_annotations"> </td>
jpayne@68 2011 </tr>
jpayne@68 2012 <tr>
jpayne@68 2013 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SVG:CAPS"></a>CAIRO_SURFACE_TYPE_SVG</p></td>
jpayne@68 2014 <td class="enum_member_description">
jpayne@68 2015 <p>The surface is of type svg, since 1.2</p>
jpayne@68 2016 </td>
jpayne@68 2017 <td class="enum_member_annotations"> </td>
jpayne@68 2018 </tr>
jpayne@68 2019 <tr>
jpayne@68 2020 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-OS2:CAPS"></a>CAIRO_SURFACE_TYPE_OS2</p></td>
jpayne@68 2021 <td class="enum_member_description">
jpayne@68 2022 <p>The surface is of type os2, since 1.4</p>
jpayne@68 2023 </td>
jpayne@68 2024 <td class="enum_member_annotations"> </td>
jpayne@68 2025 </tr>
jpayne@68 2026 <tr>
jpayne@68 2027 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"></a>CAIRO_SURFACE_TYPE_WIN32_PRINTING</p></td>
jpayne@68 2028 <td class="enum_member_description">
jpayne@68 2029 <p>The surface is a win32 printing surface, since 1.6</p>
jpayne@68 2030 </td>
jpayne@68 2031 <td class="enum_member_annotations"> </td>
jpayne@68 2032 </tr>
jpayne@68 2033 <tr>
jpayne@68 2034 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-QUARTZ-IMAGE:CAPS"></a>CAIRO_SURFACE_TYPE_QUARTZ_IMAGE</p></td>
jpayne@68 2035 <td class="enum_member_description">
jpayne@68 2036 <p>The surface is of type quartz_image, since 1.6</p>
jpayne@68 2037 </td>
jpayne@68 2038 <td class="enum_member_annotations"> </td>
jpayne@68 2039 </tr>
jpayne@68 2040 <tr>
jpayne@68 2041 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SCRIPT:CAPS"></a>CAIRO_SURFACE_TYPE_SCRIPT</p></td>
jpayne@68 2042 <td class="enum_member_description">
jpayne@68 2043 <p>The surface is of type script, since 1.10</p>
jpayne@68 2044 </td>
jpayne@68 2045 <td class="enum_member_annotations"> </td>
jpayne@68 2046 </tr>
jpayne@68 2047 <tr>
jpayne@68 2048 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-QT:CAPS"></a>CAIRO_SURFACE_TYPE_QT</p></td>
jpayne@68 2049 <td class="enum_member_description">
jpayne@68 2050 <p>The surface is of type Qt, since 1.10</p>
jpayne@68 2051 </td>
jpayne@68 2052 <td class="enum_member_annotations"> </td>
jpayne@68 2053 </tr>
jpayne@68 2054 <tr>
jpayne@68 2055 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-RECORDING:CAPS"></a>CAIRO_SURFACE_TYPE_RECORDING</p></td>
jpayne@68 2056 <td class="enum_member_description">
jpayne@68 2057 <p>The surface is of type recording, since 1.10</p>
jpayne@68 2058 </td>
jpayne@68 2059 <td class="enum_member_annotations"> </td>
jpayne@68 2060 </tr>
jpayne@68 2061 <tr>
jpayne@68 2062 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-VG:CAPS"></a>CAIRO_SURFACE_TYPE_VG</p></td>
jpayne@68 2063 <td class="enum_member_description">
jpayne@68 2064 <p>The surface is a OpenVG surface, since 1.10</p>
jpayne@68 2065 </td>
jpayne@68 2066 <td class="enum_member_annotations"> </td>
jpayne@68 2067 </tr>
jpayne@68 2068 <tr>
jpayne@68 2069 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-GL:CAPS"></a>CAIRO_SURFACE_TYPE_GL</p></td>
jpayne@68 2070 <td class="enum_member_description">
jpayne@68 2071 <p>The surface is of type OpenGL, since 1.10</p>
jpayne@68 2072 </td>
jpayne@68 2073 <td class="enum_member_annotations"> </td>
jpayne@68 2074 </tr>
jpayne@68 2075 <tr>
jpayne@68 2076 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-DRM:CAPS"></a>CAIRO_SURFACE_TYPE_DRM</p></td>
jpayne@68 2077 <td class="enum_member_description">
jpayne@68 2078 <p>The surface is of type Direct Render Manager, since 1.10</p>
jpayne@68 2079 </td>
jpayne@68 2080 <td class="enum_member_annotations"> </td>
jpayne@68 2081 </tr>
jpayne@68 2082 <tr>
jpayne@68 2083 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-TEE:CAPS"></a>CAIRO_SURFACE_TYPE_TEE</p></td>
jpayne@68 2084 <td class="enum_member_description">
jpayne@68 2085 <p>The surface is of type 'tee' (a multiplexing surface), since 1.10</p>
jpayne@68 2086 </td>
jpayne@68 2087 <td class="enum_member_annotations"> </td>
jpayne@68 2088 </tr>
jpayne@68 2089 <tr>
jpayne@68 2090 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-XML:CAPS"></a>CAIRO_SURFACE_TYPE_XML</p></td>
jpayne@68 2091 <td class="enum_member_description">
jpayne@68 2092 <p>The surface is of type XML (for debugging), since 1.10</p>
jpayne@68 2093 </td>
jpayne@68 2094 <td class="enum_member_annotations"> </td>
jpayne@68 2095 </tr>
jpayne@68 2096 <tr>
jpayne@68 2097 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SKIA:CAPS"></a>CAIRO_SURFACE_TYPE_SKIA</p></td>
jpayne@68 2098 <td> </td>
jpayne@68 2099 <td> </td>
jpayne@68 2100 </tr>
jpayne@68 2101 <tr>
jpayne@68 2102 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SUBSURFACE:CAPS"></a>CAIRO_SURFACE_TYPE_SUBSURFACE</p></td>
jpayne@68 2103 <td class="enum_member_description">
jpayne@68 2104 <p>The surface is a subsurface created with
jpayne@68 2105 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle" title="cairo_surface_create_for_rectangle ()"><code class="function">cairo_surface_create_for_rectangle()</code></a>, since 1.10</p>
jpayne@68 2106 </td>
jpayne@68 2107 <td class="enum_member_annotations"> </td>
jpayne@68 2108 </tr>
jpayne@68 2109 <tr>
jpayne@68 2110 <td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-COGL:CAPS"></a>CAIRO_SURFACE_TYPE_COGL</p></td>
jpayne@68 2111 <td class="enum_member_description">
jpayne@68 2112 <p>This surface is of type Cogl, since 1.12</p>
jpayne@68 2113 </td>
jpayne@68 2114 <td class="enum_member_annotations"> </td>
jpayne@68 2115 </tr>
jpayne@68 2116 </tbody>
jpayne@68 2117 </table></div>
jpayne@68 2118 </div>
jpayne@68 2119 <p class="since">Since: 1.2</p>
jpayne@68 2120 </div>
jpayne@68 2121 </div>
jpayne@68 2122 <div class="refsect1">
jpayne@68 2123 <a name="cairo-cairo-surface-t.see-also"></a><h2>See Also</h2>
jpayne@68 2124 <p><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>, <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p>
jpayne@68 2125 </div>
jpayne@68 2126 </div>
jpayne@68 2127 <div class="footer">
jpayne@68 2128 <hr>Generated by GTK-Doc V1.27</div>
jpayne@68 2129 </body>
jpayne@68 2130 </html>