Mercurial > repos > rliterman > csp2
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">"Failed to acquire the device: %s</span><span class="gtkdoc esc">\n</span><span class="string">"</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> |