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

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 68:5028fdace37b
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>cairo_device_t: Cairo: A Vector Graphics Library</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
8 <link rel="up" href="cairo-surfaces.html" title="Surfaces">
9 <link rel="prev" href="cairo-surfaces.html" title="Surfaces">
10 <link rel="next" href="cairo-cairo-surface-t.html" title="cairo_surface_t">
11 <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts">
17 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18 <a href="#cairo-cairo-device-t.description" class="shortcut">Description</a></span>
19 </td>
20 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21 <td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22 <td><a accesskey="p" href="cairo-surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="cairo-cairo-surface-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24 </tr></table>
25 <div class="refentry">
26 <a name="cairo-cairo-device-t"></a><div class="titlepage"></div>
27 <div class="refnamediv"><table width="100%"><tr>
28 <td valign="top">
29 <h2><span class="refentrytitle"><a name="cairo-cairo-device-t.top_of_page"></a>cairo_device_t</span></h2>
30 <p>cairo_device_t — interface to underlying rendering system</p>
31 </td>
32 <td class="gallery_image" valign="top" align="right"></td>
33 </tr></table></div>
34 <div class="refsect1">
35 <a name="cairo-cairo-device-t.functions"></a><h2>Functions</h2>
36 <div class="informaltable"><table class="informaltable" width="100%" border="0">
37 <colgroup>
38 <col width="150px" class="functions_return">
39 <col class="functions_name">
40 </colgroup>
41 <tbody>
42 <tr>
43 <td class="function_type">
44 <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
45 </td>
46 <td class="function_name">
47 <a class="link" href="cairo-cairo-device-t.html#cairo-device-reference" title="cairo_device_reference ()">cairo_device_reference</a> <span class="c_punctuation">()</span>
48 </td>
49 </tr>
50 <tr>
51 <td class="function_type">
52 <span class="returnvalue">void</span>
53 </td>
54 <td class="function_name">
55 <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()">cairo_device_destroy</a> <span class="c_punctuation">()</span>
56 </td>
57 </tr>
58 <tr>
59 <td class="function_type">
60 <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
61 </td>
62 <td class="function_name">
63 <a class="link" href="cairo-cairo-device-t.html#cairo-device-status" title="cairo_device_status ()">cairo_device_status</a> <span class="c_punctuation">()</span>
64 </td>
65 </tr>
66 <tr>
67 <td class="function_type">
68 <span class="returnvalue">void</span>
69 </td>
70 <td class="function_name">
71 <a class="link" href="cairo-cairo-device-t.html#cairo-device-finish" title="cairo_device_finish ()">cairo_device_finish</a> <span class="c_punctuation">()</span>
72 </td>
73 </tr>
74 <tr>
75 <td class="function_type">
76 <span class="returnvalue">void</span>
77 </td>
78 <td class="function_name">
79 <a class="link" href="cairo-cairo-device-t.html#cairo-device-flush" title="cairo_device_flush ()">cairo_device_flush</a> <span class="c_punctuation">()</span>
80 </td>
81 </tr>
82 <tr>
83 <td class="function_type">
84 <a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="returnvalue">cairo_device_type_t</span></a>
85 </td>
86 <td class="function_name">
87 <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-type" title="cairo_device_get_type ()">cairo_device_get_type</a> <span class="c_punctuation">()</span>
88 </td>
89 </tr>
90 <tr>
91 <td class="function_type">unsigned <span class="returnvalue">int</span>
92 </td>
93 <td class="function_name">
94 <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-reference-count" title="cairo_device_get_reference_count ()">cairo_device_get_reference_count</a> <span class="c_punctuation">()</span>
95 </td>
96 </tr>
97 <tr>
98 <td class="function_type">
99 <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
100 </td>
101 <td class="function_name">
102 <a class="link" href="cairo-cairo-device-t.html#cairo-device-set-user-data" title="cairo_device_set_user_data ()">cairo_device_set_user_data</a> <span class="c_punctuation">()</span>
103 </td>
104 </tr>
105 <tr>
106 <td class="function_type">
107 <span class="returnvalue">void</span> *
108 </td>
109 <td class="function_name">
110 <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-user-data" title="cairo_device_get_user_data ()">cairo_device_get_user_data</a> <span class="c_punctuation">()</span>
111 </td>
112 </tr>
113 <tr>
114 <td class="function_type">
115 <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
116 </td>
117 <td class="function_name">
118 <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()">cairo_device_acquire</a> <span class="c_punctuation">()</span>
119 </td>
120 </tr>
121 <tr>
122 <td class="function_type">
123 <span class="returnvalue">void</span>
124 </td>
125 <td class="function_name">
126 <a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()">cairo_device_release</a> <span class="c_punctuation">()</span>
127 </td>
128 </tr>
129 <tr>
130 <td class="function_type">
131 <span class="returnvalue">double</span>
132 </td>
133 <td class="function_name">
134 <a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-elapsed" title="cairo_device_observer_elapsed ()">cairo_device_observer_elapsed</a> <span class="c_punctuation">()</span>
135 </td>
136 </tr>
137 <tr>
138 <td class="function_type">
139 <span class="returnvalue">double</span>
140 </td>
141 <td class="function_name">
142 <a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-fill-elapsed" title="cairo_device_observer_fill_elapsed ()">cairo_device_observer_fill_elapsed</a> <span class="c_punctuation">()</span>
143 </td>
144 </tr>
145 <tr>
146 <td class="function_type">
147 <span class="returnvalue">double</span>
148 </td>
149 <td class="function_name">
150 <a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-glyphs-elapsed" title="cairo_device_observer_glyphs_elapsed ()">cairo_device_observer_glyphs_elapsed</a> <span class="c_punctuation">()</span>
151 </td>
152 </tr>
153 <tr>
154 <td class="function_type">
155 <span class="returnvalue">double</span>
156 </td>
157 <td class="function_name">
158 <a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-mask-elapsed" title="cairo_device_observer_mask_elapsed ()">cairo_device_observer_mask_elapsed</a> <span class="c_punctuation">()</span>
159 </td>
160 </tr>
161 <tr>
162 <td class="function_type">
163 <span class="returnvalue">double</span>
164 </td>
165 <td class="function_name">
166 <a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-paint-elapsed" title="cairo_device_observer_paint_elapsed ()">cairo_device_observer_paint_elapsed</a> <span class="c_punctuation">()</span>
167 </td>
168 </tr>
169 <tr>
170 <td class="function_type">
171 <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
172 </td>
173 <td class="function_name">
174 <a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-print" title="cairo_device_observer_print ()">cairo_device_observer_print</a> <span class="c_punctuation">()</span>
175 </td>
176 </tr>
177 <tr>
178 <td class="function_type">
179 <span class="returnvalue">double</span>
180 </td>
181 <td class="function_name">
182 <a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-stroke-elapsed" title="cairo_device_observer_stroke_elapsed ()">cairo_device_observer_stroke_elapsed</a> <span class="c_punctuation">()</span>
183 </td>
184 </tr>
185 </tbody>
186 </table></div>
187 </div>
188 <div class="refsect1">
189 <a name="cairo-cairo-device-t.other"></a><h2>Types and Values</h2>
190 <div class="informaltable"><table class="informaltable" width="100%" border="0">
191 <colgroup>
192 <col width="150px" class="name">
193 <col class="description">
194 </colgroup>
195 <tbody>
196 <tr>
197 <td class="typedef_keyword">typedef</td>
198 <td class="function_name"><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t">cairo_device_t</a></td>
199 </tr>
200 <tr>
201 <td class="datatype_keyword">enum</td>
202 <td class="function_name"><a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t">cairo_device_type_t</a></td>
203 </tr>
204 </tbody>
205 </table></div>
206 </div>
207 <div class="refsect1">
208 <a name="cairo-cairo-device-t.description"></a><h2>Description</h2>
209 <p>Devices are the abstraction Cairo employs for the rendering system
210 used by 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>. You can get the device of a surface using
211 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device" title="cairo_surface_get_device ()"><code class="function">cairo_surface_get_device()</code></a>.</p>
212 <p>Devices are created using custom functions specific to the rendering
213 system you want to use. See the documentation for the surface types
214 for those functions.</p>
215 <p>An important function that devices fulfill is sharing access to the
216 rendering system between Cairo and your application. If you want to
217 access a device directly that you used to draw to with Cairo, you must
218 first call <a class="link" href="cairo-cairo-device-t.html#cairo-device-flush" title="cairo_device_flush ()"><code class="function">cairo_device_flush()</code></a> to ensure that Cairo finishes all
219 operations on the device and resets it to a clean state.</p>
220 <p>Cairo also provides the functions <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a> and
221 <a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()"><code class="function">cairo_device_release()</code></a> to synchronize access to the rendering system
222 in a multithreaded environment. This is done internally, but can also
223 be used by applications.</p>
224 <p>Putting this all together, a function that works with devices should
225 look something like this:</p>
226 <div class="informalexample">
227 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
228 <tbody>
229 <tr>
230 <td class="listing_lines" align="right"><pre>1
231 2
232 3
233 4
234 5
235 6
236 7
237 8
238 9
239 10
240 11
241 12
242 13
243 14
244 15
245 16
246 17
247 18
248 19
249 20</pre></td>
250 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span>
251 <span class="function">my_device_modifying_function</span> <span class="gtkdoc opt">(</span>cairo_device_t <span class="gtkdoc opt">*</span>device<span class="gtkdoc opt">)</span>
252 <span class="gtkdoc opt">{</span>
253 cairo_status_t status<span class="gtkdoc opt">;</span>
254
255 <span class="gtkdoc slc">// Ensure the device is properly reset</span>
256 <span class="function"><a href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
257 <span class="gtkdoc slc">// Try to acquire the device</span>
258 status <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
259 <span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">!=</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
260 <span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;Failed to acquire the device: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="cairo-Error-handling.html#cairo-status-to-string">cairo_status_to_string</a></span> <span class="gtkdoc opt">(</span>status<span class="gtkdoc opt">));</span>
261 <span class="keyword">return</span><span class="gtkdoc opt">;</span>
262 <span class="gtkdoc opt">}</span>
263
264 <span class="gtkdoc slc">// Do the custom operations on the device here.</span>
265 <span class="gtkdoc slc">// But do not call any Cairo functions that might acquire devices.</span>
266
267 <span class="gtkdoc slc">// Release the device when done.</span>
268 <span class="function"><a href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
269 <span class="gtkdoc opt">}</span></pre></td>
270 </tr>
271 </tbody>
272 </table>
273 </div>
274
275 <div class="note"><p>Please refer to the documentation of each backend for
276 additional usage requirements, guarantees provided, and
277 interactions with existing surface API of the device functions for
278 surfaces of that type.
279 </p></div>
280 </div>
281 <div class="refsect1">
282 <a name="cairo-cairo-device-t.functions_details"></a><h2>Functions</h2>
283 <div class="refsect2">
284 <a name="cairo-device-reference"></a><h3>cairo_device_reference ()</h3>
285 <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> *
286 cairo_device_reference (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
287 <p>Increases the reference count on <em class="parameter"><code>device</code></em>
288 by one. This prevents
289 <em class="parameter"><code>device</code></em>
290 from being destroyed until a matching call to
291 <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a> is made.</p>
292 <p>Use <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-reference-count" title="cairo_device_get_reference_count ()"><code class="function">cairo_device_get_reference_count()</code></a> to get the number of references
293 to a <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>
294 <div class="refsect3">
295 <a name="cairo-device-reference.parameters"></a><h4>Parameters</h4>
296 <div class="informaltable"><table class="informaltable" width="100%" border="0">
297 <colgroup>
298 <col width="150px" class="parameters_name">
299 <col class="parameters_description">
300 <col width="200px" class="parameters_annotations">
301 </colgroup>
302 <tbody><tr>
303 <td class="parameter_name"><p>device</p></td>
304 <td class="parameter_description"><p>a <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></td>
305 <td class="parameter_annotations"> </td>
306 </tr></tbody>
307 </table></div>
308 </div>
309 <div class="refsect3">
310 <a name="cairo-device-reference.returns"></a><h4>Returns</h4>
311 <p> the referenced <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>
312 </div>
313 <p class="since">Since: 1.10</p>
314 </div>
315 <hr>
316 <div class="refsect2">
317 <a name="cairo-device-destroy"></a><h3>cairo_device_destroy ()</h3>
318 <pre class="programlisting"><span class="returnvalue">void</span>
319 cairo_device_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
320 <p>Decreases the reference count on <em class="parameter"><code>device</code></em>
321 by one. If the result is
322 zero, then <em class="parameter"><code>device</code></em>
323 and all associated resources are freed. See
324 <a class="link" href="cairo-cairo-device-t.html#cairo-device-reference" title="cairo_device_reference ()"><code class="function">cairo_device_reference()</code></a>.</p>
325 <p>This function may acquire devices if the last reference was dropped.</p>
326 <div class="refsect3">
327 <a name="cairo-device-destroy.parameters"></a><h4>Parameters</h4>
328 <div class="informaltable"><table class="informaltable" width="100%" border="0">
329 <colgroup>
330 <col width="150px" class="parameters_name">
331 <col class="parameters_description">
332 <col width="200px" class="parameters_annotations">
333 </colgroup>
334 <tbody><tr>
335 <td class="parameter_name"><p>device</p></td>
336 <td class="parameter_description"><p>a <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></td>
337 <td class="parameter_annotations"> </td>
338 </tr></tbody>
339 </table></div>
340 </div>
341 <p class="since">Since: 1.10</p>
342 </div>
343 <hr>
344 <div class="refsect2">
345 <a name="cairo-device-status"></a><h3>cairo_device_status ()</h3>
346 <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>
347 cairo_device_status (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
348 <p>Checks whether an error has previously occurred for this
349 device.</p>
350 <div class="refsect3">
351 <a name="cairo-device-status.parameters"></a><h4>Parameters</h4>
352 <div class="informaltable"><table class="informaltable" width="100%" border="0">
353 <colgroup>
354 <col width="150px" class="parameters_name">
355 <col class="parameters_description">
356 <col width="200px" class="parameters_annotations">
357 </colgroup>
358 <tbody><tr>
359 <td class="parameter_name"><p>device</p></td>
360 <td class="parameter_description"><p>a <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></td>
361 <td class="parameter_annotations"> </td>
362 </tr></tbody>
363 </table></div>
364 </div>
365 <div class="refsect3">
366 <a name="cairo-device-status.returns"></a><h4>Returns</h4>
367 <p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> on success or an error code if
368 the device is in an error state.</p>
369 </div>
370 <p class="since">Since: 1.10</p>
371 </div>
372 <hr>
373 <div class="refsect2">
374 <a name="cairo-device-finish"></a><h3>cairo_device_finish ()</h3>
375 <pre class="programlisting"><span class="returnvalue">void</span>
376 cairo_device_finish (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
377 <p>This function finishes the device and drops all references to
378 external resources. All surfaces, fonts and other objects created
379 for this <em class="parameter"><code>device</code></em>
380 will be finished, too.
381 Further operations on the <em class="parameter"><code>device</code></em>
382 will not affect the <em class="parameter"><code>device</code></em>
383 but
384 will instead trigger a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-DEVICE-FINISHED:CAPS"><code class="literal">CAIRO_STATUS_DEVICE_FINISHED</code></a> error.</p>
385 <p>When the last call to <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a> decreases the
386 reference count to zero, cairo will call <a class="link" href="cairo-cairo-device-t.html#cairo-device-finish" title="cairo_device_finish ()"><code class="function">cairo_device_finish()</code></a> if
387 it hasn't been called already, before freeing the resources
388 associated with the device.</p>
389 <p>This function may acquire devices.</p>
390 <div class="refsect3">
391 <a name="cairo-device-finish.parameters"></a><h4>Parameters</h4>
392 <div class="informaltable"><table class="informaltable" width="100%" border="0">
393 <colgroup>
394 <col width="150px" class="parameters_name">
395 <col class="parameters_description">
396 <col width="200px" class="parameters_annotations">
397 </colgroup>
398 <tbody><tr>
399 <td class="parameter_name"><p>device</p></td>
400 <td class="parameter_description"><p>the <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> to finish</p></td>
401 <td class="parameter_annotations"> </td>
402 </tr></tbody>
403 </table></div>
404 </div>
405 <p class="since">Since: 1.10</p>
406 </div>
407 <hr>
408 <div class="refsect2">
409 <a name="cairo-device-flush"></a><h3>cairo_device_flush ()</h3>
410 <pre class="programlisting"><span class="returnvalue">void</span>
411 cairo_device_flush (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
412 <p>Finish any pending operations for the device and also restore any
413 temporary modifications cairo has made to the device's state.
414 This function must be called before switching from using the
415 device with Cairo to operating on it directly with native APIs.
416 If the device doesn't support direct access, then this function
417 does nothing.</p>
418 <p>This function may acquire devices.</p>
419 <div class="refsect3">
420 <a name="cairo-device-flush.parameters"></a><h4>Parameters</h4>
421 <div class="informaltable"><table class="informaltable" width="100%" border="0">
422 <colgroup>
423 <col width="150px" class="parameters_name">
424 <col class="parameters_description">
425 <col width="200px" class="parameters_annotations">
426 </colgroup>
427 <tbody><tr>
428 <td class="parameter_name"><p>device</p></td>
429 <td class="parameter_description"><p>a <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></td>
430 <td class="parameter_annotations"> </td>
431 </tr></tbody>
432 </table></div>
433 </div>
434 <p class="since">Since: 1.10</p>
435 </div>
436 <hr>
437 <div class="refsect2">
438 <a name="cairo-device-get-type"></a><h3>cairo_device_get_type ()</h3>
439 <pre class="programlisting"><a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="returnvalue">cairo_device_type_t</span></a>
440 cairo_device_get_type (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
441 <p>This function returns the type of the device. See <a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="type">cairo_device_type_t</span></a>
442 for available types.</p>
443 <div class="refsect3">
444 <a name="cairo-device-get-type.parameters"></a><h4>Parameters</h4>
445 <div class="informaltable"><table class="informaltable" width="100%" border="0">
446 <colgroup>
447 <col width="150px" class="parameters_name">
448 <col class="parameters_description">
449 <col width="200px" class="parameters_annotations">
450 </colgroup>
451 <tbody><tr>
452 <td class="parameter_name"><p>device</p></td>
453 <td class="parameter_description"><p>a <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></td>
454 <td class="parameter_annotations"> </td>
455 </tr></tbody>
456 </table></div>
457 </div>
458 <div class="refsect3">
459 <a name="cairo-device-get-type.returns"></a><h4>Returns</h4>
460 <p> The type of <em class="parameter"><code>device</code></em>
461 .</p>
462 </div>
463 <p class="since">Since: 1.10</p>
464 </div>
465 <hr>
466 <div class="refsect2">
467 <a name="cairo-device-get-reference-count"></a><h3>cairo_device_get_reference_count ()</h3>
468 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
469 cairo_device_get_reference_count (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
470 <p>Returns the current reference count of <em class="parameter"><code>device</code></em>
471 .</p>
472 <div class="refsect3">
473 <a name="cairo-device-get-reference-count.parameters"></a><h4>Parameters</h4>
474 <div class="informaltable"><table class="informaltable" width="100%" border="0">
475 <colgroup>
476 <col width="150px" class="parameters_name">
477 <col class="parameters_description">
478 <col width="200px" class="parameters_annotations">
479 </colgroup>
480 <tbody><tr>
481 <td class="parameter_name"><p>device</p></td>
482 <td class="parameter_description"><p>a <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></td>
483 <td class="parameter_annotations"> </td>
484 </tr></tbody>
485 </table></div>
486 </div>
487 <div class="refsect3">
488 <a name="cairo-device-get-reference-count.returns"></a><h4>Returns</h4>
489 <p> the current reference count of <em class="parameter"><code>device</code></em>
490 . If the
491 object is a nil object, 0 will be returned.</p>
492 </div>
493 <p class="since">Since: 1.10</p>
494 </div>
495 <hr>
496 <div class="refsect2">
497 <a name="cairo-device-set-user-data"></a><h3>cairo_device_set_user_data ()</h3>
498 <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>
499 cairo_device_set_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
500 <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>,
501 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
502 <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>
503 <p>Attach user data to <em class="parameter"><code>device</code></em>
504 . To remove user data from a surface,
505 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>
506 for <em class="parameter"><code>data</code></em>
507 .</p>
508 <div class="refsect3">
509 <a name="cairo-device-set-user-data.parameters"></a><h4>Parameters</h4>
510 <div class="informaltable"><table class="informaltable" width="100%" border="0">
511 <colgroup>
512 <col width="150px" class="parameters_name">
513 <col class="parameters_description">
514 <col width="200px" class="parameters_annotations">
515 </colgroup>
516 <tbody>
517 <tr>
518 <td class="parameter_name"><p>device</p></td>
519 <td class="parameter_description"><p>a <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></td>
520 <td class="parameter_annotations"> </td>
521 </tr>
522 <tr>
523 <td class="parameter_name"><p>key</p></td>
524 <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>
525 <td class="parameter_annotations"> </td>
526 </tr>
527 <tr>
528 <td class="parameter_name"><p>user_data</p></td>
529 <td class="parameter_description"><p>the user data to attach to the <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></td>
530 <td class="parameter_annotations"> </td>
531 </tr>
532 <tr>
533 <td class="parameter_name"><p>destroy</p></td>
534 <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
535 <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is destroyed or when new user data is attached using the
536 same key.</p></td>
537 <td class="parameter_annotations"> </td>
538 </tr>
539 </tbody>
540 </table></div>
541 </div>
542 <div class="refsect3">
543 <a name="cairo-device-set-user-data.returns"></a><h4>Returns</h4>
544 <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
545 slot could not be allocated for the user data.</p>
546 </div>
547 <p class="since">Since: 1.10</p>
548 </div>
549 <hr>
550 <div class="refsect2">
551 <a name="cairo-device-get-user-data"></a><h3>cairo_device_get_user_data ()</h3>
552 <pre class="programlisting"><span class="returnvalue">void</span> *
553 cairo_device_get_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
554 <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>
555 <p>Return user data previously attached to <em class="parameter"><code>device</code></em>
556 using the
557 specified key. If no user data has been attached with the given
558 key this function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
559 <div class="refsect3">
560 <a name="cairo-device-get-user-data.parameters"></a><h4>Parameters</h4>
561 <div class="informaltable"><table class="informaltable" width="100%" border="0">
562 <colgroup>
563 <col width="150px" class="parameters_name">
564 <col class="parameters_description">
565 <col width="200px" class="parameters_annotations">
566 </colgroup>
567 <tbody>
568 <tr>
569 <td class="parameter_name"><p>device</p></td>
570 <td class="parameter_description"><p>a <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></td>
571 <td class="parameter_annotations"> </td>
572 </tr>
573 <tr>
574 <td class="parameter_name"><p>key</p></td>
575 <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
576 attached to</p></td>
577 <td class="parameter_annotations"> </td>
578 </tr>
579 </tbody>
580 </table></div>
581 </div>
582 <div class="refsect3">
583 <a name="cairo-device-get-user-data.returns"></a><h4>Returns</h4>
584 <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>
585 </div>
586 <p class="since">Since: 1.10</p>
587 </div>
588 <hr>
589 <div class="refsect2">
590 <a name="cairo-device-acquire"></a><h3>cairo_device_acquire ()</h3>
591 <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>
592 cairo_device_acquire (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
593 <p>Acquires the <em class="parameter"><code>device</code></em>
594 for the current thread. This function will block
595 until no other thread has acquired the device.</p>
596 <p>If the return value is <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, you successfully acquired the
597 device. From now on your thread owns the device and no other thread will be
598 able to acquire it until a matching call to <a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()"><code class="function">cairo_device_release()</code></a>. It is
599 allowed to recursively acquire the device multiple times from the same
600 thread.</p>
601 <div class="note"><p>You must never acquire two different devices at the same time
602 unless this is explicitly allowed. Otherwise the possibility of deadlocks
603 exist.
604
605 As various Cairo functions can acquire devices when called, these functions
606 may also cause deadlocks when you call them with an acquired device. So you
607 must not have a device acquired when calling them. These functions are
608 marked in the documentation.
609 </p></div>
610 <div class="refsect3">
611 <a name="cairo-device-acquire.parameters"></a><h4>Parameters</h4>
612 <div class="informaltable"><table class="informaltable" width="100%" border="0">
613 <colgroup>
614 <col width="150px" class="parameters_name">
615 <col class="parameters_description">
616 <col width="200px" class="parameters_annotations">
617 </colgroup>
618 <tbody><tr>
619 <td class="parameter_name"><p>device</p></td>
620 <td class="parameter_description"><p>a <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></td>
621 <td class="parameter_annotations"> </td>
622 </tr></tbody>
623 </table></div>
624 </div>
625 <div class="refsect3">
626 <a name="cairo-device-acquire.returns"></a><h4>Returns</h4>
627 <p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> on success or an error code if
628 the device is in an error state and could not be
629 acquired. After a successful call to <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a>,
630 a matching call to <a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()"><code class="function">cairo_device_release()</code></a> is required.</p>
631 </div>
632 <p class="since">Since: 1.10</p>
633 </div>
634 <hr>
635 <div class="refsect2">
636 <a name="cairo-device-release"></a><h3>cairo_device_release ()</h3>
637 <pre class="programlisting"><span class="returnvalue">void</span>
638 cairo_device_release (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
639 <p>Releases a <em class="parameter"><code>device</code></em>
640 previously acquired using <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a>. See
641 that function for details.</p>
642 <div class="refsect3">
643 <a name="cairo-device-release.parameters"></a><h4>Parameters</h4>
644 <div class="informaltable"><table class="informaltable" width="100%" border="0">
645 <colgroup>
646 <col width="150px" class="parameters_name">
647 <col class="parameters_description">
648 <col width="200px" class="parameters_annotations">
649 </colgroup>
650 <tbody><tr>
651 <td class="parameter_name"><p>device</p></td>
652 <td class="parameter_description"><p>a <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></td>
653 <td class="parameter_annotations"> </td>
654 </tr></tbody>
655 </table></div>
656 </div>
657 <p class="since">Since: 1.10</p>
658 </div>
659 <hr>
660 <div class="refsect2">
661 <a name="cairo-device-observer-elapsed"></a><h3>cairo_device_observer_elapsed ()</h3>
662 <pre class="programlisting"><span class="returnvalue">double</span>
663 cairo_device_observer_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
664 </div>
665 <hr>
666 <div class="refsect2">
667 <a name="cairo-device-observer-fill-elapsed"></a><h3>cairo_device_observer_fill_elapsed ()</h3>
668 <pre class="programlisting"><span class="returnvalue">double</span>
669 cairo_device_observer_fill_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
670 </div>
671 <hr>
672 <div class="refsect2">
673 <a name="cairo-device-observer-glyphs-elapsed"></a><h3>cairo_device_observer_glyphs_elapsed ()</h3>
674 <pre class="programlisting"><span class="returnvalue">double</span>
675 cairo_device_observer_glyphs_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
676 </div>
677 <hr>
678 <div class="refsect2">
679 <a name="cairo-device-observer-mask-elapsed"></a><h3>cairo_device_observer_mask_elapsed ()</h3>
680 <pre class="programlisting"><span class="returnvalue">double</span>
681 cairo_device_observer_mask_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
682 </div>
683 <hr>
684 <div class="refsect2">
685 <a name="cairo-device-observer-paint-elapsed"></a><h3>cairo_device_observer_paint_elapsed ()</h3>
686 <pre class="programlisting"><span class="returnvalue">double</span>
687 cairo_device_observer_paint_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
688 </div>
689 <hr>
690 <div class="refsect2">
691 <a name="cairo-device-observer-print"></a><h3>cairo_device_observer_print ()</h3>
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>
693 cairo_device_observer_print (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
694 <em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> write_func</code></em>,
695 <em class="parameter"><code><span class="type">void</span> *closure</code></em>);</pre>
696 </div>
697 <hr>
698 <div class="refsect2">
699 <a name="cairo-device-observer-stroke-elapsed"></a><h3>cairo_device_observer_stroke_elapsed ()</h3>
700 <pre class="programlisting"><span class="returnvalue">double</span>
701 cairo_device_observer_stroke_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
702 </div>
703 </div>
704 <div class="refsect1">
705 <a name="cairo-cairo-device-t.other_details"></a><h2>Types and Values</h2>
706 <div class="refsect2">
707 <a name="cairo-device-t"></a><h3>cairo_device_t</h3>
708 <pre class="programlisting">typedef struct _cairo_device cairo_device_t;
709 </pre>
710 <p>A <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> represents the driver interface for drawing
711 operations 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>. There are different subtypes of
712 <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for different drawing backends; for example,
713 <code class="function">cairo_egl_device_create()</code> creates a device that wraps an EGL display and
714 context.</p>
715 <p>The type of a device can be queried with <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-type" title="cairo_device_get_type ()"><code class="function">cairo_device_get_type()</code></a>.</p>
716 <p>Memory management of <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> is done with
717 <a class="link" href="cairo-cairo-device-t.html#cairo-device-reference" title="cairo_device_reference ()"><code class="function">cairo_device_reference()</code></a> and <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a>.</p>
718 <p class="since">Since: 1.10</p>
719 </div>
720 <hr>
721 <div class="refsect2">
722 <a name="cairo-device-type-t"></a><h3>enum cairo_device_type_t</h3>
723 <p><a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="type">cairo_device_type_t</span></a> is used to describe the type of a given
724 device. The devices types are also known as "backends" within cairo.</p>
725 <p>The device type can be queried with <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-type" title="cairo_device_get_type ()"><code class="function">cairo_device_get_type()</code></a></p>
726 <p>The various <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> functions can be used with devices of
727 any type, but some backends also provide type-specific functions
728 that must only be called with a device of the appropriate
729 type. These functions have names that begin with
730 <code class="literal">cairo_<span class="emphasis"><em>type</em></span>_device</code> such as
731 <a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version" title="cairo_xcb_device_debug_cap_xrender_version ()"><code class="function">cairo_xcb_device_debug_cap_xrender_version()</code></a>.</p>
732 <p>The behavior of calling a type-specific function with a device of
733 the wrong type is undefined.</p>
734 <p>New entries may be added in future versions.</p>
735 <div class="refsect3">
736 <a name="cairo-device-type-t.members"></a><h4>Members</h4>
737 <div class="informaltable"><table class="informaltable" width="100%" border="0">
738 <colgroup>
739 <col width="300px" class="enum_members_name">
740 <col class="enum_members_description">
741 <col width="200px" class="enum_members_annotations">
742 </colgroup>
743 <tbody>
744 <tr>
745 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-DRM:CAPS"></a>CAIRO_DEVICE_TYPE_DRM</p></td>
746 <td class="enum_member_description">
747 <p>The device is of type Direct Render Manager, since 1.10</p>
748 </td>
749 <td class="enum_member_annotations"> </td>
750 </tr>
751 <tr>
752 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-GL:CAPS"></a>CAIRO_DEVICE_TYPE_GL</p></td>
753 <td class="enum_member_description">
754 <p>The device is of type OpenGL, since 1.10</p>
755 </td>
756 <td class="enum_member_annotations"> </td>
757 </tr>
758 <tr>
759 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-SCRIPT:CAPS"></a>CAIRO_DEVICE_TYPE_SCRIPT</p></td>
760 <td class="enum_member_description">
761 <p>The device is of type script, since 1.10</p>
762 </td>
763 <td class="enum_member_annotations"> </td>
764 </tr>
765 <tr>
766 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-XCB:CAPS"></a>CAIRO_DEVICE_TYPE_XCB</p></td>
767 <td class="enum_member_description">
768 <p>The device is of type xcb, since 1.10</p>
769 </td>
770 <td class="enum_member_annotations"> </td>
771 </tr>
772 <tr>
773 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-XLIB:CAPS"></a>CAIRO_DEVICE_TYPE_XLIB</p></td>
774 <td class="enum_member_description">
775 <p>The device is of type xlib, since 1.10</p>
776 </td>
777 <td class="enum_member_annotations"> </td>
778 </tr>
779 <tr>
780 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-XML:CAPS"></a>CAIRO_DEVICE_TYPE_XML</p></td>
781 <td class="enum_member_description">
782 <p>The device is of type XML, since 1.10</p>
783 </td>
784 <td class="enum_member_annotations"> </td>
785 </tr>
786 <tr>
787 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-COGL:CAPS"></a>CAIRO_DEVICE_TYPE_COGL</p></td>
788 <td class="enum_member_description">
789 <p>The device is of type cogl, since 1.12</p>
790 </td>
791 <td class="enum_member_annotations"> </td>
792 </tr>
793 <tr>
794 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-WIN32:CAPS"></a>CAIRO_DEVICE_TYPE_WIN32</p></td>
795 <td class="enum_member_description">
796 <p>The device is of type win32, since 1.12</p>
797 </td>
798 <td class="enum_member_annotations"> </td>
799 </tr>
800 <tr>
801 <td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-INVALID:CAPS"></a>CAIRO_DEVICE_TYPE_INVALID</p></td>
802 <td class="enum_member_description">
803 <p>The device is invalid, since 1.10</p>
804 </td>
805 <td class="enum_member_annotations"> </td>
806 </tr>
807 </tbody>
808 </table></div>
809 </div>
810 <p class="since">Since: 1.10</p>
811 </div>
812 </div>
813 <div class="refsect1">
814 <a name="cairo-cairo-device-t.see-also"></a><h2>See Also</h2>
815 <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></p>
816 </div>
817 </div>
818 <div class="footer">
819 <hr>Generated by GTK-Doc V1.27</div>
820 </body>
821 </html>