Codebase list cairo / 1a837ae
New upstream version 1.15.10 Jeremy Bicha 6 years ago
181 changed file(s) with 8743 addition(s) and 3292 deletion(s). Raw diff Collapse all Expand all
00 # Generated by configure. Do not edit.
1
2 commit 95c464d5feaae58b6cc0990434ce2498cc315dc6
3 Author: Bryce Harrington <bryce@osg.samsung.com>
4 AuthorDate: Mon Dec 11 13:02:28 2017 -0800
5 Commit: Bryce Harrington <bryce@osg.samsung.com>
6 CommitDate: Mon Dec 11 13:02:38 2017 -0800
7
8 1.15.10 release
9
10 Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
11
12 NEWS | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13 cairo-version.h | 2 +-
14 2 files changed, 73 insertions(+), 1 deletion(-)
15
16 commit f723ce31920cf5d5fe0ba417bb4b50b62a3ac4e6
17 Author: Bryce Harrington <bryce@osg.samsung.com>
18 AuthorDate: Thu Dec 7 15:53:16 2017 -0800
19 Commit: Bryce Harrington <bryce@osg.samsung.com>
20 CommitDate: Thu Dec 7 15:53:16 2017 -0800
21
22 pattern: Mark a private routine as cairo_private.
23
24 Fixes distcheck PLT error:
25
26 Checking .libs/libcairo.so for local PLT entries
27 000000000031f1d0 0000024200000007 R_X86_64_JUMP_SLOT
28 0000000000055de0 _cairo_pattern_is_constant_alpha + 0
29
30 src/cairo-pattern-private.h | 2 +-
31 1 file changed, 1 insertion(+), 1 deletion(-)
32
33 commit c9a78ec9c21900f4418988ffe832b7e611a776c8
34 Author: Bryce Harrington <bryce@osg.samsung.com>
35 AuthorDate: Thu Dec 7 14:15:17 2017 -0800
36 Commit: Bryce Harrington <bryce@osg.samsung.com>
37 CommitDate: Thu Dec 7 14:15:17 2017 -0800
38
39 Fix distcheck errors on use of #ifdef
40
41 Checking that feature conditionals are used with #if only (not #ifdef)
42 ./cairo-ft.h:#ifdef CAIRO_HAS_FC_FONT
43 ./cairo-ft.h:#ifdef CAIRO_HAS_FC_FONT
44
45 src/cairo-ft.h | 4 ++--
46 1 file changed, 2 insertions(+), 2 deletions(-)
47
48 commit 04b4967586ac31763186d9894107b8c8403bcb34
49 Author: Bryce Harrington <bryce@osg.samsung.com>
50 AuthorDate: Thu Dec 7 14:00:21 2017 -0800
51 Commit: Bryce Harrington <bryce@osg.samsung.com>
52 CommitDate: Thu Dec 7 14:13:32 2017 -0800
53
54 Fix various doxygen warnings found by check-doc-syntax.sh
55
56 ./cairo-clip-boxes.c (268): ERROR: copy invalid doc id (should be 'cairo_...:')
57 ./cairo-clip-boxes.c (274): ERROR: copy bad line: ' */'
58 ./cairo-clip-boxes.c (274): ERROR: copy documentation comment not closed with **/
59 ./cairo-boxes.c (106): ERROR: Computes invalid doc id (should be 'cairo_...:')
60 ./cairo-boxes.c (114): ERROR: Computes bad line: ' */'
61 ./cairo-boxes.c (114): ERROR: Computes documentation comment not closed with **/
62 ./cairo-boxes.c (279): ERROR: Computes invalid doc id (should be 'cairo_...:')
63 ./cairo-boxes.c (284): ERROR: Computes bad line: ' */'
64 ./cairo-boxes.c (284): ERROR: Computes documentation comment not closed with **/
65 ./cairo-boxes.c (338): ERROR: Linearize invalid doc id (should be 'cairo_...:')
66 ./cairo-boxes.c (345): ERROR: Linearize documentation comment not closed with **/
67 ./cairo.c (240): ERROR: SECTION:cairo-tag bad line: ''
68 ./cairo.c (892): ERROR: cairo_set_source_rgb: Duplicate 'Since' field
69
70 src/cairo-boxes.c | 23 +++++++++++++----------
71 src/cairo-clip-boxes.c | 11 +++++------
72 src/cairo-svg-surface.c | 2 +-
73 src/cairo.c | 4 +---
74 4 files changed, 20 insertions(+), 20 deletions(-)
75
76 commit dbc1636a9b932fd81ace436a03c1992a6ac1cbcf
77 Author: Bryce Harrington <bryce@osg.samsung.com>
78 AuthorDate: Thu Dec 7 13:25:58 2017 -0800
79 Commit: Bryce Harrington <bryce@osg.samsung.com>
80 CommitDate: Thu Dec 7 14:13:32 2017 -0800
81
82 win32: Fix since field version number
83
84 check-doc-syntax.sh expects since numbers to be MAJOR.MINOR without a
85 patch level number
86
87 src/win32/cairo-win32-display-surface.c | 2 +-
88 1 file changed, 1 insertion(+), 1 deletion(-)
89
90 commit bb0d616c4efe1015d17d41125f235a219ad14322
91 Author: Bryce Harrington <bryce@osg.samsung.com>
92 AuthorDate: Wed Dec 6 18:27:21 2017 -0800
93 Commit: Bryce Harrington <bryce@osg.samsung.com>
94 CommitDate: Thu Dec 7 14:13:28 2017 -0800
95
96 image: Fix include for use of ptrdiff
97
98 Commit 38fbe621 added use of the ptrdiff_t type in a header file,
99 however `make distcheck` complains:
100
101 In file included from headers-standalone-tmp.c:1:0:
102 ../../../src/cairo-image-surface-private.h:74:5: error: unknown type name ‘ptrdiff_t’
103 ptrdiff_t stride;
104 ^
105
106 src/cairo-image-surface-private.h | 1 +
107 1 file changed, 1 insertion(+)
108
109 commit 15559b54af473d720da9e03b0e769c54a53505a9
110 Author: Antonio Ospite <ao2@ao2.it>
111 AuthorDate: Wed Oct 11 18:51:13 2017 +0200
112 Commit: Bryce Harrington <bryce@osg.samsung.com>
113 CommitDate: Mon Dec 4 13:58:34 2017 -0800
114
115 svg: add a new function to specify the SVG document unit
116
117 Add a cairo_svg_surface_set_document_unit() function to allow users to
118 set a unit for the width and height values of the root <svg> element.
119
120 In particular this allows to draw in pixels and still have the expected
121 result when generating SVG output.
122
123 Add also the correspondent getter function.
124
125 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90166
126 Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
127
128 src/cairo-svg-surface.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++--
129 src/cairo-svg.h | 47 +++++++++++++++++++++++++++
130 2 files changed, 129 insertions(+), 2 deletions(-)
131
132 commit 84fc0ce91d1a57d20500f710abc0e17de82c67df
133 Author: Tom Schoonjans <Tom.Schoonjans@diamond.ac.uk>
134 AuthorDate: Thu Nov 2 16:55:22 2017 +0000
135 Commit: Adrian Johnson <ajohnson@redneon.com>
136 CommitDate: Sun Nov 26 20:16:43 2017 +1030
137
138 Use UTF-8 filenames on Windows
139
140 Until now fopen was used on Windows to open files for reading and
141 writing. This assumed however that the filename would be encoded in the
142 current codepage, which is a major inconvenience and makes it even
143 impossible to use filenames that use characters from more than one
144 codepage. This patch enforces the use of UTF-8 filenames on all
145 platforms.
146
147 Based on the work of Owen Taylor (https://lists.cairographics.org/archives/cairo/2007-February/009591.html)
148
149 src/cairo-misc.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++
150 src/cairo-output-stream.c | 7 +++++-
151 src/cairo-png.c | 20 +++++++++++----
152 src/cairoint.h | 4 +++
153 4 files changed, 87 insertions(+), 6 deletions(-)
154
155 commit e5532f5ad7f5493d703f9a7110b0816b5fa33e54
156 Author: Mikhail Fludkov <misha@pexip.com>
157 AuthorDate: Mon Nov 6 13:07:00 2017 +0100
158 Commit: Adrian Johnson <ajohnson@redneon.com>
159 CommitDate: Sun Nov 26 13:09:51 2017 +1030
160
161 Fix code generation when using GCC legacy atomic operations
162
163 https://bugs.freedesktop.org/show_bug.cgi?id=103559
164
165 build/aclocal.cairo.m4 | 8 ++++----
166 src/cairo-atomic-private.h | 9 +--------
167 2 files changed, 5 insertions(+), 12 deletions(-)
168
169 commit f614f588e67daebd123bb6698b56d4b8054616c4
170 Author: Adrian Johnson <ajohnson@redneon.com>
171 AuthorDate: Sat Nov 11 16:59:47 2017 +1030
172 Commit: Adrian Johnson <ajohnson@redneon.com>
173 CommitDate: Sun Nov 26 13:03:44 2017 +1030
174
175 Prevent -Wundef warnings in when cairo-ft.h is used without fontconfig
176
177 src/cairo-ft.h | 4 ++--
178 1 file changed, 2 insertions(+), 2 deletions(-)
179
180 commit a709197121c8e405c2dd99e408ee3046ccf50a6a
181 Author: Adrian Johnson <ajohnson@redneon.com>
182 AuthorDate: Sun Nov 26 13:03:18 2017 +1030
183 Commit: Adrian Johnson <ajohnson@redneon.com>
184 CommitDate: Sun Nov 26 13:03:18 2017 +1030
185
186 pdf: fix some annotation bugs
187
188 - each annotation was emitted on every page instead of just the page
189 that contains the annotation
190
191 - the document structure did not correctly link to annotation objects
192
193 - fix some annotation related memory leaks
194
195 src/cairo-pdf-interchange.c | 165 ++++++++++++++++++++++++++++++----------
196 src/cairo-pdf-surface-private.h | 14 ++--
197 src/cairo-pdf-surface.c | 3 +-
198 src/cairo-tag-attributes.c | 4 +
199 4 files changed, 138 insertions(+), 48 deletions(-)
200
201 commit 17e2abc992b012ac3dceb2f66fba17d312ae6d77
202 Author: Adrian Johnson <ajohnson@redneon.com>
203 AuthorDate: Mon Nov 20 05:37:34 2017 +1030
204 Commit: Adrian Johnson <ajohnson@redneon.com>
205 CommitDate: Mon Nov 20 05:37:34 2017 +1030
206
207 ps: fix compile with old versions of MSVC
208
209 https://lists.cairographics.org/archives/cairo/2017-November/028452.html
210
211 src/cairo-ps-surface.c | 2 +-
212 1 file changed, 1 insertion(+), 1 deletion(-)
213
214 commit 0c8070f5bc74c124e6393b433a61807a8e4bee5d
215 Author: Adrian Johnson <ajohnson@redneon.com>
216 AuthorDate: Thu Nov 16 20:16:14 2017 +1030
217 Commit: Adrian Johnson <ajohnson@redneon.com>
218 CommitDate: Thu Nov 16 20:16:14 2017 +1030
219
220 pdf: fix document structure for non tagged structures
221
222 src/cairo-pdf-interchange.c | 26 ++++++++++++++++++++------
223 1 file changed, 20 insertions(+), 6 deletions(-)
224
225 commit 164be896603ceb419c5bc47c7348781f791f70e4
226 Author: Adrian Johnson <ajohnson@redneon.com>
227 AuthorDate: Fri Nov 10 20:10:01 2017 +1030
228 Commit: Adrian Johnson <ajohnson@redneon.com>
229 CommitDate: Fri Nov 10 20:10:01 2017 +1030
230
231 test: update some stale ref images
232
233 test/reference/record-extend-pad.ps.ref.png | Bin 341 -> 0 bytes
234 ...recording-surface-extend-none.pdf.argb32.ref.png | Bin 3941 -> 3944 bytes
235 .../recording-surface-extend-none.pdf.rgb24.ref.png | Bin 3775 -> 3773 bytes
236 ...ording-surface-extend-reflect.pdf.argb32.ref.png | Bin 29897 -> 29999 bytes
237 ...cording-surface-extend-reflect.pdf.rgb24.ref.png | Bin 29901 -> 29984 bytes
238 ...cording-surface-extend-repeat.pdf.argb32.ref.png | Bin 26323 -> 26534 bytes
239 ...ecording-surface-extend-repeat.pdf.rgb24.ref.png | Bin 25867 -> 26017 bytes
240 test/reference/scale-offset-similar.pdf.ref.png | Bin 9742 -> 9742 bytes
241 8 files changed, 0 insertions(+), 0 deletions(-)
242
243 commit 5c7a6ca141363333a5dc9d2eaef055d383f91ef9
244 Author: Adrian Johnson <ajohnson@redneon.com>
245 AuthorDate: Fri Nov 10 20:10:01 2017 +1030
246 Commit: Adrian Johnson <ajohnson@redneon.com>
247 CommitDate: Fri Nov 10 20:10:01 2017 +1030
248
249 ps: fix extend-*-similar failures
250
251 src/cairo-ps-surface-private.h | 1 +
252 src/cairo-ps-surface.c | 39 +++++++++++++++++++++------------------
253 2 files changed, 22 insertions(+), 18 deletions(-)
254
255 commit 9bfa9df2bb8557623df7c561613ea6eaa2a67cdd
256 Author: Adrian Johnson <ajohnson@redneon.com>
257 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
258 Commit: Adrian Johnson <ajohnson@redneon.com>
259 CommitDate: Thu Nov 9 22:02:05 2017 +1030
260
261 ps: fix padded image crash
262
263 src/cairo-ps-surface.c | 8 +++-----
264 1 file changed, 3 insertions(+), 5 deletions(-)
265
266 commit f7d6d78f9428c6813e79d5f7c1351c354d44da64
267 Author: Adrian Johnson <ajohnson@redneon.com>
268 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
269 Commit: Adrian Johnson <ajohnson@redneon.com>
270 CommitDate: Thu Nov 9 22:02:05 2017 +1030
271
272 ps: prevent self-copy infinite loop
273
274 src/cairo-ps-surface-private.h | 3 ++-
275 src/cairo-ps-surface.c | 24 +++++++++++++++++++++++-
276 2 files changed, 25 insertions(+), 2 deletions(-)
277
278 commit 71746c37d48a08d56b18d4d82185896ada215194
279 Author: Adrian Johnson <ajohnson@redneon.com>
280 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
281 Commit: Adrian Johnson <ajohnson@redneon.com>
282 CommitDate: Thu Nov 9 22:02:05 2017 +1030
283
284 test: use CAIRO_MIME_TYPE_UNIQUE_ID with record-text-transform
285
286 The PS output from this test is > 100MB due to the duplicated images.
287 Using CAIRO_MIME_TYPE_UNIQUE_ID reduces the PS output to 650k, runs
288 considerably faster, and now produces correct output.
289
290 test/cairo-test.c | 5 +++++
291 test/record.c | 11 +++++++++++
292 .../reference/record-text-transform.ps.argb32.ref.png | Bin 1216 -> 3995 bytes
293 test/reference/record-text-transform.ps.rgb24.ref.png | Bin 1216 -> 3995 bytes
294 4 files changed, 16 insertions(+)
295
296 commit 5ffbaf9e2f7da103da8d015b5f928e25f9433b60
297 Author: Adrian Johnson <ajohnson@redneon.com>
298 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
299 Commit: Adrian Johnson <ajohnson@redneon.com>
300 CommitDate: Thu Nov 9 22:02:05 2017 +1030
301
302 ps: add CAIRO_MIME_TYPE_EPS mime type for embedding EPS files
303
304 doc/public/cairo-sections.txt | 2 +
305 src/cairo-ps-surface-private.h | 1 +
306 src/cairo-ps-surface.c | 183 +++++++++++++++++++++++++++++++++++--
307 src/cairo-surface.c | 18 ++++
308 src/cairo-tag-attributes-private.h | 7 ++
309 src/cairo-tag-attributes.c | 47 ++++++++++
310 src/cairo.h | 2 +
311 7 files changed, 252 insertions(+), 8 deletions(-)
312
313 commit 7d3ba77b6cd20f68cfbda3d8008811265aa030cb
314 Author: Adrian Johnson <ajohnson@redneon.com>
315 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
316 Commit: Adrian Johnson <ajohnson@redneon.com>
317 CommitDate: Thu Nov 9 22:01:40 2017 +1030
318
319 ps: use Reusable streams for forms in Level 3
320
321 to avoid emitting image data as strings
322
323 src/cairo-ps-surface.c | 57 +++++++++++++++++++++++++++++++++++++++++++-------
324 test/mime-unique-id.c | 2 +-
325 2 files changed, 50 insertions(+), 9 deletions(-)
326
327 commit b1c7a087b5da9a3bfa1e05e2e99861e07723c6f8
328 Author: Adrian Johnson <ajohnson@redneon.com>
329 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
330 Commit: Adrian Johnson <ajohnson@redneon.com>
331 CommitDate: Thu Nov 9 22:01:40 2017 +1030
332
333 ps: use forms for surfaces with UNIQUE_ID mime type
334
335 to ensure the surfaces are emitted only once.
336
337 fixes mime-unique-id PS output
338
339 src/cairo-ps-surface-private.h | 19 +-
340 src/cairo-ps-surface.c | 665 ++++++++++++++++++++++++++++++++---------
341 test/mime-unique-id.c | 4 +-
342 3 files changed, 544 insertions(+), 144 deletions(-)
343
344 commit 638d64a702449fee130b103e623c8fa3b8c06e9b
345 Author: Adrian Johnson <ajohnson@redneon.com>
346 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
347 Commit: Adrian Johnson <ajohnson@redneon.com>
348 CommitDate: Thu Nov 9 22:01:40 2017 +1030
349
350 ps: don't acquire image or snapshot in acquire_source_image_from_pattern
351
352 otherwise emit_surface may not see the mime data
353
354 src/cairo-ps-surface.c | 156 +++++++++++++++++++------------------------------
355 1 file changed, 61 insertions(+), 95 deletions(-)
356
357 commit fcc037a76ecd70050e324d0e3f7decd81f2f0a05
358 Author: Adrian Johnson <ajohnson@redneon.com>
359 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
360 Commit: Adrian Johnson <ajohnson@redneon.com>
361 CommitDate: Thu Nov 9 22:01:40 2017 +1030
362
363 ps: use << >> for dictionaries instead of dict begin end
364
365 src/cairo-ps-surface.c | 94 ++++++++++++++++++++++++--------------------------
366 1 file changed, 46 insertions(+), 48 deletions(-)
367
368 commit 632232c3ce465e31929ab026012c731491492d6a
369 Author: Adrian Johnson <ajohnson@redneon.com>
370 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
371 Commit: Adrian Johnson <ajohnson@redneon.com>
372 CommitDate: Thu Nov 9 22:01:40 2017 +1030
373
374 ps: remove unused prolog
375
376 src/cairo-ps-surface.c | 3 ---
377 1 file changed, 3 deletions(-)
378
379 commit 9d372ca91a067b00fc1f66f466ab795206f5ef14
380 Author: Adrian Johnson <ajohnson@redneon.com>
381 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
382 Commit: Adrian Johnson <ajohnson@redneon.com>
383 CommitDate: Thu Nov 9 22:01:40 2017 +1030
384
385 ps: emit base85 strings instead of strings of base85
386
387 When image data is emitted as strings (required when an image is used
388 in a PaintProc), the base85 encoded data was emitted inside PS strings
389 (...) and the image filters included an ASCI85Decode filter.
390
391 This has been changed to emit the strings as ASCII85 strings <~...~>
392 and remove the ASCII85Decode filter since the base85 is decoded when
393 the string is parsed.
394
395 Also factor out the string data source procedure into the prolog.
396
397 src/cairo-ps-surface.c | 186 +++++++++++++++++++++----------------------------
398 1 file changed, 79 insertions(+), 107 deletions(-)
399
400 commit d5cb45013bf10d97657cea105683bf5ccb21c2d7
401 Author: Adrian Johnson <ajohnson@redneon.com>
402 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
403 Commit: Adrian Johnson <ajohnson@redneon.com>
404 CommitDate: Thu Nov 9 22:01:40 2017 +1030
405
406 pdf: fix mime-unique-id jpeg attached to recording test
407
408 - Restructure the emit_surface code so that mime types are checked first.
409
410 - Add a test parameter to emit_surface to test if the surface will be emitted
411 as an image or recording instead checking the surface type as the attached
412 mime may override this.
413
414 - Mark surface as not clear when mime is attached to avoid optimizing away
415 "clear" surfaces that have mime attached.
416
417 - Include entire surface in analysis if mime attached (also fixes bug with
418 calculating the extents CONTENT_COLOR surfaces)
419
420 src/cairo-analysis-surface.c | 172 +++++++++++++++++++----------------
421 src/cairo-pdf-surface.c | 209 +++++++++++++++++++++++++++++--------------
422 src/cairo-surface.c | 42 +++++++++
423 src/cairoint.h | 3 +
424 test/mime-unique-id.c | 4 +-
425 5 files changed, 286 insertions(+), 144 deletions(-)
426
427 commit bff47b43c4b0501c0255e9ba191904bea13ddf5c
428 Author: Adrian Johnson <ajohnson@redneon.com>
429 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
430 Commit: Adrian Johnson <ajohnson@redneon.com>
431 CommitDate: Thu Nov 9 20:52:36 2017 +1030
432
433 pdf: fix mime-unique-id unbounded recording test
434
435 PDF XObjects need to specify the bounding box. Emit unbounded surfaces
436 when finishing as at this point the extents of all uses of the
437 unbounded surface are known.
438
439 src/cairo-pdf-surface-private.h | 7 +++-
440 src/cairo-pdf-surface.c | 85 +++++++++++++++++++++++++++++++----------
441 src/cairo-surface.c | 4 +-
442 3 files changed, 72 insertions(+), 24 deletions(-)
443
444 commit cf9a07035292f3a1a3d057cfbb9dac1447a11235
445 Author: Adrian Johnson <ajohnson@redneon.com>
446 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
447 Commit: Adrian Johnson <ajohnson@redneon.com>
448 CommitDate: Thu Nov 9 20:52:36 2017 +1030
449
450 pdf: fix mime-unique-id bounded recording test
451
452 The embedded bounded recording surface was being clipped to the
453 extents of its first use.
454
455 src/cairo-pdf-surface.c | 77 ++++++++++++++++++++-----------------------------
456 1 file changed, 31 insertions(+), 46 deletions(-)
457
458 commit 5e4707a10d476604614bddcc9ba8b06f6002e6d6
459 Author: Adrian Johnson <ajohnson@redneon.com>
460 AuthorDate: Thu Nov 9 20:52:36 2017 +1030
461 Commit: Adrian Johnson <ajohnson@redneon.com>
462 CommitDate: Thu Nov 9 20:52:36 2017 +1030
463
464 Add mime-unique-id test
465
466 to check that PS/PDF embeds images with CAIRO_MIME_TYPE_UNIQUE_ID only
467 once.
468
469 test/Makefile.sources | 2 +-
470 test/mime-unique-id.c | 511 ++++++++++++++++++++++++++++++++++++++++++++++++++
471 2 files changed, 512 insertions(+), 1 deletion(-)
472
473 commit 38fbe621cf80d560cfc27b54b5417b62cda64c8a
474 Author: Adrian Johnson <ajohnson@redneon.com>
475 AuthorDate: Thu Oct 20 21:12:30 2016 +1030
476 Commit: Bryce Harrington <bryce@osg.samsung.com>
477 CommitDate: Tue Nov 7 17:01:49 2017 -0800
478
479 image: prevent invalid ptr access for > 4GB images
480
481 Image data is often accessed using:
482
483 image->data + y * image->stride
484
485 On 64-bit achitectures if the image data is > 4GB, this computation
486 will overflow since both y and stride are 32-bit types.
487
488 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=98165
489 Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
490
491 boilerplate/cairo-boilerplate.c | 4 +++-
492 src/cairo-image-compositor.c | 4 ++--
493 src/cairo-image-surface-private.h | 2 +-
494 src/cairo-mesh-pattern-rasterizer.c | 2 +-
495 src/cairo-png.c | 2 +-
496 src/cairo-script-surface.c | 3 ++-
497 6 files changed, 10 insertions(+), 7 deletions(-)
498
499 commit 35fccff6ec393ccca3d3ced79093ca491ce32df4
500 Author: Bryce Harrington <bryce@osg.samsung.com>
501 AuthorDate: Mon Nov 6 12:09:53 2017 -0800
502 Commit: Bryce Harrington <bryce@osg.samsung.com>
503 CommitDate: Mon Nov 6 12:18:37 2017 -0800
504
505 Un-doxygen disabled cairo_set_opacity
506
507 The cairo_set_opacity() routine has been disabled since 2010. There
508 appears to be support for it internally in the backend, so it is unclear
509 why it is not enabled or what might break if it were re-enabled. Given
510 the lack of bug reports about its omission, it may be vestigal. For
511 now, just hide the doxygen for it to suppress warnings. It may be worth
512 deeper review to either re-enable it or remove it entirely.
513
514 Reported-by: Rafał Mużyło (See fdo bugzilla #82741)
515 Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
516
517 src/cairo.c | 4 ++--
518 1 file changed, 2 insertions(+), 2 deletions(-)
519
520 commit 8d89fc573eae0bc0234e1b909932e405a776b7e1
521 Author: Bryce Harrington <bryce@osg.samsung.com>
522 AuthorDate: Mon Nov 6 11:28:58 2017 -0800
523 Commit: Bryce Harrington <bryce@osg.samsung.com>
524 CommitDate: Mon Nov 6 11:35:24 2017 -0800
525
526 configure: Check for typeof
527
528 Check via the AC_C_TYPEOF macro if GCC's typeof is available. If it is
529 available via a different spelling, define typeof to that spelling.
530
531 Patch from and issue reported by Richard Palo.
532
533 Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
534 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93027
535
536 configure.ac | 1 +
537 1 file changed, 1 insertion(+)
538
539 commit 3322580f0488ff77f53d86c2b4d3cf59e6dca4c7
540 Author: Adrian Johnson <ajohnson@redneon.com>
541 AuthorDate: Tue Oct 24 21:30:45 2017 +1030
542 Commit: Adrian Johnson <ajohnson@redneon.com>
543 CommitDate: Tue Oct 24 21:44:08 2017 +1030
544
545 pdf: remove old comment
546
547 These issues have been fixed.
548
549 src/cairo-pdf-surface.c | 9 ---------
550 1 file changed, 9 deletions(-)
551
552 commit 1674d2b8850f9264232e60e82cb5b2827426632c
553 Author: Adrian Johnson <ajohnson@redneon.com>
554 AuthorDate: Tue Oct 24 21:26:56 2017 +1030
555 Commit: Adrian Johnson <ajohnson@redneon.com>
556 CommitDate: Tue Oct 24 21:44:08 2017 +1030
557
558 pdf: set default create date
559
560 boilerplate/cairo-boilerplate-pdf.c | 1 +
561 build/configure.ac.system | 2 +-
562 src/cairo-pdf-interchange.c | 50 +++++++++++++++++++++++++++++++++++++
563 src/cairo-pdf-surface.c | 1 -
564 4 files changed, 52 insertions(+), 2 deletions(-)
565
566 commit 378e8e2f59a109a40da8e40893652a4c003a4dc7
567 Author: Adrian Johnson <ajohnson@redneon.com>
568 AuthorDate: Tue Oct 24 07:01:14 2017 +1030
569 Commit: Adrian Johnson <ajohnson@redneon.com>
570 CommitDate: Tue Oct 24 07:01:14 2017 +1030
571
572 pdf: set ca/CA instead of using an smask when the mask has constant alpha
573
574 src/cairo-pattern-private.h | 5 +++
575 src/cairo-pattern.c | 53 +++++++++++++++++++++++++++++
576 src/cairo-pdf-surface-private.h | 1 +
577 src/cairo-pdf-surface.c | 74 ++++++++++++++++++++++++++++++++---------
578 4 files changed, 117 insertions(+), 16 deletions(-)
579
580 commit 5fd0b8710f125bb33c55d75fcc8252996b403e2d
581 Author: Carlos Garcia Campos <cgarcia@igalia.com>
582 AuthorDate: Wed Oct 18 11:33:25 2017 +0200
583 Commit: Adrian Johnson <ajohnson@redneon.com>
584 CommitDate: Sun Oct 22 11:09:02 2017 +1030
585
586 scaled-font: Fix assert when destroying glyph page
587
588 This happens when _cairo_ft_scaled_glyph_init() returns
589 CAIRO_INT_STATUS_UNSUPPORTED when called from
590 _cairo_scaled_glyph_lookup(). In those cases
591 _cairo_scaled_font_free_last_glyph() is called to release the glyph that
592 has just been allocated. If there aren't more glyphs,
593 _cairo_scaled_glyph_page_destroy() is called. The problem is that
594 _cairo_scaled_glyph_lookup() should always be called with the cache
595 frozen, and _cairo_scaled_glyph_page_destroy() without the cache
596 frozen. We can simply thaw/freeze the font before calling
597 _cairo_scaled_glyph_page_destroy().
598
599 https://bugs.freedesktop.org/show_bug.cgi?id=103335
600
601 src/cairo-scaled-font.c | 7 +++++++
602 1 file changed, 7 insertions(+)
603
604 commit 87dfd0c16f4fa798c1f72612a2e070fca8547ad2
605 Author: Adrian Johnson <ajohnson@redneon.com>
606 AuthorDate: Sun Oct 22 08:45:45 2017 +1030
607 Commit: Adrian Johnson <ajohnson@redneon.com>
608 CommitDate: Sun Oct 22 08:59:58 2017 +1030
609
610 Allow mime image to be different size to cairo image
611
612 Previously it was assumed the mime image size is the same as the cairo
613 image surface size. When using the 1 bpp formats (CCITT, JBIG2),
614 creating a cairo image of the same size will have very large memory
615 requirements and in some case may exceed the pixman image size
616 limits. In these cases it is useful to allow the mime image to have a
617 different resolution to the cairo image and in the PDF/PS output scale
618 the mime image to be the same physical size as the cairo image.
619
620 In PDF, this is easy as all PDF images are scaled to 1x1 unit and the
621 CTM is used to scale the image to the required size. The PS surface
622 has been changed to also scale images to 1x1 and use the CTM to get
623 the required size.
624
625 src/cairo-pdf-surface.c | 124 ------------------------------------------------
626 src/cairo-ps-surface.c | 29 +++++++++--
627 2 files changed, 24 insertions(+), 129 deletions(-)
628
629 commit e1a02b180d804887980c111c1f9780bed44b96a6
630 Author: Adrian Johnson <ajohnson@redneon.com>
631 AuthorDate: Sun Oct 22 08:07:49 2017 +1030
632 Commit: Adrian Johnson <ajohnson@redneon.com>
633 CommitDate: Sun Oct 22 08:42:36 2017 +1030
634
635 Add CCITT_FAX mime type for PDF and PS surfaces
636
637 This completes the full set of PDF/PS image filters allowing image
638 data to be passed though without decompressing then recompresssing in
639 a less efficient format.
640
641 The difficulty with CCITT_FAX is it needs some decoding parameters
642 that are not stored inside the image data. This is achieved by using
643 an additional mime type CCITT_FAX_PARAMS that contains the params in
644 key=value format.
645
646 doc/public/cairo-sections.txt | 2 +
647 src/Makefile.sources | 16 +-
648 src/cairo-pdf-surface-private.h | 2 +-
649 src/cairo-pdf-surface.c | 263 ++++++++++++++++++++++++---
650 src/cairo-ps-surface.c | 200 ++++++++++++++++++--
651 src/cairo-surface.c | 21 ++-
652 src/cairo-tag-attributes-private.h | 15 ++
653 src/cairo-tag-attributes.c | 80 ++++++++
654 src/cairo.h | 2 +
655 test/ccitt.g3 | 2 +
656 test/mime-data.c | 56 +++++-
657 test/reference/mime-data.base.argb32.ref.png | Bin 243 -> 272 bytes
658 test/reference/mime-data.base.rgb24.ref.png | Bin 243 -> 272 bytes
659 test/reference/mime-data.pdf.ref.png | Bin 7563 -> 8205 bytes
660 test/reference/mime-data.ps.ref.png | Bin 4705 -> 5386 bytes
661 test/reference/mime-data.ref.png | Bin 243 -> 272 bytes
662 test/reference/mime-data.script.ref.png | Bin 2130 -> 2175 bytes
663 test/reference/mime-data.svg.ref.png | Bin 6437 -> 6513 bytes
664 18 files changed, 609 insertions(+), 50 deletions(-)
665
666 commit 4ae7f411c865a25b577faea58e5fda6f4e9e1172
667 Author: Adrian Johnson <ajohnson@redneon.com>
668 AuthorDate: Sat Oct 21 20:05:56 2017 +1030
669 Commit: Adrian Johnson <ajohnson@redneon.com>
670 CommitDate: Sat Oct 21 20:05:56 2017 +1030
671
672 util/font-view: fix build error
673
674 util/font-view.c | 2 ++
675 1 file changed, 2 insertions(+)
676
677 commit 9ffbf63d3715f81ec92cdba93b60a04a11be130f
678 Author: Adrian Johnson <ajohnson@redneon.com>
679 AuthorDate: Sat Oct 21 13:05:26 2017 +1030
680 Commit: Adrian Johnson <ajohnson@redneon.com>
681 CommitDate: Sat Oct 21 13:08:39 2017 +1030
682
683 fix warning: inlining failed in call to '_csi_stack_push'
684
685 util/cairo-script/cairo-script-interpreter.c | 11 +++++++++++
686 util/cairo-script/cairo-script-private.h | 11 ++---------
687 2 files changed, 13 insertions(+), 9 deletions(-)
688
689 commit b092b63119cbfe3cb4bc786eee81630998996acf
690 Author: Adrian Johnson <ajohnson@redneon.com>
691 AuthorDate: Sat Oct 21 13:02:42 2017 +1030
692 Commit: Adrian Johnson <ajohnson@redneon.com>
693 CommitDate: Sat Oct 21 13:08:30 2017 +1030
694
695 fix warning: variable X might be clobbered by 'longjmp'
696
697 Move calls to setjmp into separate function to avoid clobbering
698 local variables.
699
700 src/cairo-bentley-ottmann-rectangular.c | 8 +++++++-
701 src/cairo-png.c | 17 +++++++++++------
702 2 files changed, 18 insertions(+), 7 deletions(-)
703
704 commit 132794f6832ea83e2f9a72e11b05080d2cdf80f8
705 Author: Adrian Johnson <ajohnson@redneon.com>
706 AuthorDate: Mon Oct 16 20:13:48 2017 +1030
707 Commit: Adrian Johnson <ajohnson@redneon.com>
708 CommitDate: Mon Oct 16 20:18:49 2017 +1030
709
710 svg: recording_surface is needed even if not emitted
711
712 src/cairo-svg-surface.c | 2 +-
713 1 file changed, 1 insertion(+), 1 deletion(-)
714
715 commit 27990e391070dd43f08450a3d54c90d18e6d85f3
716 Author: Adrian Johnson <ajohnson@redneon.com>
717 AuthorDate: Mon Oct 16 19:47:21 2017 +1030
718 Commit: Adrian Johnson <ajohnson@redneon.com>
719 CommitDate: Mon Oct 16 20:18:49 2017 +1030
720
721 fix unused function warnings
722
723 src/cairo-botor-scan-converter.c | 2 ++
724 test/any2ppm.c | 2 +-
725 2 files changed, 3 insertions(+), 1 deletion(-)
726
727 commit fc929d70054583d0c21f24b18083348e3e7d914c
728 Author: Adrian Johnson <ajohnson@redneon.com>
729 AuthorDate: Mon Oct 16 19:42:16 2017 +1030
730 Commit: Adrian Johnson <ajohnson@redneon.com>
731 CommitDate: Mon Oct 16 19:42:16 2017 +1030
732
733 ft: prevent unused var warning when freetype < 2.8
734
735 src/cairo-ft-font.c | 18 +++++++++++-------
736 1 file changed, 11 insertions(+), 7 deletions(-)
737
738 commit 1d58e0f81856038d8aa306b97302485a4d2e2ec9
739 Author: Adrian Johnson <ajohnson@redneon.com>
740 AuthorDate: Sun Oct 15 19:42:08 2017 +1030
741 Commit: Adrian Johnson <ajohnson@redneon.com>
742 CommitDate: Sun Oct 15 19:42:08 2017 +1030
743
744 svg2png: remove unused headers
745
746 test/svg2png.c | 2 --
747 1 file changed, 2 deletions(-)
748
749 commit 90104809b0e03d28ac1152034fd4f05fc8e97b9a
750 Author: Mikhail Fludkov <misha@pexip.com>
751 AuthorDate: Fri Oct 6 13:47:51 2017 +0200
752 Commit: Adrian Johnson <ajohnson@redneon.com>
753 CommitDate: Sun Oct 15 18:51:04 2017 +1030
754
755 Surround initialisations with atomic critical section
756
757 Fixes the race condition when one thread uses cairo_mask_compositor_t
758 pointer returned by _cairo_image_mask_compositor_get, while another one
759 started but has not finished it's initialisation yet
760
761 Usage:
762 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
763 if (_cairo_atomic_init_once_enter(&once)) {
764 /* Initialization code */
765 _cairo_atomic_init_once_leave(&once);
766 }
767
768 https://bugs.freedesktop.org/show_bug.cgi?id=103037
769
770 src/cairo-atomic-private.h | 33 +++++++++++++++++++++++++++++++++
771 src/cairo-gl-msaa-compositor.c | 5 ++++-
772 src/cairo-gl-spans-compositor.c | 5 ++++-
773 src/cairo-gl-traps-compositor.c | 5 ++++-
774 src/cairo-image-compositor.c | 19 ++++++++++++++-----
775 src/cairo-image-mask-compositor.c | 5 ++++-
776 src/cairo-xlib-core-compositor.c | 5 ++++-
777 src/cairo-xlib-render-compositor.c | 10 ++++++++--
778 src/test-null-compositor-surface.c | 10 ++++++++--
779 src/win32/cairo-win32-gdi-compositor.c | 5 ++++-
780 10 files changed, 87 insertions(+), 15 deletions(-)
781
782 commit 79e0e25e441a74e3ec207d95bd83437457ba1885
783 Author: Adrian Johnson <ajohnson@redneon.com>
784 AuthorDate: Sun Oct 15 07:57:54 2017 +1030
785 Commit: Adrian Johnson <ajohnson@redneon.com>
786 CommitDate: Sun Oct 15 07:57:54 2017 +1030
787
788 svg: source surface hash table does not need to hold the source
789
790 src/cairo-svg-surface-private.h | 1 -
791 src/cairo-svg-surface.c | 2 --
792 2 files changed, 3 deletions(-)
793
794 commit 965ba86bbf87fb0d8df666cbba7c8823cc393b0b
795 Author: Adrian Johnson <ajohnson@redneon.com>
796 AuthorDate: Sat Oct 14 19:47:39 2017 +1030
797 Commit: Adrian Johnson <ajohnson@redneon.com>
798 CommitDate: Sat Oct 14 20:53:01 2017 +1030
799
800 svg: use hash table instead of user_data to track emitted surfaces
801
802 Setting a key on the source surface->user_data prevents the surface
803 from being reused to create another svg file.
804
805 The hash table also supports CAIRO_MIME_TYPE_UNIQUE_ID.
806
807 https://lists.cairographics.org/archives/cairo/2017-October/028406.html
808
809 src/cairo-svg-surface-private.h | 9 ++
810 src/cairo-svg-surface.c | 185 ++++++++++++++++++++++++++++++++--------
811 2 files changed, 159 insertions(+), 35 deletions(-)
812
813 commit bb10bd10138a262759b37281135b5199e334f392
814 Author: Adrian Johnson <ajohnson@redneon.com>
815 AuthorDate: Fri Oct 13 19:44:45 2017 +1030
816 Commit: Adrian Johnson <ajohnson@redneon.com>
817 CommitDate: Fri Oct 13 19:50:24 2017 +1030
818
819 truetype: limit font name to 127 chars
820
821 Some broken fonts have long strings of garbage in the font name
822
823 https://bugs.freedesktop.org/show_bug.cgi?id=103249
824
825 src/cairo-truetype-subset.c | 16 ++++++++++++++--
826 1 file changed, 14 insertions(+), 2 deletions(-)
827
828 commit 202a9ed64e3d164307defddb41a9f8cf9e9b751b
829 Author: Adrian Johnson <ajohnson@redneon.com>
830 AuthorDate: Fri Oct 13 19:27:03 2017 +1030
831 Commit: Adrian Johnson <ajohnson@redneon.com>
832 CommitDate: Fri Oct 13 19:33:30 2017 +1030
833
834 output-stream: allow %s strings larger than 512 chars
835
836 https://bugs.freedesktop.org/show_bug.cgi?id=103249
837
838 src/cairo-output-stream.c | 10 +++++++---
839 1 file changed, 7 insertions(+), 3 deletions(-)
840
841 commit d5b634da61597aa8e80ba7d5bc39f092e5888515
842 Author: Bryce Harrington <bryce@osg.samsung.com>
843 AuthorDate: Wed Oct 11 19:13:46 2017 -0700
844 Commit: Bryce Harrington <bryce@osg.samsung.com>
845 CommitDate: Wed Oct 11 19:13:46 2017 -0700
846
847 Factor out the ISFINITE() macro
848
849 src/cairo-gstate.c | 6 ------
850 src/cairo-matrix.c | 6 ------
851 src/cairo-scaled-font.c | 6 ------
852 src/cairoint.h | 6 ++++++
853 4 files changed, 6 insertions(+), 18 deletions(-)
854
855 commit 5a9dba9929d9c9046705150f7e3c4783ff34e4dd
856 Author: Adrian Johnson <ajohnson@redneon.com>
857 AuthorDate: Thu Oct 5 20:50:19 2017 +1030
858 Commit: Adrian Johnson <ajohnson@redneon.com>
859 CommitDate: Thu Oct 5 20:50:19 2017 +1030
860
861 svg: fix painting an unbounded recording surface
862
863 https://lists.cairographics.org/archives/cairo/2017-October/028395.html
864
865 src/cairo-svg-surface-private.h | 1 +
866 src/cairo-svg-surface.c | 38 +++++++++++++++++++++++++-------------
867 2 files changed, 26 insertions(+), 13 deletions(-)
868
869 commit bec8c7508ebc0f69266f9aebe9903539391c519b
870 Author: Adrian Johnson <ajohnson@redneon.com>
871 AuthorDate: Tue Oct 3 22:18:49 2017 +1030
872 Commit: Adrian Johnson <ajohnson@redneon.com>
873 CommitDate: Tue Oct 3 22:27:25 2017 +1030
874
875 Prevent curved strokes in small ctms from being culled from vector surfaces
876
877 The combination of both curved strokes and ignoring the ctm in the thin
878 line check caused some fill-strokes in this test case to be culled.
879
880 Modify the thin line check to take the ctm into account and increase
881 the minimum width to 1 point to prevent curved lines such as tiny dots
882 from being culled.
883
884 https://bugs.freedesktop.org/show_bug.cgi?id=103071
885
886 src/cairo-path-bounds.c | 4 ++--
887 1 file changed, 2 insertions(+), 2 deletions(-)
888
889 commit dccbed7d78d32bd3b912e8810379451dd94e6a1f
890 Author: Adrian Johnson <ajohnson@redneon.com>
891 AuthorDate: Fri Sep 22 20:24:45 2017 +0930
892 Commit: Adrian Johnson <ajohnson@redneon.com>
893 CommitDate: Fri Sep 22 20:25:59 2017 +0930
894
895 truetype: clarify glyph count variables
896
897 - move num_glyphs_in_face to base struct as it is the number in the font
898 - move num_glyphs to the subset variables as it is the num glyphs in the subset
899 - move widths to subset variables as it uses the subset id as the array index
900
901 src/cairo-truetype-subset.c | 54 ++++++++++++++++++++++-----------------------
902 1 file changed, 27 insertions(+), 27 deletions(-)
903
904 commit 52cbf42b74785c3c3c2d15effe7bdb416ff9c8b2
905 Author: Adrian Johnson <ajohnson@redneon.com>
906 AuthorDate: Fri Sep 22 20:10:10 2017 +0930
907 Commit: Adrian Johnson <ajohnson@redneon.com>
908 CommitDate: Fri Sep 22 20:10:10 2017 +0930
909
910 truetype: reserve space in subset arrays for .notdef
911
912 Subset array sizes are allocated based on the number of glyphs in the
913 font. In this bug the fonts did not contain the mandatory .notdef
914 glyph, hence the subset arrays were not large enough.
915
916 https://bugs.freedesktop.org/show_bug.cgi?id=102922
917
918 src/cairo-truetype-subset.c | 11 ++++++++---
919 1 file changed, 8 insertions(+), 3 deletions(-)
920
921 commit e773dd744e88dc871fdc549132f07760f1be94c7
922 Author: Adrian Johnson <ajohnson@redneon.com>
923 AuthorDate: Sun Sep 17 14:15:25 2017 +0930
924 Commit: Adrian Johnson <ajohnson@redneon.com>
925 CommitDate: Fri Sep 22 18:17:25 2017 +0930
926
927 factor out ascii to double code in cff-subset into _cairo_strtod
928
929 src/cairo-cff-subset.c | 27 +++------------------
930 src/cairo-misc.c | 60 +++++++++++++++++++++++++++++++++++++++++++++--
931 src/cairo-output-stream.c | 2 +-
932 src/cairo-type1-subset.c | 2 +-
933 src/cairoint.h | 5 +++-
934 5 files changed, 67 insertions(+), 29 deletions(-)
935
936 commit 871c518121452116ee799fe4262421d4c935972e
937 Author: Aleksander Morgado <aleksander@aleksander.es>
938 AuthorDate: Mon Aug 28 11:23:34 2017 +0200
939 Commit: Bryce Harrington <bryce@osg.samsung.com>
940 CommitDate: Wed Sep 20 11:44:29 2017 -0700
941
942 build: fix minor typo in autogen.sh
943
944 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=102452
945 Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
946
947 autogen.sh | 2 +-
948 1 file changed, 1 insertion(+), 1 deletion(-)
949
950 commit 1220e3c6b8f94a00ac7afee15f21e6782655d97c
951 Author: Adrian Johnson <ajohnson@redneon.com>
952 AuthorDate: Sat Sep 2 19:17:37 2017 +0930
953 Commit: Adrian Johnson <ajohnson@redneon.com>
954 CommitDate: Sat Sep 16 10:04:57 2017 +0930
955
956 replace _BSD_SOURCE with _DEFAULT_SOURCE
957
958 fixes the warning:
959
960 warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
961
962 src/cairo-cff-subset.c | 2 +-
963 src/cairo-ft-font.c | 2 +-
964 src/cairo-output-stream.c | 2 +-
965 src/cairo-path-stroke-boxes.c | 2 +-
966 src/cairo-path-stroke-polygon.c | 2 +-
967 src/cairo-path-stroke-tristrip.c | 2 +-
968 src/cairo-path-stroke.c | 2 +-
969 src/cairo-pdf-surface.c | 2 +-
970 src/cairo-ps-surface.c | 2 +-
971 src/cairo-scaled-font-subsets.c | 2 +-
972 src/cairo-svg-surface.c | 2 +-
973 src/cairo-toy-font-face.c | 2 +-
974 src/cairo-truetype-subset.c | 2 +-
975 src/cairo-type1-fallback.c | 2 +-
976 src/cairo-type1-subset.c | 2 +-
977 15 files changed, 15 insertions(+), 15 deletions(-)
978
979 commit 117a3c27d48107cb9c570fee725105419b1251e3
980 Author: Adrian Johnson <ajohnson@redneon.com>
981 AuthorDate: Sat Sep 2 19:09:49 2017 +0930
982 Commit: Adrian Johnson <ajohnson@redneon.com>
983 CommitDate: Sat Sep 16 10:04:57 2017 +0930
984
985 build: use _WIN32 instead of windows.h to check for windows build
986
987 ifdef _WIN32 is the recommended way to check for a windows build [1]
988 and avoids identifying cygwin as windows.
989
990 based on the patch at [2]
991
992 [1] https://lists.gnu.org/archive/html/autoconf/2012-02/msg00008.html
993 [2] https://lists.gnu.org/archive/html/autoconf/2012-02/msg00009.html
994
995 build/configure.ac.system | 8 +++++---
996 1 file changed, 5 insertions(+), 3 deletions(-)
997
998 commit 8ff3019f51bd40c23d8a0dd5e51ce3fab6442d6e
999 Author: Bryce Harrington <bryce@osg.samsung.com>
1000 AuthorDate: Wed Sep 13 12:35:27 2017 -0700
1001 Commit: Bryce Harrington <bryce@osg.samsung.com>
1002 CommitDate: Wed Sep 13 15:18:04 2017 -0700
1003
1004 gl: Add support for OpenGL ES 3.0
1005
1006 This improves the OpenGL ES support to extend it to version 3.0.
1007 A number of new features are available in glesv3 including creation of
1008 multi-sampled renderbuffers. These renderbuffers can be blitted to
1009 single sample textures (but not the other way around). Other features
1010 such as PBO for image uploading, are left as followon work.
1011
1012 For this preliminary implementation, glesv3 backends always create
1013 renderbuffers, which can be set as single sample or multisample. The
1014 renderbuffer's content is blitted to the texture only when used as a
1015 source or a mask.
1016
1017 Images uploaded to a texture stay there until the surface is used as a
1018 rendering target, at which point its painted to the renderbuffer.
1019
1020 This patch is heavily based off of Henry Song's initial GLESv3 patch
1021 6f7f3795 from his cairogles fork of Cairo, and incorporates subsequent
1022 fixes and pertinent refactorings from his trunk and review feedback from
1023 Uli.
1024
1025 This implements the *functional* support for glesv3, excluding the
1026 various optimization work to utilize its features. Rendering and
1027 performance should not be expected to improve notably from pure glesv2.
1028 As the GL backend for Cairo remains "experimental", these changes should
1029 likewise be considered as such.
1030
1031 Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
1032
1033 boilerplate/Makefile.win32.features | 12 +++++
1034 boilerplate/cairo-boilerplate-egl.c | 30 ++++++++---
1035 build/Makefile.win32.features | 1 +
1036 build/Makefile.win32.features-h | 3 ++
1037 build/configure.ac.features | 1 +
1038 configure.ac | 23 ++++++++
1039 src/Makefile.sources | 4 ++
1040 src/Makefile.win32.features | 16 ++++++
1041 src/cairo-gl-composite.c | 103 +++++++++++++++++++++++++++++++++++-
1042 src/cairo-gl-device.c | 91 +++++++++++++++++++++++--------
1043 src/cairo-gl-dispatch.c | 12 +++++
1044 src/cairo-gl-gradient-private.h | 9 ++--
1045 src/cairo-gl-gradient.c | 3 +-
1046 src/cairo-gl-info.c | 4 +-
1047 src/cairo-gl-msaa-compositor.c | 10 +++-
1048 src/cairo-gl-operand.c | 3 +-
1049 src/cairo-gl-private.h | 20 ++++---
1050 src/cairo-gl-shaders.c | 15 ++++--
1051 src/cairo-gl-surface.c | 73 ++++++++++++++++++++-----
1052 src/cairo-gl.h | 2 +-
1053 20 files changed, 370 insertions(+), 65 deletions(-)
1054
1055 commit d1f941d7ee06340c155158b32bec28fc2e1a4264
1056 Author: Bryce Harrington <bryce@osg.samsung.com>
1057 AuthorDate: Thu Oct 20 16:37:28 2016 -0700
1058 Commit: Bryce Harrington <bryce@osg.samsung.com>
1059 CommitDate: Wed Sep 13 15:17:55 2017 -0700
1060
1061 gl: Make _cairo_gl_ensure_framebuffer a private shared routine
1062
1063 Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
1064
1065 src/cairo-gl-device.c | 2 +-
1066 src/cairo-gl-private.h | 4 ++++
1067 2 files changed, 5 insertions(+), 1 deletion(-)
1068
1069 commit 4b164bc89872f0cf4e123e1358cc83be8e83a4d3
1070 Author: Bryce Harrington <bryce@osg.samsung.com>
1071 AuthorDate: Fri Oct 7 15:26:25 2016 -0700
1072 Commit: Bryce Harrington <bryce@osg.samsung.com>
1073 CommitDate: Wed Sep 13 15:17:55 2017 -0700
1074
1075 gl: Convert images to rgba or a8 formats when uploading with GLESv2
1076
1077 The GLESv2 backend supports only GL_RGBA and GL_ALPHA as supported
1078 texture formats. So, make _cairo_gl_get_image_format_and_type_gles2
1079 force conversion of other image formats to either of these two as
1080 appropriate when uploading images.
1081
1082 Patch originally from Henry Song <henry.song@samsung.com>
1083
1084 Bryce Harrington <bryce@osg.samsung.com>
1085
1086 Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
1087
1088 src/cairo-gl-surface.c | 45 +++++++++++++++++++++++++++++++++++++++++
1089 src/cairo-gl-traps-compositor.c | 30 ---------------------------
1090 2 files changed, 45 insertions(+), 30 deletions(-)
1091
1092 commit 99427c3f4f6ce7ce3c95c4caa4d2b8ff7c0093d9
1093 Author: Behdad Esfahbod <behdad@behdad.org>
1094 AuthorDate: Tue Sep 12 01:35:15 2017 -0400
1095 Commit: Behdad Esfahbod <behdad@behdad.org>
1096 CommitDate: Tue Sep 12 01:35:15 2017 -0400
1097
1098 Handle SOURCE and CLEAR operators when painting color glyphs
1099
1100 In cairo, most operators are composited this way:
1101
1102 ((src IN mask) OP dst) LERP_clip dst
1103
1104 but SOURCE and CLEAR operators are composited this way:
1105
1106 (src OP dst) LERP_(clip IN mask) dst
1107
1108 (why is this not specified anywhere in the docs or source tree?)
1109
1110 With color glyphs, we were not special-casing SOURCE and CLEAR.
1111 We do now.
1112
1113 Fixes https://bugs.freedesktop.org/show_bug.cgi?id=102661
1114
1115 src/cairo-surface.c | 5 ++++-
1116 1 file changed, 4 insertions(+), 1 deletion(-)
1117
1118 commit 7f6b57a2386c051e4bb6a156cf14904fe061f837
1119 Author: Behdad Esfahbod <behdad@behdad.org>
1120 AuthorDate: Mon Sep 11 22:00:00 2017 -0700
1121 Commit: Behdad Esfahbod <behdad@behdad.org>
1122 CommitDate: Mon Sep 11 22:00:00 2017 -0700
1123
1124 Fix undefined-behavior with integer math
1125
1126 As reported to me:
1127
1128 "A calculation on signed integers has undefined behaviour if the result is not
1129 representable in the type. In this case, it's trying to negate int_min, aka
1130 -2^31 but the range of an int is [-2^31, 2^31-1] so it doesn't fit. Instead,
1131 cast to unsigned which has 2's complement wrap-around arithmetic which is what
1132 this particular function expects."
1133
1134 src/cairo-fixed-private.h | 2 +-
1135 1 file changed, 1 insertion(+), 1 deletion(-)
1136
1137 commit 1af18610baaefd2031259fc7aae79b341c57fb91
1138 Author: Bryce Harrington <bryce@osg.samsung.com>
1139 AuthorDate: Mon Sep 11 19:49:14 2017 -0700
1140 Commit: Bryce Harrington <bryce@osg.samsung.com>
1141 CommitDate: Mon Sep 11 19:56:06 2017 -0700
1142
1143 glesv2: Fix regression in gles version detection
1144
1145 Revert the _cairo_gl_get_flavor() portion of the change from commit
1146 eb523200. This caused GLES to be enabled only if the hardware reported
1147 version 2 exactly; if the hardware supported version 2 and 3 then no ES
1148 support would be enabled.
1149
1150 src/cairo-gl-info.c | 2 +-
1151 1 file changed, 1 insertion(+), 1 deletion(-)
1152
1153 commit c29db4f0de52727406a8b62f4da9a382084b5a79
1154 Author: Adrian Johnson <ajohnson@redneon.com>
1155 AuthorDate: Sat Sep 2 16:11:43 2017 +0930
1156 Commit: Adrian Johnson <ajohnson@redneon.com>
1157 CommitDate: Sat Sep 2 16:11:43 2017 +0930
1158
1159 Remove unused variable
1160
1161 src/cairo-unicode.c | 2 --
1162 1 file changed, 2 deletions(-)
1163
1164 commit b646f755f3ad12ccd437ea32bffaefe5f6c6be25
1165 Author: Adrian Johnson <ajohnson@redneon.com>
1166 AuthorDate: Sat Sep 2 07:37:36 2017 +0930
1167 Commit: Adrian Johnson <ajohnson@redneon.com>
1168 CommitDate: Sat Sep 2 07:37:36 2017 +0930
1169
1170 RELEASING: use correct branch name
1171
1172 RELEASING | 2 +-
1173 1 file changed, 1 insertion(+), 1 deletion(-)
1174
1175 commit 934e42fa5e4b74cf7fed022d2ff8a6326908ba3c
1176 Author: Bryce Harrington <bryce@osg.samsung.com>
1177 AuthorDate: Tue Aug 29 10:18:14 2017 -0700
1178 Commit: Bryce Harrington <bryce@osg.samsung.com>
1179 CommitDate: Tue Aug 29 10:18:14 2017 -0700
1180
1181 Bump version for new development tree, 1.15.9
1182
1183 cairo-version.h | 2 +-
1184 1 file changed, 1 insertion(+), 1 deletion(-)
11185
21186 commit 112f0fc73b769c2db69f50601bf094892bd6db10
31187 Author: Bryce Harrington <bryce@osg.samsung.com>
113113 $(top_srcdir)/build/aclocal.compare.m4 \
114114 $(top_srcdir)/build/aclocal.enable.m4 \
115115 $(top_srcdir)/build/aclocal.float.m4 \
116 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
117116 $(top_srcdir)/build/aclocal.makefile.m4 \
118117 $(top_srcdir)/build/aclocal.pkg.m4 \
119 $(top_srcdir)/build/libtool.m4 \
118 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
120119 $(top_srcdir)/build/ltoptions.m4 \
121120 $(top_srcdir)/build/ltsugar.m4 \
122121 $(top_srcdir)/build/ltversion.m4 \
149148 cairo-os2-uninstalled.pc cairo-beos-uninstalled.pc \
150149 cairo-drm-uninstalled.pc cairo-gallium-uninstalled.pc \
151150 cairo-png-uninstalled.pc cairo-gl-uninstalled.pc \
152 cairo-glesv2-uninstalled.pc cairo-cogl-uninstalled.pc \
153 cairo-directfb-uninstalled.pc cairo-vg-uninstalled.pc \
154 cairo-egl-uninstalled.pc cairo-glx-uninstalled.pc \
155 cairo-wgl-uninstalled.pc cairo-script-uninstalled.pc \
156 cairo-ft-uninstalled.pc cairo-fc-uninstalled.pc \
157 cairo-ps-uninstalled.pc cairo-pdf-uninstalled.pc \
158 cairo-svg-uninstalled.pc cairo-tee-uninstalled.pc \
159 cairo-xml-uninstalled.pc cairo-gobject-uninstalled.pc
151 cairo-glesv2-uninstalled.pc cairo-glesv3-uninstalled.pc \
152 cairo-cogl-uninstalled.pc cairo-directfb-uninstalled.pc \
153 cairo-vg-uninstalled.pc cairo-egl-uninstalled.pc \
154 cairo-glx-uninstalled.pc cairo-wgl-uninstalled.pc \
155 cairo-script-uninstalled.pc cairo-ft-uninstalled.pc \
156 cairo-fc-uninstalled.pc cairo-ps-uninstalled.pc \
157 cairo-pdf-uninstalled.pc cairo-svg-uninstalled.pc \
158 cairo-tee-uninstalled.pc cairo-xml-uninstalled.pc \
159 cairo-gobject-uninstalled.pc
160160 CONFIG_CLEAN_VPATH_FILES =
161161 AM_V_P = $(am__v_P_@AM_V@)
162162 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
529529 GREP = @GREP@
530530 GS = @GS@
531531 GTKDOC_CHECK = @GTKDOC_CHECK@
532 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
533 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
534 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
535 GTKDOC_MKPDF = @GTKDOC_MKPDF@
536 GTKDOC_REBASE = @GTKDOC_REBASE@
532537 HTML_DIR = @HTML_DIR@
533538 INSTALL = @INSTALL@
534539 INSTALL_DATA = @INSTALL_DATA@
627632 gl_LIBS = @gl_LIBS@
628633 glesv2_CFLAGS = @glesv2_CFLAGS@
629634 glesv2_LIBS = @glesv2_LIBS@
635 glesv3_CFLAGS = @glesv3_CFLAGS@
636 glesv3_LIBS = @glesv3_LIBS@
630637 glib_CFLAGS = @glib_CFLAGS@
631638 glib_LIBS = @glib_LIBS@
632639 gtk_CFLAGS = @gtk_CFLAGS@
844851 cairo-gl-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in
845852 cd $(top_builddir) && $(SHELL) ./config.status $@
846853 cairo-glesv2-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in
854 cd $(top_builddir) && $(SHELL) ./config.status $@
855 cairo-glesv3-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in
847856 cd $(top_builddir) && $(SHELL) ./config.status $@
848857 cairo-cogl-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in
849858 cd $(top_builddir) && $(SHELL) ./config.status $@
0 Release 1.15.10 (2017-12-07 Bryce Harrington <bryce@osg.samsung.com>)
1 ========================================================================
2 This release adds GLESv3 support to the cairo_gl backend, adds
3 tracking of SVG units in generated svg documents, and cleans up numerous
4 test failures and related issues in the PDF and Postscript backends.
5
6 For a complete log of changes, please see
7
8 http://cairographics.org/releases/ChangeLog.1.15.10
9
10 Features and Enhancements
11 -------------------------
12 * Add support for OpenGL ES 3.0 to the gl backend.
13 * Use Reusable streams for forms in Level 3 Postscript.
14 * Add CAIRO_MIME_TYPE_EPS mime type for embedding EPS files.
15 * Add CCITT_FAX mime type for PDF and PS surfaces
16 * svg: add a new function to specify the SVG document unit
17 (Bug #90166)
18 * Use UTF-8 filenames on Windows
19
20 API Changes
21 -----------
22 * cairo_svg_surface_set_document_unit() and
23 cairo_svg_surface_get_document_unit()
24
25 Dependency Changes
26 ------------------
27 None
28
29 Performance Optimizations
30 -------------------------
31 None
32
33 Bug Fixes
34 ---------
35 * Fix regression in gles version detection
36 * Fix undefined-behavior with integer math.
37 * Handle SOURCE and CLEAR operators when painting color glyphs.
38 (Bug #102661)
39 * Convert images to rgba or a8 formats when uploading with GLESv2
40 * Use _WIN32 instead of windows.h to check for windows build.
41 * Fix sigabrt printing documents with fonts lacking the mandatory .nodef
42 glyph.
43 (Bug #102922)
44 * Prevent curved strokes in small ctms from being culled from vector
45 surfaces
46 (Bug #103071)
47 * Fix painting an unbounded recording surface with the SVG backend.
48 * Fix falling back to system font with PDFs using certain embedded
49 fonts, due to truncated font names.
50 (Bug #103249)
51 * Fix handling of truetype fonts with excessively long font names
52 (Bug #103249)
53 * Fix race conditions with cairo_mask_compositor_t
54 (Bug #103037)
55 * Fix build error with util/font-view
56 * Fix assertion hit with PDFs using Type 4 fonts rendered with user
57 fonts, due to error when destroying glyph page.
58 (Bug #103335)
59 * Set default creation date for PDFs
60 * Prevent invalid ptr access for > 4GB images.
61 (Bug #98165)
62 * Prevent self-copy infinite loop in Postscript surface.
63 * Fix padded image crash in Postscript surface.
64 * Fix annotation bugs in PDFs and related memory leaks
65 * Fix test failures and other assorted issues in ps and pdf code.
66 * Fix code generation when using GCC legacy atomic operations
67 (Bug #103559)
68 * Fix various compilation warnings and errors.
69 * Fix various distcheck errors with private symbols, doxygen formatting,
70 etc.
71
072 Release 1.15.8 (2017-08-29 Bryce Harrington <bryce@osg.samsung.com>)
173 ========================================================================
274 This small snapshot provides new colored emoji glyph support, and a
172172 previous versions, remove manual-${THIS_RELEASE} and
173173 release/cairo-${THIS_RELEASE}.
174174
175 8) Update trunk (or the stable branch) version number.
175 8) Update master (or the stable branch) version number.
176176
177177 For Micro releases (X.Y.Z), increment cairo_version_micro to the
178178 next larger (odd) number in cairo-version.h, commit, and push.
12131213 m4_include([build/aclocal.compare.m4])
12141214 m4_include([build/aclocal.enable.m4])
12151215 m4_include([build/aclocal.float.m4])
1216 m4_include([build/aclocal.gtk-doc.m4])
12171216 m4_include([build/aclocal.makefile.m4])
12181217 m4_include([build/aclocal.pkg.m4])
1218 m4_include([build/gtk-doc.m4])
12191219 m4_include([build/libtool.m4])
12201220 m4_include([build/ltoptions.m4])
12211221 m4_include([build/ltsugar.m4])
88
99 AUTORECONF=`which autoreconf`
1010 if test -z $AUTORECONF; then
11 echo "*** No autoreconf found, please intall it ***"
11 echo "*** No autoreconf found, please install it ***"
1212 exit 1
1313 fi
1414
242242 enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv2_sources)
243243 endif
244244
245 unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
246 all_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
247 all_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
248 all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
249 all_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)
250 if CAIRO_HAS_GLESV3_SURFACE
251 enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
252 enabled_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
253 enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
254 enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)
255 endif
256
245257 unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)
246258 all_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)
247259 all_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private)
174174 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_74 = $(cairo_boilerplate_glesv2_private)
175175 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_75 = $(cairo_boilerplate_glesv2_cxx_sources)
176176 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_76 = $(cairo_boilerplate_glesv2_sources)
177 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_77 = $(cairo_boilerplate_cogl_headers)
178 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_78 = $(cairo_boilerplate_cogl_private)
179 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_79 = $(cairo_boilerplate_cogl_cxx_sources)
180 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_80 = $(cairo_boilerplate_cogl_sources)
181 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_81 = $(cairo_boilerplate_directfb_headers)
182 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_82 = $(cairo_boilerplate_directfb_private)
183 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_83 = $(cairo_boilerplate_directfb_cxx_sources)
184 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_84 = $(cairo_boilerplate_directfb_sources)
185 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_85 = $(cairo_boilerplate_vg_headers)
186 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_86 = $(cairo_boilerplate_vg_private)
187 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_87 = $(cairo_boilerplate_vg_cxx_sources)
188 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_88 = $(cairo_boilerplate_vg_sources)
189 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_89 = $(cairo_boilerplate_egl_headers)
190 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_90 = $(cairo_boilerplate_egl_private)
191 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_91 = $(cairo_boilerplate_egl_cxx_sources)
192 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_92 = $(cairo_boilerplate_egl_sources)
193 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_93 = $(cairo_boilerplate_glx_headers)
194 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_94 = $(cairo_boilerplate_glx_private)
195 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_95 = $(cairo_boilerplate_glx_cxx_sources)
196 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_96 = $(cairo_boilerplate_glx_sources)
197 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_97 = $(cairo_boilerplate_wgl_headers)
198 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_98 = $(cairo_boilerplate_wgl_private)
199 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_99 = $(cairo_boilerplate_wgl_cxx_sources)
200 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_100 = $(cairo_boilerplate_wgl_sources)
201 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_101 = $(cairo_boilerplate_script_headers)
202 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_102 = $(cairo_boilerplate_script_private)
203 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_103 = $(cairo_boilerplate_script_cxx_sources)
204 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_104 = $(cairo_boilerplate_script_sources)
205 @CAIRO_HAS_FT_FONT_TRUE@am__append_105 = $(cairo_boilerplate_ft_headers)
206 @CAIRO_HAS_FT_FONT_TRUE@am__append_106 = $(cairo_boilerplate_ft_private)
207 @CAIRO_HAS_FT_FONT_TRUE@am__append_107 = $(cairo_boilerplate_ft_cxx_sources)
208 @CAIRO_HAS_FT_FONT_TRUE@am__append_108 = $(cairo_boilerplate_ft_sources)
209 @CAIRO_HAS_FC_FONT_TRUE@am__append_109 = $(cairo_boilerplate_fc_headers)
210 @CAIRO_HAS_FC_FONT_TRUE@am__append_110 = $(cairo_boilerplate_fc_private)
211 @CAIRO_HAS_FC_FONT_TRUE@am__append_111 = $(cairo_boilerplate_fc_cxx_sources)
212 @CAIRO_HAS_FC_FONT_TRUE@am__append_112 = $(cairo_boilerplate_fc_sources)
213 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_113 = $(cairo_boilerplate_ps_headers)
214 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_114 = $(cairo_boilerplate_ps_private)
215 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_115 = $(cairo_boilerplate_ps_cxx_sources)
216 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_116 = $(cairo_boilerplate_ps_sources)
217 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_117 = $(cairo_boilerplate_pdf_headers)
218 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_118 = $(cairo_boilerplate_pdf_private)
219 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_119 = $(cairo_boilerplate_pdf_cxx_sources)
220 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_120 = $(cairo_boilerplate_pdf_sources)
221 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_121 = $(cairo_boilerplate_svg_headers)
222 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_122 = $(cairo_boilerplate_svg_private)
223 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_123 = $(cairo_boilerplate_svg_cxx_sources)
224 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_124 = $(cairo_boilerplate_svg_sources)
225 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_125 = $(cairo_boilerplate_test_surfaces_private) $(cairo_boilerplate_test_surfaces_headers)
226 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_126 = $(cairo_boilerplate_test_surfaces_cxx_sources)
227 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_127 = $(cairo_boilerplate_test_surfaces_sources)
228 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_128 = $(cairo_boilerplate_tee_headers)
229 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_129 = $(cairo_boilerplate_tee_private)
230 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_130 = $(cairo_boilerplate_tee_cxx_sources)
231 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_131 = $(cairo_boilerplate_tee_sources)
232 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_132 = $(cairo_boilerplate_xml_headers)
233 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_133 = $(cairo_boilerplate_xml_private)
234 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_134 = $(cairo_boilerplate_xml_cxx_sources)
235 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_135 = $(cairo_boilerplate_xml_sources)
236 @CAIRO_HAS_PTHREAD_TRUE@am__append_136 = $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers)
237 @CAIRO_HAS_PTHREAD_TRUE@am__append_137 = $(cairo_boilerplate_pthread_cxx_sources)
238 @CAIRO_HAS_PTHREAD_TRUE@am__append_138 = $(cairo_boilerplate_pthread_sources)
239 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_139 = $(cairo_boilerplate_gobject_headers)
240 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_140 = $(cairo_boilerplate_gobject_private)
241 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_141 = $(cairo_boilerplate_gobject_cxx_sources)
242 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_142 = $(cairo_boilerplate_gobject_sources)
243 @CAIRO_HAS_TRACE_TRUE@am__append_143 = $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
244 @CAIRO_HAS_TRACE_TRUE@am__append_144 = $(cairo_boilerplate_trace_cxx_sources)
245 @CAIRO_HAS_TRACE_TRUE@am__append_145 = $(cairo_boilerplate_trace_sources)
246 @CAIRO_HAS_INTERPRETER_TRUE@am__append_146 = $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers)
247 @CAIRO_HAS_INTERPRETER_TRUE@am__append_147 = $(cairo_boilerplate_interpreter_cxx_sources)
248 @CAIRO_HAS_INTERPRETER_TRUE@am__append_148 = $(cairo_boilerplate_interpreter_sources)
249 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_149 = $(cairo_boilerplate_symbol_lookup_private) $(cairo_boilerplate_symbol_lookup_headers)
250 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_150 = $(cairo_boilerplate_symbol_lookup_cxx_sources)
251 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_151 = $(cairo_boilerplate_symbol_lookup_sources)
252 @CAIRO_HAS_DL_TRUE@am__append_152 = -ldl
253 @CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_153 = -lwinspool
254 @CROSS_COMPILING_FALSE@am__append_154 = check-link$(EXEEXT)
177 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_77 = $(cairo_boilerplate_glesv3_headers)
178 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_78 = $(cairo_boilerplate_glesv3_private)
179 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_79 = $(cairo_boilerplate_glesv3_cxx_sources)
180 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_80 = $(cairo_boilerplate_glesv3_sources)
181 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_81 = $(cairo_boilerplate_cogl_headers)
182 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_82 = $(cairo_boilerplate_cogl_private)
183 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_83 = $(cairo_boilerplate_cogl_cxx_sources)
184 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_84 = $(cairo_boilerplate_cogl_sources)
185 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_85 = $(cairo_boilerplate_directfb_headers)
186 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_86 = $(cairo_boilerplate_directfb_private)
187 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_87 = $(cairo_boilerplate_directfb_cxx_sources)
188 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_88 = $(cairo_boilerplate_directfb_sources)
189 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_89 = $(cairo_boilerplate_vg_headers)
190 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_90 = $(cairo_boilerplate_vg_private)
191 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_91 = $(cairo_boilerplate_vg_cxx_sources)
192 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_92 = $(cairo_boilerplate_vg_sources)
193 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_93 = $(cairo_boilerplate_egl_headers)
194 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_94 = $(cairo_boilerplate_egl_private)
195 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_95 = $(cairo_boilerplate_egl_cxx_sources)
196 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_96 = $(cairo_boilerplate_egl_sources)
197 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_97 = $(cairo_boilerplate_glx_headers)
198 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_98 = $(cairo_boilerplate_glx_private)
199 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_99 = $(cairo_boilerplate_glx_cxx_sources)
200 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_100 = $(cairo_boilerplate_glx_sources)
201 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_101 = $(cairo_boilerplate_wgl_headers)
202 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_102 = $(cairo_boilerplate_wgl_private)
203 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_103 = $(cairo_boilerplate_wgl_cxx_sources)
204 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_104 = $(cairo_boilerplate_wgl_sources)
205 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_105 = $(cairo_boilerplate_script_headers)
206 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_106 = $(cairo_boilerplate_script_private)
207 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_107 = $(cairo_boilerplate_script_cxx_sources)
208 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_108 = $(cairo_boilerplate_script_sources)
209 @CAIRO_HAS_FT_FONT_TRUE@am__append_109 = $(cairo_boilerplate_ft_headers)
210 @CAIRO_HAS_FT_FONT_TRUE@am__append_110 = $(cairo_boilerplate_ft_private)
211 @CAIRO_HAS_FT_FONT_TRUE@am__append_111 = $(cairo_boilerplate_ft_cxx_sources)
212 @CAIRO_HAS_FT_FONT_TRUE@am__append_112 = $(cairo_boilerplate_ft_sources)
213 @CAIRO_HAS_FC_FONT_TRUE@am__append_113 = $(cairo_boilerplate_fc_headers)
214 @CAIRO_HAS_FC_FONT_TRUE@am__append_114 = $(cairo_boilerplate_fc_private)
215 @CAIRO_HAS_FC_FONT_TRUE@am__append_115 = $(cairo_boilerplate_fc_cxx_sources)
216 @CAIRO_HAS_FC_FONT_TRUE@am__append_116 = $(cairo_boilerplate_fc_sources)
217 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_117 = $(cairo_boilerplate_ps_headers)
218 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_118 = $(cairo_boilerplate_ps_private)
219 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_119 = $(cairo_boilerplate_ps_cxx_sources)
220 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_120 = $(cairo_boilerplate_ps_sources)
221 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_121 = $(cairo_boilerplate_pdf_headers)
222 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_122 = $(cairo_boilerplate_pdf_private)
223 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_123 = $(cairo_boilerplate_pdf_cxx_sources)
224 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_124 = $(cairo_boilerplate_pdf_sources)
225 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_125 = $(cairo_boilerplate_svg_headers)
226 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_126 = $(cairo_boilerplate_svg_private)
227 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_127 = $(cairo_boilerplate_svg_cxx_sources)
228 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_128 = $(cairo_boilerplate_svg_sources)
229 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_129 = $(cairo_boilerplate_test_surfaces_private) $(cairo_boilerplate_test_surfaces_headers)
230 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_130 = $(cairo_boilerplate_test_surfaces_cxx_sources)
231 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_131 = $(cairo_boilerplate_test_surfaces_sources)
232 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_132 = $(cairo_boilerplate_tee_headers)
233 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_133 = $(cairo_boilerplate_tee_private)
234 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_134 = $(cairo_boilerplate_tee_cxx_sources)
235 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_135 = $(cairo_boilerplate_tee_sources)
236 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_136 = $(cairo_boilerplate_xml_headers)
237 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_137 = $(cairo_boilerplate_xml_private)
238 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_138 = $(cairo_boilerplate_xml_cxx_sources)
239 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_139 = $(cairo_boilerplate_xml_sources)
240 @CAIRO_HAS_PTHREAD_TRUE@am__append_140 = $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers)
241 @CAIRO_HAS_PTHREAD_TRUE@am__append_141 = $(cairo_boilerplate_pthread_cxx_sources)
242 @CAIRO_HAS_PTHREAD_TRUE@am__append_142 = $(cairo_boilerplate_pthread_sources)
243 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_143 = $(cairo_boilerplate_gobject_headers)
244 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_144 = $(cairo_boilerplate_gobject_private)
245 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_145 = $(cairo_boilerplate_gobject_cxx_sources)
246 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_146 = $(cairo_boilerplate_gobject_sources)
247 @CAIRO_HAS_TRACE_TRUE@am__append_147 = $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
248 @CAIRO_HAS_TRACE_TRUE@am__append_148 = $(cairo_boilerplate_trace_cxx_sources)
249 @CAIRO_HAS_TRACE_TRUE@am__append_149 = $(cairo_boilerplate_trace_sources)
250 @CAIRO_HAS_INTERPRETER_TRUE@am__append_150 = $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers)
251 @CAIRO_HAS_INTERPRETER_TRUE@am__append_151 = $(cairo_boilerplate_interpreter_cxx_sources)
252 @CAIRO_HAS_INTERPRETER_TRUE@am__append_152 = $(cairo_boilerplate_interpreter_sources)
253 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_153 = $(cairo_boilerplate_symbol_lookup_private) $(cairo_boilerplate_symbol_lookup_headers)
254 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_154 = $(cairo_boilerplate_symbol_lookup_cxx_sources)
255 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_155 = $(cairo_boilerplate_symbol_lookup_sources)
256 @CAIRO_HAS_DL_TRUE@am__append_156 = -ldl
257 @CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_157 = -lwinspool
258 @CROSS_COMPILING_FALSE@am__append_158 = check-link$(EXEEXT)
255259 subdir = boilerplate
256260 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
257261 am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \
258262 $(top_srcdir)/build/aclocal.compare.m4 \
259263 $(top_srcdir)/build/aclocal.enable.m4 \
260264 $(top_srcdir)/build/aclocal.float.m4 \
261 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
262265 $(top_srcdir)/build/aclocal.makefile.m4 \
263266 $(top_srcdir)/build/aclocal.pkg.m4 \
264 $(top_srcdir)/build/libtool.m4 \
267 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
265268 $(top_srcdir)/build/ltoptions.m4 \
266269 $(top_srcdir)/build/ltsugar.m4 \
267270 $(top_srcdir)/build/ltversion.m4 \
313316 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
314317 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
315318 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
319 $(am__objects_1) $(am__objects_1) $(am__objects_1)
320 am__objects_4 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
321 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
322 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
323 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
324 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
325 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
326 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
327 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
328 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
329 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
330 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
331 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
332 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
316333 $(am__objects_1) $(am__objects_1)
317 am__objects_4 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
318 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
319 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
320 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
321 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
322 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
323 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
324 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
325 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
326 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
327 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
328 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
329 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
330 $(am__objects_1)
331334 am__objects_5 = cairo-boilerplate-getopt.lo \
332335 cairo-boilerplate-system.lo cairo-boilerplate.lo
333336 am__objects_6 = cairo-boilerplate-xlib.lo
371374 $(am__objects_1) $(am__objects_13) $(am__objects_1) \
372375 $(am__objects_15) $(am__objects_1) $(am__objects_1) \
373376 $(am__objects_17) $(am__objects_1) $(am__objects_1) \
374 $(am__objects_1) $(am__objects_1) $(am__objects_19) \
375 $(am__objects_21) $(am__objects_23) $(am__objects_25) \
376 $(am__objects_27) $(am__objects_29) $(am__objects_31) \
377 $(am__objects_1) $(am__objects_1) $(am__objects_33) \
378 $(am__objects_35) $(am__objects_37) $(am__objects_39) \
379 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
380 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
381 $(am__objects_1)
377 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
378 $(am__objects_19) $(am__objects_21) $(am__objects_23) \
379 $(am__objects_25) $(am__objects_27) $(am__objects_29) \
380 $(am__objects_31) $(am__objects_1) $(am__objects_1) \
381 $(am__objects_33) $(am__objects_35) $(am__objects_37) \
382 $(am__objects_39) $(am__objects_1) $(am__objects_1) \
383 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
384 $(am__objects_1) $(am__objects_1)
382385 am_libcairoboilerplate_la_OBJECTS = $(am__objects_3) $(am__objects_4) \
383386 $(am__objects_40) cairo-boilerplate-constructors.lo
384387 libcairoboilerplate_la_OBJECTS = $(am_libcairoboilerplate_la_OBJECTS)
407410 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
408411 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
409412 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
410 $(am__objects_1) $(am__objects_1) $(am__objects_1)
413 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
414 $(am__objects_1)
411415 am_libcairoboilerplate_cxx_la_OBJECTS = $(am__objects_45)
412416 libcairoboilerplate_cxx_la_OBJECTS = \
413417 $(am_libcairoboilerplate_cxx_la_OBJECTS)
766770 GREP = @GREP@
767771 GS = @GS@
768772 GTKDOC_CHECK = @GTKDOC_CHECK@
773 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
774 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
775 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
776 GTKDOC_MKPDF = @GTKDOC_MKPDF@
777 GTKDOC_REBASE = @GTKDOC_REBASE@
769778 HTML_DIR = @HTML_DIR@
770779 INSTALL = @INSTALL@
771780 INSTALL_DATA = @INSTALL_DATA@
864873 gl_LIBS = @gl_LIBS@
865874 glesv2_CFLAGS = @glesv2_CFLAGS@
866875 glesv2_LIBS = @glesv2_LIBS@
876 glesv3_CFLAGS = @glesv3_CFLAGS@
877 glesv3_LIBS = @glesv3_LIBS@
867878 glib_CFLAGS = @glib_CFLAGS@
868879 glib_LIBS = @glib_LIBS@
869880 gtk_CFLAGS = @gtk_CFLAGS@
930941 make-cairo-boilerplate-constructors.sh
931942 EXTRA_LTLIBRARIES = libcairoboilerplate.la $(cxx_boilerplate_lib)
932943 MAINTAINERCLEANFILES = Makefile.in
933 TESTS = $(am__append_154)
944 TESTS = $(am__append_158)
934945 cairo_boilerplate_headers = \
935946 cairo-boilerplate-getopt.h \
936947 cairo-boilerplate-scaled-font.h \
10041015 $(cairo_boilerplate_gallium_headers) \
10051016 $(cairo_boilerplate_gl_headers) \
10061017 $(cairo_boilerplate_glesv2_headers) \
1018 $(cairo_boilerplate_glesv3_headers) \
10071019 $(cairo_boilerplate_cogl_headers) \
10081020 $(cairo_boilerplate_directfb_headers) \
10091021 $(cairo_boilerplate_vg_headers) \
10291041 $(cairo_boilerplate_png_headers) \
10301042 $(cairo_boilerplate_gl_headers) \
10311043 $(cairo_boilerplate_glesv2_headers) \
1044 $(cairo_boilerplate_glesv3_headers) \
10321045 $(cairo_boilerplate_cogl_headers) \
10331046 $(cairo_boilerplate_directfb_headers) \
10341047 $(cairo_boilerplate_vg_headers) \
10691082 $(cairo_boilerplate_png_private) \
10701083 $(cairo_boilerplate_gl_private) \
10711084 $(cairo_boilerplate_glesv2_private) \
1085 $(cairo_boilerplate_glesv3_private) \
10721086 $(cairo_boilerplate_cogl_private) \
10731087 $(cairo_boilerplate_directfb_private) \
10741088 $(cairo_boilerplate_vg_private) \
11191133 $(cairo_boilerplate_png_cxx_sources) \
11201134 $(cairo_boilerplate_gl_cxx_sources) \
11211135 $(cairo_boilerplate_glesv2_cxx_sources) \
1136 $(cairo_boilerplate_glesv3_cxx_sources) \
11221137 $(cairo_boilerplate_cogl_cxx_sources) \
11231138 $(cairo_boilerplate_directfb_cxx_sources) \
11241139 $(cairo_boilerplate_vg_cxx_sources) \
11641179 $(cairo_boilerplate_png_sources) \
11651180 $(cairo_boilerplate_gl_sources) \
11661181 $(cairo_boilerplate_glesv2_sources) \
1182 $(cairo_boilerplate_glesv3_sources) \
11671183 $(cairo_boilerplate_cogl_sources) \
11681184 $(cairo_boilerplate_directfb_sources) \
11691185 $(cairo_boilerplate_vg_sources) \
12001216 $(am__append_85) $(am__append_89) $(am__append_93) \
12011217 $(am__append_97) $(am__append_101) $(am__append_105) \
12021218 $(am__append_109) $(am__append_113) $(am__append_117) \
1203 $(am__append_121) $(cairo_boilerplate_image_headers) \
1219 $(am__append_121) $(am__append_125) \
1220 $(cairo_boilerplate_image_headers) \
12041221 $(cairo_boilerplate_mime_headers) \
12051222 $(cairo_boilerplate_recording_headers) \
1206 $(cairo_boilerplate_observer_headers) $(am__append_128) \
1207 $(am__append_132) $(cairo_boilerplate_user_headers) \
1208 $(am__append_139)
1223 $(cairo_boilerplate_observer_headers) $(am__append_132) \
1224 $(am__append_136) $(cairo_boilerplate_user_headers) \
1225 $(am__append_143)
12091226 enabled_cairo_boilerplate_private = $(cairo_boilerplate_private) \
12101227 $(am__append_2) $(am__append_6) $(am__append_10) \
12111228 $(am__append_14) $(am__append_18) $(am__append_22) \
12171234 $(am__append_86) $(am__append_90) $(am__append_94) \
12181235 $(am__append_98) $(am__append_102) $(am__append_106) \
12191236 $(am__append_110) $(am__append_114) $(am__append_118) \
1220 $(am__append_122) $(am__append_125) \
1237 $(am__append_122) $(am__append_126) $(am__append_129) \
12211238 $(cairo_boilerplate_image_private) \
12221239 $(cairo_boilerplate_mime_private) \
12231240 $(cairo_boilerplate_recording_private) \
1224 $(cairo_boilerplate_observer_private) $(am__append_129) \
1225 $(am__append_133) $(cairo_boilerplate_user_private) \
1226 $(am__append_136) $(am__append_140) $(am__append_143) \
1227 $(am__append_146) $(am__append_149)
1241 $(cairo_boilerplate_observer_private) $(am__append_133) \
1242 $(am__append_137) $(cairo_boilerplate_user_private) \
1243 $(am__append_140) $(am__append_144) $(am__append_147) \
1244 $(am__append_150) $(am__append_153)
12281245 enabled_cairo_boilerplate_cxx_sources = \
12291246 $(cairo_boilerplate_cxx_sources) $(am__append_3) \
12301247 $(am__append_7) $(am__append_11) $(am__append_15) \
12371254 $(am__append_91) $(am__append_95) $(am__append_99) \
12381255 $(am__append_103) $(am__append_107) $(am__append_111) \
12391256 $(am__append_115) $(am__append_119) $(am__append_123) \
1240 $(am__append_126) $(cairo_boilerplate_image_cxx_sources) \
1257 $(am__append_127) $(am__append_130) \
1258 $(cairo_boilerplate_image_cxx_sources) \
12411259 $(cairo_boilerplate_mime_cxx_sources) \
12421260 $(cairo_boilerplate_recording_cxx_sources) \
1243 $(cairo_boilerplate_observer_cxx_sources) $(am__append_130) \
1244 $(am__append_134) $(cairo_boilerplate_user_cxx_sources) \
1245 $(am__append_137) $(am__append_141) $(am__append_144) \
1246 $(am__append_147) $(am__append_150)
1261 $(cairo_boilerplate_observer_cxx_sources) $(am__append_134) \
1262 $(am__append_138) $(cairo_boilerplate_user_cxx_sources) \
1263 $(am__append_141) $(am__append_145) $(am__append_148) \
1264 $(am__append_151) $(am__append_154)
12471265 enabled_cairo_boilerplate_sources = $(cairo_boilerplate_sources) \
12481266 $(am__append_4) $(am__append_8) $(am__append_12) \
12491267 $(am__append_16) $(am__append_20) $(am__append_24) \
12551273 $(am__append_88) $(am__append_92) $(am__append_96) \
12561274 $(am__append_100) $(am__append_104) $(am__append_108) \
12571275 $(am__append_112) $(am__append_116) $(am__append_120) \
1258 $(am__append_124) $(am__append_127) \
1276 $(am__append_124) $(am__append_128) $(am__append_131) \
12591277 $(cairo_boilerplate_image_sources) \
12601278 $(cairo_boilerplate_mime_sources) \
12611279 $(cairo_boilerplate_recording_sources) \
1262 $(cairo_boilerplate_observer_sources) $(am__append_131) \
1263 $(am__append_135) $(cairo_boilerplate_user_sources) \
1264 $(am__append_138) $(am__append_142) $(am__append_145) \
1265 $(am__append_148) $(am__append_151)
1280 $(cairo_boilerplate_observer_sources) $(am__append_135) \
1281 $(am__append_139) $(cairo_boilerplate_user_sources) \
1282 $(am__append_142) $(am__append_146) $(am__append_149) \
1283 $(am__append_152) $(am__append_155)
12661284 #MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
12671285 AM_CPPFLAGS = \
12681286 -I$(srcdir) \
12871305
12881306 libcairoboilerplate_la_LIBADD = $(top_builddir)/src/libcairo.la \
12891307 $(cxx_boilerplate_lib) $(CAIRO_LIBS) $(CAIROBOILERPLATE_LIBS) \
1290 $(NULL) $(am__append_152) $(am__append_153)
1308 $(NULL) $(am__append_156) $(am__append_157)
12911309 libcairoboilerplate_cxx_la_LIBADD = $(top_builddir)/src/libcairo.la \
12921310 $(CAIRO_LIBS) \
12931311 $(CAIROBOILERPLATE_LIBS) \
246246 enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv2_sources)
247247 endif
248248
249 unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
250 all_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
251 all_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
252 all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
253 all_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)
254 ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)
255 enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
256 enabled_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
257 enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
258 enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)
259 endif
260
249261 unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)
250262 all_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)
251263 all_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private)
44 void _cairo_boilerplate_register_all (void);
55
66 extern void _register_builtin (void);
7 extern void _register_xlib (void);
8 extern void _register_xcb (void);
79 extern void _register_script (void);
810 extern void _register_ps (void);
11 extern void _register_pdf (void);
912 extern void _register_svg (void);
10 extern void _register_test (void);
1113
1214 void
1315 _cairo_boilerplate_register_all (void)
1416 {
1517 _register_builtin ();
18 _register_xlib ();
19 _register_xcb ();
1620 _register_script ();
1721 _register_ps ();
22 _register_pdf ();
1823 _register_svg ();
19 _register_test ();
2024 }
3232 #include "cairo-boilerplate-private.h"
3333
3434 #include <cairo-gl.h>
35 #if CAIRO_HAS_GL_SURFACE
36 #include <GL/gl.h>
35 #if CAIRO_HAS_GLESV3_SURFACE
36 #include <GLES3/gl3.h>
37 #include <EGL/eglext.h>
3738 #elif CAIRO_HAS_GLESV2_SURFACE
3839 #include <GLES2/gl2.h>
40 #elif CAIRO_HAS_GL_SURFACE
41 #include <GL/gl.h>
3942 #endif
4043
4144 static const cairo_user_data_key_t gl_closure_key;
8487 EGL_BLUE_SIZE, 8,
8588 EGL_ALPHA_SIZE, 8,
8689 EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
87 #if CAIRO_HAS_GL_SURFACE
88 EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
90 #if CAIRO_HAS_GLESV3_SURFACE
91 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT_KHR,
8992 #elif CAIRO_HAS_GLESV2_SURFACE
9093 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
94 #elif CAIRO_HAS_GL_SURFACE
95 EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
9196 #endif
9297 EGL_NONE
9398 };
9499 const EGLint ctx_attribs[] = {
95 #if CAIRO_HAS_GLESV2_SURFACE
100 #if CAIRO_HAS_GLESV3_SURFACE
101 EGL_CONTEXT_CLIENT_VERSION, 3,
102 #elif CAIRO_HAS_GLESV2_SURFACE
96103 EGL_CONTEXT_CLIENT_VERSION, 2,
97104 #endif
98105 EGL_NONE
109116 }
110117
111118 eglChooseConfig (gltc->dpy, config_attribs, &config, 1, &numConfigs);
119 #if CAIRO_HAS_GLESV3_SURFACE && CAIRO_HAS_GLESV2_SURFACE
120 if (numConfigs == 0) {
121 /* retry with ES2_BIT */
122 config_attribs[11] = ES2_BIT; /* FIXME: Ick */
123 eglChooseConfig (gltc->dpy, config_attribs, &config, 1, &numConfigs);
124 }
125 #endif
112126 if (numConfigs == 0) {
113127 free (gltc);
114128 return NULL;
115129 }
116130
117 #if CAIRO_HAS_GL_SURFACE
131 #if CAIRO_HAS_GLESV3_SURFACE || CAIRO_HAS_GLESV2_SURFACE
132 eglBindAPI (EGL_OPENGL_ES_API);
133 #elif CAIRO_HAS_GL_SURFACE
118134 eglBindAPI (EGL_OPENGL_API);
119 #elif CAIRO_HAS_GLESV2_SURFACE
120 eglBindAPI (EGL_OPENGL_ES_API);
121135 #endif
122136
123137 gltc->ctx = eglCreateContext (gltc->dpy, config, EGL_NO_CONTEXT,
8383 if (cairo_surface_status (surface))
8484 goto CLEANUP_FILENAME;
8585
86 cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_CREATE_DATE, NULL);
8687 cairo_surface_set_fallback_resolution (surface, 72., 72.);
8788
8889 if (content == CAIRO_CONTENT_COLOR) {
4141 #undef CAIRO_VERSION_H
4242 #include "../cairo-version.h"
4343
44 #include <stddef.h>
4445 #include <stdlib.h>
4546 #include <ctype.h>
4647 #include <assert.h>
975976 cairo_boilerplate_image_surface_create_from_ppm_stream (FILE *file)
976977 {
977978 char format;
978 int width, height, stride;
979 int width, height;
980 ptrdiff_t stride;
979981 int x, y;
980982 unsigned char *data;
981983 cairo_surface_t *image = NULL;
1818 CAIRO_HAS_PNG_FUNCTIONS=1
1919 CAIRO_HAS_GL_SURFACE=0
2020 CAIRO_HAS_GLESV2_SURFACE=0
21 CAIRO_HAS_GLESV3_SURFACE=0
2122 CAIRO_HAS_COGL_SURFACE=0
2223 CAIRO_HAS_DIRECTFB_SURFACE=0
2324 CAIRO_HAS_VG_SURFACE=0
6060 endif
6161 ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)
6262 @echo "#define CAIRO_HAS_GLESV2_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h
63 endif
64 ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)
65 @echo "#define CAIRO_HAS_GLESV3_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h
6366 endif
6467 ifeq ($(CAIRO_HAS_COGL_SURFACE),1)
6568 @echo "#define CAIRO_HAS_COGL_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h
164164 int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); }
165165 int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); }
166166 ], [],
167 cairo_cv_atomic_primitives="Intel"
167 cairo_cv_atomic_primitives="gcc-legacy"
168168 )
169169
170170 AC_TRY_LINK([
189189 [Enable if your compiler supports the GCC __atomic_* atomic primitives])
190190 fi
191191
192 if test "x$cairo_cv_atomic_primitives" = xIntel; then
193 AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1,
194 [Enable if your compiler supports the Intel __sync_* atomic primitives])
192 if test "x$cairo_cv_atomic_primitives" = xgcc-legacy; then
193 AC_DEFINE(HAVE_GCC_LEGACY_ATOMICS, 1,
194 [Enable if your compiler supports the legacy GCC __sync_* atomic primitives])
195195 fi
196196
197197 if test "x$cairo_cv_atomic_primitives" = "xlibatomic-ops"; then
+0
-39
build/aclocal.gtk-doc.m4 less more
0 dnl -*- mode: autoconf -*-
1
2 # serial 1
3
4 dnl Usage:
5 dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
6 AC_DEFUN([GTK_DOC_CHECK],
7 [
8 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
9 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
10 dnl for overriding the documentation installation directory
11 AC_ARG_WITH([html-dir],
12 AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
13 [with_html_dir='${datadir}/gtk-doc/html'])
14 HTML_DIR="$with_html_dir"
15 AC_SUBST([HTML_DIR])
16
17 dnl enable/disable documentation building
18 AC_ARG_ENABLE([gtk-doc],
19 AS_HELP_STRING([--enable-gtk-doc],
20 [use gtk-doc to build documentation [[default=no]]]),,
21 [enable_gtk_doc=no])
22
23 if test x$enable_gtk_doc = xyes; then
24 ifelse([$1],[],
25 [PKG_CHECK_EXISTS([gtk-doc],,
26 AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
27 [PKG_CHECK_EXISTS([gtk-doc >= $1],,
28 AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))])
29 fi
30
31 AC_MSG_CHECKING([whether to build gtk-doc documentation])
32 AC_MSG_RESULT($enable_gtk_doc)
33
34 AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,)
35
36 AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
37 AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
38 ])
383383 echo " SVG: $use_svg"
384384 echo " OpenGL: $use_gl"
385385 echo " OpenGL ES 2.0: $use_glesv2"
386 echo " OpenGL ES 3.0: $use_glesv3"
386387 echo " BeOS: $use_beos"
387388 echo " DirectFB: $use_directfb"
388389 echo " OpenVG: $use_vg"
107107
108108 dnl check for misc headers and functions
109109 AC_CHECK_HEADERS([libgen.h byteswap.h signal.h setjmp.h fenv.h sys/wait.h])
110 AC_CHECK_FUNCS([ctime_r drand48 flockfile funlockfile getline link strndup])
110 AC_CHECK_FUNCS([ctime_r localtime_r gmtime_r drand48 flockfile funlockfile getline link strndup])
111111
112 dnl check for win32 headers (this detects mingw as well)
113 AC_CHECK_HEADERS([windows.h], have_windows=yes, have_windows=no)
114
112 dnl Check if the runtime platform is a native Win32 host.
113 AC_COMPILE_IFELSE([[
114 #ifdef _WIN32
115 choke me
116 #endif]], [have_windows=no], [have_windows=yes])
115117
116118 dnl Possible headers for mkdir
117119 AC_CHECK_HEADERS([sys/stat.h io.h])
0 dnl -*- mode: autoconf -*-
1
2 # serial 2
3
4 dnl Usage:
5 dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
6 AC_DEFUN([GTK_DOC_CHECK],
7 [
8 AC_REQUIRE([PKG_PROG_PKG_CONFIG])
9 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
10 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
11
12 ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
13 AC_MSG_CHECKING([for gtk-doc])
14 PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
15 AC_MSG_RESULT($have_gtk_doc)
16
17 if test "$have_gtk_doc" = "no"; then
18 AC_MSG_WARN([
19 You will not be able to create source packages with 'make dist'
20 because $gtk_doc_requires is not found.])
21 fi
22
23 dnl check for tools we added during development
24 dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
25 dnl may not be writable by the user. Currently, automake requires that the
26 dnl test name must end in '.test'.
27 dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
28 AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
29 AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
30 AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
31 AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
32
33 dnl for overriding the documentation installation directory
34 AC_ARG_WITH([html-dir],
35 AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
36 [with_html_dir='${datadir}/gtk-doc/html'])
37 HTML_DIR="$with_html_dir"
38 AC_SUBST([HTML_DIR])
39
40 dnl enable/disable documentation building
41 AC_ARG_ENABLE([gtk-doc],
42 AS_HELP_STRING([--enable-gtk-doc],
43 [use gtk-doc to build documentation [[default=no]]]),,
44 [enable_gtk_doc=no])
45
46 AC_MSG_CHECKING([whether to build gtk-doc documentation])
47 AC_MSG_RESULT($enable_gtk_doc)
48
49 if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
50 AC_MSG_ERROR([
51 You must have $gtk_doc_requires installed to build documentation for
52 $PACKAGE_NAME. Please install gtk-doc or disable building the
53 documentation by adding '--disable-gtk-doc' to '[$]0'.])
54 fi
55
56 dnl don't check for glib if we build glib
57 if test "x$PACKAGE_NAME" != "xglib"; then
58 dnl don't fail if someone does not have glib
59 PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:])
60 fi
61
62 dnl enable/disable output formats
63 AC_ARG_ENABLE([gtk-doc-html],
64 AS_HELP_STRING([--enable-gtk-doc-html],
65 [build documentation in html format [[default=yes]]]),,
66 [enable_gtk_doc_html=yes])
67 AC_ARG_ENABLE([gtk-doc-pdf],
68 AS_HELP_STRING([--enable-gtk-doc-pdf],
69 [build documentation in pdf format [[default=no]]]),,
70 [enable_gtk_doc_pdf=no])
71
72 if test -z "$GTKDOC_MKPDF"; then
73 enable_gtk_doc_pdf=no
74 fi
75
76 if test -z "$AM_DEFAULT_VERBOSITY"; then
77 AM_DEFAULT_VERBOSITY=1
78 fi
79 AC_SUBST([AM_DEFAULT_VERBOSITY])
80
81 AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
82 AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
83 AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
84 AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
85 AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
86 AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
87 ])
22
33 #define CAIRO_VERSION_MAJOR 1
44 #define CAIRO_VERSION_MINOR 15
5 #define CAIRO_VERSION_MICRO 8
5 #define CAIRO_VERSION_MICRO 10
66
77 #endif
127127 /* Define to 1 if you have the `funlockfile' function. */
128128 #undef HAVE_FUNLOCKFILE
129129
130 /* Enable if your compiler supports the legacy GCC __sync_* atomic primitives
131 */
132 #undef HAVE_GCC_LEGACY_ATOMICS
133
130134 /* Whether you have gcov */
131135 #undef HAVE_GCOV
132136
133137 /* Define to 1 if you have the `getline' function. */
134138 #undef HAVE_GETLINE
135139
136 /* Enable if your compiler supports the Intel __sync_* atomic primitives */
137 #undef HAVE_INTEL_ATOMIC_PRIMITIVES
140 /* Define to 1 if you have the `gmtime_r' function. */
141 #undef HAVE_GMTIME_R
138142
139143 /* Define to 1 if you have the <inttypes.h> header file. */
140144 #undef HAVE_INTTYPES_H
153157
154158 /* Define to 1 if you have the `link' function. */
155159 #undef HAVE_LINK
160
161 /* Define to 1 if you have the `localtime_r' function. */
162 #undef HAVE_LOCALTIME_R
156163
157164 /* Define to 1 if you have the Valgrind lockdep tool */
158165 #undef HAVE_LOCKDEP
242249 /* Define to 1 if you have the <time.h> header file. */
243250 #undef HAVE_TIME_H
244251
252 /* Define to 1 if typeof works with your compiler. */
253 #undef HAVE_TYPEOF
254
245255 /* Define to 1 if the system has the type `uint128_t'. */
246256 #undef HAVE_UINT128_T
247257
256266
257267 /* Define to 1 if you have the `waitpid' function. */
258268 #undef HAVE_WAITPID
259
260 /* Define to 1 if you have the <windows.h> header file. */
261 #undef HAVE_WINDOWS_H
262269
263270 /* Define to 1 if you have the <X11/extensions/shmproto.h> header file. */
264271 #undef HAVE_X11_EXTENSIONS_SHMPROTO_H
412419 #ifndef __cplusplus
413420 #undef inline
414421 #endif
422
423 /* Define to __typeof__ if your compiler spells it that way. */
424 #undef typeof
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for cairo 1.15.8.
2 # Generated by GNU Autoconf 2.69 for cairo 1.15.10.
33 #
44 # Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=cairo>.
55 #
590590 # Identity of this package.
591591 PACKAGE_NAME='cairo'
592592 PACKAGE_TARNAME='cairo'
593 PACKAGE_VERSION='1.15.8'
594 PACKAGE_STRING='cairo 1.15.8'
593 PACKAGE_VERSION='1.15.10'
594 PACKAGE_STRING='cairo 1.15.10'
595595 PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=cairo'
596596 PACKAGE_URL='http://cairographics.org/'
597597
733733 CAIRO_HAS_COGL_SURFACE_TRUE
734734 cogl_LIBS
735735 cogl_CFLAGS
736 CAIRO_HAS_GLESV3_SURFACE_FALSE
737 CAIRO_HAS_GLESV3_SURFACE_TRUE
738 glesv3_LIBS
739 glesv3_CFLAGS
736740 CAIRO_HAS_GLESV2_SURFACE_FALSE
737741 CAIRO_HAS_GLESV2_SURFACE_TRUE
738742 glesv2_LIBS
847851 CAIRO_VERSION_MICRO
848852 CAIRO_VERSION_MINOR
849853 CAIRO_VERSION_MAJOR
854 GTK_DOC_USE_REBASE_FALSE
855 GTK_DOC_USE_REBASE_TRUE
850856 GTK_DOC_USE_LIBTOOL_FALSE
851857 GTK_DOC_USE_LIBTOOL_TRUE
858 GTK_DOC_BUILD_PDF_FALSE
859 GTK_DOC_BUILD_PDF_TRUE
860 GTK_DOC_BUILD_HTML_FALSE
861 GTK_DOC_BUILD_HTML_TRUE
852862 ENABLE_GTK_DOC_FALSE
853863 ENABLE_GTK_DOC_TRUE
864 HAVE_GTK_DOC_FALSE
865 HAVE_GTK_DOC_TRUE
866 GTKDOC_DEPS_LIBS
867 GTKDOC_DEPS_CFLAGS
868 HTML_DIR
869 GTKDOC_MKPDF
870 GTKDOC_REBASE
871 GTKDOC_CHECK_PATH
854872 GTKDOC_CHECK
855873 PKG_CONFIG
856 HTML_DIR
857874 LT_SYS_LIBRARY_PATH
858875 OTOOL64
859876 OTOOL
9841001 enable_libtool_lock
9851002 with_html_dir
9861003 enable_gtk_doc
1004 enable_gtk_doc_html
1005 enable_gtk_doc_pdf
9871006 enable_largefile
9881007 enable_atomic
9891008 enable_gcov
10111030 enable_png
10121031 enable_gl
10131032 enable_glesv2
1033 enable_glesv3
10141034 enable_cogl
10151035 enable_directfb
10161036 enable_vg
10451065 CPP
10461066 LT_SYS_LIBRARY_PATH
10471067 PKG_CONFIG
1068 GTKDOC_DEPS_CFLAGS
1069 GTKDOC_DEPS_LIBS
10481070 CXX
10491071 CXXFLAGS
10501072 CCC
10731095 gl_LIBS
10741096 glesv2_CFLAGS
10751097 glesv2_LIBS
1098 glesv3_CFLAGS
1099 glesv3_LIBS
10761100 cogl_CFLAGS
10771101 cogl_LIBS
10781102 directfb_CFLAGS
16471671 # Omit some internal or obsolete options to make the list less imposing.
16481672 # This message is too long to be a string in the A/UX 3.1 sh.
16491673 cat <<_ACEOF
1650 \`configure' configures cairo 1.15.8 to adapt to many kinds of systems.
1674 \`configure' configures cairo 1.15.10 to adapt to many kinds of systems.
16511675
16521676 Usage: $0 [OPTION]... [VAR=VALUE]...
16531677
17221746
17231747 if test -n "$ac_init_help"; then
17241748 case $ac_init_help in
1725 short | recursive ) echo "Configuration of cairo 1.15.8:";;
1749 short | recursive ) echo "Configuration of cairo 1.15.10:";;
17261750 esac
17271751 cat <<\_ACEOF
17281752
17421766 optimize for fast installation [default=yes]
17431767 --disable-libtool-lock avoid locking (might break parallel builds)
17441768 --enable-gtk-doc use gtk-doc to build documentation [[default=no]]
1769 --enable-gtk-doc-html build documentation in html format [[default=yes]]
1770 --enable-gtk-doc-pdf build documentation in pdf format [[default=no]]
17451771 --disable-largefile omit support for large files
17461772 --disable-atomic disable use of native atomic operations
17471773 --enable-gcov Enable gcov
18011827 [default=no]
18021828 --enable-glesv2=[no/auto/yes]
18031829 Enable cairo's OpenGLESv2 surface backend feature
1830 [default=no]
1831 --enable-glesv3=[no/auto/yes]
1832 Enable cairo's OpenGLESv3 surface backend feature
18041833 [default=no]
18051834 --enable-cogl=[no/auto/yes]
18061835 Enable cairo's Cogl surface backend feature
18981927 LT_SYS_LIBRARY_PATH
18991928 User-defined run-time library search path.
19001929 PKG_CONFIG path to pkg-config utility
1930 GTKDOC_DEPS_CFLAGS
1931 C compiler flags for GTKDOC_DEPS, overriding pkg-config
1932 GTKDOC_DEPS_LIBS
1933 linker flags for GTKDOC_DEPS, overriding pkg-config
19011934 CXX C++ compiler command
19021935 CXXFLAGS C++ compiler flags
19031936 CXXCPP C++ preprocessor
19351968 glesv2_CFLAGS
19361969 C compiler flags for glesv2, overriding pkg-config
19371970 glesv2_LIBS linker flags for glesv2, overriding pkg-config
1971 glesv3_CFLAGS
1972 C compiler flags for glesv3, overriding pkg-config
1973 glesv3_LIBS linker flags for glesv3, overriding pkg-config
19381974 cogl_CFLAGS C compiler flags for cogl, overriding pkg-config
19391975 cogl_LIBS linker flags for cogl, overriding pkg-config
19401976 directfb_CFLAGS
20422078 test -n "$ac_init_help" && exit $ac_status
20432079 if $ac_init_version; then
20442080 cat <<\_ACEOF
2045 cairo configure 1.15.8
2081 cairo configure 1.15.10
20462082 generated by GNU Autoconf 2.69
20472083
20482084 Copyright (C) 2012 Free Software Foundation, Inc.
27692805 This file contains any messages produced by compilers while
27702806 running configure, to aid debugging if configure makes a mistake.
27712807
2772 It was created by cairo $as_me 1.15.8, which was
2808 It was created by cairo $as_me 1.15.10, which was
27732809 generated by GNU Autoconf 2.69. Invocation command line was
27742810
27752811 $ $0 $@
44754511 done
44764512
44774513
4514 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for typeof syntax and keyword spelling" >&5
4515 $as_echo_n "checking for typeof syntax and keyword spelling... " >&6; }
4516 if ${ac_cv_c_typeof+:} false; then :
4517 $as_echo_n "(cached) " >&6
4518 else
4519 ac_cv_c_typeof=no
4520 for ac_kw in typeof __typeof__ no; do
4521 test $ac_kw = no && break
4522 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4523 /* end confdefs.h. */
4524
4525 int
4526 main ()
4527 {
4528
4529 int value;
4530 typedef struct {
4531 char a [1
4532 + ! (($ac_kw (value))
4533 (($ac_kw (value)) 0 < ($ac_kw (value)) -1
4534 ? ($ac_kw (value)) - 1
4535 : ~ (~ ($ac_kw (value)) 0
4536 << sizeof ($ac_kw (value)))))]; }
4537 ac__typeof_type_;
4538 return
4539 (! ((void) ((ac__typeof_type_ *) 0), 0));
4540
4541 ;
4542 return 0;
4543 }
4544 _ACEOF
4545 if ac_fn_c_try_compile "$LINENO"; then :
4546 ac_cv_c_typeof=$ac_kw
4547 fi
4548 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4549 test $ac_cv_c_typeof != no && break
4550 done
4551 fi
4552 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_typeof" >&5
4553 $as_echo "$ac_cv_c_typeof" >&6; }
4554 if test $ac_cv_c_typeof != no; then
4555
4556 $as_echo "#define HAVE_TYPEOF 1" >>confdefs.h
4557
4558 if test $ac_cv_c_typeof != typeof; then
4559
4560 cat >>confdefs.h <<_ACEOF
4561 #define typeof $ac_cv_c_typeof
4562 _ACEOF
4563
4564 fi
4565 fi
4566
4567
44784568 am__api_version='1.15'
44794569
44804570 # Find a good install program. We prefer a C program (faster),
50215111
50225112 # Define the identity of the package.
50235113 PACKAGE='cairo'
5024 VERSION='1.15.8'
5114 VERSION='1.15.10'
50255115
50265116
50275117 # Some tools Automake needs.
1354413634 fi
1354513635
1354613636
13547 # Check whether --with-html-dir was given.
13548 if test "${with_html_dir+set}" = set; then :
13549 withval=$with_html_dir;
13550 else
13551 with_html_dir='${datadir}/gtk-doc/html'
13552 fi
13553
13554 HTML_DIR="$with_html_dir"
13555
13556
13557 # Check whether --enable-gtk-doc was given.
13558 if test "${enable_gtk_doc+set}" = set; then :
13559 enableval=$enable_gtk_doc;
13560 else
13561 enable_gtk_doc=no
13562 fi
13563
13564
13565 if test x$enable_gtk_doc = xyes; then
13566 if test -n "$PKG_CONFIG" && \
13567 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.15\""; } >&5
13568 ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.15") 2>&5
13637
13638 gtk_doc_requires="gtk-doc >= 1.15"
13639 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5
13640 $as_echo_n "checking for gtk-doc... " >&6; }
13641 if test -n "$PKG_CONFIG" && \
13642 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5
13643 ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5
1356913644 ac_status=$?
1357013645 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1357113646 test $ac_status = 0; }; then
13572 :
13573 else
13574 as_fn_error $? "You need to have gtk-doc >= 1.15 installed to build gtk-doc" "$LINENO" 5
13575 fi
13647 have_gtk_doc=yes
13648 else
13649 have_gtk_doc=no
13650 fi
13651 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5
13652 $as_echo "$have_gtk_doc" >&6; }
13653
13654 if test "$have_gtk_doc" = "no"; then
13655 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
13656 You will not be able to create source packages with 'make dist'
13657 because $gtk_doc_requires is not found." >&5
13658 $as_echo "$as_me: WARNING:
13659 You will not be able to create source packages with 'make dist'
13660 because $gtk_doc_requires is not found." >&2;}
1357613661 fi
1357713662
13578 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
13579 $as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
13580 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
13581 $as_echo "$enable_gtk_doc" >&6; }
13582
13583 for ac_prog in gtkdoc-check
13584 do
13585 # Extract the first word of "$ac_prog", so it can be a program name with args.
13586 set dummy $ac_prog; ac_word=$2
13663 # Extract the first word of "gtkdoc-check", so it can be a program name with args.
13664 set dummy gtkdoc-check; ac_word=$2
1358713665 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1358813666 $as_echo_n "checking for $ac_word... " >&6; }
13589 if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
13667 if ${ac_cv_prog_GTKDOC_CHECK+:} false; then :
1359013668 $as_echo_n "(cached) " >&6
1359113669 else
13592 case $GTKDOC_CHECK in
13670 if test -n "$GTKDOC_CHECK"; then
13671 ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test.
13672 else
13673 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
13674 for as_dir in $PATH
13675 do
13676 IFS=$as_save_IFS
13677 test -z "$as_dir" && as_dir=.
13678 for ac_exec_ext in '' $ac_executable_extensions; do
13679 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
13680 ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test"
13681 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
13682 break 2
13683 fi
13684 done
13685 done
13686 IFS=$as_save_IFS
13687
13688 fi
13689 fi
13690 GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK
13691 if test -n "$GTKDOC_CHECK"; then
13692 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
13693 $as_echo "$GTKDOC_CHECK" >&6; }
13694 else
13695 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13696 $as_echo "no" >&6; }
13697 fi
13698
13699
13700 # Extract the first word of "gtkdoc-check", so it can be a program name with args.
13701 set dummy gtkdoc-check; ac_word=$2
13702 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
13703 $as_echo_n "checking for $ac_word... " >&6; }
13704 if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then :
13705 $as_echo_n "(cached) " >&6
13706 else
13707 case $GTKDOC_CHECK_PATH in
1359313708 [\\/]* | ?:[\\/]*)
13594 ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
13709 ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path.
1359513710 ;;
1359613711 *)
1359713712 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1360113716 test -z "$as_dir" && as_dir=.
1360213717 for ac_exec_ext in '' $ac_executable_extensions; do
1360313718 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
13604 ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
13719 ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext"
1360513720 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
1360613721 break 2
1360713722 fi
1361213727 ;;
1361313728 esac
1361413729 fi
13615 GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
13616 if test -n "$GTKDOC_CHECK"; then
13617 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
13618 $as_echo "$GTKDOC_CHECK" >&6; }
13730 GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH
13731 if test -n "$GTKDOC_CHECK_PATH"; then
13732 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5
13733 $as_echo "$GTKDOC_CHECK_PATH" >&6; }
1361913734 else
1362013735 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
1362113736 $as_echo "no" >&6; }
1362213737 fi
1362313738
1362413739
13625 test -n "$GTKDOC_CHECK" && break
13740 for ac_prog in gtkdoc-rebase
13741 do
13742 # Extract the first word of "$ac_prog", so it can be a program name with args.
13743 set dummy $ac_prog; ac_word=$2
13744 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
13745 $as_echo_n "checking for $ac_word... " >&6; }
13746 if ${ac_cv_path_GTKDOC_REBASE+:} false; then :
13747 $as_echo_n "(cached) " >&6
13748 else
13749 case $GTKDOC_REBASE in
13750 [\\/]* | ?:[\\/]*)
13751 ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path.
13752 ;;
13753 *)
13754 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
13755 for as_dir in $PATH
13756 do
13757 IFS=$as_save_IFS
13758 test -z "$as_dir" && as_dir=.
13759 for ac_exec_ext in '' $ac_executable_extensions; do
13760 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
13761 ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext"
13762 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
13763 break 2
13764 fi
1362613765 done
13627
13766 done
13767 IFS=$as_save_IFS
13768
13769 ;;
13770 esac
13771 fi
13772 GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE
13773 if test -n "$GTKDOC_REBASE"; then
13774 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5
13775 $as_echo "$GTKDOC_REBASE" >&6; }
13776 else
13777 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13778 $as_echo "no" >&6; }
13779 fi
13780
13781
13782 test -n "$GTKDOC_REBASE" && break
13783 done
13784 test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true"
13785
13786 # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args.
13787 set dummy gtkdoc-mkpdf; ac_word=$2
13788 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
13789 $as_echo_n "checking for $ac_word... " >&6; }
13790 if ${ac_cv_path_GTKDOC_MKPDF+:} false; then :
13791 $as_echo_n "(cached) " >&6
13792 else
13793 case $GTKDOC_MKPDF in
13794 [\\/]* | ?:[\\/]*)
13795 ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path.
13796 ;;
13797 *)
13798 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
13799 for as_dir in $PATH
13800 do
13801 IFS=$as_save_IFS
13802 test -z "$as_dir" && as_dir=.
13803 for ac_exec_ext in '' $ac_executable_extensions; do
13804 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
13805 ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext"
13806 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
13807 break 2
13808 fi
13809 done
13810 done
13811 IFS=$as_save_IFS
13812
13813 ;;
13814 esac
13815 fi
13816 GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF
13817 if test -n "$GTKDOC_MKPDF"; then
13818 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5
13819 $as_echo "$GTKDOC_MKPDF" >&6; }
13820 else
13821 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13822 $as_echo "no" >&6; }
13823 fi
13824
13825
13826
13827
13828 # Check whether --with-html-dir was given.
13829 if test "${with_html_dir+set}" = set; then :
13830 withval=$with_html_dir;
13831 else
13832 with_html_dir='${datadir}/gtk-doc/html'
13833 fi
13834
13835 HTML_DIR="$with_html_dir"
13836
13837
13838 # Check whether --enable-gtk-doc was given.
13839 if test "${enable_gtk_doc+set}" = set; then :
13840 enableval=$enable_gtk_doc;
13841 else
13842 enable_gtk_doc=no
13843 fi
13844
13845
13846 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
13847 $as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
13848 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
13849 $as_echo "$enable_gtk_doc" >&6; }
13850
13851 if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
13852 as_fn_error $? "
13853 You must have $gtk_doc_requires installed to build documentation for
13854 $PACKAGE_NAME. Please install gtk-doc or disable building the
13855 documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5
13856 fi
13857
13858 if test "x$PACKAGE_NAME" != "xglib"; then
13859
13860 pkg_failed=no
13861 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
13862 $as_echo_n "checking for GTKDOC_DEPS... " >&6; }
13863
13864 if test -n "$GTKDOC_DEPS_CFLAGS"; then
13865 pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS"
13866 elif test -n "$PKG_CONFIG"; then
13867 if test -n "$PKG_CONFIG" && \
13868 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
13869 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
13870 ac_status=$?
13871 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13872 test $ac_status = 0; }; then
13873 pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
13874 else
13875 pkg_failed=yes
13876 fi
13877 else
13878 pkg_failed=untried
13879 fi
13880 if test -n "$GTKDOC_DEPS_LIBS"; then
13881 pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS"
13882 elif test -n "$PKG_CONFIG"; then
13883 if test -n "$PKG_CONFIG" && \
13884 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
13885 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
13886 ac_status=$?
13887 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13888 test $ac_status = 0; }; then
13889 pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
13890 else
13891 pkg_failed=yes
13892 fi
13893 else
13894 pkg_failed=untried
13895 fi
13896
13897
13898
13899 if test $pkg_failed = yes; then
13900
13901 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13902 _pkg_short_errors_supported=yes
13903 else
13904 _pkg_short_errors_supported=no
13905 fi
13906 if test $_pkg_short_errors_supported = yes; then
13907 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
13908 else
13909 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
13910 fi
13911 # Put the nasty error message in config.log where it belongs
13912 echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
13913
13914 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13915 $as_echo "no" >&6; }
13916 :
13917 elif test $pkg_failed = untried; then
13918 :
13919 else
13920 GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
13921 GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
13922 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
13923 $as_echo "yes" >&6; }
13924 :
13925 fi
13926 fi
13927
13928 # Check whether --enable-gtk-doc-html was given.
13929 if test "${enable_gtk_doc_html+set}" = set; then :
13930 enableval=$enable_gtk_doc_html;
13931 else
13932 enable_gtk_doc_html=yes
13933 fi
13934
13935 # Check whether --enable-gtk-doc-pdf was given.
13936 if test "${enable_gtk_doc_pdf+set}" = set; then :
13937 enableval=$enable_gtk_doc_pdf;
13938 else
13939 enable_gtk_doc_pdf=no
13940 fi
13941
13942
13943 if test -z "$GTKDOC_MKPDF"; then
13944 enable_gtk_doc_pdf=no
13945 fi
13946
13947 if test -z "$AM_DEFAULT_VERBOSITY"; then
13948 AM_DEFAULT_VERBOSITY=1
13949 fi
13950
13951
13952 if test x$have_gtk_doc = xyes; then
13953 HAVE_GTK_DOC_TRUE=
13954 HAVE_GTK_DOC_FALSE='#'
13955 else
13956 HAVE_GTK_DOC_TRUE='#'
13957 HAVE_GTK_DOC_FALSE=
13958 fi
1362813959
1362913960 if test x$enable_gtk_doc = xyes; then
1363013961 ENABLE_GTK_DOC_TRUE=
1363413965 ENABLE_GTK_DOC_FALSE=
1363513966 fi
1363613967
13968 if test x$enable_gtk_doc_html = xyes; then
13969 GTK_DOC_BUILD_HTML_TRUE=
13970 GTK_DOC_BUILD_HTML_FALSE='#'
13971 else
13972 GTK_DOC_BUILD_HTML_TRUE='#'
13973 GTK_DOC_BUILD_HTML_FALSE=
13974 fi
13975
13976 if test x$enable_gtk_doc_pdf = xyes; then
13977 GTK_DOC_BUILD_PDF_TRUE=
13978 GTK_DOC_BUILD_PDF_FALSE='#'
13979 else
13980 GTK_DOC_BUILD_PDF_TRUE='#'
13981 GTK_DOC_BUILD_PDF_FALSE=
13982 fi
13983
1363713984 if test -n "$LIBTOOL"; then
1363813985 GTK_DOC_USE_LIBTOOL_TRUE=
1363913986 GTK_DOC_USE_LIBTOOL_FALSE='#'
1364013987 else
1364113988 GTK_DOC_USE_LIBTOOL_TRUE='#'
1364213989 GTK_DOC_USE_LIBTOOL_FALSE=
13990 fi
13991
13992 if test -n "$GTKDOC_REBASE"; then
13993 GTK_DOC_USE_REBASE_TRUE=
13994 GTK_DOC_USE_REBASE_FALSE='#'
13995 else
13996 GTK_DOC_USE_REBASE_TRUE='#'
13997 GTK_DOC_USE_REBASE_FALSE=
1364313998 fi
1364413999
1364514000
1385914214
1386014215 CAIRO_VERSION_MAJOR=1
1386114216 CAIRO_VERSION_MINOR=15
13862 CAIRO_VERSION_MICRO=8
14217 CAIRO_VERSION_MICRO=10
1386314218 CAIRO_VERSION_SONUM=2
1386414219 CAIRO_RELEASE_STATUS=snapshot
13865 CAIRO_LIBTOOL_VERSION_INFO=11510:0:11508
14220 CAIRO_LIBTOOL_VERSION_INFO=11512:0:11510
1386614221
1386714222
1386814223
1951819873 }
1951919874 _ACEOF
1952019875 if ac_fn_c_try_link "$LINENO"; then :
19521 cairo_cv_atomic_primitives="Intel"
19876 cairo_cv_atomic_primitives="gcc-legacy"
1952219877
1952319878 fi
1952419879 rm -f core conftest.err conftest.$ac_objext \
1957219927
1957319928 fi
1957419929
19575 if test "x$cairo_cv_atomic_primitives" = xIntel; then
19576
19577 $as_echo "#define HAVE_INTEL_ATOMIC_PRIMITIVES 1" >>confdefs.h
19930 if test "x$cairo_cv_atomic_primitives" = xgcc-legacy; then
19931
19932 $as_echo "#define HAVE_GCC_LEGACY_ATOMICS 1" >>confdefs.h
1957819933
1957919934 fi
1958019935
2029520650
2029620651 done
2029720652
20298 for ac_func in ctime_r drand48 flockfile funlockfile getline link strndup
20653 for ac_func in ctime_r localtime_r gmtime_r drand48 flockfile funlockfile getline link strndup
2029920654 do :
2030020655 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
2030120656 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
2030820663 done
2030920664
2031020665
20311 for ac_header in windows.h
20312 do :
20313 ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
20314 if test "x$ac_cv_header_windows_h" = xyes; then :
20315 cat >>confdefs.h <<_ACEOF
20316 #define HAVE_WINDOWS_H 1
20666 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20667 /* end confdefs.h. */
20668
20669 #ifdef _WIN32
20670 choke me
20671 #endif
2031720672 _ACEOF
20318 have_windows=yes
20319 else
20673 if ac_fn_c_try_compile "$LINENO"; then :
2032020674 have_windows=no
20321 fi
20322
20323 done
20324
20325
20675 else
20676 have_windows=yes
20677 fi
20678 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2032620679
2032720680 for ac_header in sys/stat.h io.h
2032820681 do :
2805628409
2805728410
2805828411
28412 # Check whether --enable-glesv3 was given.
28413 if test "${enable_glesv3+set}" = set; then :
28414 enableval=$enable_glesv3; enable_glesv3=$enableval
28415 else
28416 enable_glesv3=no
28417 fi
28418
28419 case $enable_glesv3 in #(
28420 no) :
28421 use_glesv3="no (disabled, use --enable-glesv3 to enable)"
28422 ;; #(
28423 yes|auto) :
28424 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's OpenGLESv3 surface backend feature" >&5
28425 $as_echo_n "checking for cairo's OpenGLESv3 surface backend feature... " >&6; }
28426 echo
28427
28428 use_glesv3=yes
28429 glesv3_BASE="cairo"
28430 glesv3_REQUIRES="$ac_env_glesv3_REQUIRES_value"
28431 glesv3_CFLAGS="$ac_env_glesv3_CFLAGS_value"
28432 glesv3_NONPKGCONFIG_CFLAGS="$ac_env_glesv3_NONPKGCONFIG_CFLAGS_value"
28433 glesv3_LIBS="$ac_env_glesv3_LIBS_value"
28434 glesv3_NONPKGCONFIG_LIBS="$ac_env_glesv3_NONPKGCONFIG_LIBS_value"
28435 glesv3_NONPKGCONFIG_EXTRA_LIBS="$ac_env_glesv3_NONPKGCONFIG_EXTRA_LIBS_value"
28436
28437
28438
28439 glesv3_REQUIRES="glesv3"
28440
28441 pkg_failed=no
28442 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glesv3" >&5
28443 $as_echo_n "checking for glesv3... " >&6; }
28444
28445 if test -n "$glesv3_CFLAGS"; then
28446 pkg_cv_glesv3_CFLAGS="$glesv3_CFLAGS"
28447 elif test -n "$PKG_CONFIG"; then
28448 if test -n "$PKG_CONFIG" && \
28449 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$glesv3_REQUIRES\""; } >&5
28450 ($PKG_CONFIG --exists --print-errors "$glesv3_REQUIRES") 2>&5
28451 ac_status=$?
28452 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
28453 test $ac_status = 0; }; then
28454 pkg_cv_glesv3_CFLAGS=`$PKG_CONFIG --cflags "$glesv3_REQUIRES" 2>/dev/null`
28455 else
28456 pkg_failed=yes
28457 fi
28458 else
28459 pkg_failed=untried
28460 fi
28461 if test -n "$glesv3_LIBS"; then
28462 pkg_cv_glesv3_LIBS="$glesv3_LIBS"
28463 elif test -n "$PKG_CONFIG"; then
28464 if test -n "$PKG_CONFIG" && \
28465 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$glesv3_REQUIRES\""; } >&5
28466 ($PKG_CONFIG --exists --print-errors "$glesv3_REQUIRES") 2>&5
28467 ac_status=$?
28468 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
28469 test $ac_status = 0; }; then
28470 pkg_cv_glesv3_LIBS=`$PKG_CONFIG --libs "$glesv3_REQUIRES" 2>/dev/null`
28471 else
28472 pkg_failed=yes
28473 fi
28474 else
28475 pkg_failed=untried
28476 fi
28477
28478
28479
28480 if test $pkg_failed = yes; then
28481
28482 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28483 _pkg_short_errors_supported=yes
28484 else
28485 _pkg_short_errors_supported=no
28486 fi
28487 if test $_pkg_short_errors_supported = yes; then
28488 glesv3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$glesv3_REQUIRES" 2>&1`
28489 else
28490 glesv3_PKG_ERRORS=`$PKG_CONFIG --print-errors "$glesv3_REQUIRES" 2>&1`
28491 fi
28492 # Put the nasty error message in config.log where it belongs
28493 echo "$glesv3_PKG_ERRORS" >&5
28494
28495 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28496 $as_echo "no" >&6; }
28497
28498 ac_fn_c_check_header_mongrel "$LINENO" "GLES3/gl3.h" "ac_cv_header_GLES3_gl3_h" "$ac_includes_default"
28499 if test "x$ac_cv_header_GLES3_gl3_h" = xyes; then :
28500
28501 else
28502 use_glesv3="no (glesv3.pc nor OpenGL ES 3.0 headers not found)"
28503 fi
28504
28505
28506 if test "x$use_glesv3" = "xyes"; then
28507 glesv3_NONPKGCONFIG_CFLAGS=
28508 glesv3_NONPKGCONFIG_LIBS="-lGLESv2"
28509 fi
28510 elif test $pkg_failed = untried; then
28511
28512 ac_fn_c_check_header_mongrel "$LINENO" "GLES3/gl3.h" "ac_cv_header_GLES3_gl3_h" "$ac_includes_default"
28513 if test "x$ac_cv_header_GLES3_gl3_h" = xyes; then :
28514
28515 else
28516 use_glesv3="no (glesv3.pc nor OpenGL ES 3.0 headers not found)"
28517 fi
28518
28519
28520 if test "x$use_glesv3" = "xyes"; then
28521 glesv3_NONPKGCONFIG_CFLAGS=
28522 glesv3_NONPKGCONFIG_LIBS="-lGLESv2"
28523 fi
28524 else
28525 glesv3_CFLAGS=$pkg_cv_glesv3_CFLAGS
28526 glesv3_LIBS=$pkg_cv_glesv3_LIBS
28527 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
28528 $as_echo "yes" >&6; }
28529 :
28530 fi
28531
28532 if test "x$have_dl" = "xyes" -a "x$have_dlsym" = "xyes"; then
28533 glesv3_LIBS="$glesv3_LIBS -ldl"
28534 fi
28535
28536 if test "x$use_glesv3" = "xyes" -a "x$use_gl" = "xyes"; then
28537 as_fn_error $? "use either --enable-gl=yes or --enable-glesv3=yes. Not both at the same time." "$LINENO" 5
28538 fi
28539
28540 need_egl_functions=yes
28541
28542
28543 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's OpenGLESv3 surface backend feature could be enabled" >&5
28544 $as_echo_n "checking whether cairo's OpenGLESv3 surface backend feature could be enabled... " >&6; }
28545 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_glesv3" >&5
28546 $as_echo "$use_glesv3" >&6; }
28547
28548 if test "x$enable_glesv3" = "xyes" -a "x$use_glesv3" != xyes; then :
28549 as_fn_error $? " OpenGLESv3 surface backend feature could not be enabled" "$LINENO" 5
28550
28551 fi ;; #(
28552 *) :
28553 as_fn_error $? "invalid argument passed to --enable-glesv3: \`$use_glesv3', should be one of [no/auto/yes]" "$LINENO" 5
28554 ;;
28555 esac
28556 if test "x$use_glesv3" = "xyes"; then :
28557 CAIRO_REQUIRES="$glesv3_REQUIRES"" ${CAIRO_REQUIRES}"
28558
28559 CAIRO_CFLAGS="$glesv3_CFLAGS"" ${CAIRO_CFLAGS}"
28560
28561 CAIRO_NONPKGCONFIG_CFLAGS="$glesv3_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}"
28562
28563 CAIRO_LIBS="$glesv3_LIBS"" ${CAIRO_LIBS}"
28564
28565 CAIRO_NONPKGCONFIG_LIBS="$glesv3_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}"
28566
28567
28568 else
28569 unset glesv3_BASE
28570 unset glesv3_REQUIRES
28571 unset glesv3_CFLAGS
28572 unset glesv3_NONPKGCONFIG_CFLAGS
28573 unset glesv3_LIBS
28574 unset glesv3_NONPKGCONFIG_LIBS
28575 unset glesv3_NONPKGCONFIG_EXTRA_LIBS
28576
28577
28578 fi
28579
28580 if test "x$use_glesv3" = xyes; then
28581 CAIRO_HAS_GLESV3_SURFACE_TRUE=
28582 CAIRO_HAS_GLESV3_SURFACE_FALSE='#'
28583 else
28584 CAIRO_HAS_GLESV3_SURFACE_TRUE='#'
28585 CAIRO_HAS_GLESV3_SURFACE_FALSE=
28586 fi
28587
28588
28589 cr_make_tmp='CAIRO_HAS_GLESV3_SURFACE=0'
28590 CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32}
28591 ""$cr_make_tmp"
28592
28593
28594 cr_make_tmp=''
28595 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28596 ""$cr_make_tmp"
28597
28598 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28599 ""$cr_make_tmp"
28600 cr_make_tmp=''
28601 CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE}
28602 ""$cr_make_tmp"
28603
28604 CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32}
28605 ""$cr_make_tmp"
28606
28607
28608
28609 cr_make_tmp='unsupported_cairo_headers += $(cairo_glesv3_headers)'
28610 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28611 ""$cr_make_tmp"
28612
28613 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28614 ""$cr_make_tmp"
28615 cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)'
28616 CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE}
28617 ""$cr_make_tmp"
28618
28619 CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32}
28620 ""$cr_make_tmp"
28621
28622
28623 cr_make_tmp='all_cairo_headers += $(cairo_glesv3_headers)
28624 all_cairo_private += $(cairo_glesv3_private)
28625 all_cairo_cxx_sources += $(cairo_glesv3_cxx_sources)
28626 all_cairo_sources += $(cairo_glesv3_sources)'
28627 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28628 ""$cr_make_tmp"
28629
28630 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28631 ""$cr_make_tmp"
28632 cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
28633 all_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
28634 all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
28635 all_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)'
28636 CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE}
28637 ""$cr_make_tmp"
28638
28639 CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32}
28640 ""$cr_make_tmp"
28641
28642
28643 cr_make_tmp='enabled_cairo_headers += $(cairo_glesv3_headers)
28644 enabled_cairo_private += $(cairo_glesv3_private)
28645 enabled_cairo_cxx_sources += $(cairo_glesv3_cxx_sources)
28646 enabled_cairo_sources += $(cairo_glesv3_sources)'
28647 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28648 "'if CAIRO_HAS_GLESV3_SURFACE'
28649 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28650 ""$cr_make_tmp"
28651 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28652 "'endif'
28653
28654 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28655 "'ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)'
28656 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28657 ""$cr_make_tmp"
28658 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28659 "'endif'
28660 cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
28661 enabled_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
28662 enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
28663 enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)'
28664 CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE}
28665 "'if CAIRO_HAS_GLESV3_SURFACE'
28666 CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE}
28667 ""$cr_make_tmp"
28668 CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE}
28669 "'endif'
28670
28671 CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32}
28672 "'ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)'
28673 CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32}
28674 ""$cr_make_tmp"
28675 CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32}
28676 "'endif'
28677
28678
28679
28680
28681 if test "x$use_glesv3" = xyes; then :
28682 :
28683 ac_config_files="$ac_config_files src/cairo-glesv3.pc:src/cairo-features.pc.in"
28684
28685
28686 fi
28687 if test "x$use_glesv3" = xyes; then :
28688 :
28689 ac_config_files="$ac_config_files cairo-glesv3-uninstalled.pc:src/cairo-features-uninstalled.pc.in"
28690
28691
28692 fi
28693 cr_make_tmp='all_cairo_pkgconf += cairo-glesv3.pc'
28694 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28695 ""$cr_make_tmp"
28696
28697 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28698 ""$cr_make_tmp"
28699
28700
28701 cr_make_tmp='enabled_cairo_pkgconf += cairo-glesv3.pc'
28702 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28703 "'if CAIRO_HAS_GLESV3_SURFACE'
28704 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28705 ""$cr_make_tmp"
28706 CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE}
28707 "'endif'
28708
28709 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28710 "'ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)'
28711 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28712 ""$cr_make_tmp"
28713 CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32}
28714 "'endif'
28715
28716
28717 if test "x$use_glesv3" = xyes; then :
28718 :
28719 CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_GLESV3_SURFACE'
28720
28721
28722 fi
28723
28724 if test "x$use_glesv3" != xyes; then :
28725 :
28726 CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_GLESV3_SURFACE'
28727
28728
28729
28730 fi
28731
28732 cr_make_tmp=' @echo "#define CAIRO_HAS_GLESV3_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h'
28733 CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32}
28734 "'ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)'
28735 CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32}
28736 ""$cr_make_tmp"
28737 CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32}
28738 "'endif'
28739
28740
28741 if test "x$use_glesv3" = xyes; then :
28742 :
28743 CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE}
28744
28745 "'--- The OpenGLESv3 surface backend feature is still under active development
28746 --- and is included in this release only as a preview. It does NOT fully work
28747 --- yet and incompatible changes may yet be made to OpenGLESv3 surface
28748 --- backend specific API.'
28749
28750
28751
28752 fi
28753
28754
28755
28756
28757
2805928758 # Check whether --enable-cogl was given.
2806028759 if test "${enable_cogl+set}" = set; then :
2806128760 enableval=$enable_cogl; enable_cogl=$enableval
3572036419 am__EXEEXT_FALSE=
3572136420 fi
3572236421
36422 if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then
36423 as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined.
36424 Usually this means the macro was only invoked conditionally." "$LINENO" 5
36425 fi
3572336426 if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
3572436427 as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
3572536428 Usually this means the macro was only invoked conditionally." "$LINENO" 5
3572636429 fi
36430 if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then
36431 as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined.
36432 Usually this means the macro was only invoked conditionally." "$LINENO" 5
36433 fi
36434 if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then
36435 as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined.
36436 Usually this means the macro was only invoked conditionally." "$LINENO" 5
36437 fi
3572736438 if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then
3572836439 as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined.
3572936440 Usually this means the macro was only invoked conditionally." "$LINENO" 5
3573036441 fi
36442 if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then
36443 as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined.
36444 Usually this means the macro was only invoked conditionally." "$LINENO" 5
36445 fi
3573136446 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
3573236447 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
3573336448 Usually this means the macro was only invoked conditionally." "$LINENO" 5
3586336578 fi
3586436579 if test -z "${CAIRO_HAS_GLESV2_SURFACE_TRUE}" && test -z "${CAIRO_HAS_GLESV2_SURFACE_FALSE}"; then
3586536580 as_fn_error $? "conditional \"CAIRO_HAS_GLESV2_SURFACE\" was never defined.
36581 Usually this means the macro was only invoked conditionally." "$LINENO" 5
36582 fi
36583 if test -z "${CAIRO_HAS_GLESV3_SURFACE_TRUE}" && test -z "${CAIRO_HAS_GLESV3_SURFACE_FALSE}"; then
36584 as_fn_error $? "conditional \"CAIRO_HAS_GLESV3_SURFACE\" was never defined.
3586636585 Usually this means the macro was only invoked conditionally." "$LINENO" 5
3586736586 fi
3586836587 if test -z "${CAIRO_HAS_COGL_SURFACE_TRUE}" && test -z "${CAIRO_HAS_COGL_SURFACE_FALSE}"; then
3639037109 # report actual input values of CONFIG_FILES etc. instead of their
3639137110 # values after options handling.
3639237111 ac_log="
36393 This file was extended by cairo $as_me 1.15.8, which was
37112 This file was extended by cairo $as_me 1.15.10, which was
3639437113 generated by GNU Autoconf 2.69. Invocation command line was
3639537114
3639637115 CONFIG_FILES = $CONFIG_FILES
3645737176 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
3645837177 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
3645937178 ac_cs_version="\\
36460 cairo config.status 1.15.8
37179 cairo config.status 1.15.10
3646137180 configured by $0, generated by GNU Autoconf 2.69,
3646237181 with options \\"\$ac_cs_config\\"
3646337182
3723837957 glesv2_NONPKGCONFIG_CFLAGS='$glesv2_NONPKGCONFIG_CFLAGS'
3723937958
3724037959 SED='$SED'
37960 glesv3_BASE='$glesv3_BASE'
37961 glesv3_REQUIRES='$glesv3_REQUIRES'
37962 glesv3_NONPKGCONFIG_LIBS='$glesv3_NONPKGCONFIG_LIBS'
37963 glesv3_NONPKGCONFIG_EXTRA_LIBS='$glesv3_NONPKGCONFIG_EXTRA_LIBS'
37964 glesv3_NONPKGCONFIG_CFLAGS='$glesv3_NONPKGCONFIG_CFLAGS'
37965
37966 SED='$SED'
37967 glesv3_BASE='$glesv3_BASE'
37968 glesv3_REQUIRES='$glesv3_REQUIRES'
37969 glesv3_NONPKGCONFIG_LIBS='$glesv3_NONPKGCONFIG_LIBS'
37970 glesv3_NONPKGCONFIG_EXTRA_LIBS='$glesv3_NONPKGCONFIG_EXTRA_LIBS'
37971 glesv3_NONPKGCONFIG_CFLAGS='$glesv3_NONPKGCONFIG_CFLAGS'
37972
37973 SED='$SED'
3724137974 cogl_BASE='$cogl_BASE'
3724237975 cogl_REQUIRES='$cogl_REQUIRES'
3724337976 cogl_NONPKGCONFIG_LIBS='$cogl_NONPKGCONFIG_LIBS'
3750738240 "cairo-gl-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-gl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;;
3750838241 "src/cairo-glesv2.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-glesv2.pc:src/cairo-features.pc.in" ;;
3750938242 "cairo-glesv2-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-glesv2-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;;
38243 "src/cairo-glesv3.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-glesv3.pc:src/cairo-features.pc.in" ;;
38244 "cairo-glesv3-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-glesv3-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;;
3751038245 "src/cairo-cogl.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-cogl.pc:src/cairo-features.pc.in" ;;
3751138246 "cairo-cogl-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-cogl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;;
3751238247 "src/cairo-directfb.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-directfb.pc:src/cairo-features.pc.in" ;;
3928540020 $SED " s%@FEATURE_PC@%cairo-glesv2%g; s%@FEATURE_NAME@%OpenGLESv2 surface backend%g; s%@FEATURE_BASE@%$glesv2_BASE%g; s%@FEATURE_REQUIRES@%$glesv2_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$glesv2_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$glesv2_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$glesv2_NONPKGCONFIG_CFLAGS%g; " < "cairo-glesv2-uninstalled.pc.tmp" > "cairo-glesv2-uninstalled.pc" && rm -f "cairo-glesv2-uninstalled.pc.tmp" ||
3928640021 as_fn_error $? "failed to update cairo-glesv2-uninstalled.pc" "$LINENO" 5
3928740022 ;;
40023 "src/cairo-glesv3.pc":F) mv "src/cairo-glesv3.pc" "src/cairo-glesv3.pc.tmp" &&
40024 $SED " s%@FEATURE_PC@%cairo-glesv3%g; s%@FEATURE_NAME@%OpenGLESv3 surface backend%g; s%@FEATURE_BASE@%$glesv3_BASE%g; s%@FEATURE_REQUIRES@%$glesv3_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$glesv3_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$glesv3_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$glesv3_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-glesv3.pc.tmp" > "src/cairo-glesv3.pc" && rm -f "src/cairo-glesv3.pc.tmp" ||
40025 as_fn_error $? "failed to update src/cairo-glesv3.pc" "$LINENO" 5
40026 ;;
40027 "cairo-glesv3-uninstalled.pc":F) mv "cairo-glesv3-uninstalled.pc" "cairo-glesv3-uninstalled.pc.tmp" &&
40028 $SED " s%@FEATURE_PC@%cairo-glesv3%g; s%@FEATURE_NAME@%OpenGLESv3 surface backend%g; s%@FEATURE_BASE@%$glesv3_BASE%g; s%@FEATURE_REQUIRES@%$glesv3_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$glesv3_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$glesv3_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$glesv3_NONPKGCONFIG_CFLAGS%g; " < "cairo-glesv3-uninstalled.pc.tmp" > "cairo-glesv3-uninstalled.pc" && rm -f "cairo-glesv3-uninstalled.pc.tmp" ||
40029 as_fn_error $? "failed to update cairo-glesv3-uninstalled.pc" "$LINENO" 5
40030 ;;
3928840031 "src/cairo-cogl.pc":F) mv "src/cairo-cogl.pc" "src/cairo-cogl.pc.tmp" &&
3928940032 $SED " s%@FEATURE_PC@%cairo-cogl%g; s%@FEATURE_NAME@%Cogl surface backend%g; s%@FEATURE_BASE@%$cogl_BASE%g; s%@FEATURE_REQUIRES@%$cogl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$cogl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$cogl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$cogl_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-cogl.pc.tmp" > "src/cairo-cogl.pc" && rm -f "src/cairo-cogl.pc.tmp" ||
3929040033 as_fn_error $? "failed to update src/cairo-cogl.pc" "$LINENO" 5
3947040213 echo " SVG: $use_svg"
3947140214 echo " OpenGL: $use_gl"
3947240215 echo " OpenGL ES 2.0: $use_glesv2"
40216 echo " OpenGL ES 3.0: $use_glesv3"
3947340217 echo " BeOS: $use_beos"
3947440218 echo " DirectFB: $use_directfb"
3947540219 echo " OpenVG: $use_vg"
1111 AC_CONFIG_HEADERS(config.h)
1212
1313 AC_CHECK_HEADERS([unistd.h sys/ioctl.h])
14 AC_C_TYPEOF
1415
1516 AM_INIT_AUTOMAKE([1.11 foreign -Wall no-define no-dist-gzip dist-xz])
1617 AM_SILENT_RULES([yes])
385386 ])
386387
387388 dnl ===========================================================================
389 CAIRO_ENABLE_SURFACE_BACKEND(glesv3, OpenGLESv3, no, [
390 glesv3_REQUIRES="glesv3"
391 PKG_CHECK_MODULES(glesv3, $glesv3_REQUIRES,, [
392 dnl Fallback to searching for headers
393 AC_CHECK_HEADER(GLES3/gl3.h,, [use_glesv3="no (glesv3.pc nor OpenGL ES 3.0 headers not found)"])
394 if test "x$use_glesv3" = "xyes"; then
395 glesv3_NONPKGCONFIG_CFLAGS=
396 dnl glesv3 is provided by the libGLESv2 library (there is no separate libGLESv3)
397 glesv3_NONPKGCONFIG_LIBS="-lGLESv2"
398 fi])
399
400 if test "x$have_dl" = "xyes" -a "x$have_dlsym" = "xyes"; then
401 glesv3_LIBS="$glesv3_LIBS -ldl"
402 fi
403
404 if test "x$use_glesv3" = "xyes" -a "x$use_gl" = "xyes"; then
405 AC_MSG_ERROR([use either --enable-gl=yes or --enable-glesv3=yes. Not both at the same time.])
406 fi
407
408 need_egl_functions=yes
409 ])
410
411 dnl ===========================================================================
388412 CAIRO_ENABLE_SURFACE_BACKEND(cogl, Cogl, no, [
389413 cogl_REQUIRES="cogl-2.0-experimental"
390414 PKG_CHECK_MODULES(cogl, $cogl_REQUIRES,, [use_cogl="no"])
9595 $(top_srcdir)/build/aclocal.compare.m4 \
9696 $(top_srcdir)/build/aclocal.enable.m4 \
9797 $(top_srcdir)/build/aclocal.float.m4 \
98 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
9998 $(top_srcdir)/build/aclocal.makefile.m4 \
10099 $(top_srcdir)/build/aclocal.pkg.m4 \
101 $(top_srcdir)/build/libtool.m4 \
100 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
102101 $(top_srcdir)/build/ltoptions.m4 \
103102 $(top_srcdir)/build/ltsugar.m4 \
104103 $(top_srcdir)/build/ltversion.m4 \
462461 GREP = @GREP@
463462 GS = @GS@
464463 GTKDOC_CHECK = @GTKDOC_CHECK@
464 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
465 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
466 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
467 GTKDOC_MKPDF = @GTKDOC_MKPDF@
468 GTKDOC_REBASE = @GTKDOC_REBASE@
465469 HTML_DIR = @HTML_DIR@
466470 INSTALL = @INSTALL@
467471 INSTALL_DATA = @INSTALL_DATA@
560564 gl_LIBS = @gl_LIBS@
561565 glesv2_CFLAGS = @glesv2_CFLAGS@
562566 glesv2_LIBS = @glesv2_LIBS@
567 glesv3_CFLAGS = @glesv3_CFLAGS@
568 glesv3_LIBS = @glesv3_LIBS@
563569 glib_CFLAGS = @glib_CFLAGS@
564570 glib_LIBS = @glib_LIBS@
565571 gtk_CFLAGS = @gtk_CFLAGS@
256256 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_93 = $(cairo_glesv2_cxx_sources)
257257 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_94 = $(cairo_glesv2_sources)
258258 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_95 = cairo-glesv2.pc
259 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_96 = $(cairo_cogl_headers)
260 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_97 = $(cairo_cogl_private)
261 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_98 = $(cairo_cogl_cxx_sources)
262 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_99 = $(cairo_cogl_sources)
263 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_100 = cairo-cogl.pc
264 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_101 = $(cairo_directfb_headers)
265 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_102 = $(cairo_directfb_private)
266 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_103 = $(cairo_directfb_cxx_sources)
267 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_104 = $(cairo_directfb_sources)
268 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_105 = cairo-directfb.pc
269 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_106 = $(cairo_vg_headers)
270 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_107 = $(cairo_vg_private)
271 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_108 = $(cairo_vg_cxx_sources)
272 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_109 = $(cairo_vg_sources)
273 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_110 = cairo-vg.pc
274 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_111 = $(cairo_egl_headers)
275 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_112 = $(cairo_egl_private)
276 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_113 = $(cairo_egl_cxx_sources)
277 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_114 = $(cairo_egl_sources)
278 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_115 = cairo-egl.pc
279 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_116 = $(cairo_glx_headers)
280 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_117 = $(cairo_glx_private)
281 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_118 = $(cairo_glx_cxx_sources)
282 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_119 = $(cairo_glx_sources)
283 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_120 = cairo-glx.pc
284 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_121 = $(cairo_wgl_headers)
285 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_122 = $(cairo_wgl_private)
286 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_123 = $(cairo_wgl_cxx_sources)
287 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_124 = $(cairo_wgl_sources)
288 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_125 = cairo-wgl.pc
289 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_126 = $(cairo_script_headers)
290 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_127 = $(cairo_script_private)
291 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_128 = $(cairo_script_cxx_sources)
292 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_129 = $(cairo_script_sources)
293 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_130 = cairo-script.pc
294 @CAIRO_HAS_FT_FONT_TRUE@am__append_131 = $(cairo_ft_headers)
295 @CAIRO_HAS_FT_FONT_TRUE@am__append_132 = $(cairo_ft_private)
296 @CAIRO_HAS_FT_FONT_TRUE@am__append_133 = $(cairo_ft_cxx_sources)
297 @CAIRO_HAS_FT_FONT_TRUE@am__append_134 = $(cairo_ft_sources)
298 @CAIRO_HAS_FT_FONT_TRUE@am__append_135 = cairo-ft.pc
299 @CAIRO_HAS_FC_FONT_TRUE@am__append_136 = $(cairo_fc_headers)
300 @CAIRO_HAS_FC_FONT_TRUE@am__append_137 = $(cairo_fc_private)
301 @CAIRO_HAS_FC_FONT_TRUE@am__append_138 = $(cairo_fc_cxx_sources)
302 @CAIRO_HAS_FC_FONT_TRUE@am__append_139 = $(cairo_fc_sources)
303 @CAIRO_HAS_FC_FONT_TRUE@am__append_140 = cairo-fc.pc
304 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_141 = $(cairo_ps_headers)
305 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_142 = $(cairo_ps_private)
306 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_143 = $(cairo_ps_cxx_sources)
307 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_144 = $(cairo_ps_sources)
308 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_145 = cairo-ps.pc
309 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_146 = $(cairo_pdf_headers)
310 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_147 = $(cairo_pdf_private)
311 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_148 = $(cairo_pdf_cxx_sources)
312 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_149 = $(cairo_pdf_sources)
313 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_150 = cairo-pdf.pc
314 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_151 = $(cairo_svg_headers)
315 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_152 = $(cairo_svg_private)
316 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_153 = $(cairo_svg_cxx_sources)
317 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_154 = $(cairo_svg_sources)
318 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_155 = cairo-svg.pc
319 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_156 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers)
320 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_157 = $(cairo_test_surfaces_cxx_sources)
321 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_158 = $(cairo_test_surfaces_sources)
322 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_159 = $(cairo_tee_headers)
323 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_160 = $(cairo_tee_private)
324 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_161 = $(cairo_tee_cxx_sources)
325 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_162 = $(cairo_tee_sources)
326 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_163 = cairo-tee.pc
327 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_164 = $(cairo_xml_headers)
328 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_165 = $(cairo_xml_private)
329 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_166 = $(cairo_xml_cxx_sources)
330 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_167 = $(cairo_xml_sources)
331 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_168 = cairo-xml.pc
332 @CAIRO_HAS_PTHREAD_TRUE@am__append_169 = $(cairo_pthread_private) $(cairo_pthread_headers)
333 @CAIRO_HAS_PTHREAD_TRUE@am__append_170 = $(cairo_pthread_cxx_sources)
334 @CAIRO_HAS_PTHREAD_TRUE@am__append_171 = $(cairo_pthread_sources)
335 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_172 = $(cairo_gobject_headers)
336 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_173 = $(cairo_gobject_private)
337 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_174 = $(cairo_gobject_cxx_sources)
338 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_175 = $(cairo_gobject_sources)
339 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_176 = cairo-gobject.pc
340 @CAIRO_HAS_TRACE_TRUE@am__append_177 = $(cairo_trace_private) $(cairo_trace_headers)
341 @CAIRO_HAS_TRACE_TRUE@am__append_178 = $(cairo_trace_cxx_sources)
342 @CAIRO_HAS_TRACE_TRUE@am__append_179 = $(cairo_trace_sources)
343 @CAIRO_HAS_INTERPRETER_TRUE@am__append_180 = $(cairo_interpreter_private) $(cairo_interpreter_headers)
344 @CAIRO_HAS_INTERPRETER_TRUE@am__append_181 = $(cairo_interpreter_cxx_sources)
345 @CAIRO_HAS_INTERPRETER_TRUE@am__append_182 = $(cairo_interpreter_sources)
346 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_183 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
347 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_184 = $(cairo_symbol_lookup_cxx_sources)
348 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_185 = $(cairo_symbol_lookup_sources)
349 @ENABLE_GTK_DOC_TRUE@am__append_186 = check-doc-coverage.sh
259 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_96 = $(cairo_glesv3_headers)
260 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_97 = $(cairo_glesv3_private)
261 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_98 = $(cairo_glesv3_cxx_sources)
262 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_99 = $(cairo_glesv3_sources)
263 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_100 = cairo-glesv3.pc
264 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_101 = $(cairo_cogl_headers)
265 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_102 = $(cairo_cogl_private)
266 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_103 = $(cairo_cogl_cxx_sources)
267 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_104 = $(cairo_cogl_sources)
268 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_105 = cairo-cogl.pc
269 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_106 = $(cairo_directfb_headers)
270 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_107 = $(cairo_directfb_private)
271 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_108 = $(cairo_directfb_cxx_sources)
272 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_109 = $(cairo_directfb_sources)
273 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_110 = cairo-directfb.pc
274 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_111 = $(cairo_vg_headers)
275 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_112 = $(cairo_vg_private)
276 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_113 = $(cairo_vg_cxx_sources)
277 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_114 = $(cairo_vg_sources)
278 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_115 = cairo-vg.pc
279 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_116 = $(cairo_egl_headers)
280 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_117 = $(cairo_egl_private)
281 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_118 = $(cairo_egl_cxx_sources)
282 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_119 = $(cairo_egl_sources)
283 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_120 = cairo-egl.pc
284 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_121 = $(cairo_glx_headers)
285 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_122 = $(cairo_glx_private)
286 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_123 = $(cairo_glx_cxx_sources)
287 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_124 = $(cairo_glx_sources)
288 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_125 = cairo-glx.pc
289 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_126 = $(cairo_wgl_headers)
290 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_127 = $(cairo_wgl_private)
291 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_128 = $(cairo_wgl_cxx_sources)
292 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_129 = $(cairo_wgl_sources)
293 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_130 = cairo-wgl.pc
294 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_131 = $(cairo_script_headers)
295 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_132 = $(cairo_script_private)
296 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_133 = $(cairo_script_cxx_sources)
297 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_134 = $(cairo_script_sources)
298 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_135 = cairo-script.pc
299 @CAIRO_HAS_FT_FONT_TRUE@am__append_136 = $(cairo_ft_headers)
300 @CAIRO_HAS_FT_FONT_TRUE@am__append_137 = $(cairo_ft_private)
301 @CAIRO_HAS_FT_FONT_TRUE@am__append_138 = $(cairo_ft_cxx_sources)
302 @CAIRO_HAS_FT_FONT_TRUE@am__append_139 = $(cairo_ft_sources)
303 @CAIRO_HAS_FT_FONT_TRUE@am__append_140 = cairo-ft.pc
304 @CAIRO_HAS_FC_FONT_TRUE@am__append_141 = $(cairo_fc_headers)
305 @CAIRO_HAS_FC_FONT_TRUE@am__append_142 = $(cairo_fc_private)
306 @CAIRO_HAS_FC_FONT_TRUE@am__append_143 = $(cairo_fc_cxx_sources)
307 @CAIRO_HAS_FC_FONT_TRUE@am__append_144 = $(cairo_fc_sources)
308 @CAIRO_HAS_FC_FONT_TRUE@am__append_145 = cairo-fc.pc
309 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_146 = $(cairo_ps_headers)
310 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_147 = $(cairo_ps_private)
311 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_148 = $(cairo_ps_cxx_sources)
312 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_149 = $(cairo_ps_sources)
313 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_150 = cairo-ps.pc
314 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_151 = $(cairo_pdf_headers)
315 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_152 = $(cairo_pdf_private)
316 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_153 = $(cairo_pdf_cxx_sources)
317 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_154 = $(cairo_pdf_sources)
318 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_155 = cairo-pdf.pc
319 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_156 = $(cairo_svg_headers)
320 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_157 = $(cairo_svg_private)
321 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_158 = $(cairo_svg_cxx_sources)
322 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_159 = $(cairo_svg_sources)
323 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_160 = cairo-svg.pc
324 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_161 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers)
325 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_162 = $(cairo_test_surfaces_cxx_sources)
326 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_163 = $(cairo_test_surfaces_sources)
327 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_164 = $(cairo_tee_headers)
328 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_165 = $(cairo_tee_private)
329 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_166 = $(cairo_tee_cxx_sources)
330 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_167 = $(cairo_tee_sources)
331 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_168 = cairo-tee.pc
332 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_169 = $(cairo_xml_headers)
333 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_170 = $(cairo_xml_private)
334 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_171 = $(cairo_xml_cxx_sources)
335 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_172 = $(cairo_xml_sources)
336 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_173 = cairo-xml.pc
337 @CAIRO_HAS_PTHREAD_TRUE@am__append_174 = $(cairo_pthread_private) $(cairo_pthread_headers)
338 @CAIRO_HAS_PTHREAD_TRUE@am__append_175 = $(cairo_pthread_cxx_sources)
339 @CAIRO_HAS_PTHREAD_TRUE@am__append_176 = $(cairo_pthread_sources)
340 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_177 = $(cairo_gobject_headers)
341 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_178 = $(cairo_gobject_private)
342 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_179 = $(cairo_gobject_cxx_sources)
343 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_180 = $(cairo_gobject_sources)
344 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_181 = cairo-gobject.pc
345 @CAIRO_HAS_TRACE_TRUE@am__append_182 = $(cairo_trace_private) $(cairo_trace_headers)
346 @CAIRO_HAS_TRACE_TRUE@am__append_183 = $(cairo_trace_cxx_sources)
347 @CAIRO_HAS_TRACE_TRUE@am__append_184 = $(cairo_trace_sources)
348 @CAIRO_HAS_INTERPRETER_TRUE@am__append_185 = $(cairo_interpreter_private) $(cairo_interpreter_headers)
349 @CAIRO_HAS_INTERPRETER_TRUE@am__append_186 = $(cairo_interpreter_cxx_sources)
350 @CAIRO_HAS_INTERPRETER_TRUE@am__append_187 = $(cairo_interpreter_sources)
351 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_188 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
352 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_189 = $(cairo_symbol_lookup_cxx_sources)
353 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_190 = $(cairo_symbol_lookup_sources)
354 @ENABLE_GTK_DOC_TRUE@am__append_191 = check-doc-coverage.sh
350355 subdir = doc/public
351356 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
352357 am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \
353358 $(top_srcdir)/build/aclocal.compare.m4 \
354359 $(top_srcdir)/build/aclocal.enable.m4 \
355360 $(top_srcdir)/build/aclocal.float.m4 \
356 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
357361 $(top_srcdir)/build/aclocal.makefile.m4 \
358362 $(top_srcdir)/build/aclocal.pkg.m4 \
359 $(top_srcdir)/build/libtool.m4 \
363 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
360364 $(top_srcdir)/build/ltoptions.m4 \
361365 $(top_srcdir)/build/ltsugar.m4 \
362366 $(top_srcdir)/build/ltversion.m4 \
666670 GREP = @GREP@
667671 GS = @GS@
668672 GTKDOC_CHECK = @GTKDOC_CHECK@
673 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
674 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
675 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
676 GTKDOC_MKPDF = @GTKDOC_MKPDF@
677 GTKDOC_REBASE = @GTKDOC_REBASE@
669678 HTML_DIR = @HTML_DIR@
670679 INSTALL = @INSTALL@
671680 INSTALL_DATA = @INSTALL_DATA@
764773 gl_LIBS = @gl_LIBS@
765774 glesv2_CFLAGS = @glesv2_CFLAGS@
766775 glesv2_LIBS = @glesv2_LIBS@
776 glesv3_CFLAGS = @glesv3_CFLAGS@
777 glesv3_LIBS = @glesv3_LIBS@
767778 glib_CFLAGS = @glib_CFLAGS@
768779 glib_LIBS = @glib_LIBS@
769780 gtk_CFLAGS = @gtk_CFLAGS@
832843 check-doc-coverage.sh check-doc-syntax.sh
833844 EXTRA_LTLIBRARIES =
834845 MAINTAINERCLEANFILES = Makefile.in
835 TESTS = $(am__append_186) check-doc-syntax.sh
846 TESTS = $(am__append_191) check-doc-syntax.sh
836847 cairo_headers = cairo.h cairo-deprecated.h
837848 cairo_private = cairoint.h cairo-analysis-surface-private.h \
838849 cairo-arc-private.h cairo-array-private.h \
945956 cairo_egl_sources = cairo-egl-context.c
946957 cairo_glx_sources = cairo-glx-context.c
947958 cairo_wgl_sources = cairo-wgl-context.c
948 _cairo_pdf_operators_private = cairo-pdf-operators-private.h cairo-pdf-shading-private.h
949 _cairo_pdf_operators_sources = cairo-pdf-operators.c cairo-pdf-shading.c
959 _cairo_pdf_operators_private = \
960 cairo-pdf-operators-private.h \
961 cairo-pdf-shading-private.h \
962 cairo-tag-attributes-private.h \
963 $(NULL)
964
965 _cairo_pdf_operators_sources = \
966 cairo-pdf-operators.c \
967 cairo-pdf-shading.c \
968 cairo-tag-attributes.c \
969 $(NULL)
970
950971 cairo_png_sources = cairo-png.c
951972 cairo_ps_headers = cairo-ps.h
952973 cairo_ps_private = cairo-ps-surface-private.h
953974 cairo_ps_sources = cairo-ps-surface.c
954975 _cairo_deflate_stream_sources = cairo-deflate-stream.c
955976 cairo_pdf_headers = cairo-pdf.h
956 cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h cairo-tag-attributes-private.h
957 cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c cairo-tag-attributes.c
977 cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h
978 cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c
958979 cairo_svg_headers = cairo-svg.h
959980 cairo_svg_private = cairo-svg-surface-private.h
960981 cairo_svg_sources = cairo-svg-surface.c
10751096 cairo_glesv2_headers = $(cairo_gl_headers)
10761097 cairo_glesv2_private = $(cairo_gl_private)
10771098 cairo_glesv2_sources = $(cairo_gl_sources)
1099 cairo_glesv3_headers = $(cairo_gl_headers)
1100 cairo_glesv3_private = $(cairo_gl_private)
1101 cairo_glesv3_sources = $(cairo_gl_sources)
10781102 cairo_directfb_headers = cairo-directfb.h
10791103 cairo_directfb_sources = cairo-directfb-surface.c
10801104 cairo_drm_headers = cairo-drm.h
11481172 $(cairo_skia_headers) $(cairo_os2_headers) \
11491173 $(cairo_beos_headers) $(cairo_drm_headers) \
11501174 $(cairo_gallium_headers) $(cairo_gl_headers) \
1151 $(cairo_glesv2_headers) $(cairo_cogl_headers) \
1152 $(cairo_directfb_headers) $(cairo_vg_headers) \
1153 $(cairo_tee_headers) $(cairo_xml_headers)
1175 $(cairo_glesv2_headers) $(cairo_glesv3_headers) \
1176 $(cairo_cogl_headers) $(cairo_directfb_headers) \
1177 $(cairo_vg_headers) $(cairo_tee_headers) $(cairo_xml_headers)
11541178 all_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \
11551179 $(cairo_xlib_xrender_headers) $(cairo_xcb_headers) \
11561180 $(cairo_xlib_xcb_headers) $(cairo_xcb_shm_headers) \
11611185 $(cairo_beos_headers) $(cairo_drm_headers) \
11621186 $(cairo_gallium_headers) $(cairo_png_headers) \
11631187 $(cairo_gl_headers) $(cairo_glesv2_headers) \
1164 $(cairo_cogl_headers) $(cairo_directfb_headers) \
1165 $(cairo_vg_headers) $(cairo_egl_headers) $(cairo_glx_headers) \
1166 $(cairo_wgl_headers) $(cairo_script_headers) \
1167 $(cairo_ft_headers) $(cairo_fc_headers) $(cairo_ps_headers) \
1168 $(cairo_pdf_headers) $(cairo_svg_headers) \
1169 $(cairo_image_headers) $(cairo_mime_headers) \
1170 $(cairo_recording_headers) $(cairo_observer_headers) \
1171 $(cairo_tee_headers) $(cairo_xml_headers) \
1172 $(cairo_user_headers) $(cairo_gobject_headers)
1188 $(cairo_glesv3_headers) $(cairo_cogl_headers) \
1189 $(cairo_directfb_headers) $(cairo_vg_headers) \
1190 $(cairo_egl_headers) $(cairo_glx_headers) $(cairo_wgl_headers) \
1191 $(cairo_script_headers) $(cairo_ft_headers) \
1192 $(cairo_fc_headers) $(cairo_ps_headers) $(cairo_pdf_headers) \
1193 $(cairo_svg_headers) $(cairo_image_headers) \
1194 $(cairo_mime_headers) $(cairo_recording_headers) \
1195 $(cairo_observer_headers) $(cairo_tee_headers) \
1196 $(cairo_xml_headers) $(cairo_user_headers) \
1197 $(cairo_gobject_headers)
11731198 all_cairo_private = $(cairo_private) $(cairo_xlib_private) \
11741199 $(cairo_xlib_xrender_private) $(cairo_xcb_private) \
11751200 $(cairo_xlib_xcb_private) $(cairo_xcb_shm_private) \
11801205 $(cairo_beos_private) $(cairo_drm_private) \
11811206 $(cairo_gallium_private) $(cairo_png_private) \
11821207 $(cairo_gl_private) $(cairo_glesv2_private) \
1183 $(cairo_cogl_private) $(cairo_directfb_private) \
1184 $(cairo_vg_private) $(cairo_egl_private) $(cairo_glx_private) \
1185 $(cairo_wgl_private) $(cairo_script_private) \
1186 $(cairo_ft_private) $(cairo_fc_private) $(cairo_ps_private) \
1187 $(cairo_pdf_private) $(cairo_svg_private) \
1188 $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) \
1189 $(cairo_image_private) $(cairo_mime_private) \
1190 $(cairo_recording_private) $(cairo_observer_private) \
1191 $(cairo_tee_private) $(cairo_xml_private) \
1192 $(cairo_user_private) $(cairo_pthread_private) \
1193 $(cairo_pthread_headers) $(cairo_gobject_private) \
1194 $(cairo_trace_private) $(cairo_trace_headers) \
1195 $(cairo_interpreter_private) $(cairo_interpreter_headers) \
1196 $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
1208 $(cairo_glesv3_private) $(cairo_cogl_private) \
1209 $(cairo_directfb_private) $(cairo_vg_private) \
1210 $(cairo_egl_private) $(cairo_glx_private) $(cairo_wgl_private) \
1211 $(cairo_script_private) $(cairo_ft_private) \
1212 $(cairo_fc_private) $(cairo_ps_private) $(cairo_pdf_private) \
1213 $(cairo_svg_private) $(cairo_test_surfaces_private) \
1214 $(cairo_test_surfaces_headers) $(cairo_image_private) \
1215 $(cairo_mime_private) $(cairo_recording_private) \
1216 $(cairo_observer_private) $(cairo_tee_private) \
1217 $(cairo_xml_private) $(cairo_user_private) \
1218 $(cairo_pthread_private) $(cairo_pthread_headers) \
1219 $(cairo_gobject_private) $(cairo_trace_private) \
1220 $(cairo_trace_headers) $(cairo_interpreter_private) \
1221 $(cairo_interpreter_headers) $(cairo_symbol_lookup_private) \
1222 $(cairo_symbol_lookup_headers)
11971223 all_cairo_cxx_sources = $(cairo_cxx_sources) $(cairo_xlib_cxx_sources) \
11981224 $(cairo_xlib_xrender_cxx_sources) $(cairo_xcb_cxx_sources) \
11991225 $(cairo_xlib_xcb_cxx_sources) $(cairo_xcb_shm_cxx_sources) \
12041230 $(cairo_os2_cxx_sources) $(cairo_beos_cxx_sources) \
12051231 $(cairo_drm_cxx_sources) $(cairo_gallium_cxx_sources) \
12061232 $(cairo_png_cxx_sources) $(cairo_gl_cxx_sources) \
1207 $(cairo_glesv2_cxx_sources) $(cairo_cogl_cxx_sources) \
1208 $(cairo_directfb_cxx_sources) $(cairo_vg_cxx_sources) \
1209 $(cairo_egl_cxx_sources) $(cairo_glx_cxx_sources) \
1210 $(cairo_wgl_cxx_sources) $(cairo_script_cxx_sources) \
1211 $(cairo_ft_cxx_sources) $(cairo_fc_cxx_sources) \
1212 $(cairo_ps_cxx_sources) $(cairo_pdf_cxx_sources) \
1213 $(cairo_svg_cxx_sources) $(cairo_test_surfaces_cxx_sources) \
1214 $(cairo_image_cxx_sources) $(cairo_mime_cxx_sources) \
1215 $(cairo_recording_cxx_sources) $(cairo_observer_cxx_sources) \
1216 $(cairo_tee_cxx_sources) $(cairo_xml_cxx_sources) \
1217 $(cairo_user_cxx_sources) $(cairo_pthread_cxx_sources) \
1218 $(cairo_gobject_cxx_sources) $(cairo_trace_cxx_sources) \
1219 $(cairo_interpreter_cxx_sources) \
1233 $(cairo_glesv2_cxx_sources) $(cairo_glesv3_cxx_sources) \
1234 $(cairo_cogl_cxx_sources) $(cairo_directfb_cxx_sources) \
1235 $(cairo_vg_cxx_sources) $(cairo_egl_cxx_sources) \
1236 $(cairo_glx_cxx_sources) $(cairo_wgl_cxx_sources) \
1237 $(cairo_script_cxx_sources) $(cairo_ft_cxx_sources) \
1238 $(cairo_fc_cxx_sources) $(cairo_ps_cxx_sources) \
1239 $(cairo_pdf_cxx_sources) $(cairo_svg_cxx_sources) \
1240 $(cairo_test_surfaces_cxx_sources) $(cairo_image_cxx_sources) \
1241 $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \
1242 $(cairo_observer_cxx_sources) $(cairo_tee_cxx_sources) \
1243 $(cairo_xml_cxx_sources) $(cairo_user_cxx_sources) \
1244 $(cairo_pthread_cxx_sources) $(cairo_gobject_cxx_sources) \
1245 $(cairo_trace_cxx_sources) $(cairo_interpreter_cxx_sources) \
12201246 $(cairo_symbol_lookup_cxx_sources)
12211247 all_cairo_sources = $(cairo_sources) $(cairo_xlib_sources) \
12221248 $(cairo_xlib_xrender_sources) $(cairo_xcb_sources) \
12281254 $(cairo_beos_sources) $(cairo_drm_sources) \
12291255 $(cairo_gallium_sources) $(cairo_png_sources) \
12301256 $(cairo_gl_sources) $(cairo_glesv2_sources) \
1231 $(cairo_cogl_sources) $(cairo_directfb_sources) \
1232 $(cairo_vg_sources) $(cairo_egl_sources) $(cairo_glx_sources) \
1233 $(cairo_wgl_sources) $(cairo_script_sources) \
1234 $(cairo_ft_sources) $(cairo_fc_sources) $(cairo_ps_sources) \
1235 $(cairo_pdf_sources) $(cairo_svg_sources) \
1236 $(cairo_test_surfaces_sources) $(cairo_image_sources) \
1237 $(cairo_mime_sources) $(cairo_recording_sources) \
1238 $(cairo_observer_sources) $(cairo_tee_sources) \
1239 $(cairo_xml_sources) $(cairo_user_sources) \
1240 $(cairo_pthread_sources) $(cairo_gobject_sources) \
1241 $(cairo_trace_sources) $(cairo_interpreter_sources) \
1242 $(cairo_symbol_lookup_sources)
1257 $(cairo_glesv3_sources) $(cairo_cogl_sources) \
1258 $(cairo_directfb_sources) $(cairo_vg_sources) \
1259 $(cairo_egl_sources) $(cairo_glx_sources) $(cairo_wgl_sources) \
1260 $(cairo_script_sources) $(cairo_ft_sources) \
1261 $(cairo_fc_sources) $(cairo_ps_sources) $(cairo_pdf_sources) \
1262 $(cairo_svg_sources) $(cairo_test_surfaces_sources) \
1263 $(cairo_image_sources) $(cairo_mime_sources) \
1264 $(cairo_recording_sources) $(cairo_observer_sources) \
1265 $(cairo_tee_sources) $(cairo_xml_sources) \
1266 $(cairo_user_sources) $(cairo_pthread_sources) \
1267 $(cairo_gobject_sources) $(cairo_trace_sources) \
1268 $(cairo_interpreter_sources) $(cairo_symbol_lookup_sources)
12431269 enabled_cairo_headers = $(cairo_headers) $(am__append_1) \
12441270 $(am__append_6) $(am__append_11) $(am__append_16) \
12451271 $(am__append_21) $(am__append_26) $(am__append_31) \
12511277 $(am__append_111) $(am__append_116) $(am__append_121) \
12521278 $(am__append_126) $(am__append_131) $(am__append_136) \
12531279 $(am__append_141) $(am__append_146) $(am__append_151) \
1254 $(cairo_image_headers) $(cairo_mime_headers) \
1280 $(am__append_156) $(cairo_image_headers) $(cairo_mime_headers) \
12551281 $(cairo_recording_headers) $(cairo_observer_headers) \
1256 $(am__append_159) $(am__append_164) $(cairo_user_headers) \
1257 $(am__append_172)
1282 $(am__append_164) $(am__append_169) $(cairo_user_headers) \
1283 $(am__append_177)
12581284 enabled_cairo_private = $(cairo_private) $(am__append_2) \
12591285 $(am__append_7) $(am__append_12) $(am__append_17) \
12601286 $(am__append_22) $(am__append_27) $(am__append_32) \
12661292 $(am__append_112) $(am__append_117) $(am__append_122) \
12671293 $(am__append_127) $(am__append_132) $(am__append_137) \
12681294 $(am__append_142) $(am__append_147) $(am__append_152) \
1269 $(am__append_156) $(cairo_image_private) $(cairo_mime_private) \
1270 $(cairo_recording_private) $(cairo_observer_private) \
1271 $(am__append_160) $(am__append_165) $(cairo_user_private) \
1272 $(am__append_169) $(am__append_173) $(am__append_177) \
1273 $(am__append_180) $(am__append_183)
1295 $(am__append_157) $(am__append_161) $(cairo_image_private) \
1296 $(cairo_mime_private) $(cairo_recording_private) \
1297 $(cairo_observer_private) $(am__append_165) $(am__append_170) \
1298 $(cairo_user_private) $(am__append_174) $(am__append_178) \
1299 $(am__append_182) $(am__append_185) $(am__append_188)
12741300 enabled_cairo_cxx_sources = $(cairo_cxx_sources) $(am__append_3) \
12751301 $(am__append_8) $(am__append_13) $(am__append_18) \
12761302 $(am__append_23) $(am__append_28) $(am__append_33) \
12821308 $(am__append_113) $(am__append_118) $(am__append_123) \
12831309 $(am__append_128) $(am__append_133) $(am__append_138) \
12841310 $(am__append_143) $(am__append_148) $(am__append_153) \
1285 $(am__append_157) $(cairo_image_cxx_sources) \
1311 $(am__append_158) $(am__append_162) $(cairo_image_cxx_sources) \
12861312 $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \
1287 $(cairo_observer_cxx_sources) $(am__append_161) \
1288 $(am__append_166) $(cairo_user_cxx_sources) $(am__append_170) \
1289 $(am__append_174) $(am__append_178) $(am__append_181) \
1290 $(am__append_184)
1313 $(cairo_observer_cxx_sources) $(am__append_166) \
1314 $(am__append_171) $(cairo_user_cxx_sources) $(am__append_175) \
1315 $(am__append_179) $(am__append_183) $(am__append_186) \
1316 $(am__append_189)
12911317 enabled_cairo_sources = $(cairo_sources) $(am__append_4) \
12921318 $(am__append_9) $(am__append_14) $(am__append_19) \
12931319 $(am__append_24) $(am__append_29) $(am__append_34) \
12991325 $(am__append_114) $(am__append_119) $(am__append_124) \
13001326 $(am__append_129) $(am__append_134) $(am__append_139) \
13011327 $(am__append_144) $(am__append_149) $(am__append_154) \
1302 $(am__append_158) $(cairo_image_sources) $(cairo_mime_sources) \
1303 $(cairo_recording_sources) $(cairo_observer_sources) \
1304 $(am__append_162) $(am__append_167) $(cairo_user_sources) \
1305 $(am__append_171) $(am__append_175) $(am__append_179) \
1306 $(am__append_182) $(am__append_185)
1328 $(am__append_159) $(am__append_163) $(cairo_image_sources) \
1329 $(cairo_mime_sources) $(cairo_recording_sources) \
1330 $(cairo_observer_sources) $(am__append_167) $(am__append_172) \
1331 $(cairo_user_sources) $(am__append_176) $(am__append_180) \
1332 $(am__append_184) $(am__append_187) $(am__append_190)
13071333 all_cairo_pkgconf = cairo.pc cairo-xlib.pc cairo-xlib-xrender.pc \
13081334 cairo-xcb.pc cairo-xlib-xcb.pc cairo-xcb-shm.pc cairo-qt.pc \
13091335 cairo-quartz.pc cairo-quartz-font.pc cairo-quartz-image.pc \
13101336 cairo-win32.pc cairo-win32-font.pc cairo-skia.pc cairo-os2.pc \
13111337 cairo-beos.pc cairo-drm.pc cairo-gallium.pc cairo-png.pc \
1312 cairo-gl.pc cairo-glesv2.pc cairo-cogl.pc cairo-directfb.pc \
1313 cairo-vg.pc cairo-egl.pc cairo-glx.pc cairo-wgl.pc \
1314 cairo-script.pc cairo-ft.pc cairo-fc.pc cairo-ps.pc \
1315 cairo-pdf.pc cairo-svg.pc cairo-tee.pc cairo-xml.pc \
1316 cairo-gobject.pc
1338 cairo-gl.pc cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \
1339 cairo-directfb.pc cairo-vg.pc cairo-egl.pc cairo-glx.pc \
1340 cairo-wgl.pc cairo-script.pc cairo-ft.pc cairo-fc.pc \
1341 cairo-ps.pc cairo-pdf.pc cairo-svg.pc cairo-tee.pc \
1342 cairo-xml.pc cairo-gobject.pc
13171343 enabled_cairo_pkgconf = cairo.pc $(am__append_5) $(am__append_10) \
13181344 $(am__append_15) $(am__append_20) $(am__append_25) \
13191345 $(am__append_30) $(am__append_35) $(am__append_40) \
13241350 $(am__append_105) $(am__append_110) $(am__append_115) \
13251351 $(am__append_120) $(am__append_125) $(am__append_130) \
13261352 $(am__append_135) $(am__append_140) $(am__append_145) \
1327 $(am__append_150) $(am__append_155) $(am__append_163) \
1328 $(am__append_168) $(am__append_176)
1353 $(am__append_150) $(am__append_155) $(am__append_160) \
1354 $(am__append_168) $(am__append_173) $(am__append_181)
13291355
13301356 # The name of the module.
13311357 DOC_MODULE = cairo
241241 <SECTION>
242242 <FILE>cairo-surface</FILE>
243243 CAIRO_HAS_MIME_SURFACE
244 CAIRO_MIME_TYPE_CCITT_FAX
245 CAIRO_MIME_TYPE_CCITT_FAX_PARAMS
246 CAIRO_MIME_TYPE_EPS
247 CAIRO_MIME_TYPE_EPS_PARAMS
244248 CAIRO_MIME_TYPE_JBIG2
245249 CAIRO_MIME_TYPE_JBIG2_GLOBAL
246250 CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID
203203 <tr>
204204 <td class="enum_member_name"><p><a name="CAIRO-STATUS-NULL-POINTER:CAPS"></a>CAIRO_STATUS_NULL_POINTER</p></td>
205205 <td class="enum_member_description">
206 <p><code class="literal">NULL</code> pointer (Since 1.0)</p>
206 <p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> pointer (Since 1.0)</p>
207207 </td>
208208 <td class="enum_member_annotations"> </td>
209209 </tr>
338338 <a name="cairo-ft-scaled-font-lock-face.returns"></a><h4>Returns</h4>
339339 <p> The <span class="type">FT_Face</span> object for <em class="parameter"><code>font</code></em>
340340 , scaled appropriately,
341 or <code class="literal">NULL</code> if <em class="parameter"><code>scaled_font</code></em>
341 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>scaled_font</code></em>
342342 is in an error state (see
343343 <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status" title="cairo_scaled_font_status ()"><code class="function">cairo_scaled_font_status()</code></a>) or there is insufficient memory.</p>
344344 </div>
340340 </div>
341341 <div class="refsect3">
342342 <a name="cairo-image-surface-get-data.returns"></a><h4>Returns</h4>
343 <p> a pointer to the image data of this surface or <code class="literal">NULL</code>
343 <p> a pointer to the image data of this surface or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
344344 if <em class="parameter"><code>surface</code></em>
345345 is not an image surface, or if <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a>
346346 has been called.</p>
158158 <p>The following mime types are supported: <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>,
159159 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2"><code class="literal">CAIRO_MIME_TYPE_JP2</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>,
160160 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2"><code class="literal">CAIRO_MIME_TYPE_JBIG2</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>,
161 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>.</p>
161 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>,
162 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>.</p>
163 <div class="refsect2">
164 <a name="id-1.5.5.5.4"></a><h3>JBIG2 Images</h3>
162165 <p>JBIG2 data in PDF must be in the embedded format as described in
163166 ISO/IEC 11544. Image specific JBIG2 data must be in
164167 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2"><code class="literal">CAIRO_MIME_TYPE_JBIG2</code></a>. Any global segments in the JBIG2 data
165168 (segments with page association field set to 0) must be in
166169 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>. The global data may be shared by
167170 multiple images. All images sharing the same global data must set
168 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a> to a unique identifer. At least
171 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a> to a unique identifier. At least
169172 one of the images must provide the global data using
170173 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>. The global data will only be
171 embedded once but shared by all JBIG2 images with the same
174 embedded once and shared by all JBIG2 images with the same
172175 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>.</p>
176 </div>
177 <hr>
178 <div class="refsect2">
179 <a name="ccitt"></a><h3>CCITT Fax Images</h3>
180 <p>The <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a> mime data requires a number of decoding
181 parameters These parameters are specified using <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>.</p>
182 <p><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a> mime data must contain a string of the form
183 "param1=value1 param2=value2 ...".</p>
184 <p><em class="parameter"><code>Columns</code></em>
185 : [required] An integer specifying the width of the image in pixels.</p>
186 <p><em class="parameter"><code>Rows</code></em>
187 : [required] An integer specifying the height of the image in scan lines.</p>
188 <p><em class="parameter"><code>K</code></em>
189 : [optional] An integer identifying the encoding scheme used. &lt; 0
190 is 2 dimensional Group 4, = 0 is Group3 1 dimensional, &gt; 0 is mixed 1
191 and 2 dimensional encoding. Default is 0.</p>
192 <p><em class="parameter"><code>EndOfLine</code></em>
193 : [optional] If true end-of-line bit patterns are present. Default is false.</p>
194 <p><em class="parameter"><code>EncodedByteAlign</code></em>
195 : [optional] If true the end of line is padded
196 with 0 bits so the next line begins on a byte boundary. Default is false.</p>
197 <p><em class="parameter"><code>EndOfBlock</code></em>
198 : [optional] If true the data contains an end-of-block pattern. Default is true.</p>
199 <p><em class="parameter"><code>BlackIs1</code></em>
200 : [optional] If true 1 bits are black pixels. Default is false.</p>
201 <p><em class="parameter"><code>DamagedRowsBeforeError</code></em>
202 : [optional] An integer specifying the
203 number of damages rows tolerated before an error occurs. Default is 0.</p>
204 <p>Boolean values may be "true" or "false", or 1 or 0.</p>
205 <p>These parameters are the same as the CCITTFaxDecode parameters in the
206 <a class="ulink" href="https://www.adobe.com/products/postscript/pdfs/PLRM.pdf" target="_top">PostScript Language Reference</a>
207 and <a class="ulink" href="https://www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf" target="_top">Portable Document Format (PDF)</a>.
208 Refer to these documents for further details.</p>
209 <p>An example <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a> string is:</p>
210 <pre class="programlisting">
211 "Columns=10230 Rows=40000 K=1 EndOfLine=true EncodedByteAlign=1 BlackIs1=false"
212 </pre>
213 </div>
173214 </div>
174215 <div class="refsect1">
175216 <a name="cairo-PDF-Surfaces.functions_details"></a><h2>Functions</h2>
193234 <tbody>
194235 <tr>
195236 <td class="parameter_name"><p>filename</p></td>
196 <td class="parameter_description"><p>a filename for the PDF output (must be writable), <code class="literal">NULL</code> may be
237 <td class="parameter_description"><p>a filename for the PDF output (must be writable), <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> may be
197238 used to specify no output. This will generate a PDF surface that
198239 may be queried and used as a source, without generating a
199240 temporary file.</p></td>
246287 <tbody>
247288 <tr>
248289 <td class="parameter_name"><p>write_func</p></td>
249 <td class="parameter_description"><p>a <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> to accept the output data, may be <code class="literal">NULL</code>
290 <td class="parameter_description"><p>a <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> to accept the output data, may be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
250291 to indicate a no-op <em class="parameter"><code>write_func</code></em>
251292 . With a no-op <em class="parameter"><code>write_func</code></em>
252293 ,
360401 cairo_pdf_version_to_string (<em class="parameter"><code><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t" title="enum cairo_pdf_version_t"><span class="type">cairo_pdf_version_t</span></a> version</code></em>);</pre>
361402 <p>Get the string representation of the given <em class="parameter"><code>version</code></em>
362403 id. This function
363 will return <code class="literal">NULL</code> if <em class="parameter"><code>version</code></em>
404 will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>version</code></em>
364405 isn't valid. See <a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions" title="cairo_pdf_get_versions ()"><code class="function">cairo_pdf_get_versions()</code></a>
365406 for a way to get the list of valid version ids.</p>
366407 <div class="refsect3">
132132 </colgroup>
133133 <tbody><tr>
134134 <td class="parameter_name"><p>filename</p></td>
135 <td class="parameter_description"><p>name of PNG file to load</p></td>
135 <td class="parameter_description"><p>name of PNG file to load. On Windows this filename
136 is encoded in UTF-8.</p></td>
136137 <td class="parameter_annotations"> </td>
137138 </tr></tbody>
138139 </table></div>
275276 </tr>
276277 <tr>
277278 <td class="parameter_name"><p>filename</p></td>
278 <td class="parameter_description"><p>the name of a file to write to</p></td>
279 <td class="parameter_description"><p>the name of a file to write to; on Windows this filename
280 is encoded in UTF-8.</p></td>
279281 <td class="parameter_annotations"> </td>
280282 </tr>
281283 </tbody>
247247 <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a>. See <a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> for hints on how to iterate
248248 over the returned data structure.</p>
249249 <p>This function will always return a valid pointer, but the result
250 will have no data (<code class="literal">data==<code class="literal">NULL</code></code> and
250 will have no data (<code class="literal">data==<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></code> and
251251 <code class="literal">num_data==0</code>), if either of the following
252252 conditions hold:</p>
253253 <div class="orderedlist"><ol class="orderedlist" type="1">
296296 of type <a class="link" href="cairo-Paths.html#CAIRO-PATH-CURVE-TO:CAPS"><code class="literal">CAIRO_PATH_CURVE_TO</code></a> which will instead be replaced by a
297297 series of <a class="link" href="cairo-Paths.html#CAIRO-PATH-LINE-TO:CAPS"><code class="literal">CAIRO_PATH_LINE_TO</code></a> elements.</p>
298298 <p>This function will always return a valid pointer, but the result
299 will have no data (<code class="literal">data==<code class="literal">NULL</code></code> and
299 will have no data (<code class="literal">data==<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></code> and
300300 <code class="literal">num_data==0</code>), if either of the following
301301 conditions hold:</p>
302302 <div class="orderedlist"><ol class="orderedlist" type="1">
10501050 </tr>
10511051 <tr>
10521052 <td class="parameter_name"><p>utf8</p></td>
1053 <td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <code class="literal">NULL</code></p></td>
1053 <td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
10541054 <td class="parameter_annotations"> </td>
10551055 </tr>
10561056 </tbody>
151151 <a name="cairo-PostScript-Surfaces.description"></a><h2>Description</h2>
152152 <p>The PostScript surface is used to render cairo graphics to Adobe
153153 PostScript files and is a multi-page vector surface backend.</p>
154 <p>The following mime types are supported: <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>,
155 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>,
156 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>,
157 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>,
158 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" title="CAIRO_MIME_TYPE_EPS"><code class="literal">CAIRO_MIME_TYPE_EPS</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS"><code class="literal">CAIRO_MIME_TYPE_EPS_PARAMS</code></a>.</p>
159 <p>Source surfaces used by the PostScript surface that have a
160 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a> mime type will be stored in PostScript
161 printer memory for the duration of the print
162 job. <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a> should only be used for small
163 frequently used sources.</p>
164 <p>The <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a> and <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a> mime types
165 are documented in <a class="link" href="cairo-PDF-Surfaces.html#ccitt" title="CCITT Fax Images">CCITT Fax Images</a>.</p>
166 <div class="refsect2">
167 <a name="eps"></a><h3>Embedding EPS files</h3>
168 <p>Encapsulated PostScript files can be embedded in the PS output by
169 setting the CAIRO_MIME_TYPE_EPS mime data on a surface to the EPS
170 data and painting the surface. The EPS will be scaled and
171 translated to the extents of the surface the EPS data is attached
172 to.</p>
173 <p>The <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" title="CAIRO_MIME_TYPE_EPS"><code class="literal">CAIRO_MIME_TYPE_EPS</code></a> mime type requires the
174 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS"><code class="literal">CAIRO_MIME_TYPE_EPS_PARAMS</code></a> mime data to also be provided in order
175 to specify the embeddding parameters. <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS"><code class="literal">CAIRO_MIME_TYPE_EPS_PARAMS</code></a>
176 mime data must contain a string of the form "bbox=[llx lly urx
177 ury]" that specifies the bounding box (in PS coordinates) of the
178 EPS graphics. The parameters are: lower left x, lower left y, upper
179 right x, upper right y. Normally the bbox data is identical to the
180 %%<code class="literal">BoundingBox</code> data in the EPS file.</p>
181 </div>
154182 </div>
155183 <div class="refsect1">
156184 <a name="cairo-PostScript-Surfaces.functions_details"></a><h2>Functions</h2>
178206 <tbody>
179207 <tr>
180208 <td class="parameter_name"><p>filename</p></td>
181 <td class="parameter_description"><p>a filename for the PS output (must be writable), <code class="literal">NULL</code> may be
209 <td class="parameter_description"><p>a filename for the PS output (must be writable), <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> may be
182210 used to specify no output. This will generate a PS surface that
183211 may be queried and used as a source, without generating a
184212 temporary file.</p></td>
235263 <tbody>
236264 <tr>
237265 <td class="parameter_name"><p>write_func</p></td>
238 <td class="parameter_description"><p>a <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> to accept the output data, may be <code class="literal">NULL</code>
266 <td class="parameter_description"><p>a <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> to accept the output data, may be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
239267 to indicate a no-op <em class="parameter"><code>write_func</code></em>
240268 . With a no-op <em class="parameter"><code>write_func</code></em>
241269 ,
350378 cairo_ps_level_to_string (<em class="parameter"><code><a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t" title="enum cairo_ps_level_t"><span class="type">cairo_ps_level_t</span></a> level</code></em>);</pre>
351379 <p>Get the string representation of the given <em class="parameter"><code>level</code></em>
352380 id. This function
353 will return <code class="literal">NULL</code> if <em class="parameter"><code>level</code></em>
381 will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>level</code></em>
354382 id isn't valid. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels" title="cairo_ps_get_levels ()"><code class="function">cairo_ps_get_levels()</code></a>
355383 for a way to get the list of valid level ids.</p>
356384 <div class="refsect3">
381409 cairo_ps_surface_set_eps (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
382410 <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="type">cairo_bool_t</span></a> eps</code></em>);</pre>
383411 <p>If <em class="parameter"><code>eps</code></em>
384 is <code class="literal">TRUE</code>, the PostScript surface will output Encapsulated
412 is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the PostScript surface will output Encapsulated
385413 PostScript.</p>
386414 <p>This function should only be called before any drawing operations
387415 have been performed on the current page. The simplest way to do
404432 </tr>
405433 <tr>
406434 <td class="parameter_name"><p>eps</p></td>
407 <td class="parameter_description"><p><code class="literal">TRUE</code> to output EPS format PostScript</p></td>
435 <td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to output EPS format PostScript</p></td>
408436 <td class="parameter_annotations"> </td>
409437 </tr>
410438 </tbody>
435463 </div>
436464 <div class="refsect3">
437465 <a name="cairo-ps-surface-get-eps.returns"></a><h4>Returns</h4>
438 <p> <code class="literal">TRUE</code> if the surface will output Encapsulated PostScript.</p>
466 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the surface will output Encapsulated PostScript.</p>
439467 </div>
440468 <p class="since">Since: 1.6</p>
441469 </div>
139139 </tr>
140140 <tr>
141141 <td class="parameter_name"><p>extents</p></td>
142 <td class="parameter_description"><p>the extents to record in pixels, can be <code class="literal">NULL</code> to record
142 <td class="parameter_description"><p>the extents to record in pixels, can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to record
143143 unbounded operations.</p></td>
144144 <td class="parameter_annotations"> </td>
145145 </tr>
236236 </div>
237237 <div class="refsect3">
238238 <a name="cairo-recording-surface-get-extents.returns"></a><h4>Returns</h4>
239 <p> <code class="literal">TRUE</code> if the surface is bounded, of recording type, and
240 not in an error state, otherwise <code class="literal">FALSE</code></p>
239 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the surface is bounded, of recording type, and
240 not in an error state, otherwise <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
241241 </div>
242242 <p class="since">Since: 1.12</p>
243243 </div>
580580 </div>
581581 <div class="refsect3">
582582 <a name="cairo-region-is-empty.returns"></a><h4>Returns</h4>
583 <p> <code class="literal">TRUE</code> if <em class="parameter"><code>region</code></em>
584 is empty, <code class="literal">FALSE</code> if it isn't.</p>
583 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>region</code></em>
584 is empty, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it isn't.</p>
585585 </div>
586586 <p class="since">Since: 1.10</p>
587587 </div>
625625 </div>
626626 <div class="refsect3">
627627 <a name="cairo-region-contains-point.returns"></a><h4>Returns</h4>
628 <p> <code class="literal">TRUE</code> if (<em class="parameter"><code>x</code></em>
628 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if (<em class="parameter"><code>x</code></em>
629629 , <em class="parameter"><code>y</code></em>
630630 ) is contained in <em class="parameter"><code>region</code></em>
631 , <code class="literal">FALSE</code> if it is not.</p>
631 , <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it is not.</p>
632632 </div>
633633 <p class="since">Since: 1.10</p>
634634 </div>
684684 <pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
685685 cairo_region_equal (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *a</code></em>,
686686 <em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *b</code></em>);</pre>
687 <p>Compares whether region_a is equivalent to region_b. <code class="literal">NULL</code> as an argument
688 is equal to itself, but not to any non-<code class="literal">NULL</code> region.</p>
687 <p>Compares whether region_a is equivalent to region_b. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> as an argument
688 is equal to itself, but not to any non-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> region.</p>
689689 <div class="refsect3">
690690 <a name="cairo-region-equal.parameters"></a><h4>Parameters</h4>
691691 <div class="informaltable"><table class="informaltable" width="100%" border="0">
697697 <tbody>
698698 <tr>
699699 <td class="parameter_name"><p>a</p></td>
700 <td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> or <code class="literal">NULL</code></p></td>
700 <td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
701701 <td class="parameter_annotations"> </td>
702702 </tr>
703703 <tr>
704704 <td class="parameter_name"><p>b</p></td>
705 <td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> or <code class="literal">NULL</code></p></td>
705 <td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
706706 <td class="parameter_annotations"> </td>
707707 </tr>
708708 </tbody>
710710 </div>
711711 <div class="refsect3">
712712 <a name="cairo-region-equal.returns"></a><h4>Returns</h4>
713 <p> <code class="literal">TRUE</code> if both regions contained the same coverage,
714 <code class="literal">FALSE</code> if it is not or any region is in an error status.</p>
713 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if both regions contained the same coverage,
714 <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it is not or any region is in an error status.</p>
715715 </div>
716716 <p class="since">Since: 1.10</p>
717717 </div>
128128 <p>If <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI"><code class="literal">CAIRO_MIME_TYPE_URI</code></a> is not present, but <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>
129129 or <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG"><code class="literal">CAIRO_MIME_TYPE_PNG</code></a> is specified, the corresponding data is
130130 Base64-encoded and emitted.</p>
131 <p>If <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a> is present, all surfaces with the same
132 unique identifier will only be embedded once.</p>
131133 <div class="refsect3">
132134 <a name="cairo-svg-surface-create.parameters"></a><h4>Parameters</h4>
133135 <div class="informaltable"><table class="informaltable" width="100%" border="0">
139141 <tbody>
140142 <tr>
141143 <td class="parameter_name"><p>filename</p></td>
142 <td class="parameter_description"><p>a filename for the SVG output (must be writable), <code class="literal">NULL</code> may be
144 <td class="parameter_description"><p>a filename for the SVG output (must be writable), <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> may be
143145 used to specify no output. This will generate a SVG surface that
144146 may be queried and used as a source, without generating a
145147 temporary file.</p></td>
192194 <tbody>
193195 <tr>
194196 <td class="parameter_name"><p>write_func</p></td>
195 <td class="parameter_description"><p>a <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> to accept the output data, may be <code class="literal">NULL</code>
197 <td class="parameter_description"><p>a <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> to accept the output data, may be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
196198 to indicate a no-op <em class="parameter"><code>write_func</code></em>
197199 . With a no-op <em class="parameter"><code>write_func</code></em>
198200 ,
306308 cairo_svg_version_to_string (<em class="parameter"><code><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t" title="enum cairo_svg_version_t"><span class="type">cairo_svg_version_t</span></a> version</code></em>);</pre>
307309 <p>Get the string representation of the given <em class="parameter"><code>version</code></em>
308310 id. This function
309 will return <code class="literal">NULL</code> if <em class="parameter"><code>version</code></em>
311 will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>version</code></em>
310312 isn't valid. See <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions" title="cairo_svg_get_versions ()"><code class="function">cairo_svg_get_versions()</code></a>
311313 for a way to get the list of valid version ids.</p>
312314 <div class="refsect3">
344346 <hr>
345347 <div class="refsect2">
346348 <a name="cairo-svg-version-t"></a><h3>enum cairo_svg_version_t</h3>
347 <p><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t" title="enum cairo_svg_version_t"><span class="type">cairo_svg_version_t</span></a> is used to describe the version number of the SVG
348 specification that a generated SVG file will conform to.</p>
349 <p><em class="parameter"><code>CAIRO_SVG_UNIT_USER</code></em>
350 : User unit, a value in the current coordinate system.
351 If used in the root element for the initial coordinate systems it
352 corresponds to pixels. (Since 1.16)
353 <em class="parameter"><code>CAIRO_SVG_UNIT_EM</code></em>
354 : The size of the element's font. (Since 1.16)
355 <em class="parameter"><code>CAIRO_SVG_UNIT_EX</code></em>
356 : The x-height of the element’s font. (Since 1.16)
357 <em class="parameter"><code>CAIRO_SVG_UNIT_PX</code></em>
358 : Pixels (1px = 1/96th of 1in). (Since 1.16)
359 <em class="parameter"><code>CAIRO_SVG_UNIT_IN</code></em>
360 : Inches (1in = 2.54cm = 96px). (Since 1.16)
361 <em class="parameter"><code>CAIRO_SVG_UNIT_CM</code></em>
362 : Centimeters (1cm = 96px/2.54). (Since 1.16)
363 <em class="parameter"><code>CAIRO_SVG_UNIT_MM</code></em>
364 : Millimeters (1mm = 1/10th of 1cm). (Since 1.16)
365 <em class="parameter"><code>CAIRO_SVG_UNIT_PT</code></em>
366 : Points (1pt = 1/72th of 1in). (Since 1.16)
367 <em class="parameter"><code>CAIRO_SVG_UNIT_PC</code></em>
368 : Picas (1pc = 1/6th of 1in). (Since 1.16)
369 <em class="parameter"><code>CAIRO_SVG_UNIT_PERCENT</code></em>
370 : Percent, a value that is some fraction of another
371 reference value. (Since 1.16)</p>
372 <p><span class="type">cairo_svg_unit_t</span> is used to describe the units valid for coordinates and
373 lengths in the SVG specification.</p>
374 <p>See also:
375 https://www.w3.org/TR/SVG/coords.html<span class="type">Units</span>
376 https://www.w3.org/TR/SVG/types.html<span class="type">DataTypeLength</span>
377 https://www.w3.org/TR/css-values-3/<span class="type">lengths</span></p>
349378 <div class="refsect3">
350379 <a name="cairo-svg-version-t.members"></a><h4>Members</h4>
351380 <div class="informaltable"><table class="informaltable" width="100%" border="0">
357386 <tbody>
358387 <tr>
359388 <td class="enum_member_name"><p><a name="CAIRO-SVG-VERSION-1-1:CAPS"></a>CAIRO_SVG_VERSION_1_1</p></td>
360 <td class="enum_member_description">
361 <p>The version 1.1 of the SVG specification. (Since 1.2)</p>
362 </td>
389 <td class="enum_member_description"> </td>
363390 <td class="enum_member_annotations"> </td>
364391 </tr>
365392 <tr>
366393 <td class="enum_member_name"><p><a name="CAIRO-SVG-VERSION-1-2:CAPS"></a>CAIRO_SVG_VERSION_1_2</p></td>
367 <td class="enum_member_description">
368 <p>The version 1.2 of the SVG specification. (Since 1.2)</p>
369 </td>
394 <td class="enum_member_description"> </td>
370395 <td class="enum_member_annotations"> </td>
371396 </tr>
372397 </tbody>
373398 </table></div>
374399 </div>
375 <p class="since">Since: 1.2</p>
400 <p class="since">Since: 1.16</p>
376401 </div>
377402 </div>
378403 <div class="refsect1">
343343 argument is preset to the number of glyph entries available
344344 in the <em class="parameter"><code>glyphs</code></em>
345345 buffer. If the <em class="parameter"><code>glyphs</code></em>
346 buffer is <code class="literal">NULL</code>, the value of
346 buffer is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the value of
347347 <em class="parameter"><code>num_glyphs</code></em>
348348 will be zero. If the provided glyph array is too short for
349349 the conversion (or for convenience), a new glyph array may be allocated
359359 The callback should populate the glyph indices and positions (in font space)
360360 assuming that the text is to be shown at the origin.</p>
361361 <p>If <em class="parameter"><code>clusters</code></em>
362 is not <code class="literal">NULL</code>, <em class="parameter"><code>num_clusters</code></em>
362 is not <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>num_clusters</code></em>
363363 and <em class="parameter"><code>cluster_flags</code></em>
364364 are also
365 non-<code class="literal">NULL</code>, and cluster mapping should be computed. The semantics of how
365 non-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and cluster mapping should be computed. The semantics of how
366366 cluster array allocation works is similar to the glyph array. That is,
367367 if <em class="parameter"><code>clusters</code></em>
368 initially points to a non-<code class="literal">NULL</code> value, that array may be used
368 initially points to a non-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value, that array may be used
369369 as a cluster buffer, and <em class="parameter"><code>num_clusters</code></em>
370370 points to the number of cluster
371371 entries available there. If the provided cluster array is too short for
428428 </tr>
429429 <tr>
430430 <td class="parameter_name"><p>clusters</p></td>
431 <td class="parameter_description"><p>pointer to array of cluster mapping information to fill, or <code class="literal">NULL</code></p></td>
431 <td class="parameter_description"><p>pointer to array of cluster mapping information to fill, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
432432 <td class="parameter_annotations"> </td>
433433 </tr>
434434 <tr>
567567 </tr>
568568 <tr>
569569 <td class="parameter_name"><p>init_func</p></td>
570 <td class="parameter_description"><p>The init callback, or <code class="literal">NULL</code></p></td>
570 <td class="parameter_description"><p>The init callback, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
571571 <td class="parameter_annotations"> </td>
572572 </tr>
573573 </tbody>
599599 <div class="refsect3">
600600 <a name="cairo-user-font-face-get-init-func.returns"></a><h4>Returns</h4>
601601 <p> The init callback of <em class="parameter"><code>font_face</code></em>
602 or <code class="literal">NULL</code> if none set or an error has occurred.</p>
602 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error has occurred.</p>
603603 </div>
604604 <p class="since">Since: 1.8</p>
605605 </div>
617617 error will occur. A user font-face is immutable as soon as a scaled-font
618618 is created from it.</p>
619619 <p>The render_glyph callback is the only mandatory callback of a user-font.
620 If the callback is <code class="literal">NULL</code> and a glyph is tried to be rendered using
620 If the callback is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and a glyph is tried to be rendered using
621621 <em class="parameter"><code>font_face</code></em>
622622 , a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> will occur.</p>
623623 <div class="refsect3">
636636 </tr>
637637 <tr>
638638 <td class="parameter_name"><p>render_glyph_func</p></td>
639 <td class="parameter_description"><p>The render_glyph callback, or <code class="literal">NULL</code></p></td>
639 <td class="parameter_description"><p>The render_glyph callback, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
640640 <td class="parameter_annotations"> </td>
641641 </tr>
642642 </tbody>
669669 <div class="refsect3">
670670 <a name="cairo-user-font-face-get-render-glyph-func.returns"></a><h4>Returns</h4>
671671 <p> The render_glyph callback of <em class="parameter"><code>font_face</code></em>
672 or <code class="literal">NULL</code> if none set or an error has occurred.</p>
672 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error has occurred.</p>
673673 </div>
674674 <p class="since">Since: 1.8</p>
675675 </div>
702702 </tr>
703703 <tr>
704704 <td class="parameter_name"><p>unicode_to_glyph_func</p></td>
705 <td class="parameter_description"><p>The unicode_to_glyph callback, or <code class="literal">NULL</code></p></td>
705 <td class="parameter_description"><p>The unicode_to_glyph callback, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
706706 <td class="parameter_annotations"> </td>
707707 </tr>
708708 </tbody>
735735 <div class="refsect3">
736736 <a name="cairo-user-font-face-get-unicode-to-glyph-func.returns"></a><h4>Returns</h4>
737737 <p> The unicode_to_glyph callback of <em class="parameter"><code>font_face</code></em>
738 or <code class="literal">NULL</code> if none set or an error occurred.</p>
738 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error occurred.</p>
739739 </div>
740740 <p class="since">Since: 1.8</p>
741741 </div>
768768 </tr>
769769 <tr>
770770 <td class="parameter_name"><p>text_to_glyphs_func</p></td>
771 <td class="parameter_description"><p>The text_to_glyphs callback, or <code class="literal">NULL</code></p></td>
771 <td class="parameter_description"><p>The text_to_glyphs callback, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
772772 <td class="parameter_annotations"> </td>
773773 </tr>
774774 </tbody>
801801 <div class="refsect3">
802802 <a name="cairo-user-font-face-get-text-to-glyphs-func.returns"></a><h4>Returns</h4>
803803 <p> The text_to_glyphs callback of <em class="parameter"><code>font_face</code></em>
804 or <code class="literal">NULL</code> if none set or an error occurred.</p>
804 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error occurred.</p>
805805 </div>
806806 <p class="since">Since: 1.8</p>
807807 </div>
220220 <td class="parameter_name"><p>logfont</p></td>
221221 <td class="parameter_description"><p>A <span class="type">LOGFONTW</span> structure specifying the font to use.
222222 If <em class="parameter"><code>font</code></em>
223 is <code class="literal">NULL</code> then the lfHeight, lfWidth, lfOrientation and lfEscapement
223 is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then the lfHeight, lfWidth, lfOrientation and lfEscapement
224224 fields of this structure are ignored. Otherwise lfWidth, lfOrientation and
225225 lfEscapement must be zero.</p></td>
226226 <td class="parameter_annotations"> </td>
277277 <a name="cairo-win32-surface-get-dc"></a><h3>cairo_win32_surface_get_dc ()</h3>
278278 <pre class="programlisting"><span class="returnvalue">HDC</span>
279279 cairo_win32_surface_get_dc (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
280 <p>Returns the HDC associated with this surface, or <code class="literal">NULL</code> if none.
281 Also returns <code class="literal">NULL</code> if the surface is not a win32 surface.</p>
280 <p>Returns the HDC associated with this surface, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none.
281 Also returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface is not a win32 surface.</p>
282282 <p>A call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> is required before using the HDC to
283283 ensure that all pending drawing operations are finished and to
284284 restore any temporary modification cairo has made to its state. A
301301 </div>
302302 <div class="refsect3">
303303 <a name="cairo-win32-surface-get-dc.returns"></a><h4>Returns</h4>
304 <p> HDC or <code class="literal">NULL</code> if no HDC available.</p>
304 <p> HDC or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no HDC available.</p>
305305 </div>
306306 <p class="since">Since: 1.2</p>
307307 </div>
312312 cairo_win32_surface_get_image (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
313313 <p>Returns 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> image surface that refers to the same bits
314314 as the DIB of the Win32 surface. If the passed-in win32 surface
315 is not a DIB surface, <code class="literal">NULL</code> is returned.</p>
315 is not a DIB surface, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</p>
316316 <div class="refsect3">
317317 <a name="cairo-win32-surface-get-image.parameters"></a><h4>Parameters</h4>
318318 <div class="informaltable"><table class="informaltable" width="100%" border="0">
331331 <div class="refsect3">
332332 <a name="cairo-win32-surface-get-image.returns"></a><h4>Returns</h4>
333333 <p> a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> (owned by the win32 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>),
334 or <code class="literal">NULL</code> if the win32 surface is not a DIB.</p>
334 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the win32 surface is not a DIB.</p>
335335 </div>
336336 <p class="since">Since: 1.4</p>
337337 </div>
501501 </div>
502502 <div class="refsect3">
503503 <a name="cairo-xlib-surface-get-visual.returns"></a><h4>Returns</h4>
504 <p> the Visual or <code class="literal">NULL</code> if there is no appropriate Visual for
504 <p> the Visual or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no appropriate Visual for
505505 <em class="parameter"><code>surface</code></em>
506506 .</p>
507507 </div>
179179 <a name="cairo-xlib-surface-get-xrender-format.returns"></a><h4>Returns</h4>
180180 <p> the XRenderPictFormat* associated with <em class="parameter"><code>surface</code></em>
181181 ,
182 or <code class="literal">NULL</code> if the surface is not an xlib surface
182 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface is not an xlib surface
183183 or if the X Render extension is not available.</p>
184184 </div>
185185 <p class="since">Since: 1.6</p>
474474 <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>
475475 <p>Attach user data to <em class="parameter"><code>device</code></em>
476476 . To remove user data from a surface,
477 call this function with the key that was used to set it and <code class="literal">NULL</code>
477 call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
478478 for <em class="parameter"><code>data</code></em>
479479 .</p>
480480 <div class="refsect3">
527527 <p>Return user data previously attached to <em class="parameter"><code>device</code></em>
528528 using the
529529 specified key. If no user data has been attached with the given
530 key this function returns <code class="literal">NULL</code>.</p>
530 key this function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
531531 <div class="refsect3">
532532 <a name="cairo-device-get-user-data.parameters"></a><h4>Parameters</h4>
533533 <div class="informaltable"><table class="informaltable" width="100%" border="0">
553553 </div>
554554 <div class="refsect3">
555555 <a name="cairo-device-get-user-data.returns"></a><h4>Returns</h4>
556 <p> the user data previously attached or <code class="literal">NULL</code>.</p>
556 <p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
557557 </div>
558558 <p class="since">Since: 1.10</p>
559559 </div>
149149 </colgroup>
150150 <tbody><tr>
151151 <td class="parameter_name"><p>font_face</p></td>
152 <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, (may be <code class="literal">NULL</code> in which case this
152 <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, (may be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in which case this
153153 function does nothing).</p></td>
154154 <td class="parameter_annotations"> </td>
155155 </tr></tbody>
286286 <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>
287287 <p>Attach user data to <em class="parameter"><code>font_face</code></em>
288288 . To remove user data from a font face,
289 call this function with the key that was used to set it and <code class="literal">NULL</code>
289 call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
290290 for <em class="parameter"><code>data</code></em>
291291 .</p>
292292 <div class="refsect3">
339339 <p>Return user data previously attached to <em class="parameter"><code>font_face</code></em>
340340 using the specified
341341 key. If no user data has been attached with the given key this
342 function returns <code class="literal">NULL</code>.</p>
342 function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
343343 <div class="refsect3">
344344 <a name="cairo-font-face-get-user-data.parameters"></a><h4>Parameters</h4>
345345 <div class="informaltable"><table class="informaltable" width="100%" border="0">
365365 </div>
366366 <div class="refsect3">
367367 <a name="cairo-font-face-get-user-data.returns"></a><h4>Returns</h4>
368 <p> the user data previously attached or <code class="literal">NULL</code>.</p>
368 <p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
369369 </div>
370370 <p class="since">Since: 1.0</p>
371371 </div>
397397 </div>
398398 <div class="refsect3">
399399 <a name="cairo-font-options-equal.returns"></a><h4>Returns</h4>
400 <p> <code class="literal">TRUE</code> if all fields of the two font options objects match.
401 Note that this function will return <code class="literal">FALSE</code> if either object is in
400 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if all fields of the two font options objects match.
401 Note that this function will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if either object is in
402402 error.</p>
403403 </div>
404404 <p class="since">Since: 1.0</p>
547547 </tr>
548548 <tr>
549549 <td class="parameter_name"><p>count</p></td>
550 <td class="parameter_description"><p>return value for the number of color stops, or <code class="literal">NULL</code></p></td>
550 <td class="parameter_description"><p>return value for the number of color stops, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
551551 <td class="parameter_annotations"> </td>
552552 </tr>
553553 </tbody>
600600 </tr>
601601 <tr>
602602 <td class="parameter_name"><p>offset</p></td>
603 <td class="parameter_description"><p>return value for the offset of the stop, or <code class="literal">NULL</code></p></td>
603 <td class="parameter_description"><p>return value for the offset of the stop, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
604604 <td class="parameter_annotations"> </td>
605605 </tr>
606606 <tr>
607607 <td class="parameter_name"><p>red</p></td>
608 <td class="parameter_description"><p>return value for red component of color, or <code class="literal">NULL</code></p></td>
608 <td class="parameter_description"><p>return value for red component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
609609 <td class="parameter_annotations"> </td>
610610 </tr>
611611 <tr>
612612 <td class="parameter_name"><p>green</p></td>
613 <td class="parameter_description"><p>return value for green component of color, or <code class="literal">NULL</code></p></td>
613 <td class="parameter_description"><p>return value for green component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
614614 <td class="parameter_annotations"> </td>
615615 </tr>
616616 <tr>
617617 <td class="parameter_name"><p>blue</p></td>
618 <td class="parameter_description"><p>return value for blue component of color, or <code class="literal">NULL</code></p></td>
618 <td class="parameter_description"><p>return value for blue component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
619619 <td class="parameter_annotations"> </td>
620620 </tr>
621621 <tr>
622622 <td class="parameter_name"><p>alpha</p></td>
623 <td class="parameter_description"><p>return value for alpha component of color, or <code class="literal">NULL</code></p></td>
623 <td class="parameter_description"><p>return value for alpha component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
624624 <td class="parameter_annotations"> </td>
625625 </tr>
626626 </tbody>
768768 </tr>
769769 <tr>
770770 <td class="parameter_name"><p>red</p></td>
771 <td class="parameter_description"><p>return value for red component of color, or <code class="literal">NULL</code></p></td>
771 <td class="parameter_description"><p>return value for red component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
772772 <td class="parameter_annotations"> </td>
773773 </tr>
774774 <tr>
775775 <td class="parameter_name"><p>green</p></td>
776 <td class="parameter_description"><p>return value for green component of color, or <code class="literal">NULL</code></p></td>
776 <td class="parameter_description"><p>return value for green component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
777777 <td class="parameter_annotations"> </td>
778778 </tr>
779779 <tr>
780780 <td class="parameter_name"><p>blue</p></td>
781 <td class="parameter_description"><p>return value for blue component of color, or <code class="literal">NULL</code></p></td>
781 <td class="parameter_description"><p>return value for blue component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
782782 <td class="parameter_annotations"> </td>
783783 </tr>
784784 <tr>
785785 <td class="parameter_name"><p>alpha</p></td>
786 <td class="parameter_description"><p>return value for alpha component of color, or <code class="literal">NULL</code></p></td>
786 <td class="parameter_description"><p>return value for alpha component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
787787 <td class="parameter_annotations"> </td>
788788 </tr>
789789 </tbody>
856856 </tr>
857857 <tr>
858858 <td class="parameter_name"><p>surface</p></td>
859 <td class="parameter_description"><p>return value for surface of pattern, or <code class="literal">NULL</code></p></td>
859 <td class="parameter_description"><p>return value for surface of pattern, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
860860 <td class="parameter_annotations"> </td>
861861 </tr>
862862 </tbody>
956956 </tr>
957957 <tr>
958958 <td class="parameter_name"><p>x0</p></td>
959 <td class="parameter_description"><p>return value for the x coordinate of the first point, or <code class="literal">NULL</code></p></td>
959 <td class="parameter_description"><p>return value for the x coordinate of the first point, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
960960 <td class="parameter_annotations"> </td>
961961 </tr>
962962 <tr>
963963 <td class="parameter_name"><p>y0</p></td>
964 <td class="parameter_description"><p>return value for the y coordinate of the first point, or <code class="literal">NULL</code></p></td>
964 <td class="parameter_description"><p>return value for the y coordinate of the first point, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
965965 <td class="parameter_annotations"> </td>
966966 </tr>
967967 <tr>
968968 <td class="parameter_name"><p>x1</p></td>
969 <td class="parameter_description"><p>return value for the x coordinate of the second point, or <code class="literal">NULL</code></p></td>
969 <td class="parameter_description"><p>return value for the x coordinate of the second point, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
970970 <td class="parameter_annotations"> </td>
971971 </tr>
972972 <tr>
973973 <td class="parameter_name"><p>y1</p></td>
974 <td class="parameter_description"><p>return value for the y coordinate of the second point, or <code class="literal">NULL</code></p></td>
974 <td class="parameter_description"><p>return value for the y coordinate of the second point, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
975975 <td class="parameter_annotations"> </td>
976976 </tr>
977977 </tbody>
10871087 </tr>
10881088 <tr>
10891089 <td class="parameter_name"><p>x0</p></td>
1090 <td class="parameter_description"><p>return value for the x coordinate of the center of the first circle, or <code class="literal">NULL</code></p></td>
1090 <td class="parameter_description"><p>return value for the x coordinate of the center of the first circle, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
10911091 <td class="parameter_annotations"> </td>
10921092 </tr>
10931093 <tr>
10941094 <td class="parameter_name"><p>y0</p></td>
1095 <td class="parameter_description"><p>return value for the y coordinate of the center of the first circle, or <code class="literal">NULL</code></p></td>
1095 <td class="parameter_description"><p>return value for the y coordinate of the center of the first circle, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
10961096 <td class="parameter_annotations"> </td>
10971097 </tr>
10981098 <tr>
10991099 <td class="parameter_name"><p>r0</p></td>
1100 <td class="parameter_description"><p>return value for the radius of the first circle, or <code class="literal">NULL</code></p></td>
1100 <td class="parameter_description"><p>return value for the radius of the first circle, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
11011101 <td class="parameter_annotations"> </td>
11021102 </tr>
11031103 <tr>
11041104 <td class="parameter_name"><p>x1</p></td>
1105 <td class="parameter_description"><p>return value for the x coordinate of the center of the second circle, or <code class="literal">NULL</code></p></td>
1105 <td class="parameter_description"><p>return value for the x coordinate of the center of the second circle, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
11061106 <td class="parameter_annotations"> </td>
11071107 </tr>
11081108 <tr>
11091109 <td class="parameter_name"><p>y1</p></td>
1110 <td class="parameter_description"><p>return value for the y coordinate of the center of the second circle, or <code class="literal">NULL</code></p></td>
1110 <td class="parameter_description"><p>return value for the y coordinate of the center of the second circle, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
11111111 <td class="parameter_annotations"> </td>
11121112 </tr>
11131113 <tr>
11141114 <td class="parameter_name"><p>r1</p></td>
1115 <td class="parameter_description"><p>return value for the radius of the second circle, or <code class="literal">NULL</code></p></td>
1115 <td class="parameter_description"><p>return value for the radius of the second circle, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
11161116 <td class="parameter_annotations"> </td>
11171117 </tr>
11181118 </tbody>
17551755 </tr>
17561756 <tr>
17571757 <td class="parameter_name"><p>count</p></td>
1758 <td class="parameter_description"><p>return value for the number patches, or <code class="literal">NULL</code></p></td>
1758 <td class="parameter_description"><p>return value for the number patches, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
17591759 <td class="parameter_annotations"> </td>
17601760 </tr>
17611761 </tbody>
18621862 </tr>
18631863 <tr>
18641864 <td class="parameter_name"><p>x</p></td>
1865 <td class="parameter_description"><p>return value for the x coordinate of the control point, or <code class="literal">NULL</code></p></td>
1865 <td class="parameter_description"><p>return value for the x coordinate of the control point, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
18661866 <td class="parameter_annotations"> </td>
18671867 </tr>
18681868 <tr>
18691869 <td class="parameter_name"><p>y</p></td>
1870 <td class="parameter_description"><p>return value for the y coordinate of the control point, or <code class="literal">NULL</code></p></td>
1870 <td class="parameter_description"><p>return value for the y coordinate of the control point, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
18711871 <td class="parameter_annotations"> </td>
18721872 </tr>
18731873 </tbody>
19331933 </tr>
19341934 <tr>
19351935 <td class="parameter_name"><p>red</p></td>
1936 <td class="parameter_description"><p>return value for red component of color, or <code class="literal">NULL</code></p></td>
1936 <td class="parameter_description"><p>return value for red component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
19371937 <td class="parameter_annotations"> </td>
19381938 </tr>
19391939 <tr>
19401940 <td class="parameter_name"><p>green</p></td>
1941 <td class="parameter_description"><p>return value for green component of color, or <code class="literal">NULL</code></p></td>
1941 <td class="parameter_description"><p>return value for green component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
19421942 <td class="parameter_annotations"> </td>
19431943 </tr>
19441944 <tr>
19451945 <td class="parameter_name"><p>blue</p></td>
1946 <td class="parameter_description"><p>return value for blue component of color, or <code class="literal">NULL</code></p></td>
1946 <td class="parameter_description"><p>return value for blue component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
19471947 <td class="parameter_annotations"> </td>
19481948 </tr>
19491949 <tr>
19501950 <td class="parameter_name"><p>alpha</p></td>
1951 <td class="parameter_description"><p>return value for alpha component of color, or <code class="literal">NULL</code></p></td>
1951 <td class="parameter_description"><p>return value for alpha component of color, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
19521952 <td class="parameter_annotations"> </td>
19531953 </tr>
19541954 </tbody>
23442344 <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>
23452345 <p>Attach user data to <em class="parameter"><code>pattern</code></em>
23462346 . To remove user data from a surface,
2347 call this function with the key that was used to set it and <code class="literal">NULL</code>
2347 call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
23482348 for <em class="parameter"><code>data</code></em>
23492349 .</p>
23502350 <div class="refsect3">
23972397 <p>Return user data previously attached to <em class="parameter"><code>pattern</code></em>
23982398 using the
23992399 specified key. If no user data has been attached with the given
2400 key this function returns <code class="literal">NULL</code>.</p>
2400 key this function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
24012401 <div class="refsect3">
24022402 <a name="cairo-pattern-get-user-data.parameters"></a><h4>Parameters</h4>
24032403 <div class="informaltable"><table class="informaltable" width="100%" border="0">
24232423 </div>
24242424 <div class="refsect3">
24252425 <a name="cairo-pattern-get-user-data.returns"></a><h4>Returns</h4>
2426 <p> the user data previously attached or <code class="literal">NULL</code>.</p>
2426 <p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
24272427 </div>
24282428 <p class="since">Since: 1.4</p>
24292429 </div>
283283 </colgroup>
284284 <tbody><tr>
285285 <td class="parameter_name"><p>scaled_font</p></td>
286 <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>, (may be <code class="literal">NULL</code> in which case
286 <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>, (may be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in which case
287287 this function does nothing)</p></td>
288288 <td class="parameter_annotations"> </td>
289289 </tr></tbody>
503503 mapping, that can be used to render later using <em class="parameter"><code>scaled_font</code></em>
504504 .</p>
505505 <p>If <em class="parameter"><code>glyphs</code></em>
506 initially points to a non-<code class="literal">NULL</code> value, that array is used
506 initially points to a non-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value, that array is used
507507 as a glyph buffer, and <em class="parameter"><code>num_glyphs</code></em>
508508 should point to the number of glyph
509509 entries available there. If the provided glyph array is too short for
517517 array using <a class="link" href="cairo-text.html#cairo-glyph-free" title="cairo_glyph_free ()"><code class="function">cairo_glyph_free()</code></a>. This may happen even if the provided
518518 array was large enough.</p>
519519 <p>If <em class="parameter"><code>clusters</code></em>
520 is not <code class="literal">NULL</code>, <em class="parameter"><code>num_clusters</code></em>
520 is not <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>num_clusters</code></em>
521521 and <em class="parameter"><code>cluster_flags</code></em>
522 should not be <code class="literal">NULL</code>,
522 should not be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>,
523523 and cluster mapping will be computed.
524524 The semantics of how cluster array allocation works is similar to the glyph
525525 array. That is,
526526 if <em class="parameter"><code>clusters</code></em>
527 initially points to a non-<code class="literal">NULL</code> value, that array is used
527 initially points to a non-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value, that array is used
528528 as a cluster buffer, and <em class="parameter"><code>num_clusters</code></em>
529529 should point to the number of cluster
530530 entries available there. If the provided cluster array is too short for
539539 array was large enough.</p>
540540 <p>In the simplest case, <em class="parameter"><code>glyphs</code></em>
541541 and <em class="parameter"><code>clusters</code></em>
542 can point to <code class="literal">NULL</code> initially
542 can point to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> initially
543543 and a suitable array will be allocated. In code:</p>
544544 <div class="informalexample"><pre class="programlisting">
545545 cairo_status_t status;
672672 </tr>
673673 <tr>
674674 <td class="parameter_name"><p>clusters</p></td>
675 <td class="parameter_description"><p>pointer to array of cluster mapping information to fill, or <code class="literal">NULL</code></p></td>
675 <td class="parameter_description"><p>pointer to array of cluster mapping information to fill, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
676676 <td class="parameter_annotations"> </td>
677677 </tr>
678678 <tr>
679679 <td class="parameter_name"><p>num_clusters</p></td>
680 <td class="parameter_description"><p>pointer to number of clusters, or <code class="literal">NULL</code></p></td>
680 <td class="parameter_description"><p>pointer to number of clusters, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
681681 <td class="parameter_annotations"> </td>
682682 </tr>
683683 <tr>
684684 <td class="parameter_name"><p>cluster_flags</p></td>
685685 <td class="parameter_description"><p>pointer to location to store cluster flags corresponding to the
686686 output <em class="parameter"><code>clusters</code></em>
687 , or <code class="literal">NULL</code></p></td>
687 , or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
688688 <td class="parameter_annotations"> </td>
689689 </tr>
690690 </tbody>
942942 <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>
943943 <p>Attach user data to <em class="parameter"><code>scaled_font</code></em>
944944 . To remove user data from a surface,
945 call this function with the key that was used to set it and <code class="literal">NULL</code>
945 call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
946946 for <em class="parameter"><code>data</code></em>
947947 .</p>
948948 <div class="refsect3">
995995 <p>Return user data previously attached to <em class="parameter"><code>scaled_font</code></em>
996996 using the
997997 specified key. If no user data has been attached with the given
998 key this function returns <code class="literal">NULL</code>.</p>
998 key this function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
999999 <div class="refsect3">
10001000 <a name="cairo-scaled-font-get-user-data.parameters"></a><h4>Parameters</h4>
10011001 <div class="informaltable"><table class="informaltable" width="100%" border="0">
10211021 </div>
10221022 <div class="refsect3">
10231023 <a name="cairo-scaled-font-get-user-data.returns"></a><h4>Returns</h4>
1024 <p> the user data previously attached or <code class="literal">NULL</code>.</p>
1024 <p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
10251025 </div>
10261026 <p class="since">Since: 1.4</p>
10271027 </div>
299299 <tr>
300300 <td class="define_keyword">#define</td>
301301 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS" title="CAIRO_HAS_MIME_SURFACE">CAIRO_HAS_MIME_SURFACE</a></td>
302 </tr>
303 <tr>
304 <td class="define_keyword">#define</td>
305 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX">CAIRO_MIME_TYPE_CCITT_FAX</a></td>
306 </tr>
307 <tr>
308 <td class="define_keyword">#define</td>
309 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</a></td>
310 </tr>
311 <tr>
312 <td class="define_keyword">#define</td>
313 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" title="CAIRO_MIME_TYPE_EPS">CAIRO_MIME_TYPE_EPS</a></td>
314 </tr>
315 <tr>
316 <td class="define_keyword">#define</td>
317 <td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS">CAIRO_MIME_TYPE_EPS_PARAMS</a></td>
302318 </tr>
303319 <tr>
304320 <td class="define_keyword">#define</td>
763779 <div class="refsect3">
764780 <a name="cairo-surface-get-device.returns"></a><h4>Returns</h4>
765781 <p> The device for <em class="parameter"><code>surface</code></em>
766 or <code class="literal">NULL</code> if the surface does
782 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface does
767783 not have an associated device.</p>
768784 </div>
769785 <p class="since">Since: 1.10</p>
12461262 <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>
12471263 <p>Attach user data to <em class="parameter"><code>surface</code></em>
12481264 . To remove user data from a surface,
1249 call this function with the key that was used to set it and <code class="literal">NULL</code>
1265 call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
12501266 for <em class="parameter"><code>data</code></em>
12511267 .</p>
12521268 <div class="refsect3">
12991315 <p>Return user data previously attached to <em class="parameter"><code>surface</code></em>
13001316 using the specified
13011317 key. If no user data has been attached with the given key this
1302 function returns <code class="literal">NULL</code>.</p>
1318 function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
13031319 <div class="refsect3">
13041320 <a name="cairo-surface-get-user-data.parameters"></a><h4>Parameters</h4>
13051321 <div class="informaltable"><table class="informaltable" width="100%" border="0">
13251341 </div>
13261342 <div class="refsect3">
13271343 <a name="cairo-surface-get-user-data.returns"></a><h4>Returns</h4>
1328 <p> the user data previously attached or <code class="literal">NULL</code>.</p>
1344 <p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
13291345 </div>
13301346 <p class="since">Since: 1.0</p>
13311347 </div>
13921408 sophisticated <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> operations. That is,
13931409 whether it actually uses the provided text and cluster data
13941410 to a <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> call.</p>
1395 <p>Note: Even if this function returns <code class="literal">FALSE</code>, a
1411 <p>Note: Even if this function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, a
13961412 <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> operation targeted at <em class="parameter"><code>surface</code></em>
13971413 will
13981414 still succeed. It just will
14161432 </div>
14171433 <div class="refsect3">
14181434 <a name="cairo-surface-has-show-text-glyphs.returns"></a><h4>Returns</h4>
1419 <p> <code class="literal">TRUE</code> if <em class="parameter"><code>surface</code></em>
1435 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em>
14201436 supports
1421 <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a>, <code class="literal">FALSE</code> otherwise</p>
1437 <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a>, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
14221438 </div>
14231439 <p class="since">Since: 1.8</p>
14241440 </div>
14361452 to <em class="parameter"><code>surface</code></em>
14371453 . To remove
14381454 the data from a surface, call this function with same mime type
1439 and <code class="literal">NULL</code> for <em class="parameter"><code>data</code></em>
1455 and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for <em class="parameter"><code>data</code></em>
14401456 .</p>
14411457 <p>The attached image (or filename) data can later be used by backends
14421458 which support it (currently: PDF, PS, SVG and Win32 Printing
14471463 <p>The recognized MIME types are the following: <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>,
14481464 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG"><code class="literal">CAIRO_MIME_TYPE_PNG</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2"><code class="literal">CAIRO_MIME_TYPE_JP2</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI"><code class="literal">CAIRO_MIME_TYPE_URI</code></a>,
14491465 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2"><code class="literal">CAIRO_MIME_TYPE_JBIG2</code></a>,
1450 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>.</p>
1466 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>,
1467 <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>.</p>
14511468 <p>See corresponding backend surface docs for details about which MIME
14521469 types it can handle. Caution: the associated MIME data will be
14531470 discarded if you draw on the surface afterwards. Use this function
15251542 using the
15261543 specified mime type. If no data has been attached with the given
15271544 mime type, <em class="parameter"><code>data</code></em>
1528 is set <code class="literal">NULL</code>.</p>
1545 is set <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
15291546 <div class="refsect3">
15301547 <a name="cairo-surface-get-mime-data.parameters"></a><h4>Parameters</h4>
15311548 <div class="informaltable"><table class="informaltable" width="100%" border="0">
15931610 </div>
15941611 <div class="refsect3">
15951612 <a name="cairo-surface-supports-mime-type.returns"></a><h4>Returns</h4>
1596 <p> <code class="literal">TRUE</code> if <em class="parameter"><code>surface</code></em>
1613 <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em>
15971614 supports
15981615 <em class="parameter"><code>mime_type</code></em>
1599 , <code class="literal">FALSE</code> otherwise</p>
1616 , <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
16001617 </div>
16011618 <p class="since">Since: 1.12</p>
16021619 </div>
16091626 <p>Returns an image surface that is the most efficient mechanism for
16101627 modifying the backing store of the target surface. The region retrieved
16111628 may be limited to the <em class="parameter"><code>extents</code></em>
1612 or <code class="literal">NULL</code> for the whole surface</p>
1629 or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for the whole surface</p>
16131630 <p>Note, the use of the original surface as a target or source whilst
16141631 it is mapped is undefined. The result of mapping the surface
16151632 multiple times is undefined. Calling <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> or
16971714 </pre>
16981715 <p>
16991716 </p>
1717 </div>
1718 <hr>
1719 <div class="refsect2">
1720 <a name="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"></a><h3>CAIRO_MIME_TYPE_CCITT_FAX</h3>
1721 <pre class="programlisting">#define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax"
1722 </pre>
1723 <p>Group 3 or Group 4 CCITT facsimile encoding (International
1724 Telecommunication Union, Recommendations T.4 and T.6.)</p>
1725 <p class="since">Since: 1.16</p>
1726 </div>
1727 <hr>
1728 <div class="refsect2">
1729 <a name="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"></a><h3>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</h3>
1730 <pre class="programlisting">#define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params"
1731 </pre>
1732 <p>Decode parameters for Group 3 or Group 4 CCITT facsimile encoding.
1733 See <a class="link" href="cairo-PDF-Surfaces.html#ccitt" title="CCITT Fax Images">CCITT Fax Images</a>.</p>
1734 <p class="since">Since: 1.16</p>
1735 </div>
1736 <hr>
1737 <div class="refsect2">
1738 <a name="CAIRO-MIME-TYPE-EPS:CAPS"></a><h3>CAIRO_MIME_TYPE_EPS</h3>
1739 <pre class="programlisting">#define CAIRO_MIME_TYPE_EPS "application/postscript"
1740 </pre>
1741 <p>Encapsulated PostScript file.
1742 <a class="ulink" href="http://wwwimages.adobe.com/content/dam/Adobe/endevnet/postscript/pdfs/5002.EPSF_Spec.pdf" target="_top">Encapsulated PostScript File Format Specification</a></p>
1743 <p class="since">Since: 1.16</p>
1744 </div>
1745 <hr>
1746 <div class="refsect2">
1747 <a name="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"></a><h3>CAIRO_MIME_TYPE_EPS_PARAMS</h3>
1748 <pre class="programlisting">#define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params"
1749 </pre>
1750 <p>Embedding parameters Encapsulated PostScript data.
1751 See <a class="link" href="cairo-PostScript-Surfaces.html#eps" title="Embedding EPS files">Embedding EPS files</a>.</p>
1752 <p class="since">Since: 1.16</p>
17001753 </div>
17011754 <hr>
17021755 <div class="refsect2">
611611 <p> a newly allocated <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> with a reference
612612 count of 1. The initial reference count should be released
613613 with <a class="link" href="cairo-cairo-t.html#cairo-destroy" title="cairo_destroy ()"><code class="function">cairo_destroy()</code></a> when you are done using the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.
614 This function never returns <code class="literal">NULL</code>. If memory cannot be
614 This function never returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot be
615615 allocated, a special <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> object will be returned on
616616 which <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a> returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. If
617617 you attempt to target a surface which does not support
14211421 cairo_get_dash (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
14221422 <em class="parameter"><code><span class="type">double</span> *dashes</code></em>,
14231423 <em class="parameter"><code><span class="type">double</span> *offset</code></em>);</pre>
1424 <p>Gets the current dash array. If not <code class="literal">NULL</code>, <em class="parameter"><code>dashes</code></em>
1424 <p>Gets the current dash array. If not <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>dashes</code></em>
14251425 should be big
14261426 enough to hold at least the number of values returned by
14271427 <a class="link" href="cairo-cairo-t.html#cairo-get-dash-count" title="cairo_get_dash_count ()"><code class="function">cairo_get_dash_count()</code></a>.</p>
14411441 </tr>
14421442 <tr>
14431443 <td class="parameter_name"><p>dashes</p></td>
1444 <td class="parameter_description"><p>return value for the dash array, or <code class="literal">NULL</code></p></td>
1444 <td class="parameter_description"><p>return value for the dash array, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
14451445 <td class="parameter_annotations"> </td>
14461446 </tr>
14471447 <tr>
14481448 <td class="parameter_name"><p>offset</p></td>
1449 <td class="parameter_description"><p>return value for the current dash offset, or <code class="literal">NULL</code></p></td>
1449 <td class="parameter_description"><p>return value for the current dash offset, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
14501450 <td class="parameter_annotations"> </td>
14511451 </tr>
14521452 </tbody>
21612161 <pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t" title="cairo_rectangle_list_t"><span class="returnvalue">cairo_rectangle_list_t</span></a> *
21622162 cairo_copy_clip_rectangle_list (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
21632163 <p>Gets the current clip region as a list of rectangles in user coordinates.
2164 Never returns <code class="literal">NULL</code>.</p>
2164 Never returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
21652165 <p>The status in the list may be <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"><code class="literal">CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</code></a> to
21662166 indicate that the clip region cannot be represented as a list of
21672167 user-space rectangles. The status may have other values to indicate
27782778 <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>
27792779 <p>Attach user data to <em class="parameter"><code>cr</code></em>
27802780 . To remove user data from a surface,
2781 call this function with the key that was used to set it and <code class="literal">NULL</code>
2781 call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
27822782 for <em class="parameter"><code>data</code></em>
27832783 .</p>
27842784 <div class="refsect3">
28312831 <p>Return user data previously attached to <em class="parameter"><code>cr</code></em>
28322832 using the specified
28332833 key. If no user data has been attached with the given key this
2834 function returns <code class="literal">NULL</code>.</p>
2834 function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
28352835 <div class="refsect3">
28362836 <a name="cairo-get-user-data.parameters"></a><h4>Parameters</h4>
28372837 <div class="informaltable"><table class="informaltable" width="100%" border="0">
28572857 </div>
28582858 <div class="refsect3">
28592859 <a name="cairo-get-user-data.returns"></a><h4>Returns</h4>
2860 <p> the user data previously attached or <code class="literal">NULL</code>.</p>
2860 <p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
28612861 </div>
28622862 <p class="since">Since: 1.4</p>
28632863 </div>
575575 </tr>
576576 <tr>
577577 <td class="parameter_name"><p>font_face</p></td>
578 <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, or <code class="literal">NULL</code> to restore to the default font</p></td>
578 <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to restore to the default font</p></td>
579579 <td class="parameter_annotations"> </td>
580580 </tr>
581581 </tbody>
609609 <p> the current font face. This object is owned by
610610 cairo. To keep a reference to it, you must call
611611 <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-reference" title="cairo_font_face_reference ()"><code class="function">cairo_font_face_reference()</code></a>.</p>
612 <p>This function never returns <code class="literal">NULL</code>. If memory cannot be allocated, a
612 <p>This function never returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot be allocated, a
613613 special "nil" <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> object will be returned on which
614614 <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-status" title="cairo_font_face_status ()"><code class="function">cairo_font_face_status()</code></a> returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using
615615 this nil object will cause its error state to propagate to other
680680 <p> the current scaled font. This object is owned by
681681 cairo. To keep a reference to it, you must call
682682 <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference" title="cairo_scaled_font_reference ()"><code class="function">cairo_scaled_font_reference()</code></a>.</p>
683 <p>This function never returns <code class="literal">NULL</code>. If memory cannot be allocated, a
683 <p>This function never returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot be allocated, a
684684 special "nil" <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> object will be returned on which
685685 <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status" title="cairo_scaled_font_status ()"><code class="function">cairo_scaled_font_status()</code></a> returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using
686686 this nil object will cause its error state to propagate to other
730730 </tr>
731731 <tr>
732732 <td class="parameter_name"><p>utf8</p></td>
733 <td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <code class="literal">NULL</code></p></td>
733 <td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
734734 <td class="parameter_annotations"> </td>
735735 </tr>
736736 </tbody>
939939 </tr>
940940 <tr>
941941 <td class="parameter_name"><p>utf8</p></td>
942 <td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <code class="literal">NULL</code></p></td>
942 <td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
943943 <td class="parameter_annotations"> </td>
944944 </tr>
945945 <tr>
11481148 needs to allocate an array of glyphs that cairo will free.
11491149 For all other uses, user can use their own allocation method
11501150 for glyphs.</p>
1151 <p>This function returns <code class="literal">NULL</code> if <em class="parameter"><code>num_glyphs</code></em>
1151 <p>This function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>num_glyphs</code></em>
11521152 is not positive,
1153 or if out of memory. That means, the <code class="literal">NULL</code> return value
1153 or if out of memory. That means, the <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> return value
11541154 signals out-of-memory only if <em class="parameter"><code>num_glyphs</code></em>
11551155 was positive.</p>
11561156 <div class="refsect3">
11961196 </colgroup>
11971197 <tbody><tr>
11981198 <td class="parameter_name"><p>glyphs</p></td>
1199 <td class="parameter_description"><p>array of glyphs to free, or <code class="literal">NULL</code></p></td>
1199 <td class="parameter_description"><p>array of glyphs to free, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
12001200 <td class="parameter_annotations"> </td>
12011201 </tr></tbody>
12021202 </table></div>
12141214 needs to allocate an array of text clusters that cairo will free.
12151215 For all other uses, user can use their own allocation method
12161216 for text clusters.</p>
1217 <p>This function returns <code class="literal">NULL</code> if <em class="parameter"><code>num_clusters</code></em>
1217 <p>This function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>num_clusters</code></em>
12181218 is not positive,
1219 or if out of memory. That means, the <code class="literal">NULL</code> return value
1219 or if out of memory. That means, the <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> return value
12201220 signals out-of-memory only if <em class="parameter"><code>num_clusters</code></em>
12211221 was positive.</p>
12221222 <div class="refsect3">
12621262 </colgroup>
12631263 <tbody><tr>
12641264 <td class="parameter_name"><p>clusters</p></td>
1265 <td class="parameter_description"><p>array of text clusters to free, or <code class="literal">NULL</code></p></td>
1265 <td class="parameter_description"><p>array of text clusters to free, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
12661266 <td class="parameter_annotations"> </td>
12671267 </tr></tbody>
12681268 </table></div>
420420 <keyword type="function" name="cairo_surface_map_to_image ()" link="cairo-cairo-surface-t.html#cairo-surface-map-to-image" since="1.12"/>
421421 <keyword type="function" name="cairo_surface_unmap_image ()" link="cairo-cairo-surface-t.html#cairo-surface-unmap-image" since="1.12"/>
422422 <keyword type="macro" name="CAIRO_HAS_MIME_SURFACE" link="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS"/>
423 <keyword type="macro" name="CAIRO_MIME_TYPE_CCITT_FAX" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" since="1.16"/>
424 <keyword type="macro" name="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" since="1.16"/>
425 <keyword type="macro" name="CAIRO_MIME_TYPE_EPS" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" since="1.16"/>
426 <keyword type="macro" name="CAIRO_MIME_TYPE_EPS_PARAMS" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" since="1.16"/>
423427 <keyword type="macro" name="CAIRO_MIME_TYPE_JBIG2" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" since="1.14"/>
424428 <keyword type="macro" name="CAIRO_MIME_TYPE_JBIG2_GLOBAL" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" since="1.14"/>
425429 <keyword type="macro" name="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" since="1.14"/>
493497 <keyword type="function" name="cairo_svg_get_versions ()" link="cairo-SVG-Surfaces.html#cairo-svg-get-versions" since="1.2"/>
494498 <keyword type="function" name="cairo_svg_version_to_string ()" link="cairo-SVG-Surfaces.html#cairo-svg-version-to-string" since="1.2"/>
495499 <keyword type="macro" name="CAIRO_HAS_SVG_SURFACE" link="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS" since="1.2"/>
496 <keyword type="enum" name="enum cairo_svg_version_t" link="cairo-SVG-Surfaces.html#cairo-svg-version-t" since="1.2"/>
500 <keyword type="enum" name="enum cairo_svg_version_t" link="cairo-SVG-Surfaces.html#cairo-svg-version-t" since="1.16"/>
497501 <keyword type="function" name="cairo_quartz_surface_create ()" link="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create" since="1.6"/>
498502 <keyword type="function" name="cairo_quartz_surface_create_for_cg_context ()" link="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context" since="1.6"/>
499503 <keyword type="function" name="cairo_quartz_surface_get_cg_context ()" link="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context" since="1.6"/>
2525 <div class="indexdiv">
2626 <h3>D</h3>
2727 <dl>
28 <dt id="ientry-idp46937709963984">cairo_device_acquire, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire ()</a>
28 <dt id="ientry-idp46842965805200">cairo_device_acquire, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire ()</a>
2929 </dt>
30 <dt id="ientry-idp46937709770720">cairo_device_destroy, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-destroy">cairo_device_destroy ()</a>
30 <dt id="ientry-idp46842966307344">cairo_device_destroy, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-destroy">cairo_device_destroy ()</a>
3131 </dt>
32 <dt id="ientry-idp46937709810208">cairo_device_finish, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-finish">cairo_device_finish ()</a>
32 <dt id="ientry-idp46842966346832">cairo_device_finish, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-finish">cairo_device_finish ()</a>
3333 </dt>
34 <dt id="ientry-idp46937709833856">cairo_device_flush, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush ()</a>
34 <dt id="ientry-idp46842966370480">cairo_device_flush, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush ()</a>
3535 </dt>
36 <dt id="ientry-idp46937709871632">cairo_device_get_reference_count, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-reference-count">cairo_device_get_reference_count ()</a>
36 <dt id="ientry-idp46842966408256">cairo_device_get_reference_count, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-reference-count">cairo_device_get_reference_count ()</a>
3737 </dt>
38 <dt id="ientry-idp46937709851424">cairo_device_get_type, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-type">cairo_device_get_type ()</a>
38 <dt id="ientry-idp46842966388048">cairo_device_get_type, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-type">cairo_device_get_type ()</a>
3939 </dt>
40 <dt id="ientry-idp46937709930176">cairo_device_get_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-user-data">cairo_device_get_user_data ()</a>
40 <dt id="ientry-idp46842965778672">cairo_device_get_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-user-data">cairo_device_get_user_data ()</a>
4141 </dt>
42 <dt id="ientry-idp46937709746208">cairo_device_reference, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-reference">cairo_device_reference ()</a>
42 <dt id="ientry-idp46842966282832">cairo_device_reference, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-reference">cairo_device_reference ()</a>
4343 </dt>
44 <dt id="ientry-idp46937709990656">cairo_device_release, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release ()</a>
44 <dt id="ientry-idp46842965831872">cairo_device_release, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release ()</a>
4545 </dt>
46 <dt id="ientry-idp46937709891760">cairo_device_set_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-set-user-data">cairo_device_set_user_data ()</a>
46 <dt id="ientry-idp46842966428384">cairo_device_set_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-set-user-data">cairo_device_set_user_data ()</a>
4747 </dt>
48 <dt id="ientry-idp46937709790576">cairo_device_status, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-status">cairo_device_status ()</a>
48 <dt id="ientry-idp46842966327200">cairo_device_status, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-status">cairo_device_status ()</a>
4949 </dt>
50 <dt id="ientry-idp46937710059472">cairo_device_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-t">cairo_device_t</a>
50 <dt id="ientry-idp46842965900688">cairo_device_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-t">cairo_device_t</a>
5151 </dt>
52 <dt id="ientry-idp46937710074064">cairo_device_type_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-type-t">enum cairo_device_type_t</a>
52 <dt id="ientry-idp46842965915280">cairo_device_type_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-type-t">enum cairo_device_type_t</a>
5353 </dt>
5454 </dl>
5555 </div>
5656 <div class="indexdiv">
5757 <h3>H</h3>
5858 <dl>
59 <dt id="ientry-idp46937708779680">CAIRO_HAS_FC_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS">CAIRO_HAS_FC_FONT</a>
59 <dt id="ientry-idp46842964754400">CAIRO_HAS_FC_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS">CAIRO_HAS_FC_FONT</a>
6060 </dt>
61 <dt id="ientry-idp46937695592704">CAIRO_HAS_RECORDING_SURFACE, <a class="indexterm" href="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS">CAIRO_HAS_RECORDING_SURFACE</a>
61 <dt id="ientry-idp46842952715024">CAIRO_HAS_RECORDING_SURFACE, <a class="indexterm" href="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS">CAIRO_HAS_RECORDING_SURFACE</a>
6262 </dt>
6363 </dl>
6464 </div>
6565 <div class="indexdiv">
6666 <h3>I</h3>
67 <dl><dt id="ientry-idp46937702665680">cairo_in_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-clip">cairo_in_clip ()</a>
67 <dl><dt id="ientry-idp46842958307248">cairo_in_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-clip">cairo_in_clip ()</a>
6868 </dt></dl>
6969 </div>
7070 <div class="indexdiv">
7171 <h3>M</h3>
7272 <dl>
73 <dt id="ientry-idp46937712762720">CAIRO_MIME_TYPE_JP2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS">CAIRO_MIME_TYPE_JP2</a>
73 <dt id="ientry-idp46842968263968">CAIRO_MIME_TYPE_JP2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS">CAIRO_MIME_TYPE_JP2</a>
7474 </dt>
75 <dt id="ientry-idp46937712768976">CAIRO_MIME_TYPE_JPEG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS">CAIRO_MIME_TYPE_JPEG</a>
75 <dt id="ientry-idp46842968270224">CAIRO_MIME_TYPE_JPEG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS">CAIRO_MIME_TYPE_JPEG</a>
7676 </dt>
77 <dt id="ientry-idp46937712775216">CAIRO_MIME_TYPE_PNG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS">CAIRO_MIME_TYPE_PNG</a>
77 <dt id="ientry-idp46842968276400">CAIRO_MIME_TYPE_PNG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS">CAIRO_MIME_TYPE_PNG</a>
7878 </dt>
79 <dt id="ientry-idp46937712781440">CAIRO_MIME_TYPE_URI, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS">CAIRO_MIME_TYPE_URI</a>
79 <dt id="ientry-idp46842968282560">CAIRO_MIME_TYPE_URI, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS">CAIRO_MIME_TYPE_URI</a>
8080 </dt>
8181 </dl>
8282 </div>
8383 <div class="indexdiv">
8484 <h3>P</h3>
8585 <dl>
86 <dt id="ientry-idp46937711008192">cairo_pdf_get_versions, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions">cairo_pdf_get_versions ()</a>
86 <dt id="ientry-idp46842966984288">cairo_pdf_get_versions, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions">cairo_pdf_get_versions ()</a>
8787 </dt>
88 <dt id="ientry-idp46937708399120">cairo_pdf_surface_restrict_to_version, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version">cairo_pdf_surface_restrict_to_version ()</a>
88 <dt id="ientry-idp46842966961344">cairo_pdf_surface_restrict_to_version, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version">cairo_pdf_surface_restrict_to_version ()</a>
8989 </dt>
90 <dt id="ientry-idp46937711265200">cairo_pdf_version_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t">enum cairo_pdf_version_t</a>
90 <dt id="ientry-idp46842968526672">cairo_pdf_version_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t">enum cairo_pdf_version_t</a>
9191 </dt>
92 <dt id="ientry-idp46937711029312">cairo_pdf_version_to_string, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string">cairo_pdf_version_to_string ()</a>
92 <dt id="ientry-idp46842967005408">cairo_pdf_version_to_string, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string">cairo_pdf_version_to_string ()</a>
9393 </dt>
9494 </dl>
9595 </div>
9696 <div class="indexdiv">
9797 <h3>R</h3>
9898 <dl>
99 <dt id="ientry-idp46937698608656">cairo_recording_surface_create, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-create">cairo_recording_surface_create ()</a>
99 <dt id="ientry-idp46842963377808">cairo_recording_surface_create, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-create">cairo_recording_surface_create ()</a>
100100 </dt>
101 <dt id="ientry-idp46937709294400">cairo_recording_surface_ink_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents">cairo_recording_surface_ink_extents ()</a>
101 <dt id="ientry-idp46842956333408">cairo_recording_surface_ink_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents">cairo_recording_surface_ink_extents ()</a>
102102 </dt>
103 <dt id="ientry-idp46937715483296">cairo_rectangle_int_t, <a class="indexterm" href="cairo-Types.html#cairo-rectangle-int-t">cairo_rectangle_int_t</a>
103 <dt id="ientry-idp46842966054816">cairo_rectangle_int_t, <a class="indexterm" href="cairo-Types.html#cairo-rectangle-int-t">cairo_rectangle_int_t</a>
104104 </dt>
105 <dt id="ientry-idp46937703892240">cairo_region_contains_point, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-point">cairo_region_contains_point ()</a>
105 <dt id="ientry-idp46842959757600">cairo_region_contains_point, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-point">cairo_region_contains_point ()</a>
106106 </dt>
107 <dt id="ientry-idp46937703925312">cairo_region_contains_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-rectangle">cairo_region_contains_rectangle ()</a>
107 <dt id="ientry-idp46842959790672">cairo_region_contains_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-rectangle">cairo_region_contains_rectangle ()</a>
108108 </dt>
109 <dt id="ientry-idp46937695903392">cairo_region_copy, <a class="indexterm" href="cairo-Regions.html#cairo-region-copy">cairo_region_copy ()</a>
109 <dt id="ientry-idp46842959579072">cairo_region_copy, <a class="indexterm" href="cairo-Regions.html#cairo-region-copy">cairo_region_copy ()</a>
110110 </dt>
111 <dt id="ientry-idp46937700491392">cairo_region_create, <a class="indexterm" href="cairo-Regions.html#cairo-region-create">cairo_region_create ()</a>
111 <dt id="ientry-idp46842952090208">cairo_region_create, <a class="indexterm" href="cairo-Regions.html#cairo-region-create">cairo_region_create ()</a>
112112 </dt>
113 <dt id="ientry-idp46937695463840">cairo_region_create_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangle">cairo_region_create_rectangle ()</a>
113 <dt id="ientry-idp46842959529776">cairo_region_create_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangle">cairo_region_create_rectangle ()</a>
114114 </dt>
115 <dt id="ientry-idp46937695486560">cairo_region_create_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangles">cairo_region_create_rectangles ()</a>
115 <dt id="ientry-idp46842959552496">cairo_region_create_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangles">cairo_region_create_rectangles ()</a>
116116 </dt>
117 <dt id="ientry-idp46937700521216">cairo_region_destroy, <a class="indexterm" href="cairo-Regions.html#cairo-region-destroy">cairo_region_destroy ()</a>
117 <dt id="ientry-idp46842959623808">cairo_region_destroy, <a class="indexterm" href="cairo-Regions.html#cairo-region-destroy">cairo_region_destroy ()</a>
118118 </dt>
119 <dt id="ientry-idp46937703957840">cairo_region_equal, <a class="indexterm" href="cairo-Regions.html#cairo-region-equal">cairo_region_equal ()</a>
119 <dt id="ientry-idp46842959823200">cairo_region_equal, <a class="indexterm" href="cairo-Regions.html#cairo-region-equal">cairo_region_equal ()</a>
120120 </dt>
121 <dt id="ientry-idp46937703800400">cairo_region_get_extents, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-extents">cairo_region_get_extents ()</a>
121 <dt id="ientry-idp46842959665760">cairo_region_get_extents, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-extents">cairo_region_get_extents ()</a>
122122 </dt>
123 <dt id="ientry-idp46937703842960">cairo_region_get_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-rectangle">cairo_region_get_rectangle ()</a>
123 <dt id="ientry-idp46842959708320">cairo_region_get_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-rectangle">cairo_region_get_rectangle ()</a>
124124 </dt>
125 <dt id="ientry-idp46937704014512">cairo_region_intersect, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect">cairo_region_intersect ()</a>
125 <dt id="ientry-idp46842959879872">cairo_region_intersect, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect">cairo_region_intersect ()</a>
126126 </dt>
127 <dt id="ientry-idp46937704042144">cairo_region_intersect_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect-rectangle">cairo_region_intersect_rectangle ()</a>
127 <dt id="ientry-idp46842959907504">cairo_region_intersect_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect-rectangle">cairo_region_intersect_rectangle ()</a>
128128 </dt>
129 <dt id="ientry-idp46937703869728">cairo_region_is_empty, <a class="indexterm" href="cairo-Regions.html#cairo-region-is-empty">cairo_region_is_empty ()</a>
129 <dt id="ientry-idp46842959735088">cairo_region_is_empty, <a class="indexterm" href="cairo-Regions.html#cairo-region-is-empty">cairo_region_is_empty ()</a>
130130 </dt>
131 <dt id="ientry-idp46937703822672">cairo_region_num_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-num-rectangles">cairo_region_num_rectangles ()</a>
131 <dt id="ientry-idp46842959688032">cairo_region_num_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-num-rectangles">cairo_region_num_rectangles ()</a>
132132 </dt>
133 <dt id="ientry-idp46937704254176">cairo_region_overlap_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-overlap-t">enum cairo_region_overlap_t</a>
133 <dt id="ientry-idp46842960119536">cairo_region_overlap_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-overlap-t">enum cairo_region_overlap_t</a>
134134 </dt>
135 <dt id="ientry-idp46937695926080">cairo_region_reference, <a class="indexterm" href="cairo-Regions.html#cairo-region-reference">cairo_region_reference ()</a>
135 <dt id="ientry-idp46842959601760">cairo_region_reference, <a class="indexterm" href="cairo-Regions.html#cairo-region-reference">cairo_region_reference ()</a>
136136 </dt>
137 <dt id="ientry-idp46937700542320">cairo_region_status, <a class="indexterm" href="cairo-Regions.html#cairo-region-status">cairo_region_status ()</a>
137 <dt id="ientry-idp46842959644912">cairo_region_status, <a class="indexterm" href="cairo-Regions.html#cairo-region-status">cairo_region_status ()</a>
138138 </dt>
139 <dt id="ientry-idp46937704069600">cairo_region_subtract, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract">cairo_region_subtract ()</a>
139 <dt id="ientry-idp46842959934960">cairo_region_subtract, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract">cairo_region_subtract ()</a>
140140 </dt>
141 <dt id="ientry-idp46937704097216">cairo_region_subtract_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract-rectangle">cairo_region_subtract_rectangle ()</a>
141 <dt id="ientry-idp46842959962576">cairo_region_subtract_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract-rectangle">cairo_region_subtract_rectangle ()</a>
142142 </dt>
143 <dt id="ientry-idp46937704241216">cairo_region_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-t">cairo_region_t</a>
143 <dt id="ientry-idp46842960106576">cairo_region_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-t">cairo_region_t</a>
144144 </dt>
145 <dt id="ientry-idp46937703987856">cairo_region_translate, <a class="indexterm" href="cairo-Regions.html#cairo-region-translate">cairo_region_translate ()</a>
145 <dt id="ientry-idp46842959853216">cairo_region_translate, <a class="indexterm" href="cairo-Regions.html#cairo-region-translate">cairo_region_translate ()</a>
146146 </dt>
147 <dt id="ientry-idp46937704124736">cairo_region_union, <a class="indexterm" href="cairo-Regions.html#cairo-region-union">cairo_region_union ()</a>
147 <dt id="ientry-idp46842959990096">cairo_region_union, <a class="indexterm" href="cairo-Regions.html#cairo-region-union">cairo_region_union ()</a>
148148 </dt>
149 <dt id="ientry-idp46937704152320">cairo_region_union_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-union-rectangle">cairo_region_union_rectangle ()</a>
149 <dt id="ientry-idp46842960017680">cairo_region_union_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-union-rectangle">cairo_region_union_rectangle ()</a>
150150 </dt>
151 <dt id="ientry-idp46937704179920">cairo_region_xor, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor">cairo_region_xor ()</a>
151 <dt id="ientry-idp46842960045280">cairo_region_xor, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor">cairo_region_xor ()</a>
152152 </dt>
153 <dt id="ientry-idp46937704209648">cairo_region_xor_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor-rectangle">cairo_region_xor_rectangle ()</a>
153 <dt id="ientry-idp46842960075008">cairo_region_xor_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor-rectangle">cairo_region_xor_rectangle ()</a>
154154 </dt>
155155 </dl>
156156 </div>
157157 <div class="indexdiv">
158158 <h3>S</h3>
159159 <dl>
160 <dt id="ientry-idp46937710776672">cairo_surface_create_for_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle">cairo_surface_create_for_rectangle ()</a>
160 <dt id="ientry-idp46842966744112">cairo_surface_create_for_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle">cairo_surface_create_for_rectangle ()</a>
161161 </dt>
162 <dt id="ientry-idp46937712141568">cairo_surface_get_device, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device">cairo_surface_get_device ()</a>
162 <dt id="ientry-idp46842967576624">cairo_surface_get_device, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device">cairo_surface_get_device ()</a>
163163 </dt>
164 <dt id="ientry-idp46937712620288">cairo_surface_get_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data">cairo_surface_get_mime_data ()</a>
164 <dt id="ientry-idp46842968094560">cairo_surface_get_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data">cairo_surface_get_mime_data ()</a>
165165 </dt>
166 <dt id="ientry-idp46937712562336">cairo_surface_set_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data">cairo_surface_set_mime_data ()</a>
166 <dt id="ientry-idp46842968034240">cairo_surface_set_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data">cairo_surface_set_mime_data ()</a>
167167 </dt>
168168 </dl>
169169 </div>
2525 <div class="indexdiv">
2626 <h3>F</h3>
2727 <dl>
28 <dt id="ientry-idp46937707469104">cairo_ft_font_face_get_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize">cairo_ft_font_face_get_synthesize ()</a>
28 <dt id="ientry-idp46842963849904">cairo_ft_font_face_get_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize">cairo_ft_font_face_get_synthesize ()</a>
2929 </dt>
30 <dt id="ientry-idp46937707488816">cairo_ft_font_face_set_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize">cairo_ft_font_face_set_synthesize ()</a>
30 <dt id="ientry-idp46842964702480">cairo_ft_font_face_set_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize">cairo_ft_font_face_set_synthesize ()</a>
3131 </dt>
32 <dt id="ientry-idp46937707510784">cairo_ft_font_face_unset_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize">cairo_ft_font_face_unset_synthesize ()</a>
32 <dt id="ientry-idp46842964724448">cairo_ft_font_face_unset_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize">cairo_ft_font_face_unset_synthesize ()</a>
3333 </dt>
34 <dt id="ientry-idp46937708785824">cairo_ft_synthesize_t, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t">enum cairo_ft_synthesize_t</a>
34 <dt id="ientry-idp46842964760544">cairo_ft_synthesize_t, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t">enum cairo_ft_synthesize_t</a>
3535 </dt>
3636 </dl>
3737 </div>
3838 <div class="indexdiv">
3939 <h3>H</h3>
4040 <dl>
41 <dt id="ientry-idp46937713846016">CAIRO_HAS_SCRIPT_SURFACE, <a class="indexterm" href="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS">CAIRO_HAS_SCRIPT_SURFACE</a>
41 <dt id="ientry-idp46842970896448">CAIRO_HAS_SCRIPT_SURFACE, <a class="indexterm" href="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS">CAIRO_HAS_SCRIPT_SURFACE</a>
4242 </dt>
43 <dt id="ientry-idp46937714629104">CAIRO_HAS_XCB_SURFACE, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS">CAIRO_HAS_XCB_SURFACE</a>
43 <dt id="ientry-idp46842970189712">CAIRO_HAS_XCB_SURFACE, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS">CAIRO_HAS_XCB_SURFACE</a>
4444 </dt>
4545 </dl>
4646 </div>
4747 <div class="indexdiv">
4848 <h3>M</h3>
4949 <dl>
50 <dt id="ientry-idp46937704651344">cairo_mesh_pattern_begin_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch ()</a>
50 <dt id="ientry-idp46842961074000">cairo_mesh_pattern_begin_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch ()</a>
5151 </dt>
52 <dt id="ientry-idp46937704775056">cairo_mesh_pattern_curve_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to ()</a>
52 <dt id="ientry-idp46842961197696">cairo_mesh_pattern_curve_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to ()</a>
5353 </dt>
54 <dt id="ientry-idp46937704679920">cairo_mesh_pattern_end_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch ()</a>
54 <dt id="ientry-idp46842961102576">cairo_mesh_pattern_end_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch ()</a>
5555 </dt>
56 <dt id="ientry-idp46937705025168">cairo_mesh_pattern_get_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point">cairo_mesh_pattern_get_control_point ()</a>
56 <dt id="ientry-idp46842961447888">cairo_mesh_pattern_get_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point">cairo_mesh_pattern_get_control_point ()</a>
5757 </dt>
58 <dt id="ientry-idp46937705074304">cairo_mesh_pattern_get_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba">cairo_mesh_pattern_get_corner_color_rgba ()</a>
58 <dt id="ientry-idp46842961496960">cairo_mesh_pattern_get_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba">cairo_mesh_pattern_get_corner_color_rgba ()</a>
5959 </dt>
60 <dt id="ientry-idp46937704965024">cairo_mesh_pattern_get_patch_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count">cairo_mesh_pattern_get_patch_count ()</a>
60 <dt id="ientry-idp46842961387664">cairo_mesh_pattern_get_patch_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count">cairo_mesh_pattern_get_patch_count ()</a>
6161 </dt>
62 <dt id="ientry-idp46937704993840">cairo_mesh_pattern_get_path, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path">cairo_mesh_pattern_get_path ()</a>
62 <dt id="ientry-idp46842961416544">cairo_mesh_pattern_get_path, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path">cairo_mesh_pattern_get_path ()</a>
6363 </dt>
64 <dt id="ientry-idp46937704737168">cairo_mesh_pattern_line_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to ()</a>
64 <dt id="ientry-idp46842961159808">cairo_mesh_pattern_line_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to ()</a>
6565 </dt>
66 <dt id="ientry-idp46937704704640">cairo_mesh_pattern_move_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to ()</a>
66 <dt id="ientry-idp46842961127232">cairo_mesh_pattern_move_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to ()</a>
6767 </dt>
68 <dt id="ientry-idp46937704831328">cairo_mesh_pattern_set_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point">cairo_mesh_pattern_set_control_point ()</a>
68 <dt id="ientry-idp46842961253968">cairo_mesh_pattern_set_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point">cairo_mesh_pattern_set_control_point ()</a>
6969 </dt>
70 <dt id="ientry-idp46937704871024">cairo_mesh_pattern_set_corner_color_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb ()</a>
70 <dt id="ientry-idp46842961293664">cairo_mesh_pattern_set_corner_color_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb ()</a>
7171 </dt>
72 <dt id="ientry-idp46937704916096">cairo_mesh_pattern_set_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba">cairo_mesh_pattern_set_corner_color_rgba ()</a>
72 <dt id="ientry-idp46842961338736">cairo_mesh_pattern_set_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba">cairo_mesh_pattern_set_corner_color_rgba ()</a>
7373 </dt>
74 <dt id="ientry-idp46937712787552">CAIRO_MIME_TYPE_UNIQUE_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS">CAIRO_MIME_TYPE_UNIQUE_ID</a>
74 <dt id="ientry-idp46842968288672">CAIRO_MIME_TYPE_UNIQUE_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS">CAIRO_MIME_TYPE_UNIQUE_ID</a>
7575 </dt>
7676 </dl>
7777 </div>
7878 <div class="indexdiv">
7979 <h3>P</h3>
8080 <dl>
81 <dt id="ientry-idp46937704608320">cairo_pattern_create_mesh, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh">cairo_pattern_create_mesh ()</a>
81 <dt id="ientry-idp46842961030912">cairo_pattern_create_mesh, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh">cairo_pattern_create_mesh ()</a>
8282 </dt>
83 <dt id="ientry-idp46937705854368">cairo_pattern_create_raster_source, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-pattern-create-raster-source">cairo_pattern_create_raster_source ()</a>
83 <dt id="ientry-idp46842962018304">cairo_pattern_create_raster_source, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-pattern-create-raster-source">cairo_pattern_create_raster_source ()</a>
8484 </dt>
8585 </dl>
8686 </div>
8787 <div class="indexdiv">
8888 <h3>R</h3>
8989 <dl>
90 <dt id="ientry-idp46937706792512">cairo_raster_source_acquire_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t">cairo_raster_source_acquire_func_t ()</a>
90 <dt id="ientry-idp46842962770096">cairo_raster_source_acquire_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t">cairo_raster_source_acquire_func_t ()</a>
9191 </dt>
92 <dt id="ientry-idp46937706868576">cairo_raster_source_copy_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t">cairo_raster_source_copy_func_t ()</a>
92 <dt id="ientry-idp46842962846160">cairo_raster_source_copy_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t">cairo_raster_source_copy_func_t ()</a>
9393 </dt>
94 <dt id="ientry-idp46937706895344">cairo_raster_source_finish_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t">cairo_raster_source_finish_func_t ()</a>
94 <dt id="ientry-idp46842962872928">cairo_raster_source_finish_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t">cairo_raster_source_finish_func_t ()</a>
9595 </dt>
96 <dt id="ientry-idp46937705951072">cairo_raster_source_pattern_get_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire">cairo_raster_source_pattern_get_acquire ()</a>
96 <dt id="ientry-idp46842962115008">cairo_raster_source_pattern_get_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire">cairo_raster_source_pattern_get_acquire ()</a>
9797 </dt>
98 <dt id="ientry-idp46937705905696">cairo_raster_source_pattern_get_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data">cairo_raster_source_pattern_get_callback_data ()</a>
98 <dt id="ientry-idp46842962069632">cairo_raster_source_pattern_get_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data">cairo_raster_source_pattern_get_callback_data ()</a>
9999 </dt>
100 <dt id="ientry-idp46937706032176">cairo_raster_source_pattern_get_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy">cairo_raster_source_pattern_get_copy ()</a>
100 <dt id="ientry-idp46842962196112">cairo_raster_source_pattern_get_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy">cairo_raster_source_pattern_get_copy ()</a>
101101 </dt>
102 <dt id="ientry-idp46937706070016">cairo_raster_source_pattern_get_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish">cairo_raster_source_pattern_get_finish ()</a>
102 <dt id="ientry-idp46842962233952">cairo_raster_source_pattern_get_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish">cairo_raster_source_pattern_get_finish ()</a>
103103 </dt>
104 <dt id="ientry-idp46937705994448">cairo_raster_source_pattern_get_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot">cairo_raster_source_pattern_get_snapshot ()</a>
104 <dt id="ientry-idp46842962158384">cairo_raster_source_pattern_get_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot">cairo_raster_source_pattern_get_snapshot ()</a>
105105 </dt>
106 <dt id="ientry-idp46937705923376">cairo_raster_source_pattern_set_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire">cairo_raster_source_pattern_set_acquire ()</a>
106 <dt id="ientry-idp46842962087312">cairo_raster_source_pattern_set_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire">cairo_raster_source_pattern_set_acquire ()</a>
107107 </dt>
108 <dt id="ientry-idp46937705886096">cairo_raster_source_pattern_set_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data">cairo_raster_source_pattern_set_callback_data ()</a>
108 <dt id="ientry-idp46842962050032">cairo_raster_source_pattern_set_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data">cairo_raster_source_pattern_set_callback_data ()</a>
109109 </dt>
110 <dt id="ientry-idp46937706012208">cairo_raster_source_pattern_set_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy">cairo_raster_source_pattern_set_copy ()</a>
110 <dt id="ientry-idp46842962176144">cairo_raster_source_pattern_set_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy">cairo_raster_source_pattern_set_copy ()</a>
111111 </dt>
112 <dt id="ientry-idp46937706050032">cairo_raster_source_pattern_set_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish">cairo_raster_source_pattern_set_finish ()</a>
112 <dt id="ientry-idp46842962213968">cairo_raster_source_pattern_set_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish">cairo_raster_source_pattern_set_finish ()</a>
113113 </dt>
114 <dt id="ientry-idp46937705974560">cairo_raster_source_pattern_set_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot">cairo_raster_source_pattern_set_snapshot ()</a>
114 <dt id="ientry-idp46842962138496">cairo_raster_source_pattern_set_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot">cairo_raster_source_pattern_set_snapshot ()</a>
115115 </dt>
116 <dt id="ientry-idp46937706823680">cairo_raster_source_release_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t">cairo_raster_source_release_func_t ()</a>
116 <dt id="ientry-idp46842962801264">cairo_raster_source_release_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t">cairo_raster_source_release_func_t ()</a>
117117 </dt>
118 <dt id="ientry-idp46937706846672">cairo_raster_source_snapshot_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t">cairo_raster_source_snapshot_func_t ()</a>
118 <dt id="ientry-idp46842962824256">cairo_raster_source_snapshot_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t">cairo_raster_source_snapshot_func_t ()</a>
119119 </dt>
120 <dt id="ientry-idp46937700644736">cairo_recording_surface_get_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents">cairo_recording_surface_get_extents ()</a>
120 <dt id="ientry-idp46842952448816">cairo_recording_surface_get_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents">cairo_recording_surface_get_extents ()</a>
121121 </dt>
122122 </dl>
123123 </div>
124124 <div class="indexdiv">
125125 <h3>S</h3>
126126 <dl>
127 <dt id="ientry-idp46937714376912">cairo_script_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create">cairo_script_create ()</a>
127 <dt id="ientry-idp46842969908752">cairo_script_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create">cairo_script_create ()</a>
128128 </dt>
129 <dt id="ientry-idp46937713202368">cairo_script_create_for_stream, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create-for-stream">cairo_script_create_for_stream ()</a>
129 <dt id="ientry-idp46842970725184">cairo_script_create_for_stream, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create-for-stream">cairo_script_create_for_stream ()</a>
130130 </dt>
131 <dt id="ientry-idp46937714300096">cairo_script_from_recording_surface, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-from-recording-surface">cairo_script_from_recording_surface ()</a>
131 <dt id="ientry-idp46842970749776">cairo_script_from_recording_surface, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-from-recording-surface">cairo_script_from_recording_surface ()</a>
132132 </dt>
133 <dt id="ientry-idp46937714323312">cairo_script_get_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-get-mode">cairo_script_get_mode ()</a>
133 <dt id="ientry-idp46842970772992">cairo_script_get_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-get-mode">cairo_script_get_mode ()</a>
134134 </dt>
135 <dt id="ientry-idp46937713852144">cairo_script_mode_t, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-mode-t">enum cairo_script_mode_t</a>
135 <dt id="ientry-idp46842970902576">cairo_script_mode_t, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-mode-t">enum cairo_script_mode_t</a>
136136 </dt>
137 <dt id="ientry-idp46937714341264">cairo_script_set_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-set-mode">cairo_script_set_mode ()</a>
137 <dt id="ientry-idp46842970790944">cairo_script_set_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-set-mode">cairo_script_set_mode ()</a>
138138 </dt>
139 <dt id="ientry-idp46937713760544">cairo_script_surface_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create">cairo_script_surface_create ()</a>
139 <dt id="ientry-idp46842970810976">cairo_script_surface_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create">cairo_script_surface_create ()</a>
140140 </dt>
141 <dt id="ientry-idp46937713793488">cairo_script_surface_create_for_target, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target">cairo_script_surface_create_for_target ()</a>
141 <dt id="ientry-idp46842970843920">cairo_script_surface_create_for_target, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target">cairo_script_surface_create_for_target ()</a>
142142 </dt>
143 <dt id="ientry-idp46937713819280">cairo_script_write_comment, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-write-comment">cairo_script_write_comment ()</a>
143 <dt id="ientry-idp46842970869712">cairo_script_write_comment, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-write-comment">cairo_script_write_comment ()</a>
144144 </dt>
145 <dt id="ientry-idp46937710740848">cairo_surface_create_similar_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image">cairo_surface_create_similar_image ()</a>
145 <dt id="ientry-idp46842966708288">cairo_surface_create_similar_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image">cairo_surface_create_similar_image ()</a>
146146 </dt>
147 <dt id="ientry-idp46937712680160">cairo_surface_map_to_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image">cairo_surface_map_to_image ()</a>
147 <dt id="ientry-idp46842968154432">cairo_surface_map_to_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image">cairo_surface_map_to_image ()</a>
148148 </dt>
149 <dt id="ientry-idp46937712651968">cairo_surface_supports_mime_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type">cairo_surface_supports_mime_type ()</a>
149 <dt id="ientry-idp46842968126304">cairo_surface_supports_mime_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type">cairo_surface_supports_mime_type ()</a>
150150 </dt>
151 <dt id="ientry-idp46937712711920">cairo_surface_unmap_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image">cairo_surface_unmap_image ()</a>
151 <dt id="ientry-idp46842968186192">cairo_surface_unmap_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image">cairo_surface_unmap_image ()</a>
152152 </dt>
153153 </dl>
154154 </div>
155155 <div class="indexdiv">
156156 <h3>X</h3>
157157 <dl>
158 <dt id="ientry-idp46937713718032">cairo_xcb_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version">cairo_xcb_device_debug_cap_xrender_version ()</a>
158 <dt id="ientry-idp46842969835040">cairo_xcb_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version">cairo_xcb_device_debug_cap_xrender_version ()</a>
159159 </dt>
160 <dt id="ientry-idp46937713743120">cairo_xcb_device_debug_cap_xshm_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version">cairo_xcb_device_debug_cap_xshm_version ()</a>
160 <dt id="ientry-idp46842969860128">cairo_xcb_device_debug_cap_xshm_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version">cairo_xcb_device_debug_cap_xshm_version ()</a>
161161 </dt>
162 <dt id="ientry-idp46937714592816">cairo_xcb_device_debug_get_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision">cairo_xcb_device_debug_get_precision ()</a>
162 <dt id="ientry-idp46842970153424">cairo_xcb_device_debug_get_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision">cairo_xcb_device_debug_get_precision ()</a>
163163 </dt>
164 <dt id="ientry-idp46937714609216">cairo_xcb_device_debug_set_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision">cairo_xcb_device_debug_set_precision ()</a>
164 <dt id="ientry-idp46842970169824">cairo_xcb_device_debug_set_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision">cairo_xcb_device_debug_set_precision ()</a>
165165 </dt>
166 <dt id="ientry-idp46937713698480">cairo_xcb_device_get_connection, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection">cairo_xcb_device_get_connection ()</a>
166 <dt id="ientry-idp46842969815488">cairo_xcb_device_get_connection, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection">cairo_xcb_device_get_connection ()</a>
167167 </dt>
168 <dt id="ientry-idp46937713513424">cairo_xcb_surface_create, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create">cairo_xcb_surface_create ()</a>
168 <dt id="ientry-idp46842969630384">cairo_xcb_surface_create, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create">cairo_xcb_surface_create ()</a>
169169 </dt>
170 <dt id="ientry-idp46937713555472">cairo_xcb_surface_create_for_bitmap, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap">cairo_xcb_surface_create_for_bitmap ()</a>
170 <dt id="ientry-idp46842969672480">cairo_xcb_surface_create_for_bitmap, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap">cairo_xcb_surface_create_for_bitmap ()</a>
171171 </dt>
172 <dt id="ientry-idp46937713594416">cairo_xcb_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format">cairo_xcb_surface_create_with_xrender_format ()</a>
172 <dt id="ientry-idp46842969711424">cairo_xcb_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format">cairo_xcb_surface_create_with_xrender_format ()</a>
173173 </dt>
174 <dt id="ientry-idp46937713668512">cairo_xcb_surface_set_drawable, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable">cairo_xcb_surface_set_drawable ()</a>
174 <dt id="ientry-idp46842969785520">cairo_xcb_surface_set_drawable, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable">cairo_xcb_surface_set_drawable ()</a>
175175 </dt>
176 <dt id="ientry-idp46937713641376">cairo_xcb_surface_set_size, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size">cairo_xcb_surface_set_size ()</a>
176 <dt id="ientry-idp46842969758384">cairo_xcb_surface_set_size, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size">cairo_xcb_surface_set_size ()</a>
177177 </dt>
178 <dt id="ientry-idp46937714050368">cairo_xlib_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version">cairo_xlib_device_debug_cap_xrender_version ()</a>
178 <dt id="ientry-idp46842970545680">cairo_xlib_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version">cairo_xlib_device_debug_cap_xrender_version ()</a>
179179 </dt>
180 <dt id="ientry-idp46937714075504">cairo_xlib_device_debug_get_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision">cairo_xlib_device_debug_get_precision ()</a>
180 <dt id="ientry-idp46842970567968">cairo_xlib_device_debug_get_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision">cairo_xlib_device_debug_get_precision ()</a>
181181 </dt>
182 <dt id="ientry-idp46937714094128">cairo_xlib_device_debug_set_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision">cairo_xlib_device_debug_set_precision ()</a>
182 <dt id="ientry-idp46842970584368">cairo_xlib_device_debug_set_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision">cairo_xlib_device_debug_set_precision ()</a>
183183 </dt>
184184 </dl>
185185 </div>
2525 <div class="indexdiv">
2626 <h3>M</h3>
2727 <dl>
28 <dt id="ientry-idp46937712743856">CAIRO_MIME_TYPE_JBIG2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</a>
28 <dt id="ientry-idp46842968245168">CAIRO_MIME_TYPE_JBIG2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</a>
2929 </dt>
30 <dt id="ientry-idp46937712750080">CAIRO_MIME_TYPE_JBIG2_GLOBAL, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a>
30 <dt id="ientry-idp46842968251328">CAIRO_MIME_TYPE_JBIG2_GLOBAL, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a>
3131 </dt>
32 <dt id="ientry-idp46937712756400">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a>
32 <dt id="ientry-idp46842968257648">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a>
3333 </dt>
3434 </dl>
3535 </div>
3636 <div class="indexdiv">
3737 <h3>S</h3>
3838 <dl>
39 <dt id="ientry-idp46937712293312">cairo_surface_get_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale">cairo_surface_get_device_scale ()</a>
39 <dt id="ientry-idp46842967746384">cairo_surface_get_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale">cairo_surface_get_device_scale ()</a>
4040 </dt>
41 <dt id="ientry-idp46937712315824">cairo_surface_set_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale">cairo_surface_set_device_scale ()</a>
41 <dt id="ientry-idp46842967772352">cairo_surface_set_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale">cairo_surface_set_device_scale ()</a>
4242 </dt>
4343 </dl>
4444 </div>
2525 <div class="indexdiv">
2626 <h3>F</h3>
2727 <dl>
28 <dt id="ientry-idp46937706213344">cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type">cairo_font_face_get_type ()</a>
28 <dt id="ientry-idp46842962958192">cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type">cairo_font_face_get_type ()</a>
2929 </dt>
30 <dt id="ientry-idp46937696513312">cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-type-t">enum cairo_font_type_t</a>
30 <dt id="ientry-idp46842963079632">cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-type-t">enum cairo_font_type_t</a>
3131 </dt>
3232 </dl>
3333 </div>
3434 <div class="indexdiv">
3535 <h3>G</h3>
36 <dl><dt id="ientry-idp46937701941776">cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-group-target">cairo_get_group_target ()</a>
36 <dl><dt id="ientry-idp46842957583472">cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-group-target">cairo_get_group_target ()</a>
3737 </dt></dl>
3838 </div>
3939 <div class="indexdiv">
4040 <h3>H</h3>
4141 <dl>
42 <dt id="ientry-idp46937711193376">CAIRO_HAS_PDF_SURFACE, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</a>
42 <dt id="ientry-idp46842968464576">CAIRO_HAS_PDF_SURFACE, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</a>
4343 </dt>
44 <dt id="ientry-idp46937711919536">CAIRO_HAS_PS_SURFACE, <a class="indexterm" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</a>
44 <dt id="ientry-idp46842969102848">CAIRO_HAS_PS_SURFACE, <a class="indexterm" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</a>
4545 </dt>
46 <dt id="ientry-idp46937713089584">CAIRO_HAS_SVG_SURFACE, <a class="indexterm" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</a>
46 <dt id="ientry-idp46842969356496">CAIRO_HAS_SVG_SURFACE, <a class="indexterm" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</a>
4747 </dt>
4848 </dl>
4949 </div>
5050 <div class="indexdiv">
5151 <h3>I</h3>
5252 <dl>
53 <dt id="ientry-idp46937710277296">cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data ()</a>
53 <dt id="ientry-idp46842965682288">cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data ()</a>
5454 </dt>
55 <dt id="ientry-idp46937710301856">cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-format">cairo_image_surface_get_format ()</a>
55 <dt id="ientry-idp46842960187392">cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-format">cairo_image_surface_get_format ()</a>
5656 </dt>
57 <dt id="ientry-idp46937710890160">cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride ()</a>
57 <dt id="ientry-idp46842963426352">cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride ()</a>
5858 </dt>
5959 </dl>
6060 </div>
6161 <div class="indexdiv">
6262 <h3>N</h3>
63 <dl><dt id="ientry-idp46937695008464">cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-sub-path">cairo_new_sub_path ()</a>
63 <dl><dt id="ientry-idp46842955570112">cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-sub-path">cairo_new_sub_path ()</a>
6464 </dt></dl>
6565 </div>
6666 <div class="indexdiv">
6767 <h3>P</h3>
6868 <dl>
69 <dt id="ientry-idp46937705345808">cairo_pattern_get_type, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type">cairo_pattern_get_type ()</a>
69 <dt id="ientry-idp46842961768320">cairo_pattern_get_type, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type">cairo_pattern_get_type ()</a>
7070 </dt>
71 <dt id="ientry-idp46937705538336">cairo_pattern_type_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t">enum cairo_pattern_type_t</a>
71 <dt id="ientry-idp46842961961104">cairo_pattern_type_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t">enum cairo_pattern_type_t</a>
7272 </dt>
73 <dt id="ientry-idp46937708330992">cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create">cairo_pdf_surface_create ()</a>
73 <dt id="ientry-idp46842967472864">cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create">cairo_pdf_surface_create ()</a>
7474 </dt>
75 <dt id="ientry-idp46937708361408">cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream ()</a>
75 <dt id="ientry-idp46842966923632">cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream ()</a>
7676 </dt>
77 <dt id="ientry-idp46937711051104">cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">cairo_pdf_surface_set_size ()</a>
77 <dt id="ientry-idp46842967027200">cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">cairo_pdf_surface_set_size ()</a>
7878 </dt>
79 <dt id="ientry-idp46937701891440">cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group ()</a>
79 <dt id="ientry-idp46842957533136">cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group ()</a>
8080 </dt>
81 <dt id="ientry-idp46937701917120">cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source ()</a>
81 <dt id="ientry-idp46842957558816">cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source ()</a>
8282 </dt>
83 <dt id="ientry-idp46937711363344">cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create ()</a>
83 <dt id="ientry-idp46842968591920">cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create ()</a>
8484 </dt>
85 <dt id="ientry-idp46937711479632">cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream ()</a>
85 <dt id="ientry-idp46842968625120">cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream ()</a>
8686 </dt>
87 <dt id="ientry-idp46937711857488">cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup ()</a>
87 <dt id="ientry-idp46842969047776">cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup ()</a>
8888 </dt>
89 <dt id="ientry-idp46937711657264">cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup ()</a>
89 <dt id="ientry-idp46842968802752">cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup ()</a>
9090 </dt>
91 <dt id="ientry-idp46937711878576">cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment ()</a>
91 <dt id="ientry-idp46842969066416">cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment ()</a>
9292 </dt>
93 <dt id="ientry-idp46937711629904">cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">cairo_ps_surface_set_size ()</a>
93 <dt id="ientry-idp46842968775392">cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">cairo_ps_surface_set_size ()</a>
9494 </dt>
95 <dt id="ientry-idp46937701834704">cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group">cairo_push_group ()</a>
95 <dt id="ientry-idp46842957476464">cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group">cairo_push_group ()</a>
9696 </dt>
97 <dt id="ientry-idp46937701865376">cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group-with-content">cairo_push_group_with_content ()</a>
97 <dt id="ientry-idp46842957507136">cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group-with-content">cairo_push_group_with_content ()</a>
9898 </dt>
9999 </dl>
100100 </div>
101101 <div class="indexdiv">
102102 <h3>S</h3>
103103 <dl>
104 <dt id="ientry-idp46937708545280">cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm ()</a>
104 <dt id="ientry-idp46842964467376">cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm ()</a>
105105 </dt>
106 <dt id="ientry-idp46937708486864">cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face ()</a>
106 <dt id="ientry-idp46842964408960">cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face ()</a>
107107 </dt>
108 <dt id="ientry-idp46937708525888">cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix ()</a>
108 <dt id="ientry-idp46842964447984">cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix ()</a>
109109 </dt>
110 <dt id="ientry-idp46937708506496">cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options ()</a>
110 <dt id="ientry-idp46842964428592">cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options ()</a>
111111 </dt>
112 <dt id="ientry-idp46937708585232">cairo_scaled_font_get_type, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type ()</a>
112 <dt id="ientry-idp46842964507328">cairo_scaled_font_get_type, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type ()</a>
113113 </dt>
114 <dt id="ientry-idp46937707230016">cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents ()</a>
114 <dt id="ientry-idp46842963269296">cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents ()</a>
115115 </dt>
116 <dt id="ientry-idp46937706298560">cairo_set_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-set-scaled-font">cairo_set_scaled_font ()</a>
116 <dt id="ientry-idp46842962296624">cairo_set_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-set-scaled-font">cairo_set_scaled_font ()</a>
117117 </dt>
118 <dt id="ientry-idp46937712180976">cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-content">cairo_surface_get_content ()</a>
118 <dt id="ientry-idp46842967616848">cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-content">cairo_surface_get_content ()</a>
119119 </dt>
120 <dt id="ientry-idp46937712270800">cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset">cairo_surface_get_device_offset ()</a>
120 <dt id="ientry-idp46842967720416">cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset">cairo_surface_get_device_offset ()</a>
121121 </dt>
122 <dt id="ientry-idp46937712389440">cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-type">cairo_surface_get_type ()</a>
122 <dt id="ientry-idp46842967857104">cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-type">cairo_surface_get_type ()</a>
123123 </dt>
124 <dt id="ientry-idp46937712340784">cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution ()</a>
124 <dt id="ientry-idp46842967801024">cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution ()</a>
125125 </dt>
126 <dt id="ientry-idp46937712840576">cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-type-t">enum cairo_surface_type_t</a>
126 <dt id="ientry-idp46842968341760">cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-type-t">enum cairo_surface_type_t</a>
127127 </dt>
128 <dt id="ientry-idp46937713044864">cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions">cairo_svg_get_versions ()</a>
128 <dt id="ientry-idp46842969311776">cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions">cairo_svg_get_versions ()</a>
129129 </dt>
130 <dt id="ientry-idp46937712014608">cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create">cairo_svg_surface_create ()</a>
130 <dt id="ientry-idp46842965582736">cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create">cairo_svg_surface_create ()</a>
131131 </dt>
132 <dt id="ientry-idp46937711955232">cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream ()</a>
132 <dt id="ientry-idp46842969251120">cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream ()</a>
133133 </dt>
134 <dt id="ientry-idp46937713021920">cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version ()</a>
134 <dt id="ientry-idp46842969288832">cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version ()</a>
135135 </dt>
136 <dt id="ientry-idp46937713095648">cairo_svg_version_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">enum cairo_svg_version_t</a>
137 </dt>
138 <dt id="ientry-idp46937713065984">cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string">cairo_svg_version_to_string ()</a>
136 <dt id="ientry-idp46842969332896">cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string">cairo_svg_version_to_string ()</a>
139137 </dt>
140138 </dl>
141139 </div>
142140 <div class="indexdiv">
143141 <h3>W</h3>
144142 <dl>
145 <dt id="ientry-idp46937707344464">cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont ()</a>
143 <dt id="ientry-idp46842964908192">cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont ()</a>
146144 </dt>
147 <dt id="ientry-idp46937711850624">cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib ()</a>
145 <dt id="ientry-idp46842967317936">cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib ()</a>
148146 </dt>
149 <dt id="ientry-idp46937711776992">cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">cairo_win32_surface_get_dc ()</a>
147 <dt id="ientry-idp46842968922624">cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">cairo_win32_surface_get_dc ()</a>
150148 </dt>
151149 </dl>
152150 </div>
153151 <div class="indexdiv">
154152 <h3>X</h3>
155153 <dl>
156 <dt id="ientry-idp46937714031824">cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth ()</a>
154 <dt id="ientry-idp46842970529408">cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth ()</a>
157155 </dt>
158 <dt id="ientry-idp46937713887056">cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">cairo_xlib_surface_get_display ()</a>
156 <dt id="ientry-idp46842970313792">cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">cairo_xlib_surface_get_display ()</a>
159157 </dt>
160 <dt id="ientry-idp46937713952944">cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable ()</a>
158 <dt id="ientry-idp46842970379680">cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable ()</a>
161159 </dt>
162 <dt id="ientry-idp46937714013232">cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">cairo_xlib_surface_get_height ()</a>
160 <dt id="ientry-idp46842970439968">cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">cairo_xlib_surface_get_height ()</a>
163161 </dt>
164 <dt id="ientry-idp46937713905648">cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen ()</a>
162 <dt id="ientry-idp46842970332384">cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen ()</a>
165163 </dt>
166 <dt id="ientry-idp46937713971536">cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual ()</a>
164 <dt id="ientry-idp46842970398272">cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual ()</a>
167165 </dt>
168 <dt id="ientry-idp46937713994544">cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">cairo_xlib_surface_get_width ()</a>
166 <dt id="ientry-idp46842970421280">cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">cairo_xlib_surface_get_width ()</a>
169167 </dt>
170168 </dl>
171169 </div>
2525 <div class="indexdiv">
2626 <h3>C</h3>
2727 <dl>
28 <dt id="ientry-idp46937702634176">cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-extents">cairo_clip_extents ()</a>
28 <dt id="ientry-idp46842958275744">cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-extents">cairo_clip_extents ()</a>
2929 </dt>
30 <dt id="ientry-idp46937702737024">cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list">cairo_copy_clip_rectangle_list ()</a>
30 <dt id="ientry-idp46842958378720">cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list">cairo_copy_clip_rectangle_list ()</a>
3131 </dt>
3232 </dl>
3333 </div>
3434 <div class="indexdiv">
3535 <h3>F</h3>
36 <dl><dt id="ientry-idp46937706110000">cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count">cairo_font_face_get_reference_count ()</a>
36 <dl><dt id="ientry-idp46842962977744">cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count">cairo_font_face_get_reference_count ()</a>
3737 </dt></dl>
3838 </div>
3939 <div class="indexdiv">
4040 <h3>G</h3>
4141 <dl>
42 <dt id="ientry-idp46937702228448">cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash">cairo_get_dash ()</a>
42 <dt id="ientry-idp46842957870000">cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash">cairo_get_dash ()</a>
4343 </dt>
44 <dt id="ientry-idp46937702206016">cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash-count">cairo_get_dash_count ()</a>
44 <dt id="ientry-idp46842957847632">cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash-count">cairo_get_dash_count ()</a>
4545 </dt>
46 <dt id="ientry-idp46937703149856">cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-reference-count">cairo_get_reference_count ()</a>
46 <dt id="ientry-idp46842958791232">cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-reference-count">cairo_get_reference_count ()</a>
4747 </dt>
48 <dt id="ientry-idp46937706321456">cairo_get_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-get-scaled-font">cairo_get_scaled_font ()</a>
48 <dt id="ientry-idp46842962319520">cairo_get_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-get-scaled-font">cairo_get_scaled_font ()</a>
4949 </dt>
50 <dt id="ientry-idp46937703209232">cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-user-data">cairo_get_user_data ()</a>
50 <dt id="ientry-idp46842958850608">cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-user-data">cairo_get_user_data ()</a>
5151 </dt>
5252 </dl>
5353 </div>
5454 <div class="indexdiv">
5555 <h3>P</h3>
5656 <dl>
57 <dt id="ientry-idp46937703716336">cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count">cairo_pattern_get_color_stop_count ()</a>
57 <dt id="ientry-idp46842959357824">cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count">cairo_pattern_get_color_stop_count ()</a>
5858 </dt>
59 <dt id="ientry-idp46937703742592">cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba">cairo_pattern_get_color_stop_rgba ()</a>
59 <dt id="ientry-idp46842959384080">cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba">cairo_pattern_get_color_stop_rgba ()</a>
6060 </dt>
61 <dt id="ientry-idp46937704479856">cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points">cairo_pattern_get_linear_points ()</a>
61 <dt id="ientry-idp46842960898496">cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points">cairo_pattern_get_linear_points ()</a>
6262 </dt>
63 <dt id="ientry-idp46937704557232">cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles">cairo_pattern_get_radial_circles ()</a>
63 <dt id="ientry-idp46842960979760">cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles">cairo_pattern_get_radial_circles ()</a>
6464 </dt>
65 <dt id="ientry-idp46937705366448">cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count">cairo_pattern_get_reference_count ()</a>
65 <dt id="ientry-idp46842961788832">cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count">cairo_pattern_get_reference_count ()</a>
6666 </dt>
67 <dt id="ientry-idp46937704367056">cairo_pattern_get_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba">cairo_pattern_get_rgba ()</a>
67 <dt id="ientry-idp46842960785696">cairo_pattern_get_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba">cairo_pattern_get_rgba ()</a>
6868 </dt>
69 <dt id="ientry-idp46937704422096">cairo_pattern_get_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-surface">cairo_pattern_get_surface ()</a>
69 <dt id="ientry-idp46842960840736">cairo_pattern_get_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-surface">cairo_pattern_get_surface ()</a>
7070 </dt>
71 <dt id="ientry-idp46937705426048">cairo_pattern_get_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data">cairo_pattern_get_user_data ()</a>
71 <dt id="ientry-idp46842961848624">cairo_pattern_get_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data">cairo_pattern_get_user_data ()</a>
7272 </dt>
73 <dt id="ientry-idp46937705387152">cairo_pattern_set_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data">cairo_pattern_set_user_data ()</a>
73 <dt id="ientry-idp46842961809664">cairo_pattern_set_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data">cairo_pattern_set_user_data ()</a>
7474 </dt>
7575 </dl>
7676 </div>
7777 <div class="indexdiv">
7878 <h3>R</h3>
7979 <dl>
80 <dt id="ientry-idp46937702718112">cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-destroy">cairo_rectangle_list_destroy ()</a>
80 <dt id="ientry-idp46842958359872">cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-destroy">cairo_rectangle_list_destroy ()</a>
8181 </dt>
82 <dt id="ientry-idp46937703510512">cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>
82 <dt id="ientry-idp46842959152016">cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>
8383 </dt>
84 <dt id="ientry-idp46937703480768">cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-t">cairo_rectangle_t</a>
84 <dt id="ientry-idp46842959122208">cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-t">cairo_rectangle_t</a>
8585 </dt>
8686 </dl>
8787 </div>
8888 <div class="indexdiv">
8989 <h3>S</h3>
9090 <dl>
91 <dt id="ientry-idp46937708603872">cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count">cairo_scaled_font_get_reference_count ()</a>
91 <dt id="ientry-idp46842964525968">cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count">cairo_scaled_font_get_reference_count ()</a>
9292 </dt>
93 <dt id="ientry-idp46937708655264">cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data">cairo_scaled_font_get_user_data ()</a>
93 <dt id="ientry-idp46842964577360">cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data">cairo_scaled_font_get_user_data ()</a>
9494 </dt>
95 <dt id="ientry-idp46937708621520">cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data">cairo_scaled_font_set_user_data ()</a>
95 <dt id="ientry-idp46842964543616">cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data">cairo_scaled_font_set_user_data ()</a>
9696 </dt>
97 <dt id="ientry-idp46937703170560">cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-user-data">cairo_set_user_data ()</a>
97 <dt id="ientry-idp46842958811872">cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-user-data">cairo_set_user_data ()</a>
9898 </dt>
99 <dt id="ientry-idp46937712407088">cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count">cairo_surface_get_reference_count ()</a>
99 <dt id="ientry-idp46842967877664">cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count">cairo_surface_get_reference_count ()</a>
100100 </dt>
101101 </dl>
102102 </div>
103103 <div class="indexdiv">
104104 <h3>W</h3>
105105 <dl>
106 <dt id="ientry-idp46937708971408">cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical">cairo_win32_scaled_font_get_device_to_logical ()</a>
106 <dt id="ientry-idp46842965211184">cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical">cairo_win32_scaled_font_get_device_to_logical ()</a>
107107 </dt>
108 <dt id="ientry-idp46937708951088">cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device">cairo_win32_scaled_font_get_logical_to_device ()</a>
108 <dt id="ientry-idp46842965193040">cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device">cairo_win32_scaled_font_get_logical_to_device ()</a>
109109 </dt>
110 <dt id="ientry-idp46937711413376">cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb">cairo_win32_surface_create_with_ddb ()</a>
110 <dt id="ientry-idp46842966825536">cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb">cairo_win32_surface_create_with_ddb ()</a>
111111 </dt>
112 <dt id="ientry-idp46937712956464">cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image">cairo_win32_surface_get_image ()</a>
112 <dt id="ientry-idp46842968947520">cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image">cairo_win32_surface_get_image ()</a>
113113 </dt>
114114 </dl>
115115 </div>
2424 <div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
2525 <div class="indexdiv">
2626 <h3>F</h3>
27 <dl><dt id="ientry-idp46937710491904">cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width ()</a>
27 <dl><dt id="ientry-idp46842960192640">cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width ()</a>
2828 </dt></dl>
2929 </div>
3030 <div class="indexdiv">
3131 <h3>H</h3>
3232 <dl>
33 <dt id="ientry-idp46937699943808">cairo_has_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-has-current-point">cairo_has_current_point ()</a>
33 <dt id="ientry-idp46842955484320">cairo_has_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-has-current-point">cairo_has_current_point ()</a>
3434 </dt>
35 <dt id="ientry-idp46937707895232">CAIRO_HAS_QUARTZ_FONT, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS">CAIRO_HAS_QUARTZ_FONT</a>
35 <dt id="ientry-idp46842952743136">CAIRO_HAS_QUARTZ_FONT, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS">CAIRO_HAS_QUARTZ_FONT</a>
3636 </dt>
37 <dt id="ientry-idp46937711817488">CAIRO_HAS_QUARTZ_SURFACE, <a class="indexterm" href="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS">CAIRO_HAS_QUARTZ_SURFACE</a>
37 <dt id="ientry-idp46842969523424">CAIRO_HAS_QUARTZ_SURFACE, <a class="indexterm" href="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS">CAIRO_HAS_QUARTZ_SURFACE</a>
3838 </dt>
39 <dt id="ientry-idp46937714447616">CAIRO_HAS_XLIB_XRENDER_SURFACE, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS">CAIRO_HAS_XLIB_XRENDER_SURFACE</a>
39 <dt id="ientry-idp46842970092000">CAIRO_HAS_XLIB_XRENDER_SURFACE, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS">CAIRO_HAS_XLIB_XRENDER_SURFACE</a>
4040 </dt>
4141 </dl>
4242 </div>
4343 <div class="indexdiv">
4444 <h3>P</h3>
4545 <dl>
46 <dt id="ientry-idp46937700246736">cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#cairo-path-extents">cairo_path_extents ()</a>
46 <dt id="ientry-idp46842955787040">cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#cairo-path-extents">cairo_path_extents ()</a>
4747 </dt>
48 <dt id="ientry-idp46937711543024">cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels">cairo_ps_get_levels ()</a>
48 <dt id="ientry-idp46842968688512">cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels">cairo_ps_get_levels ()</a>
4949 </dt>
50 <dt id="ientry-idp46937711925600">cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">enum cairo_ps_level_t</a>
50 <dt id="ientry-idp46842969108192">cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">enum cairo_ps_level_t</a>
5151 </dt>
52 <dt id="ientry-idp46937711564112">cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string">cairo_ps_level_to_string ()</a>
52 <dt id="ientry-idp46842968709600">cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string">cairo_ps_level_to_string ()</a>
5353 </dt>
54 <dt id="ientry-idp46937711610144">cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps">cairo_ps_surface_get_eps ()</a>
54 <dt id="ientry-idp46842968755632">cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps">cairo_ps_surface_get_eps ()</a>
5555 </dt>
56 <dt id="ientry-idp46937711520016">cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level">cairo_ps_surface_restrict_to_level ()</a>
56 <dt id="ientry-idp46842968665504">cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level">cairo_ps_surface_restrict_to_level ()</a>
5757 </dt>
58 <dt id="ientry-idp46937711585936">cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps">cairo_ps_surface_set_eps ()</a>
58 <dt id="ientry-idp46842968731424">cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps">cairo_ps_surface_set_eps ()</a>
5959 </dt>
6060 </dl>
6161 </div>
6262 <div class="indexdiv">
6363 <h3>Q</h3>
6464 <dl>
65 <dt id="ientry-idp46937707998080">cairo_quartz_font_face_create_for_atsu_font_id, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id">cairo_quartz_font_face_create_for_atsu_font_id ()</a>
65 <dt id="ientry-idp46842950893536">cairo_quartz_font_face_create_for_atsu_font_id, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id">cairo_quartz_font_face_create_for_atsu_font_id ()</a>
6666 </dt>
67 <dt id="ientry-idp46937697595648">cairo_quartz_font_face_create_for_cgfont, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont">cairo_quartz_font_face_create_for_cgfont ()</a>
67 <dt id="ientry-idp46842953877152">cairo_quartz_font_face_create_for_cgfont, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont">cairo_quartz_font_face_create_for_cgfont ()</a>
6868 </dt>
69 <dt id="ientry-idp46937710435376">cairo_quartz_surface_create, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create">cairo_quartz_surface_create ()</a>
69 <dt id="ientry-idp46842967252272">cairo_quartz_surface_create, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create">cairo_quartz_surface_create ()</a>
7070 </dt>
71 <dt id="ientry-idp46937708869824">cairo_quartz_surface_create_for_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context">cairo_quartz_surface_create_for_cg_context ()</a>
71 <dt id="ientry-idp46842969473440">cairo_quartz_surface_create_for_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context">cairo_quartz_surface_create_for_cg_context ()</a>
7272 </dt>
73 <dt id="ientry-idp46937713135920">cairo_quartz_surface_get_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context">cairo_quartz_surface_get_cg_context ()</a>
73 <dt id="ientry-idp46842969501008">cairo_quartz_surface_get_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context">cairo_quartz_surface_get_cg_context ()</a>
7474 </dt>
7575 </dl>
7676 </div>
7777 <div class="indexdiv">
7878 <h3>S</h3>
7979 <dl>
80 <dt id="ientry-idp46937712490624">cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page ()</a>
80 <dt id="ientry-idp46842967962528">cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page ()</a>
8181 </dt>
82 <dt id="ientry-idp46937712511376">cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page ()</a>
82 <dt id="ientry-idp46842967983344">cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page ()</a>
8383 </dt>
8484 </dl>
8585 </div>
8686 <div class="indexdiv">
8787 <h3>W</h3>
8888 <dl>
89 <dt id="ientry-idp46937707371152">cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont">cairo_win32_font_face_create_for_logfontw_hfont ()</a>
89 <dt id="ientry-idp46842963684432">cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont">cairo_win32_font_face_create_for_logfontw_hfont ()</a>
9090 </dt>
91 <dt id="ientry-idp46937711757248">cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create">cairo_win32_printing_surface_create ()</a>
91 <dt id="ientry-idp46842966854880">cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create">cairo_win32_printing_surface_create ()</a>
9292 </dt>
9393 </dl>
9494 </div>
9595 <div class="indexdiv">
9696 <h3>X</h3>
97 <dl><dt id="ientry-idp46937713271376">cairo_xlib_surface_get_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format">cairo_xlib_surface_get_xrender_format ()</a>
97 <dl><dt id="ientry-idp46842969428352">cairo_xlib_surface_get_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format">cairo_xlib_surface_get_xrender_format ()</a>
9898 </dt></dl>
9999 </div>
100100 </div>
2525 <div class="indexdiv">
2626 <h3>G</h3>
2727 <dl>
28 <dt id="ientry-idp46937706593552">cairo_glyph_allocate, <a class="indexterm" href="cairo-text.html#cairo-glyph-allocate">cairo_glyph_allocate ()</a>
28 <dt id="ientry-idp46842962591616">cairo_glyph_allocate, <a class="indexterm" href="cairo-text.html#cairo-glyph-allocate">cairo_glyph_allocate ()</a>
2929 </dt>
30 <dt id="ientry-idp46937706615344">cairo_glyph_free, <a class="indexterm" href="cairo-text.html#cairo-glyph-free">cairo_glyph_free ()</a>
30 <dt id="ientry-idp46842962613408">cairo_glyph_free, <a class="indexterm" href="cairo-text.html#cairo-glyph-free">cairo_glyph_free ()</a>
3131 </dt>
3232 </dl>
3333 </div>
3434 <div class="indexdiv">
3535 <h3>H</h3>
3636 <dl>
37 <dt id="ientry-idp46937710911376">CAIRO_HAS_IMAGE_SURFACE, <a class="indexterm" href="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS">CAIRO_HAS_IMAGE_SURFACE</a>
37 <dt id="ientry-idp46842967503488">CAIRO_HAS_IMAGE_SURFACE, <a class="indexterm" href="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS">CAIRO_HAS_IMAGE_SURFACE</a>
3838 </dt>
39 <dt id="ientry-idp46937710602736">CAIRO_HAS_USER_FONT, <a class="indexterm" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS">CAIRO_HAS_USER_FONT</a>
39 <dt id="ientry-idp46842966561056">CAIRO_HAS_USER_FONT, <a class="indexterm" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS">CAIRO_HAS_USER_FONT</a>
4040 </dt>
41 <dt id="ientry-idp46937708993680">CAIRO_HAS_WIN32_FONT, <a class="indexterm" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</a>
41 <dt id="ientry-idp46842965230816">CAIRO_HAS_WIN32_FONT, <a class="indexterm" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</a>
4242 </dt>
4343 </dl>
4444 </div>
4545 <div class="indexdiv">
4646 <h3>S</h3>
4747 <dl>
48 <dt id="ientry-idp46937708565664">cairo_scaled_font_get_scale_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix">cairo_scaled_font_get_scale_matrix ()</a>
48 <dt id="ientry-idp46842964487760">cairo_scaled_font_get_scale_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix">cairo_scaled_font_get_scale_matrix ()</a>
4949 </dt>
50 <dt id="ientry-idp46937707293392">cairo_scaled_font_text_to_glyphs, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs ()</a>
50 <dt id="ientry-idp46842963332672">cairo_scaled_font_text_to_glyphs, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs ()</a>
5151 </dt>
52 <dt id="ientry-idp46937706390416">cairo_show_text_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs ()</a>
52 <dt id="ientry-idp46842962388480">cairo_show_text_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs ()</a>
5353 </dt>
54 <dt id="ientry-idp46937712366928">cairo_surface_get_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution">cairo_surface_get_fallback_resolution ()</a>
54 <dt id="ientry-idp46842967831168">cairo_surface_get_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution">cairo_surface_get_fallback_resolution ()</a>
5555 </dt>
56 <dt id="ientry-idp46937712532112">cairo_surface_has_show_text_glyphs, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs">cairo_surface_has_show_text_glyphs ()</a>
56 <dt id="ientry-idp46842968004016">cairo_surface_has_show_text_glyphs, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs">cairo_surface_has_show_text_glyphs ()</a>
5757 </dt>
5858 </dl>
5959 </div>
6060 <div class="indexdiv">
6161 <h3>T</h3>
6262 <dl>
63 <dt id="ientry-idp46937706633248">cairo_text_cluster_allocate, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-allocate">cairo_text_cluster_allocate ()</a>
63 <dt id="ientry-idp46842962631312">cairo_text_cluster_allocate, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-allocate">cairo_text_cluster_allocate ()</a>
6464 </dt>
65 <dt id="ientry-idp46937706762048">cairo_text_cluster_flags_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-flags-t">enum cairo_text_cluster_flags_t</a>
65 <dt id="ientry-idp46842962753328">cairo_text_cluster_flags_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-flags-t">enum cairo_text_cluster_flags_t</a>
6666 </dt>
67 <dt id="ientry-idp46937706655056">cairo_text_cluster_free, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free ()</a>
67 <dt id="ientry-idp46842962653120">cairo_text_cluster_free, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free ()</a>
6868 </dt>
69 <dt id="ientry-idp46937706735728">cairo_text_cluster_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-t">cairo_text_cluster_t</a>
69 <dt id="ientry-idp46842962731040">cairo_text_cluster_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-t">cairo_text_cluster_t</a>
7070 </dt>
71 <dt id="ientry-idp46937706517520">cairo_toy_font_face_create, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-create">cairo_toy_font_face_create ()</a>
71 <dt id="ientry-idp46842962515584">cairo_toy_font_face_create, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-create">cairo_toy_font_face_create ()</a>
7272 </dt>
73 <dt id="ientry-idp46937706546336">cairo_toy_font_face_get_family, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-family">cairo_toy_font_face_get_family ()</a>
73 <dt id="ientry-idp46842962544400">cairo_toy_font_face_get_family, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-family">cairo_toy_font_face_get_family ()</a>
7474 </dt>
75 <dt id="ientry-idp46937706562256">cairo_toy_font_face_get_slant, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-slant">cairo_toy_font_face_get_slant ()</a>
75 <dt id="ientry-idp46842962560320">cairo_toy_font_face_get_slant, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-slant">cairo_toy_font_face_get_slant ()</a>
7676 </dt>
77 <dt id="ientry-idp46937706577904">cairo_toy_font_face_get_weight, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-weight">cairo_toy_font_face_get_weight ()</a>
77 <dt id="ientry-idp46842962575968">cairo_toy_font_face_get_weight, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-weight">cairo_toy_font_face_get_weight ()</a>
7878 </dt>
7979 </dl>
8080 </div>
8181 <div class="indexdiv">
8282 <h3>U</h3>
8383 <dl>
84 <dt id="ientry-idp46937709539584">cairo_user_font_face_create, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-create">cairo_user_font_face_create ()</a>
84 <dt id="ientry-idp46842965496384">cairo_user_font_face_create, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-create">cairo_user_font_face_create ()</a>
8585 </dt>
86 <dt id="ientry-idp46937709578960">cairo_user_font_face_get_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func">cairo_user_font_face_get_init_func ()</a>
86 <dt id="ientry-idp46842965535760">cairo_user_font_face_get_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func">cairo_user_font_face_get_init_func ()</a>
8787 </dt>
88 <dt id="ientry-idp46937710508208">cairo_user_font_face_get_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func">cairo_user_font_face_get_render_glyph_func ()</a>
88 <dt id="ientry-idp46842966466528">cairo_user_font_face_get_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func">cairo_user_font_face_get_render_glyph_func ()</a>
8989 </dt>
90 <dt id="ientry-idp46937710583984">cairo_user_font_face_get_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func">cairo_user_font_face_get_text_to_glyphs_func ()</a>
90 <dt id="ientry-idp46842966542304">cairo_user_font_face_get_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func">cairo_user_font_face_get_text_to_glyphs_func ()</a>
9191 </dt>
92 <dt id="ientry-idp46937710546096">cairo_user_font_face_get_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func">cairo_user_font_face_get_unicode_to_glyph_func ()</a>
92 <dt id="ientry-idp46842966504416">cairo_user_font_face_get_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func">cairo_user_font_face_get_unicode_to_glyph_func ()</a>
9393 </dt>
94 <dt id="ientry-idp46937709555504">cairo_user_font_face_set_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func">cairo_user_font_face_set_init_func ()</a>
94 <dt id="ientry-idp46842965512304">cairo_user_font_face_set_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func">cairo_user_font_face_set_init_func ()</a>
9595 </dt>
96 <dt id="ientry-idp46937709598512">cairo_user_font_face_set_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func">cairo_user_font_face_set_render_glyph_func ()</a>
96 <dt id="ientry-idp46842965555312">cairo_user_font_face_set_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func">cairo_user_font_face_set_render_glyph_func ()</a>
9797 </dt>
98 <dt id="ientry-idp46937710563360">cairo_user_font_face_set_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func">cairo_user_font_face_set_text_to_glyphs_func ()</a>
98 <dt id="ientry-idp46842966521680">cairo_user_font_face_set_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func">cairo_user_font_face_set_text_to_glyphs_func ()</a>
9999 </dt>
100 <dt id="ientry-idp46937710525472">cairo_user_font_face_set_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func">cairo_user_font_face_set_unicode_to_glyph_func ()</a>
100 <dt id="ientry-idp46842966483792">cairo_user_font_face_set_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func">cairo_user_font_face_set_unicode_to_glyph_func ()</a>
101101 </dt>
102 <dt id="ientry-idp46937709331376">cairo_user_scaled_font_init_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t">cairo_user_scaled_font_init_func_t ()</a>
102 <dt id="ientry-idp46842965288176">cairo_user_scaled_font_init_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t">cairo_user_scaled_font_init_func_t ()</a>
103103 </dt>
104 <dt id="ientry-idp46937709366736">cairo_user_scaled_font_render_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t">cairo_user_scaled_font_render_glyph_func_t ()</a>
104 <dt id="ientry-idp46842965323536">cairo_user_scaled_font_render_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t">cairo_user_scaled_font_render_glyph_func_t ()</a>
105105 </dt>
106 <dt id="ientry-idp46937709422672">cairo_user_scaled_font_text_to_glyphs_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t">cairo_user_scaled_font_text_to_glyphs_func_t ()</a>
106 <dt id="ientry-idp46842965379472">cairo_user_scaled_font_text_to_glyphs_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t">cairo_user_scaled_font_text_to_glyphs_func_t ()</a>
107107 </dt>
108 <dt id="ientry-idp46937709503664">cairo_user_scaled_font_unicode_to_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t">cairo_user_scaled_font_unicode_to_glyph_func_t ()</a>
108 <dt id="ientry-idp46842965460464">cairo_user_scaled_font_unicode_to_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t">cairo_user_scaled_font_unicode_to_glyph_func_t ()</a>
109109 </dt>
110110 </dl>
111111 </div>
112112 <div class="indexdiv">
113113 <h3>V</h3>
114114 <dl>
115 <dt id="ientry-idp46937715616304">CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</a>
115 <dt id="ientry-idp46842971644304">CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</a>
116116 </dt>
117 <dt id="ientry-idp46937715547504">CAIRO_VERSION_STRINGIZE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS">CAIRO_VERSION_STRINGIZE()</a>
117 <dt id="ientry-idp46842970682224">CAIRO_VERSION_STRINGIZE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS">CAIRO_VERSION_STRINGIZE()</a>
118118 </dt>
119119 </dl>
120120 </div>
2525 <div class="indexdiv">
2626 <h3>A</h3>
2727 <dl>
28 <dt id="ientry-idp46937703250656">cairo_antialias_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-antialias-t">enum cairo_antialias_t</a>
29 </dt>
30 <dt id="ientry-idp46937699917392">cairo_append_path, <a class="indexterm" href="cairo-Paths.html#cairo-append-path">cairo_append_path ()</a>
31 </dt>
32 <dt id="ientry-idp46937695055152">cairo_arc, <a class="indexterm" href="cairo-Paths.html#cairo-arc">cairo_arc ()</a>
33 </dt>
34 <dt id="ientry-idp46937695108368">cairo_arc_negative, <a class="indexterm" href="cairo-Paths.html#cairo-arc-negative">cairo_arc_negative ()</a>
28 <dt id="ientry-idp46842958892032">cairo_antialias_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-antialias-t">enum cairo_antialias_t</a>
29 </dt>
30 <dt id="ientry-idp46842955457904">cairo_append_path, <a class="indexterm" href="cairo-Paths.html#cairo-append-path">cairo_append_path ()</a>
31 </dt>
32 <dt id="ientry-idp46842955616704">cairo_arc, <a class="indexterm" href="cairo-Paths.html#cairo-arc">cairo_arc ()</a>
33 </dt>
34 <dt id="ientry-idp46842950947488">cairo_arc_negative, <a class="indexterm" href="cairo-Paths.html#cairo-arc-negative">cairo_arc_negative ()</a>
3535 </dt>
3636 </dl>
3737 </div>
3838 <div class="indexdiv">
3939 <h3>B</h3>
40 <dl><dt id="ientry-idp46937715060400">cairo_bool_t, <a class="indexterm" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a>
40 <dl><dt id="ientry-idp46842970619952">cairo_bool_t, <a class="indexterm" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a>
4141 </dt></dl>
4242 </div>
4343 <div class="indexdiv">
4444 <h3>C</h3>
4545 <dl>
46 <dt id="ientry-idp46937702578752">cairo_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip">cairo_clip ()</a>
47 </dt>
48 <dt id="ientry-idp46937702634176">cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-extents">cairo_clip_extents ()</a>
49 </dt>
50 <dt id="ientry-idp46937702605872">cairo_clip_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-preserve">cairo_clip_preserve ()</a>
51 </dt>
52 <dt id="ientry-idp46937695030288">cairo_close_path, <a class="indexterm" href="cairo-Paths.html#cairo-close-path">cairo_close_path ()</a>
53 </dt>
54 <dt id="ientry-idp46937712816336">cairo_content_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-content-t">enum cairo_content_t</a>
55 </dt>
56 <dt id="ientry-idp46937702737024">cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list">cairo_copy_clip_rectangle_list ()</a>
57 </dt>
58 <dt id="ientry-idp46937703109984">cairo_copy_page, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-page">cairo_copy_page ()</a>
59 </dt>
60 <dt id="ientry-idp46937699830704">cairo_copy_path, <a class="indexterm" href="cairo-Paths.html#cairo-copy-path">cairo_copy_path ()</a>
61 </dt>
62 <dt id="ientry-idp46937699860224">cairo_copy_path_flat, <a class="indexterm" href="cairo-Paths.html#cairo-copy-path-flat">cairo_copy_path_flat ()</a>
63 </dt>
64 <dt id="ientry-idp46937697234256">cairo_create, <a class="indexterm" href="cairo-cairo-t.html#cairo-create">cairo_create ()</a>
65 </dt>
66 <dt id="ientry-idp46937695151648">cairo_curve_to, <a class="indexterm" href="cairo-Paths.html#cairo-curve-to">cairo_curve_to ()</a>
46 <dt id="ientry-idp46842958220384">cairo_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip">cairo_clip ()</a>
47 </dt>
48 <dt id="ientry-idp46842958275744">cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-extents">cairo_clip_extents ()</a>
49 </dt>
50 <dt id="ientry-idp46842958247504">cairo_clip_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-preserve">cairo_clip_preserve ()</a>
51 </dt>
52 <dt id="ientry-idp46842955591840">cairo_close_path, <a class="indexterm" href="cairo-Paths.html#cairo-close-path">cairo_close_path ()</a>
53 </dt>
54 <dt id="ientry-idp46842968317456">cairo_content_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-content-t">enum cairo_content_t</a>
55 </dt>
56 <dt id="ientry-idp46842958378720">cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list">cairo_copy_clip_rectangle_list ()</a>
57 </dt>
58 <dt id="ientry-idp46842958751424">cairo_copy_page, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-page">cairo_copy_page ()</a>
59 </dt>
60 <dt id="ientry-idp46842953586752">cairo_copy_path, <a class="indexterm" href="cairo-Paths.html#cairo-copy-path">cairo_copy_path ()</a>
61 </dt>
62 <dt id="ientry-idp46842953616320">cairo_copy_path_flat, <a class="indexterm" href="cairo-Paths.html#cairo-copy-path-flat">cairo_copy_path_flat ()</a>
63 </dt>
64 <dt id="ientry-idp46842953374576">cairo_create, <a class="indexterm" href="cairo-cairo-t.html#cairo-create">cairo_create ()</a>
65 </dt>
66 <dt id="ientry-idp46842950990768">cairo_curve_to, <a class="indexterm" href="cairo-Paths.html#cairo-curve-to">cairo_curve_to ()</a>
6767 </dt>
6868 </dl>
6969 </div>
7070 <div class="indexdiv">
7171 <h3>D</h3>
7272 <dl>
73 <dt id="ientry-idp46937714224832">cairo_debug_reset_static_data, <a class="indexterm" href="cairo-Error-handling.html#cairo-debug-reset-static-data">cairo_debug_reset_static_data ()</a>
74 </dt>
75 <dt id="ientry-idp46937697292096">cairo_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-destroy">cairo_destroy ()</a>
76 </dt>
77 <dt id="ientry-idp46937713474144">cairo_destroy_func_t, <a class="indexterm" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t ()</a>
78 </dt>
79 <dt id="ientry-idp46937709963984">cairo_device_acquire, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire ()</a>
80 </dt>
81 <dt id="ientry-idp46937709770720">cairo_device_destroy, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-destroy">cairo_device_destroy ()</a>
82 </dt>
83 <dt id="ientry-idp46937709810208">cairo_device_finish, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-finish">cairo_device_finish ()</a>
84 </dt>
85 <dt id="ientry-idp46937709833856">cairo_device_flush, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush ()</a>
86 </dt>
87 <dt id="ientry-idp46937709871632">cairo_device_get_reference_count, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-reference-count">cairo_device_get_reference_count ()</a>
88 </dt>
89 <dt id="ientry-idp46937709851424">cairo_device_get_type, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-type">cairo_device_get_type ()</a>
90 </dt>
91 <dt id="ientry-idp46937709930176">cairo_device_get_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-user-data">cairo_device_get_user_data ()</a>
92 </dt>
93 <dt id="ientry-idp46937710009120">cairo_device_observer_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-elapsed">cairo_device_observer_elapsed ()</a>
94 </dt>
95 <dt id="ientry-idp46937710015616">cairo_device_observer_fill_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-fill-elapsed">cairo_device_observer_fill_elapsed ()</a>
96 </dt>
97 <dt id="ientry-idp46937710022128">cairo_device_observer_glyphs_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-glyphs-elapsed">cairo_device_observer_glyphs_elapsed ()</a>
98 </dt>
99 <dt id="ientry-idp46937710028592">cairo_device_observer_mask_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-mask-elapsed">cairo_device_observer_mask_elapsed ()</a>
100 </dt>
101 <dt id="ientry-idp46937710035104">cairo_device_observer_paint_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-paint-elapsed">cairo_device_observer_paint_elapsed ()</a>
102 </dt>
103 <dt id="ientry-idp46937710041616">cairo_device_observer_print, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-print">cairo_device_observer_print ()</a>
104 </dt>
105 <dt id="ientry-idp46937710050960">cairo_device_observer_stroke_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-stroke-elapsed">cairo_device_observer_stroke_elapsed ()</a>
106 </dt>
107 <dt id="ientry-idp46937709746208">cairo_device_reference, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-reference">cairo_device_reference ()</a>
108 </dt>
109 <dt id="ientry-idp46937709990656">cairo_device_release, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release ()</a>
110 </dt>
111 <dt id="ientry-idp46937709891760">cairo_device_set_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-set-user-data">cairo_device_set_user_data ()</a>
112 </dt>
113 <dt id="ientry-idp46937709790576">cairo_device_status, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-status">cairo_device_status ()</a>
114 </dt>
115 <dt id="ientry-idp46937710059472">cairo_device_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-t">cairo_device_t</a>
116 </dt>
117 <dt id="ientry-idp46937695660864">cairo_device_to_user, <a class="indexterm" href="cairo-Transformations.html#cairo-device-to-user">cairo_device_to_user ()</a>
118 </dt>
119 <dt id="ientry-idp46937696307984">cairo_device_to_user_distance, <a class="indexterm" href="cairo-Transformations.html#cairo-device-to-user-distance">cairo_device_to_user_distance ()</a>
120 </dt>
121 <dt id="ientry-idp46937710074064">cairo_device_type_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-type-t">enum cairo_device_type_t</a>
73 <dt id="ientry-idp46842970476304">cairo_debug_reset_static_data, <a class="indexterm" href="cairo-Error-handling.html#cairo-debug-reset-static-data">cairo_debug_reset_static_data ()</a>
74 </dt>
75 <dt id="ientry-idp46842953432416">cairo_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-destroy">cairo_destroy ()</a>
76 </dt>
77 <dt id="ientry-idp46842970004816">cairo_destroy_func_t, <a class="indexterm" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t ()</a>
78 </dt>
79 <dt id="ientry-idp46842965805200">cairo_device_acquire, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire ()</a>
80 </dt>
81 <dt id="ientry-idp46842966307344">cairo_device_destroy, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-destroy">cairo_device_destroy ()</a>
82 </dt>
83 <dt id="ientry-idp46842966346832">cairo_device_finish, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-finish">cairo_device_finish ()</a>
84 </dt>
85 <dt id="ientry-idp46842966370480">cairo_device_flush, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush ()</a>
86 </dt>
87 <dt id="ientry-idp46842966408256">cairo_device_get_reference_count, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-reference-count">cairo_device_get_reference_count ()</a>
88 </dt>
89 <dt id="ientry-idp46842966388048">cairo_device_get_type, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-type">cairo_device_get_type ()</a>
90 </dt>
91 <dt id="ientry-idp46842965778672">cairo_device_get_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-user-data">cairo_device_get_user_data ()</a>
92 </dt>
93 <dt id="ientry-idp46842965850336">cairo_device_observer_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-elapsed">cairo_device_observer_elapsed ()</a>
94 </dt>
95 <dt id="ientry-idp46842965856832">cairo_device_observer_fill_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-fill-elapsed">cairo_device_observer_fill_elapsed ()</a>
96 </dt>
97 <dt id="ientry-idp46842965863344">cairo_device_observer_glyphs_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-glyphs-elapsed">cairo_device_observer_glyphs_elapsed ()</a>
98 </dt>
99 <dt id="ientry-idp46842965869808">cairo_device_observer_mask_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-mask-elapsed">cairo_device_observer_mask_elapsed ()</a>
100 </dt>
101 <dt id="ientry-idp46842965876320">cairo_device_observer_paint_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-paint-elapsed">cairo_device_observer_paint_elapsed ()</a>
102 </dt>
103 <dt id="ientry-idp46842965882832">cairo_device_observer_print, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-print">cairo_device_observer_print ()</a>
104 </dt>
105 <dt id="ientry-idp46842965892176">cairo_device_observer_stroke_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-stroke-elapsed">cairo_device_observer_stroke_elapsed ()</a>
106 </dt>
107 <dt id="ientry-idp46842966282832">cairo_device_reference, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-reference">cairo_device_reference ()</a>
108 </dt>
109 <dt id="ientry-idp46842965831872">cairo_device_release, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release ()</a>
110 </dt>
111 <dt id="ientry-idp46842966428384">cairo_device_set_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-set-user-data">cairo_device_set_user_data ()</a>
112 </dt>
113 <dt id="ientry-idp46842966327200">cairo_device_status, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-status">cairo_device_status ()</a>
114 </dt>
115 <dt id="ientry-idp46842965900688">cairo_device_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-t">cairo_device_t</a>
116 </dt>
117 <dt id="ientry-idp46842960703472">cairo_device_to_user, <a class="indexterm" href="cairo-Transformations.html#cairo-device-to-user">cairo_device_to_user ()</a>
118 </dt>
119 <dt id="ientry-idp46842956080048">cairo_device_to_user_distance, <a class="indexterm" href="cairo-Transformations.html#cairo-device-to-user-distance">cairo_device_to_user_distance ()</a>
120 </dt>
121 <dt id="ientry-idp46842965915280">cairo_device_type_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-type-t">enum cairo_device_type_t</a>
122122 </dt>
123123 </dl>
124124 </div>
125125 <div class="indexdiv">
126126 <h3>E</h3>
127 <dl><dt id="ientry-idp46937705473040">cairo_extend_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-extend-t">enum cairo_extend_t</a>
127 <dl><dt id="ientry-idp46842961895680">cairo_extend_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-extend-t">enum cairo_extend_t</a>
128128 </dt></dl>
129129 </div>
130130 <div class="indexdiv">
131131 <h3>F</h3>
132132 <dl>
133 <dt id="ientry-idp46937702759616">cairo_fill, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill">cairo_fill ()</a>
134 </dt>
135 <dt id="ientry-idp46937702800800">cairo_fill_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-extents">cairo_fill_extents ()</a>
136 </dt>
137 <dt id="ientry-idp46937702779376">cairo_fill_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-preserve">cairo_fill_preserve ()</a>
138 </dt>
139 <dt id="ientry-idp46937703295136">cairo_fill_rule_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-rule-t">enum cairo_fill_rule_t</a>
140 </dt>
141 <dt id="ientry-idp46937705502496">cairo_filter_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-filter-t">enum cairo_filter_t</a>
142 </dt>
143 <dt id="ientry-idp46937706442320">cairo_font_extents, <a class="indexterm" href="cairo-text.html#cairo-font-extents">cairo_font_extents ()</a>
144 </dt>
145 <dt id="ientry-idp46937708691760">cairo_font_extents_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t">cairo_font_extents_t</a>
146 </dt>
147 <dt id="ientry-idp46937706247472">cairo_font_face_destroy, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy">cairo_font_face_destroy ()</a>
148 </dt>
149 <dt id="ientry-idp46937706110000">cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count">cairo_font_face_get_reference_count ()</a>
150 </dt>
151 <dt id="ientry-idp46937706213344">cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type">cairo_font_face_get_type ()</a>
152 </dt>
153 <dt id="ientry-idp46937696468400">cairo_font_face_get_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data">cairo_font_face_get_user_data ()</a>
154 </dt>
155 <dt id="ientry-idp46937697324432">cairo_font_face_reference, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-reference">cairo_font_face_reference ()</a>
156 </dt>
157 <dt id="ientry-idp46937696431552">cairo_font_face_set_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data">cairo_font_face_set_user_data ()</a>
158 </dt>
159 <dt id="ientry-idp46937706192416">cairo_font_face_status, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-status">cairo_font_face_status ()</a>
160 </dt>
161 <dt id="ientry-idp46937696496640">cairo_font_face_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>
162 </dt>
163 <dt id="ientry-idp46937707559984">cairo_font_options_copy, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-copy">cairo_font_options_copy ()</a>
164 </dt>
165 <dt id="ientry-idp46937707547328">cairo_font_options_create, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-create">cairo_font_options_create ()</a>
166 </dt>
167 <dt id="ientry-idp46937707582832">cairo_font_options_destroy, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-destroy">cairo_font_options_destroy ()</a>
168 </dt>
169 <dt id="ientry-idp46937707669376">cairo_font_options_equal, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-equal">cairo_font_options_equal ()</a>
170 </dt>
171 <dt id="ientry-idp46937707715968">cairo_font_options_get_antialias, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-antialias">cairo_font_options_get_antialias ()</a>
172 </dt>
173 <dt id="ientry-idp46937708193296">cairo_font_options_get_hint_metrics, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics">cairo_font_options_get_hint_metrics ()</a>
174 </dt>
175 <dt id="ientry-idp46937708152064">cairo_font_options_get_hint_style, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-style">cairo_font_options_get_hint_style ()</a>
176 </dt>
177 <dt id="ientry-idp46937707757312">cairo_font_options_get_subpixel_order, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-subpixel-order">cairo_font_options_get_subpixel_order ()</a>
178 </dt>
179 <dt id="ientry-idp46937707649328">cairo_font_options_hash, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-hash">cairo_font_options_hash ()</a>
180 </dt>
181 <dt id="ientry-idp46937707623664">cairo_font_options_merge, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-merge">cairo_font_options_merge ()</a>
182 </dt>
183 <dt id="ientry-idp46937707695200">cairo_font_options_set_antialias, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-antialias">cairo_font_options_set_antialias ()</a>
184 </dt>
185 <dt id="ientry-idp46937708171648">cairo_font_options_set_hint_metrics, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-metrics">cairo_font_options_set_hint_metrics ()</a>
186 </dt>
187 <dt id="ientry-idp46937708130384">cairo_font_options_set_hint_style, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-style">cairo_font_options_set_hint_style ()</a>
188 </dt>
189 <dt id="ientry-idp46937707734624">cairo_font_options_set_subpixel_order, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-subpixel-order">cairo_font_options_set_subpixel_order ()</a>
190 </dt>
191 <dt id="ientry-idp46937707602880">cairo_font_options_status, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-status">cairo_font_options_status ()</a>
192 </dt>
193 <dt id="ientry-idp46937708214400">cairo_font_options_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-t">cairo_font_options_t</a>
194 </dt>
195 <dt id="ientry-idp46937706700096">cairo_font_slant_t, <a class="indexterm" href="cairo-text.html#cairo-font-slant-t">enum cairo_font_slant_t</a>
196 </dt>
197 <dt id="ientry-idp46937696513312">cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-type-t">enum cairo_font_type_t</a>
198 </dt>
199 <dt id="ientry-idp46937706717968">cairo_font_weight_t, <a class="indexterm" href="cairo-text.html#cairo-font-weight-t">enum cairo_font_weight_t</a>
200 </dt>
201 <dt id="ientry-idp46937710491904">cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width ()</a>
202 </dt>
203 <dt id="ientry-idp46937710917456">cairo_format_t, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-t">enum cairo_format_t</a>
204 </dt>
205 <dt id="ientry-idp46937707800448">cairo_ft_font_face_create_for_ft_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face">cairo_ft_font_face_create_for_ft_face ()</a>
206 </dt>
207 <dt id="ientry-idp46937708040352">cairo_ft_font_face_create_for_pattern, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern">cairo_ft_font_face_create_for_pattern ()</a>
208 </dt>
209 <dt id="ientry-idp46937707469104">cairo_ft_font_face_get_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize">cairo_ft_font_face_get_synthesize ()</a>
210 </dt>
211 <dt id="ientry-idp46937707488816">cairo_ft_font_face_set_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize">cairo_ft_font_face_set_synthesize ()</a>
212 </dt>
213 <dt id="ientry-idp46937707510784">cairo_ft_font_face_unset_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize">cairo_ft_font_face_unset_synthesize ()</a>
214 </dt>
215 <dt id="ientry-idp46937707979104">cairo_ft_font_options_substitute, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute">cairo_ft_font_options_substitute ()</a>
216 </dt>
217 <dt id="ientry-idp46937706960304">cairo_ft_scaled_font_lock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face">cairo_ft_scaled_font_lock_face ()</a>
218 </dt>
219 <dt id="ientry-idp46937707447504">cairo_ft_scaled_font_unlock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face">cairo_ft_scaled_font_unlock_face ()</a>
220 </dt>
221 <dt id="ientry-idp46937708785824">cairo_ft_synthesize_t, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t">enum cairo_ft_synthesize_t</a>
133 <dt id="ientry-idp46842958401184">cairo_fill, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill">cairo_fill ()</a>
134 </dt>
135 <dt id="ientry-idp46842958442368">cairo_fill_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-extents">cairo_fill_extents ()</a>
136 </dt>
137 <dt id="ientry-idp46842958420944">cairo_fill_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-preserve">cairo_fill_preserve ()</a>
138 </dt>
139 <dt id="ientry-idp46842958936192">cairo_fill_rule_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-rule-t">enum cairo_fill_rule_t</a>
140 </dt>
141 <dt id="ientry-idp46842961925136">cairo_filter_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-filter-t">enum cairo_filter_t</a>
142 </dt>
143 <dt id="ientry-idp46842962440384">cairo_font_extents, <a class="indexterm" href="cairo-text.html#cairo-font-extents">cairo_font_extents ()</a>
144 </dt>
145 <dt id="ientry-idp46842964613856">cairo_font_extents_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t">cairo_font_extents_t</a>
146 </dt>
147 <dt id="ientry-idp46842962917824">cairo_font_face_destroy, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy">cairo_font_face_destroy ()</a>
148 </dt>
149 <dt id="ientry-idp46842962977744">cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count">cairo_font_face_get_reference_count ()</a>
150 </dt>
151 <dt id="ientry-idp46842962958192">cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type">cairo_font_face_get_type ()</a>
152 </dt>
153 <dt id="ientry-idp46842963034720">cairo_font_face_get_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data">cairo_font_face_get_user_data ()</a>
154 </dt>
155 <dt id="ientry-idp46842960668736">cairo_font_face_reference, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-reference">cairo_font_face_reference ()</a>
156 </dt>
157 <dt id="ientry-idp46842962997872">cairo_font_face_set_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data">cairo_font_face_set_user_data ()</a>
158 </dt>
159 <dt id="ientry-idp46842962937264">cairo_font_face_status, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-status">cairo_font_face_status ()</a>
160 </dt>
161 <dt id="ientry-idp46842963062960">cairo_font_face_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>
162 </dt>
163 <dt id="ientry-idp46842964142192">cairo_font_options_copy, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-copy">cairo_font_options_copy ()</a>
164 </dt>
165 <dt id="ientry-idp46842964129536">cairo_font_options_create, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-create">cairo_font_options_create ()</a>
166 </dt>
167 <dt id="ientry-idp46842964165040">cairo_font_options_destroy, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-destroy">cairo_font_options_destroy ()</a>
168 </dt>
169 <dt id="ientry-idp46842964251584">cairo_font_options_equal, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-equal">cairo_font_options_equal ()</a>
170 </dt>
171 <dt id="ientry-idp46842964298176">cairo_font_options_get_antialias, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-antialias">cairo_font_options_get_antialias ()</a>
172 </dt>
173 <dt id="ientry-idp46842963563632">cairo_font_options_get_hint_metrics, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics">cairo_font_options_get_hint_metrics ()</a>
174 </dt>
175 <dt id="ientry-idp46842963522400">cairo_font_options_get_hint_style, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-style">cairo_font_options_get_hint_style ()</a>
176 </dt>
177 <dt id="ientry-idp46842964339520">cairo_font_options_get_subpixel_order, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-subpixel-order">cairo_font_options_get_subpixel_order ()</a>
178 </dt>
179 <dt id="ientry-idp46842964231536">cairo_font_options_hash, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-hash">cairo_font_options_hash ()</a>
180 </dt>
181 <dt id="ientry-idp46842964205872">cairo_font_options_merge, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-merge">cairo_font_options_merge ()</a>
182 </dt>
183 <dt id="ientry-idp46842964277408">cairo_font_options_set_antialias, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-antialias">cairo_font_options_set_antialias ()</a>
184 </dt>
185 <dt id="ientry-idp46842963541984">cairo_font_options_set_hint_metrics, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-metrics">cairo_font_options_set_hint_metrics ()</a>
186 </dt>
187 <dt id="ientry-idp46842963500720">cairo_font_options_set_hint_style, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-style">cairo_font_options_set_hint_style ()</a>
188 </dt>
189 <dt id="ientry-idp46842964316832">cairo_font_options_set_subpixel_order, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-subpixel-order">cairo_font_options_set_subpixel_order ()</a>
190 </dt>
191 <dt id="ientry-idp46842964185088">cairo_font_options_status, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-status">cairo_font_options_status ()</a>
192 </dt>
193 <dt id="ientry-idp46842963584736">cairo_font_options_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-t">cairo_font_options_t</a>
194 </dt>
195 <dt id="ientry-idp46842962698160">cairo_font_slant_t, <a class="indexterm" href="cairo-text.html#cairo-font-slant-t">enum cairo_font_slant_t</a>
196 </dt>
197 <dt id="ientry-idp46842963079632">cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-type-t">enum cairo_font_type_t</a>
198 </dt>
199 <dt id="ientry-idp46842962716032">cairo_font_weight_t, <a class="indexterm" href="cairo-text.html#cairo-font-weight-t">enum cairo_font_weight_t</a>
200 </dt>
201 <dt id="ientry-idp46842960192640">cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width ()</a>
202 </dt>
203 <dt id="ientry-idp46842965260464">cairo_format_t, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-t">enum cairo_format_t</a>
204 </dt>
205 <dt id="ientry-idp46842963861888">cairo_ft_font_face_create_for_ft_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face">cairo_ft_font_face_create_for_ft_face ()</a>
206 </dt>
207 <dt id="ientry-idp46842963989008">cairo_ft_font_face_create_for_pattern, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern">cairo_ft_font_face_create_for_pattern ()</a>
208 </dt>
209 <dt id="ientry-idp46842963849904">cairo_ft_font_face_get_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize">cairo_ft_font_face_get_synthesize ()</a>
210 </dt>
211 <dt id="ientry-idp46842964702480">cairo_ft_font_face_set_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize">cairo_ft_font_face_set_synthesize ()</a>
212 </dt>
213 <dt id="ientry-idp46842964724448">cairo_ft_font_face_unset_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize">cairo_ft_font_face_unset_synthesize ()</a>
214 </dt>
215 <dt id="ientry-idp46842964029440">cairo_ft_font_options_substitute, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute">cairo_ft_font_options_substitute ()</a>
216 </dt>
217 <dt id="ientry-idp46842963794416">cairo_ft_scaled_font_lock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face">cairo_ft_scaled_font_lock_face ()</a>
218 </dt>
219 <dt id="ientry-idp46842963828304">cairo_ft_scaled_font_unlock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face">cairo_ft_scaled_font_unlock_face ()</a>
220 </dt>
221 <dt id="ientry-idp46842964760544">cairo_ft_synthesize_t, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t">enum cairo_ft_synthesize_t</a>
222222 </dt>
223223 </dl>
224224 </div>
225225 <div class="indexdiv">
226226 <h3>G</h3>
227227 <dl>
228 <dt id="ientry-idp46937702145072">cairo_get_antialias, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-antialias">cairo_get_antialias ()</a>
229 </dt>
230 <dt id="ientry-idp46937699962976">cairo_get_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-get-current-point">cairo_get_current_point ()</a>
231 </dt>
232 <dt id="ientry-idp46937702228448">cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash">cairo_get_dash ()</a>
233 </dt>
234 <dt id="ientry-idp46937702206016">cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash-count">cairo_get_dash_count ()</a>
235 </dt>
236 <dt id="ientry-idp46937702284432">cairo_get_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-fill-rule">cairo_get_fill_rule ()</a>
237 </dt>
238 <dt id="ientry-idp46937706274432">cairo_get_font_face, <a class="indexterm" href="cairo-text.html#cairo-get-font-face">cairo_get_font_face ()</a>
239 </dt>
240 <dt id="ientry-idp46937705749296">cairo_get_font_matrix, <a class="indexterm" href="cairo-text.html#cairo-get-font-matrix">cairo_get_font_matrix ()</a>
241 </dt>
242 <dt id="ientry-idp46937705795408">cairo_get_font_options, <a class="indexterm" href="cairo-text.html#cairo-get-font-options">cairo_get_font_options ()</a>
243 </dt>
244 <dt id="ientry-idp46937701941776">cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-group-target">cairo_get_group_target ()</a>
245 </dt>
246 <dt id="ientry-idp46937702330368">cairo_get_line_cap, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-cap">cairo_get_line_cap ()</a>
247 </dt>
248 <dt id="ientry-idp46937702376224">cairo_get_line_join, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-join">cairo_get_line_join ()</a>
249 </dt>
250 <dt id="ientry-idp46937702425136">cairo_get_line_width, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-width">cairo_get_line_width ()</a>
251 </dt>
252 <dt id="ientry-idp46937695817760">cairo_get_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-get-matrix">cairo_get_matrix ()</a>
253 </dt>
254 <dt id="ientry-idp46937702475040">cairo_get_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-miter-limit">cairo_get_miter_limit ()</a>
255 </dt>
256 <dt id="ientry-idp46937702518336">cairo_get_operator, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-operator">cairo_get_operator ()</a>
257 </dt>
258 <dt id="ientry-idp46937703149856">cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-reference-count">cairo_get_reference_count ()</a>
259 </dt>
260 <dt id="ientry-idp46937706321456">cairo_get_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-get-scaled-font">cairo_get_scaled_font ()</a>
261 </dt>
262 <dt id="ientry-idp46937702101184">cairo_get_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-source">cairo_get_source ()</a>
263 </dt>
264 <dt id="ientry-idp46937701806976">cairo_get_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-target">cairo_get_target ()</a>
265 </dt>
266 <dt id="ientry-idp46937702559456">cairo_get_tolerance, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-tolerance">cairo_get_tolerance ()</a>
267 </dt>
268 <dt id="ientry-idp46937703209232">cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-user-data">cairo_get_user_data ()</a>
269 </dt>
270 <dt id="ientry-idp46937706593552">cairo_glyph_allocate, <a class="indexterm" href="cairo-text.html#cairo-glyph-allocate">cairo_glyph_allocate ()</a>
271 </dt>
272 <dt id="ientry-idp46937706487552">cairo_glyph_extents, <a class="indexterm" href="cairo-text.html#cairo-glyph-extents">cairo_glyph_extents ()</a>
273 </dt>
274 <dt id="ientry-idp46937706615344">cairo_glyph_free, <a class="indexterm" href="cairo-text.html#cairo-glyph-free">cairo_glyph_free ()</a>
275 </dt>
276 <dt id="ientry-idp46937700065824">cairo_glyph_path, <a class="indexterm" href="cairo-Paths.html#cairo-glyph-path">cairo_glyph_path ()</a>
277 </dt>
278 <dt id="ientry-idp46937706674448">cairo_glyph_t, <a class="indexterm" href="cairo-text.html#cairo-glyph-t">cairo_glyph_t</a>
228 <dt id="ientry-idp46842957786816">cairo_get_antialias, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-antialias">cairo_get_antialias ()</a>
229 </dt>
230 <dt id="ientry-idp46842955503488">cairo_get_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-get-current-point">cairo_get_current_point ()</a>
231 </dt>
232 <dt id="ientry-idp46842957870000">cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash">cairo_get_dash ()</a>
233 </dt>
234 <dt id="ientry-idp46842957847632">cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash-count">cairo_get_dash_count ()</a>
235 </dt>
236 <dt id="ientry-idp46842957925984">cairo_get_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-fill-rule">cairo_get_fill_rule ()</a>
237 </dt>
238 <dt id="ientry-idp46842962272496">cairo_get_font_face, <a class="indexterm" href="cairo-text.html#cairo-get-font-face">cairo_get_font_face ()</a>
239 </dt>
240 <dt id="ientry-idp46842960396240">cairo_get_font_matrix, <a class="indexterm" href="cairo-text.html#cairo-get-font-matrix">cairo_get_font_matrix ()</a>
241 </dt>
242 <dt id="ientry-idp46842960442352">cairo_get_font_options, <a class="indexterm" href="cairo-text.html#cairo-get-font-options">cairo_get_font_options ()</a>
243 </dt>
244 <dt id="ientry-idp46842957583472">cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-group-target">cairo_get_group_target ()</a>
245 </dt>
246 <dt id="ientry-idp46842957971920">cairo_get_line_cap, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-cap">cairo_get_line_cap ()</a>
247 </dt>
248 <dt id="ientry-idp46842958017840">cairo_get_line_join, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-join">cairo_get_line_join ()</a>
249 </dt>
250 <dt id="ientry-idp46842958066832">cairo_get_line_width, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-width">cairo_get_line_width ()</a>
251 </dt>
252 <dt id="ientry-idp46842951828992">cairo_get_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-get-matrix">cairo_get_matrix ()</a>
253 </dt>
254 <dt id="ientry-idp46842958116736">cairo_get_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-miter-limit">cairo_get_miter_limit ()</a>
255 </dt>
256 <dt id="ientry-idp46842958160096">cairo_get_operator, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-operator">cairo_get_operator ()</a>
257 </dt>
258 <dt id="ientry-idp46842958791232">cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-reference-count">cairo_get_reference_count ()</a>
259 </dt>
260 <dt id="ientry-idp46842962319520">cairo_get_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-get-scaled-font">cairo_get_scaled_font ()</a>
261 </dt>
262 <dt id="ientry-idp46842957742928">cairo_get_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-source">cairo_get_source ()</a>
263 </dt>
264 <dt id="ientry-idp46842957448784">cairo_get_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-target">cairo_get_target ()</a>
265 </dt>
266 <dt id="ientry-idp46842958201088">cairo_get_tolerance, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-tolerance">cairo_get_tolerance ()</a>
267 </dt>
268 <dt id="ientry-idp46842958850608">cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-user-data">cairo_get_user_data ()</a>
269 </dt>
270 <dt id="ientry-idp46842962591616">cairo_glyph_allocate, <a class="indexterm" href="cairo-text.html#cairo-glyph-allocate">cairo_glyph_allocate ()</a>
271 </dt>
272 <dt id="ientry-idp46842962485616">cairo_glyph_extents, <a class="indexterm" href="cairo-text.html#cairo-glyph-extents">cairo_glyph_extents ()</a>
273 </dt>
274 <dt id="ientry-idp46842962613408">cairo_glyph_free, <a class="indexterm" href="cairo-text.html#cairo-glyph-free">cairo_glyph_free ()</a>
275 </dt>
276 <dt id="ientry-idp46842951128880">cairo_glyph_path, <a class="indexterm" href="cairo-Paths.html#cairo-glyph-path">cairo_glyph_path ()</a>
277 </dt>
278 <dt id="ientry-idp46842962672512">cairo_glyph_t, <a class="indexterm" href="cairo-text.html#cairo-glyph-t">cairo_glyph_t</a>
279279 </dt>
280280 </dl>
281281 </div>
282282 <div class="indexdiv">
283283 <h3>H</h3>
284284 <dl>
285 <dt id="ientry-idp46937699943808">cairo_has_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-has-current-point">cairo_has_current_point ()</a>
286 </dt>
287 <dt id="ientry-idp46937708779680">CAIRO_HAS_FC_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS">CAIRO_HAS_FC_FONT</a>
288 </dt>
289 <dt id="ientry-idp46937708773632">CAIRO_HAS_FT_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS">CAIRO_HAS_FT_FONT</a>
290 </dt>
291 <dt id="ientry-idp46937710911376">CAIRO_HAS_IMAGE_SURFACE, <a class="indexterm" href="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS">CAIRO_HAS_IMAGE_SURFACE</a>
292 </dt>
293 <dt id="ientry-idp46937712739152">CAIRO_HAS_MIME_SURFACE, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS">CAIRO_HAS_MIME_SURFACE</a>
294 </dt>
295 <dt id="ientry-idp46937711193376">CAIRO_HAS_PDF_SURFACE, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</a>
296 </dt>
297 <dt id="ientry-idp46937711749200">CAIRO_HAS_PNG_FUNCTIONS, <a class="indexterm" href="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS">CAIRO_HAS_PNG_FUNCTIONS</a>
298 </dt>
299 <dt id="ientry-idp46937711919536">CAIRO_HAS_PS_SURFACE, <a class="indexterm" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</a>
300 </dt>
301 <dt id="ientry-idp46937707895232">CAIRO_HAS_QUARTZ_FONT, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS">CAIRO_HAS_QUARTZ_FONT</a>
302 </dt>
303 <dt id="ientry-idp46937711817488">CAIRO_HAS_QUARTZ_SURFACE, <a class="indexterm" href="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS">CAIRO_HAS_QUARTZ_SURFACE</a>
304 </dt>
305 <dt id="ientry-idp46937695592704">CAIRO_HAS_RECORDING_SURFACE, <a class="indexterm" href="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS">CAIRO_HAS_RECORDING_SURFACE</a>
306 </dt>
307 <dt id="ientry-idp46937713846016">CAIRO_HAS_SCRIPT_SURFACE, <a class="indexterm" href="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS">CAIRO_HAS_SCRIPT_SURFACE</a>
308 </dt>
309 <dt id="ientry-idp46937713089584">CAIRO_HAS_SVG_SURFACE, <a class="indexterm" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</a>
310 </dt>
311 <dt id="ientry-idp46937710602736">CAIRO_HAS_USER_FONT, <a class="indexterm" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS">CAIRO_HAS_USER_FONT</a>
312 </dt>
313 <dt id="ientry-idp46937708993680">CAIRO_HAS_WIN32_FONT, <a class="indexterm" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</a>
314 </dt>
315 <dt id="ientry-idp46937712981792">CAIRO_HAS_WIN32_SURFACE, <a class="indexterm" href="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS">CAIRO_HAS_WIN32_SURFACE</a>
316 </dt>
317 <dt id="ientry-idp46937714634192">CAIRO_HAS_XCB_SHM_FUNCTIONS, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SHM-FUNCTIONS:CAPS">CAIRO_HAS_XCB_SHM_FUNCTIONS</a>
318 </dt>
319 <dt id="ientry-idp46937714629104">CAIRO_HAS_XCB_SURFACE, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS">CAIRO_HAS_XCB_SURFACE</a>
320 </dt>
321 <dt id="ientry-idp46937714651712">CAIRO_HAS_XLIB_SURFACE, <a class="indexterm" href="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS">CAIRO_HAS_XLIB_SURFACE</a>
322 </dt>
323 <dt id="ientry-idp46937714447616">CAIRO_HAS_XLIB_XRENDER_SURFACE, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS">CAIRO_HAS_XLIB_XRENDER_SURFACE</a>
324 </dt>
325 <dt id="ientry-idp46937708289600">cairo_hint_metrics_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t">enum cairo_hint_metrics_t</a>
326 </dt>
327 <dt id="ientry-idp46937708261408">cairo_hint_style_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-hint-style-t">enum cairo_hint_style_t</a>
285 <dt id="ientry-idp46842955484320">cairo_has_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-has-current-point">cairo_has_current_point ()</a>
286 </dt>
287 <dt id="ientry-idp46842964754400">CAIRO_HAS_FC_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS">CAIRO_HAS_FC_FONT</a>
288 </dt>
289 <dt id="ientry-idp46842964748352">CAIRO_HAS_FT_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS">CAIRO_HAS_FT_FONT</a>
290 </dt>
291 <dt id="ientry-idp46842967503488">CAIRO_HAS_IMAGE_SURFACE, <a class="indexterm" href="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS">CAIRO_HAS_IMAGE_SURFACE</a>
292 </dt>
293 <dt id="ientry-idp46842968213488">CAIRO_HAS_MIME_SURFACE, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS">CAIRO_HAS_MIME_SURFACE</a>
294 </dt>
295 <dt id="ientry-idp46842968464576">CAIRO_HAS_PDF_SURFACE, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</a>
296 </dt>
297 <dt id="ientry-idp46842968559472">CAIRO_HAS_PNG_FUNCTIONS, <a class="indexterm" href="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS">CAIRO_HAS_PNG_FUNCTIONS</a>
298 </dt>
299 <dt id="ientry-idp46842969102848">CAIRO_HAS_PS_SURFACE, <a class="indexterm" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</a>
300 </dt>
301 <dt id="ientry-idp46842952743136">CAIRO_HAS_QUARTZ_FONT, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS">CAIRO_HAS_QUARTZ_FONT</a>
302 </dt>
303 <dt id="ientry-idp46842969523424">CAIRO_HAS_QUARTZ_SURFACE, <a class="indexterm" href="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS">CAIRO_HAS_QUARTZ_SURFACE</a>
304 </dt>
305 <dt id="ientry-idp46842952715024">CAIRO_HAS_RECORDING_SURFACE, <a class="indexterm" href="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS">CAIRO_HAS_RECORDING_SURFACE</a>
306 </dt>
307 <dt id="ientry-idp46842970896448">CAIRO_HAS_SCRIPT_SURFACE, <a class="indexterm" href="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS">CAIRO_HAS_SCRIPT_SURFACE</a>
308 </dt>
309 <dt id="ientry-idp46842969356496">CAIRO_HAS_SVG_SURFACE, <a class="indexterm" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</a>
310 </dt>
311 <dt id="ientry-idp46842966561056">CAIRO_HAS_USER_FONT, <a class="indexterm" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS">CAIRO_HAS_USER_FONT</a>
312 </dt>
313 <dt id="ientry-idp46842965230816">CAIRO_HAS_WIN32_FONT, <a class="indexterm" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</a>
314 </dt>
315 <dt id="ientry-idp46842968972848">CAIRO_HAS_WIN32_SURFACE, <a class="indexterm" href="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS">CAIRO_HAS_WIN32_SURFACE</a>
316 </dt>
317 <dt id="ientry-idp46842970194800">CAIRO_HAS_XCB_SHM_FUNCTIONS, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SHM-FUNCTIONS:CAPS">CAIRO_HAS_XCB_SHM_FUNCTIONS</a>
318 </dt>
319 <dt id="ientry-idp46842970189712">CAIRO_HAS_XCB_SURFACE, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS">CAIRO_HAS_XCB_SURFACE</a>
320 </dt>
321 <dt id="ientry-idp46842970604256">CAIRO_HAS_XLIB_SURFACE, <a class="indexterm" href="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS">CAIRO_HAS_XLIB_SURFACE</a>
322 </dt>
323 <dt id="ientry-idp46842970092000">CAIRO_HAS_XLIB_XRENDER_SURFACE, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS">CAIRO_HAS_XLIB_XRENDER_SURFACE</a>
324 </dt>
325 <dt id="ientry-idp46842963659936">cairo_hint_metrics_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t">enum cairo_hint_metrics_t</a>
326 </dt>
327 <dt id="ientry-idp46842963631744">cairo_hint_style_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-hint-style-t">enum cairo_hint_style_t</a>
328328 </dt>
329329 </dl>
330330 </div>
331331 <div class="indexdiv">
332332 <h3>I</h3>
333333 <dl>
334 <dt id="ientry-idp46937701157264">cairo_identity_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-identity-matrix">cairo_identity_matrix ()</a>
335 </dt>
336 <dt id="ientry-idp46937710254752">cairo_image_surface_create, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-create">cairo_image_surface_create ()</a>
337 </dt>
338 <dt id="ientry-idp46937710396400">cairo_image_surface_create_for_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data">cairo_image_surface_create_for_data ()</a>
339 </dt>
340 <dt id="ientry-idp46937710973392">cairo_image_surface_create_from_png, <a class="indexterm" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png">cairo_image_surface_create_from_png ()</a>
341 </dt>
342 <dt id="ientry-idp46937711300576">cairo_image_surface_create_from_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream">cairo_image_surface_create_from_png_stream ()</a>
343 </dt>
344 <dt id="ientry-idp46937710277296">cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data ()</a>
345 </dt>
346 <dt id="ientry-idp46937710301856">cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-format">cairo_image_surface_get_format ()</a>
347 </dt>
348 <dt id="ientry-idp46937710871552">cairo_image_surface_get_height, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-height">cairo_image_surface_get_height ()</a>
349 </dt>
350 <dt id="ientry-idp46937710890160">cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride ()</a>
351 </dt>
352 <dt id="ientry-idp46937710852960">cairo_image_surface_get_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-width">cairo_image_surface_get_width ()</a>
353 </dt>
354 <dt id="ientry-idp46937702665680">cairo_in_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-clip">cairo_in_clip ()</a>
355 </dt>
356 <dt id="ientry-idp46937702842128">cairo_in_fill, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-fill">cairo_in_fill ()</a>
357 </dt>
358 <dt id="ientry-idp46937703075664">cairo_in_stroke, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-stroke">cairo_in_stroke ()</a>
334 <dt id="ientry-idp46842952694912">cairo_identity_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-identity-matrix">cairo_identity_matrix ()</a>
335 </dt>
336 <dt id="ientry-idp46842966221152">cairo_image_surface_create, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-create">cairo_image_surface_create ()</a>
337 </dt>
338 <dt id="ientry-idp46842945717232">cairo_image_surface_create_for_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data">cairo_image_surface_create_for_data ()</a>
339 </dt>
340 <dt id="ientry-idp46842967405936">cairo_image_surface_create_from_png, <a class="indexterm" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png">cairo_image_surface_create_from_png ()</a>
341 </dt>
342 <dt id="ientry-idp46842965645120">cairo_image_surface_create_from_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream">cairo_image_surface_create_from_png_stream ()</a>
343 </dt>
344 <dt id="ientry-idp46842965682288">cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data ()</a>
345 </dt>
346 <dt id="ientry-idp46842960187392">cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-format">cairo_image_surface_get_format ()</a>
347 </dt>
348 <dt id="ientry-idp46842960206368">cairo_image_surface_get_height, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-height">cairo_image_surface_get_height ()</a>
349 </dt>
350 <dt id="ientry-idp46842963426352">cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride ()</a>
351 </dt>
352 <dt id="ientry-idp46842963440736">cairo_image_surface_get_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-width">cairo_image_surface_get_width ()</a>
353 </dt>
354 <dt id="ientry-idp46842958307248">cairo_in_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-clip">cairo_in_clip ()</a>
355 </dt>
356 <dt id="ientry-idp46842958483568">cairo_in_fill, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-fill">cairo_in_fill ()</a>
357 </dt>
358 <dt id="ientry-idp46842958717104">cairo_in_stroke, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-stroke">cairo_in_stroke ()</a>
359359 </dt>
360360 </dl>
361361 </div>
362362 <div class="indexdiv">
363363 <h3>L</h3>
364364 <dl>
365 <dt id="ientry-idp46937703316544">cairo_line_cap_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-line-cap-t">enum cairo_line_cap_t</a>
366 </dt>
367 <dt id="ientry-idp46937703339488">cairo_line_join_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-line-join-t">enum cairo_line_join_t</a>
368 </dt>
369 <dt id="ientry-idp46937695200016">cairo_line_to, <a class="indexterm" href="cairo-Paths.html#cairo-line-to">cairo_line_to ()</a>
365 <dt id="ientry-idp46842958957600">cairo_line_cap_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-line-cap-t">enum cairo_line_cap_t</a>
366 </dt>
367 <dt id="ientry-idp46842958980576">cairo_line_join_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-line-join-t">enum cairo_line_join_t</a>
368 </dt>
369 <dt id="ientry-idp46842951039040">cairo_line_to, <a class="indexterm" href="cairo-Paths.html#cairo-line-to">cairo_line_to ()</a>
370370 </dt>
371371 </dl>
372372 </div>
373373 <div class="indexdiv">
374374 <h3>M</h3>
375375 <dl>
376 <dt id="ientry-idp46937702873024">cairo_mask, <a class="indexterm" href="cairo-cairo-t.html#cairo-mask">cairo_mask ()</a>
377 </dt>
378 <dt id="ientry-idp46937702895296">cairo_mask_surface, <a class="indexterm" href="cairo-cairo-t.html#cairo-mask-surface">cairo_mask_surface ()</a>
379 </dt>
380 <dt id="ientry-idp46937714769920">cairo_matrix_init, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init">cairo_matrix_init ()</a>
381 </dt>
382 <dt id="ientry-idp46937714815008">cairo_matrix_init_identity, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-identity">cairo_matrix_init_identity ()</a>
383 </dt>
384 <dt id="ientry-idp46937714885952">cairo_matrix_init_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate">cairo_matrix_init_rotate ()</a>
385 </dt>
386 <dt id="ientry-idp46937714859280">cairo_matrix_init_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-scale">cairo_matrix_init_scale ()</a>
387 </dt>
388 <dt id="ientry-idp46937714832656">cairo_matrix_init_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-translate">cairo_matrix_init_translate ()</a>
389 </dt>
390 <dt id="ientry-idp46937714987376">cairo_matrix_invert, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-invert">cairo_matrix_invert ()</a>
391 </dt>
392 <dt id="ientry-idp46937715319328">cairo_matrix_multiply, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-multiply">cairo_matrix_multiply ()</a>
393 </dt>
394 <dt id="ientry-idp46937714964368">cairo_matrix_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-rotate">cairo_matrix_rotate ()</a>
395 </dt>
396 <dt id="ientry-idp46937714936384">cairo_matrix_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-scale">cairo_matrix_scale ()</a>
397 </dt>
398 <dt id="ientry-idp46937715407392">cairo_matrix_t, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a>
399 </dt>
400 <dt id="ientry-idp46937715347856">cairo_matrix_transform_distance, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance">cairo_matrix_transform_distance ()</a>
401 </dt>
402 <dt id="ientry-idp46937715382384">cairo_matrix_transform_point, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-point">cairo_matrix_transform_point ()</a>
403 </dt>
404 <dt id="ientry-idp46937714908336">cairo_matrix_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-translate">cairo_matrix_translate ()</a>
405 </dt>
406 <dt id="ientry-idp46937704651344">cairo_mesh_pattern_begin_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch ()</a>
407 </dt>
408 <dt id="ientry-idp46937704775056">cairo_mesh_pattern_curve_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to ()</a>
409 </dt>
410 <dt id="ientry-idp46937704679920">cairo_mesh_pattern_end_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch ()</a>
411 </dt>
412 <dt id="ientry-idp46937705025168">cairo_mesh_pattern_get_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point">cairo_mesh_pattern_get_control_point ()</a>
413 </dt>
414 <dt id="ientry-idp46937705074304">cairo_mesh_pattern_get_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba">cairo_mesh_pattern_get_corner_color_rgba ()</a>
415 </dt>
416 <dt id="ientry-idp46937704965024">cairo_mesh_pattern_get_patch_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count">cairo_mesh_pattern_get_patch_count ()</a>
417 </dt>
418 <dt id="ientry-idp46937704993840">cairo_mesh_pattern_get_path, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path">cairo_mesh_pattern_get_path ()</a>
419 </dt>
420 <dt id="ientry-idp46937704737168">cairo_mesh_pattern_line_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to ()</a>
421 </dt>
422 <dt id="ientry-idp46937704704640">cairo_mesh_pattern_move_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to ()</a>
423 </dt>
424 <dt id="ientry-idp46937704831328">cairo_mesh_pattern_set_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point">cairo_mesh_pattern_set_control_point ()</a>
425 </dt>
426 <dt id="ientry-idp46937704871024">cairo_mesh_pattern_set_corner_color_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb ()</a>
427 </dt>
428 <dt id="ientry-idp46937704916096">cairo_mesh_pattern_set_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba">cairo_mesh_pattern_set_corner_color_rgba ()</a>
429 </dt>
430 <dt id="ientry-idp46937712743856">CAIRO_MIME_TYPE_JBIG2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</a>
431 </dt>
432 <dt id="ientry-idp46937712750080">CAIRO_MIME_TYPE_JBIG2_GLOBAL, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a>
433 </dt>
434 <dt id="ientry-idp46937712756400">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a>
435 </dt>
436 <dt id="ientry-idp46937712762720">CAIRO_MIME_TYPE_JP2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS">CAIRO_MIME_TYPE_JP2</a>
437 </dt>
438 <dt id="ientry-idp46937712768976">CAIRO_MIME_TYPE_JPEG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS">CAIRO_MIME_TYPE_JPEG</a>
439 </dt>
440 <dt id="ientry-idp46937712775216">CAIRO_MIME_TYPE_PNG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS">CAIRO_MIME_TYPE_PNG</a>
441 </dt>
442 <dt id="ientry-idp46937712787552">CAIRO_MIME_TYPE_UNIQUE_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS">CAIRO_MIME_TYPE_UNIQUE_ID</a>
443 </dt>
444 <dt id="ientry-idp46937712781440">CAIRO_MIME_TYPE_URI, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS">CAIRO_MIME_TYPE_URI</a>
445 </dt>
446 <dt id="ientry-idp46937700006288">cairo_move_to, <a class="indexterm" href="cairo-Paths.html#cairo-move-to">cairo_move_to ()</a>
376 <dt id="ientry-idp46842958514400">cairo_mask, <a class="indexterm" href="cairo-cairo-t.html#cairo-mask">cairo_mask ()</a>
377 </dt>
378 <dt id="ientry-idp46842958536736">cairo_mask_surface, <a class="indexterm" href="cairo-cairo-t.html#cairo-mask-surface">cairo_mask_surface ()</a>
379 </dt>
380 <dt id="ientry-idp46842970934800">cairo_matrix_init, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init">cairo_matrix_init ()</a>
381 </dt>
382 <dt id="ientry-idp46842970979888">cairo_matrix_init_identity, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-identity">cairo_matrix_init_identity ()</a>
383 </dt>
384 <dt id="ientry-idp46842971050832">cairo_matrix_init_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate">cairo_matrix_init_rotate ()</a>
385 </dt>
386 <dt id="ientry-idp46842971024160">cairo_matrix_init_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-scale">cairo_matrix_init_scale ()</a>
387 </dt>
388 <dt id="ientry-idp46842970997536">cairo_matrix_init_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-translate">cairo_matrix_init_translate ()</a>
389 </dt>
390 <dt id="ientry-idp46842971152256">cairo_matrix_invert, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-invert">cairo_matrix_invert ()</a>
391 </dt>
392 <dt id="ientry-idp46842971353920">cairo_matrix_multiply, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-multiply">cairo_matrix_multiply ()</a>
393 </dt>
394 <dt id="ientry-idp46842971129248">cairo_matrix_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-rotate">cairo_matrix_rotate ()</a>
395 </dt>
396 <dt id="ientry-idp46842971101264">cairo_matrix_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-scale">cairo_matrix_scale ()</a>
397 </dt>
398 <dt id="ientry-idp46842971441984">cairo_matrix_t, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a>
399 </dt>
400 <dt id="ientry-idp46842971382448">cairo_matrix_transform_distance, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance">cairo_matrix_transform_distance ()</a>
401 </dt>
402 <dt id="ientry-idp46842971416976">cairo_matrix_transform_point, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-point">cairo_matrix_transform_point ()</a>
403 </dt>
404 <dt id="ientry-idp46842971073216">cairo_matrix_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-translate">cairo_matrix_translate ()</a>
405 </dt>
406 <dt id="ientry-idp46842961074000">cairo_mesh_pattern_begin_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch ()</a>
407 </dt>
408 <dt id="ientry-idp46842961197696">cairo_mesh_pattern_curve_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to ()</a>
409 </dt>
410 <dt id="ientry-idp46842961102576">cairo_mesh_pattern_end_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch ()</a>
411 </dt>
412 <dt id="ientry-idp46842961447888">cairo_mesh_pattern_get_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point">cairo_mesh_pattern_get_control_point ()</a>
413 </dt>
414 <dt id="ientry-idp46842961496960">cairo_mesh_pattern_get_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba">cairo_mesh_pattern_get_corner_color_rgba ()</a>
415 </dt>
416 <dt id="ientry-idp46842961387664">cairo_mesh_pattern_get_patch_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count">cairo_mesh_pattern_get_patch_count ()</a>
417 </dt>
418 <dt id="ientry-idp46842961416544">cairo_mesh_pattern_get_path, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path">cairo_mesh_pattern_get_path ()</a>
419 </dt>
420 <dt id="ientry-idp46842961159808">cairo_mesh_pattern_line_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to ()</a>
421 </dt>
422 <dt id="ientry-idp46842961127232">cairo_mesh_pattern_move_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to ()</a>
423 </dt>
424 <dt id="ientry-idp46842961253968">cairo_mesh_pattern_set_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point">cairo_mesh_pattern_set_control_point ()</a>
425 </dt>
426 <dt id="ientry-idp46842961293664">cairo_mesh_pattern_set_corner_color_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb ()</a>
427 </dt>
428 <dt id="ientry-idp46842961338736">cairo_mesh_pattern_set_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba">cairo_mesh_pattern_set_corner_color_rgba ()</a>
429 </dt>
430 <dt id="ientry-idp46842968218160">CAIRO_MIME_TYPE_CCITT_FAX, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS">CAIRO_MIME_TYPE_CCITT_FAX</a>
431 </dt>
432 <dt id="ientry-idp46842968224400">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</a>
433 </dt>
434 <dt id="ientry-idp46842968231392">CAIRO_MIME_TYPE_EPS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS">CAIRO_MIME_TYPE_EPS</a>
435 </dt>
436 <dt id="ientry-idp46842968238160">CAIRO_MIME_TYPE_EPS_PARAMS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS">CAIRO_MIME_TYPE_EPS_PARAMS</a>
437 </dt>
438 <dt id="ientry-idp46842968245168">CAIRO_MIME_TYPE_JBIG2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</a>
439 </dt>
440 <dt id="ientry-idp46842968251328">CAIRO_MIME_TYPE_JBIG2_GLOBAL, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a>
441 </dt>
442 <dt id="ientry-idp46842968257648">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a>
443 </dt>
444 <dt id="ientry-idp46842968263968">CAIRO_MIME_TYPE_JP2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS">CAIRO_MIME_TYPE_JP2</a>
445 </dt>
446 <dt id="ientry-idp46842968270224">CAIRO_MIME_TYPE_JPEG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS">CAIRO_MIME_TYPE_JPEG</a>
447 </dt>
448 <dt id="ientry-idp46842968276400">CAIRO_MIME_TYPE_PNG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS">CAIRO_MIME_TYPE_PNG</a>
449 </dt>
450 <dt id="ientry-idp46842968288672">CAIRO_MIME_TYPE_UNIQUE_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS">CAIRO_MIME_TYPE_UNIQUE_ID</a>
451 </dt>
452 <dt id="ientry-idp46842968282560">CAIRO_MIME_TYPE_URI, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS">CAIRO_MIME_TYPE_URI</a>
453 </dt>
454 <dt id="ientry-idp46842951069344">cairo_move_to, <a class="indexterm" href="cairo-Paths.html#cairo-move-to">cairo_move_to ()</a>
447455 </dt>
448456 </dl>
449457 </div>
450458 <div class="indexdiv">
451459 <h3>N</h3>
452460 <dl>
453 <dt id="ientry-idp46937694992368">cairo_new_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-path">cairo_new_path ()</a>
454 </dt>
455 <dt id="ientry-idp46937695008464">cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-sub-path">cairo_new_sub_path ()</a>
461 <dt id="ientry-idp46842955554016">cairo_new_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-path">cairo_new_path ()</a>
462 </dt>
463 <dt id="ientry-idp46842955570112">cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-sub-path">cairo_new_sub_path ()</a>
456464 </dt>
457465 </dl>
458466 </div>
459467 <div class="indexdiv">
460468 <h3>O</h3>
461 <dl><dt id="ientry-idp46937703363504">cairo_operator_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-operator-t">enum cairo_operator_t</a>
469 <dl><dt id="ientry-idp46842959004816">cairo_operator_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-operator-t">enum cairo_operator_t</a>
462470 </dt></dl>
463471 </div>
464472 <div class="indexdiv">
465473 <h3>P</h3>
466474 <dl>
467 <dt id="ientry-idp46937702926800">cairo_paint, <a class="indexterm" href="cairo-cairo-t.html#cairo-paint">cairo_paint ()</a>
468 </dt>
469 <dt id="ientry-idp46937702943152">cairo_paint_with_alpha, <a class="indexterm" href="cairo-cairo-t.html#cairo-paint-with-alpha">cairo_paint_with_alpha ()</a>
470 </dt>
471 <dt id="ientry-idp46937700324032">cairo_path_data_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-data-t">union cairo_path_data_t</a>
472 </dt>
473 <dt id="ientry-idp46937700343008">cairo_path_data_type_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-data-type-t">enum cairo_path_data_type_t</a>
474 </dt>
475 <dt id="ientry-idp46937699893984">cairo_path_destroy, <a class="indexterm" href="cairo-Paths.html#cairo-path-destroy">cairo_path_destroy ()</a>
476 </dt>
477 <dt id="ientry-idp46937700246736">cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#cairo-path-extents">cairo_path_extents ()</a>
478 </dt>
479 <dt id="ientry-idp46937700293024">cairo_path_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>
480 </dt>
481 <dt id="ientry-idp46937703639712">cairo_pattern_add_color_stop_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb">cairo_pattern_add_color_stop_rgb ()</a>
482 </dt>
483 <dt id="ientry-idp46937703676112">cairo_pattern_add_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba ()</a>
484 </dt>
485 <dt id="ientry-idp46937704402272">cairo_pattern_create_for_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface">cairo_pattern_create_for_surface ()</a>
486 </dt>
487 <dt id="ientry-idp46937704446208">cairo_pattern_create_linear, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-linear">cairo_pattern_create_linear ()</a>
488 </dt>
489 <dt id="ientry-idp46937704608320">cairo_pattern_create_mesh, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh">cairo_pattern_create_mesh ()</a>
490 </dt>
491 <dt id="ientry-idp46937704515856">cairo_pattern_create_radial, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-radial">cairo_pattern_create_radial ()</a>
492 </dt>
493 <dt id="ientry-idp46937705854368">cairo_pattern_create_raster_source, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-pattern-create-raster-source">cairo_pattern_create_raster_source ()</a>
494 </dt>
495 <dt id="ientry-idp46937704308832">cairo_pattern_create_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb">cairo_pattern_create_rgb ()</a>
496 </dt>
497 <dt id="ientry-idp46937704335600">cairo_pattern_create_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgba">cairo_pattern_create_rgba ()</a>
498 </dt>
499 <dt id="ientry-idp46937705158016">cairo_pattern_destroy, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy">cairo_pattern_destroy ()</a>
500 </dt>
501 <dt id="ientry-idp46937703716336">cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count">cairo_pattern_get_color_stop_count ()</a>
502 </dt>
503 <dt id="ientry-idp46937703742592">cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba">cairo_pattern_get_color_stop_rgba ()</a>
504 </dt>
505 <dt id="ientry-idp46937705228128">cairo_pattern_get_extend, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-extend">cairo_pattern_get_extend ()</a>
506 </dt>
507 <dt id="ientry-idp46937705276544">cairo_pattern_get_filter, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-filter">cairo_pattern_get_filter ()</a>
508 </dt>
509 <dt id="ientry-idp46937704479856">cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points">cairo_pattern_get_linear_points ()</a>
510 </dt>
511 <dt id="ientry-idp46937705324160">cairo_pattern_get_matrix, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix">cairo_pattern_get_matrix ()</a>
512 </dt>
513 <dt id="ientry-idp46937704557232">cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles">cairo_pattern_get_radial_circles ()</a>
514 </dt>
515 <dt id="ientry-idp46937705366448">cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count">cairo_pattern_get_reference_count ()</a>
516 </dt>
517 <dt id="ientry-idp46937704367056">cairo_pattern_get_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba">cairo_pattern_get_rgba ()</a>
518 </dt>
519 <dt id="ientry-idp46937704422096">cairo_pattern_get_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-surface">cairo_pattern_get_surface ()</a>
520 </dt>
521 <dt id="ientry-idp46937705345808">cairo_pattern_get_type, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type">cairo_pattern_get_type ()</a>
522 </dt>
523 <dt id="ientry-idp46937705426048">cairo_pattern_get_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data">cairo_pattern_get_user_data ()</a>
524 </dt>
525 <dt id="ientry-idp46937705133056">cairo_pattern_reference, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-reference">cairo_pattern_reference ()</a>
526 </dt>
527 <dt id="ientry-idp46937705202592">cairo_pattern_set_extend, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-extend">cairo_pattern_set_extend ()</a>
528 </dt>
529 <dt id="ientry-idp46937705248176">cairo_pattern_set_filter, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter">cairo_pattern_set_filter ()</a>
530 </dt>
531 <dt id="ientry-idp46937705296560">cairo_pattern_set_matrix, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix">cairo_pattern_set_matrix ()</a>
532 </dt>
533 <dt id="ientry-idp46937705387152">cairo_pattern_set_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data">cairo_pattern_set_user_data ()</a>
534 </dt>
535 <dt id="ientry-idp46937705177760">cairo_pattern_status, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-status">cairo_pattern_status ()</a>
536 </dt>
537 <dt id="ientry-idp46937705454896">cairo_pattern_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>
538 </dt>
539 <dt id="ientry-idp46937705538336">cairo_pattern_type_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t">enum cairo_pattern_type_t</a>
540 </dt>
541 <dt id="ientry-idp46937711008192">cairo_pdf_get_versions, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions">cairo_pdf_get_versions ()</a>
542 </dt>
543 <dt id="ientry-idp46937711229280">cairo_pdf_metadata_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t">enum cairo_pdf_metadata_t</a>
544 </dt>
545 <dt id="ientry-idp46937711206672">cairo_pdf_outline_flags_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t">enum cairo_pdf_outline_flags_t</a>
546 </dt>
547 <dt id="ientry-idp46937711199504">CAIRO_PDF_OUTLINE_ROOT, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS">CAIRO_PDF_OUTLINE_ROOT</a>
548 </dt>
549 <dt id="ientry-idp46937711078464">cairo_pdf_surface_add_outline, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline">cairo_pdf_surface_add_outline ()</a>
550 </dt>
551 <dt id="ientry-idp46937708330992">cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create">cairo_pdf_surface_create ()</a>
552 </dt>
553 <dt id="ientry-idp46937708361408">cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream ()</a>
554 </dt>
555 <dt id="ientry-idp46937708399120">cairo_pdf_surface_restrict_to_version, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version">cairo_pdf_surface_restrict_to_version ()</a>
556 </dt>
557 <dt id="ientry-idp46937711117712">cairo_pdf_surface_set_metadata, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata">cairo_pdf_surface_set_metadata ()</a>
558 </dt>
559 <dt id="ientry-idp46937711146304">cairo_pdf_surface_set_page_label, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-page-label">cairo_pdf_surface_set_page_label ()</a>
560 </dt>
561 <dt id="ientry-idp46937711051104">cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">cairo_pdf_surface_set_size ()</a>
562 </dt>
563 <dt id="ientry-idp46937711167120">cairo_pdf_surface_set_thumbnail_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-thumbnail-size">cairo_pdf_surface_set_thumbnail_size ()</a>
564 </dt>
565 <dt id="ientry-idp46937711265200">cairo_pdf_version_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t">enum cairo_pdf_version_t</a>
566 </dt>
567 <dt id="ientry-idp46937711029312">cairo_pdf_version_to_string, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string">cairo_pdf_version_to_string ()</a>
568 </dt>
569 <dt id="ientry-idp46937701891440">cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group ()</a>
570 </dt>
571 <dt id="ientry-idp46937701917120">cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source ()</a>
572 </dt>
573 <dt id="ientry-idp46937711543024">cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels">cairo_ps_get_levels ()</a>
574 </dt>
575 <dt id="ientry-idp46937711925600">cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">enum cairo_ps_level_t</a>
576 </dt>
577 <dt id="ientry-idp46937711564112">cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string">cairo_ps_level_to_string ()</a>
578 </dt>
579 <dt id="ientry-idp46937711363344">cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create ()</a>
580 </dt>
581 <dt id="ientry-idp46937711479632">cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream ()</a>
582 </dt>
583 <dt id="ientry-idp46937711857488">cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup ()</a>
584 </dt>
585 <dt id="ientry-idp46937711657264">cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup ()</a>
586 </dt>
587 <dt id="ientry-idp46937711878576">cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment ()</a>
588 </dt>
589 <dt id="ientry-idp46937711610144">cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps">cairo_ps_surface_get_eps ()</a>
590 </dt>
591 <dt id="ientry-idp46937711520016">cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level">cairo_ps_surface_restrict_to_level ()</a>
592 </dt>
593 <dt id="ientry-idp46937711585936">cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps">cairo_ps_surface_set_eps ()</a>
594 </dt>
595 <dt id="ientry-idp46937711629904">cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">cairo_ps_surface_set_size ()</a>
596 </dt>
597 <dt id="ientry-idp46937701834704">cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group">cairo_push_group ()</a>
598 </dt>
599 <dt id="ientry-idp46937701865376">cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group-with-content">cairo_push_group_with_content ()</a>
475 <dt id="ientry-idp46842958568240">cairo_paint, <a class="indexterm" href="cairo-cairo-t.html#cairo-paint">cairo_paint ()</a>
476 </dt>
477 <dt id="ientry-idp46842958584592">cairo_paint_with_alpha, <a class="indexterm" href="cairo-cairo-t.html#cairo-paint-with-alpha">cairo_paint_with_alpha ()</a>
478 </dt>
479 <dt id="ientry-idp46842955864336">cairo_path_data_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-data-t">union cairo_path_data_t</a>
480 </dt>
481 <dt id="ientry-idp46842955883312">cairo_path_data_type_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-data-type-t">enum cairo_path_data_type_t</a>
482 </dt>
483 <dt id="ientry-idp46842955434496">cairo_path_destroy, <a class="indexterm" href="cairo-Paths.html#cairo-path-destroy">cairo_path_destroy ()</a>
484 </dt>
485 <dt id="ientry-idp46842955787040">cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#cairo-path-extents">cairo_path_extents ()</a>
486 </dt>
487 <dt id="ientry-idp46842955833328">cairo_path_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>
488 </dt>
489 <dt id="ientry-idp46842959281200">cairo_pattern_add_color_stop_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb">cairo_pattern_add_color_stop_rgb ()</a>
490 </dt>
491 <dt id="ientry-idp46842959317600">cairo_pattern_add_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba ()</a>
492 </dt>
493 <dt id="ientry-idp46842960820912">cairo_pattern_create_for_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface">cairo_pattern_create_for_surface ()</a>
494 </dt>
495 <dt id="ientry-idp46842960864848">cairo_pattern_create_linear, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-linear">cairo_pattern_create_linear ()</a>
496 </dt>
497 <dt id="ientry-idp46842961030912">cairo_pattern_create_mesh, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh">cairo_pattern_create_mesh ()</a>
498 </dt>
499 <dt id="ientry-idp46842960934336">cairo_pattern_create_radial, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-radial">cairo_pattern_create_radial ()</a>
500 </dt>
501 <dt id="ientry-idp46842962018304">cairo_pattern_create_raster_source, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-pattern-create-raster-source">cairo_pattern_create_raster_source ()</a>
502 </dt>
503 <dt id="ientry-idp46842960727472">cairo_pattern_create_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb">cairo_pattern_create_rgb ()</a>
504 </dt>
505 <dt id="ientry-idp46842960754240">cairo_pattern_create_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgba">cairo_pattern_create_rgba ()</a>
506 </dt>
507 <dt id="ientry-idp46842961580544">cairo_pattern_destroy, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy">cairo_pattern_destroy ()</a>
508 </dt>
509 <dt id="ientry-idp46842959357824">cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count">cairo_pattern_get_color_stop_count ()</a>
510 </dt>
511 <dt id="ientry-idp46842959384080">cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba">cairo_pattern_get_color_stop_rgba ()</a>
512 </dt>
513 <dt id="ientry-idp46842961650592">cairo_pattern_get_extend, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-extend">cairo_pattern_get_extend ()</a>
514 </dt>
515 <dt id="ientry-idp46842961698992">cairo_pattern_get_filter, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-filter">cairo_pattern_get_filter ()</a>
516 </dt>
517 <dt id="ientry-idp46842960898496">cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points">cairo_pattern_get_linear_points ()</a>
518 </dt>
519 <dt id="ientry-idp46842961746608">cairo_pattern_get_matrix, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix">cairo_pattern_get_matrix ()</a>
520 </dt>
521 <dt id="ientry-idp46842960979760">cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles">cairo_pattern_get_radial_circles ()</a>
522 </dt>
523 <dt id="ientry-idp46842961788832">cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count">cairo_pattern_get_reference_count ()</a>
524 </dt>
525 <dt id="ientry-idp46842960785696">cairo_pattern_get_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba">cairo_pattern_get_rgba ()</a>
526 </dt>
527 <dt id="ientry-idp46842960840736">cairo_pattern_get_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-surface">cairo_pattern_get_surface ()</a>
528 </dt>
529 <dt id="ientry-idp46842961768320">cairo_pattern_get_type, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type">cairo_pattern_get_type ()</a>
530 </dt>
531 <dt id="ientry-idp46842961848624">cairo_pattern_get_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data">cairo_pattern_get_user_data ()</a>
532 </dt>
533 <dt id="ientry-idp46842961555648">cairo_pattern_reference, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-reference">cairo_pattern_reference ()</a>
534 </dt>
535 <dt id="ientry-idp46842961625056">cairo_pattern_set_extend, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-extend">cairo_pattern_set_extend ()</a>
536 </dt>
537 <dt id="ientry-idp46842961670640">cairo_pattern_set_filter, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter">cairo_pattern_set_filter ()</a>
538 </dt>
539 <dt id="ientry-idp46842961719008">cairo_pattern_set_matrix, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix">cairo_pattern_set_matrix ()</a>
540 </dt>
541 <dt id="ientry-idp46842961809664">cairo_pattern_set_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data">cairo_pattern_set_user_data ()</a>
542 </dt>
543 <dt id="ientry-idp46842961600224">cairo_pattern_status, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-status">cairo_pattern_status ()</a>
544 </dt>
545 <dt id="ientry-idp46842961877472">cairo_pattern_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>
546 </dt>
547 <dt id="ientry-idp46842961961104">cairo_pattern_type_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t">enum cairo_pattern_type_t</a>
548 </dt>
549 <dt id="ientry-idp46842966984288">cairo_pdf_get_versions, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions">cairo_pdf_get_versions ()</a>
550 </dt>
551 <dt id="ientry-idp46842968495728">cairo_pdf_metadata_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t">enum cairo_pdf_metadata_t</a>
552 </dt>
553 <dt id="ientry-idp46842968476096">cairo_pdf_outline_flags_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t">enum cairo_pdf_outline_flags_t</a>
554 </dt>
555 <dt id="ientry-idp46842968469904">CAIRO_PDF_OUTLINE_ROOT, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS">CAIRO_PDF_OUTLINE_ROOT</a>
556 </dt>
557 <dt id="ientry-idp46842967054656">cairo_pdf_surface_add_outline, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline">cairo_pdf_surface_add_outline ()</a>
558 </dt>
559 <dt id="ientry-idp46842967472864">cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create">cairo_pdf_surface_create ()</a>
560 </dt>
561 <dt id="ientry-idp46842966923632">cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream ()</a>
562 </dt>
563 <dt id="ientry-idp46842966961344">cairo_pdf_surface_restrict_to_version, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version">cairo_pdf_surface_restrict_to_version ()</a>
564 </dt>
565 <dt id="ientry-idp46842967094000">cairo_pdf_surface_set_metadata, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata">cairo_pdf_surface_set_metadata ()</a>
566 </dt>
567 <dt id="ientry-idp46842967122592">cairo_pdf_surface_set_page_label, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-page-label">cairo_pdf_surface_set_page_label ()</a>
568 </dt>
569 <dt id="ientry-idp46842967027200">cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">cairo_pdf_surface_set_size ()</a>
570 </dt>
571 <dt id="ientry-idp46842967143408">cairo_pdf_surface_set_thumbnail_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-thumbnail-size">cairo_pdf_surface_set_thumbnail_size ()</a>
572 </dt>
573 <dt id="ientry-idp46842968526672">cairo_pdf_version_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t">enum cairo_pdf_version_t</a>
574 </dt>
575 <dt id="ientry-idp46842967005408">cairo_pdf_version_to_string, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string">cairo_pdf_version_to_string ()</a>
576 </dt>
577 <dt id="ientry-idp46842957533136">cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group ()</a>
578 </dt>
579 <dt id="ientry-idp46842957558816">cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source ()</a>
580 </dt>
581 <dt id="ientry-idp46842968688512">cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels">cairo_ps_get_levels ()</a>
582 </dt>
583 <dt id="ientry-idp46842969108192">cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">enum cairo_ps_level_t</a>
584 </dt>
585 <dt id="ientry-idp46842968709600">cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string">cairo_ps_level_to_string ()</a>
586 </dt>
587 <dt id="ientry-idp46842968591920">cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create ()</a>
588 </dt>
589 <dt id="ientry-idp46842968625120">cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream ()</a>
590 </dt>
591 <dt id="ientry-idp46842969047776">cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup ()</a>
592 </dt>
593 <dt id="ientry-idp46842968802752">cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup ()</a>
594 </dt>
595 <dt id="ientry-idp46842969066416">cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment ()</a>
596 </dt>
597 <dt id="ientry-idp46842968755632">cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps">cairo_ps_surface_get_eps ()</a>
598 </dt>
599 <dt id="ientry-idp46842968665504">cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level">cairo_ps_surface_restrict_to_level ()</a>
600 </dt>
601 <dt id="ientry-idp46842968731424">cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps">cairo_ps_surface_set_eps ()</a>
602 </dt>
603 <dt id="ientry-idp46842968775392">cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">cairo_ps_surface_set_size ()</a>
604 </dt>
605 <dt id="ientry-idp46842957476464">cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group">cairo_push_group ()</a>
606 </dt>
607 <dt id="ientry-idp46842957507136">cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group-with-content">cairo_push_group_with_content ()</a>
600608 </dt>
601609 </dl>
602610 </div>
603611 <div class="indexdiv">
604612 <h3>Q</h3>
605613 <dl>
606 <dt id="ientry-idp46937707998080">cairo_quartz_font_face_create_for_atsu_font_id, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id">cairo_quartz_font_face_create_for_atsu_font_id ()</a>
607 </dt>
608 <dt id="ientry-idp46937697595648">cairo_quartz_font_face_create_for_cgfont, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont">cairo_quartz_font_face_create_for_cgfont ()</a>
609 </dt>
610 <dt id="ientry-idp46937710435376">cairo_quartz_surface_create, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create">cairo_quartz_surface_create ()</a>
611 </dt>
612 <dt id="ientry-idp46937708869824">cairo_quartz_surface_create_for_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context">cairo_quartz_surface_create_for_cg_context ()</a>
613 </dt>
614 <dt id="ientry-idp46937713135920">cairo_quartz_surface_get_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context">cairo_quartz_surface_get_cg_context ()</a>
614 <dt id="ientry-idp46842950893536">cairo_quartz_font_face_create_for_atsu_font_id, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id">cairo_quartz_font_face_create_for_atsu_font_id ()</a>
615 </dt>
616 <dt id="ientry-idp46842953877152">cairo_quartz_font_face_create_for_cgfont, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont">cairo_quartz_font_face_create_for_cgfont ()</a>
617 </dt>
618 <dt id="ientry-idp46842967252272">cairo_quartz_surface_create, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create">cairo_quartz_surface_create ()</a>
619 </dt>
620 <dt id="ientry-idp46842969473440">cairo_quartz_surface_create_for_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context">cairo_quartz_surface_create_for_cg_context ()</a>
621 </dt>
622 <dt id="ientry-idp46842969501008">cairo_quartz_surface_get_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context">cairo_quartz_surface_get_cg_context ()</a>
615623 </dt>
616624 </dl>
617625 </div>
618626 <div class="indexdiv">
619627 <h3>R</h3>
620628 <dl>
621 <dt id="ientry-idp46937706792512">cairo_raster_source_acquire_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t">cairo_raster_source_acquire_func_t ()</a>
622 </dt>
623 <dt id="ientry-idp46937706868576">cairo_raster_source_copy_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t">cairo_raster_source_copy_func_t ()</a>
624 </dt>
625 <dt id="ientry-idp46937706895344">cairo_raster_source_finish_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t">cairo_raster_source_finish_func_t ()</a>
626 </dt>
627 <dt id="ientry-idp46937705951072">cairo_raster_source_pattern_get_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire">cairo_raster_source_pattern_get_acquire ()</a>
628 </dt>
629 <dt id="ientry-idp46937705905696">cairo_raster_source_pattern_get_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data">cairo_raster_source_pattern_get_callback_data ()</a>
630 </dt>
631 <dt id="ientry-idp46937706032176">cairo_raster_source_pattern_get_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy">cairo_raster_source_pattern_get_copy ()</a>
632 </dt>
633 <dt id="ientry-idp46937706070016">cairo_raster_source_pattern_get_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish">cairo_raster_source_pattern_get_finish ()</a>
634 </dt>
635 <dt id="ientry-idp46937705994448">cairo_raster_source_pattern_get_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot">cairo_raster_source_pattern_get_snapshot ()</a>
636 </dt>
637 <dt id="ientry-idp46937705923376">cairo_raster_source_pattern_set_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire">cairo_raster_source_pattern_set_acquire ()</a>
638 </dt>
639 <dt id="ientry-idp46937705886096">cairo_raster_source_pattern_set_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data">cairo_raster_source_pattern_set_callback_data ()</a>
640 </dt>
641 <dt id="ientry-idp46937706012208">cairo_raster_source_pattern_set_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy">cairo_raster_source_pattern_set_copy ()</a>
642 </dt>
643 <dt id="ientry-idp46937706050032">cairo_raster_source_pattern_set_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish">cairo_raster_source_pattern_set_finish ()</a>
644 </dt>
645 <dt id="ientry-idp46937705974560">cairo_raster_source_pattern_set_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot">cairo_raster_source_pattern_set_snapshot ()</a>
646 </dt>
647 <dt id="ientry-idp46937706823680">cairo_raster_source_release_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t">cairo_raster_source_release_func_t ()</a>
648 </dt>
649 <dt id="ientry-idp46937706846672">cairo_raster_source_snapshot_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t">cairo_raster_source_snapshot_func_t ()</a>
650 </dt>
651 <dt id="ientry-idp46937711464816">cairo_read_func_t, <a class="indexterm" href="cairo-PNG-Support.html#cairo-read-func-t">cairo_read_func_t ()</a>
652 </dt>
653 <dt id="ientry-idp46937698608656">cairo_recording_surface_create, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-create">cairo_recording_surface_create ()</a>
654 </dt>
655 <dt id="ientry-idp46937700644736">cairo_recording_surface_get_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents">cairo_recording_surface_get_extents ()</a>
656 </dt>
657 <dt id="ientry-idp46937709294400">cairo_recording_surface_ink_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents">cairo_recording_surface_ink_extents ()</a>
658 </dt>
659 <dt id="ientry-idp46937700031472">cairo_rectangle, <a class="indexterm" href="cairo-Paths.html#cairo-rectangle">cairo_rectangle ()</a>
660 </dt>
661 <dt id="ientry-idp46937715483296">cairo_rectangle_int_t, <a class="indexterm" href="cairo-Types.html#cairo-rectangle-int-t">cairo_rectangle_int_t</a>
662 </dt>
663 <dt id="ientry-idp46937702718112">cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-destroy">cairo_rectangle_list_destroy ()</a>
664 </dt>
665 <dt id="ientry-idp46937703510512">cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>
666 </dt>
667 <dt id="ientry-idp46937703480768">cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-t">cairo_rectangle_t</a>
668 </dt>
669 <dt id="ientry-idp46937697267600">cairo_reference, <a class="indexterm" href="cairo-cairo-t.html#cairo-reference">cairo_reference ()</a>
670 </dt>
671 <dt id="ientry-idp46937703892240">cairo_region_contains_point, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-point">cairo_region_contains_point ()</a>
672 </dt>
673 <dt id="ientry-idp46937703925312">cairo_region_contains_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-rectangle">cairo_region_contains_rectangle ()</a>
674 </dt>
675 <dt id="ientry-idp46937695903392">cairo_region_copy, <a class="indexterm" href="cairo-Regions.html#cairo-region-copy">cairo_region_copy ()</a>
676 </dt>
677 <dt id="ientry-idp46937700491392">cairo_region_create, <a class="indexterm" href="cairo-Regions.html#cairo-region-create">cairo_region_create ()</a>
678 </dt>
679 <dt id="ientry-idp46937695463840">cairo_region_create_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangle">cairo_region_create_rectangle ()</a>
680 </dt>
681 <dt id="ientry-idp46937695486560">cairo_region_create_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangles">cairo_region_create_rectangles ()</a>
682 </dt>
683 <dt id="ientry-idp46937700521216">cairo_region_destroy, <a class="indexterm" href="cairo-Regions.html#cairo-region-destroy">cairo_region_destroy ()</a>
684 </dt>
685 <dt id="ientry-idp46937703957840">cairo_region_equal, <a class="indexterm" href="cairo-Regions.html#cairo-region-equal">cairo_region_equal ()</a>
686 </dt>
687 <dt id="ientry-idp46937703800400">cairo_region_get_extents, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-extents">cairo_region_get_extents ()</a>
688 </dt>
689 <dt id="ientry-idp46937703842960">cairo_region_get_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-rectangle">cairo_region_get_rectangle ()</a>
690 </dt>
691 <dt id="ientry-idp46937704014512">cairo_region_intersect, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect">cairo_region_intersect ()</a>
692 </dt>
693 <dt id="ientry-idp46937704042144">cairo_region_intersect_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect-rectangle">cairo_region_intersect_rectangle ()</a>
694 </dt>
695 <dt id="ientry-idp46937703869728">cairo_region_is_empty, <a class="indexterm" href="cairo-Regions.html#cairo-region-is-empty">cairo_region_is_empty ()</a>
696 </dt>
697 <dt id="ientry-idp46937703822672">cairo_region_num_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-num-rectangles">cairo_region_num_rectangles ()</a>
698 </dt>
699 <dt id="ientry-idp46937704254176">cairo_region_overlap_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-overlap-t">enum cairo_region_overlap_t</a>
700 </dt>
701 <dt id="ientry-idp46937695926080">cairo_region_reference, <a class="indexterm" href="cairo-Regions.html#cairo-region-reference">cairo_region_reference ()</a>
702 </dt>
703 <dt id="ientry-idp46937700542320">cairo_region_status, <a class="indexterm" href="cairo-Regions.html#cairo-region-status">cairo_region_status ()</a>
704 </dt>
705 <dt id="ientry-idp46937704069600">cairo_region_subtract, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract">cairo_region_subtract ()</a>
706 </dt>
707 <dt id="ientry-idp46937704097216">cairo_region_subtract_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract-rectangle">cairo_region_subtract_rectangle ()</a>
708 </dt>
709 <dt id="ientry-idp46937704241216">cairo_region_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-t">cairo_region_t</a>
710 </dt>
711 <dt id="ientry-idp46937703987856">cairo_region_translate, <a class="indexterm" href="cairo-Regions.html#cairo-region-translate">cairo_region_translate ()</a>
712 </dt>
713 <dt id="ientry-idp46937704124736">cairo_region_union, <a class="indexterm" href="cairo-Regions.html#cairo-region-union">cairo_region_union ()</a>
714 </dt>
715 <dt id="ientry-idp46937704152320">cairo_region_union_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-union-rectangle">cairo_region_union_rectangle ()</a>
716 </dt>
717 <dt id="ientry-idp46937704179920">cairo_region_xor, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor">cairo_region_xor ()</a>
718 </dt>
719 <dt id="ientry-idp46937704209648">cairo_region_xor_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor-rectangle">cairo_region_xor_rectangle ()</a>
720 </dt>
721 <dt id="ientry-idp46937700120560">cairo_rel_curve_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-curve-to">cairo_rel_curve_to ()</a>
722 </dt>
723 <dt id="ientry-idp46937700179376">cairo_rel_line_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-line-to">cairo_rel_line_to ()</a>
724 </dt>
725 <dt id="ientry-idp46937700214368">cairo_rel_move_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-move-to">cairo_rel_move_to ()</a>
726 </dt>
727 <dt id="ientry-idp46937702695360">cairo_reset_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-reset-clip">cairo_reset_clip ()</a>
728 </dt>
729 <dt id="ientry-idp46937701790560">cairo_restore, <a class="indexterm" href="cairo-cairo-t.html#cairo-restore">cairo_restore ()</a>
730 </dt>
731 <dt id="ientry-idp46937696076736">cairo_rotate, <a class="indexterm" href="cairo-Transformations.html#cairo-rotate">cairo_rotate ()</a>
629 <dt id="ientry-idp46842962770096">cairo_raster_source_acquire_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t">cairo_raster_source_acquire_func_t ()</a>
630 </dt>
631 <dt id="ientry-idp46842962846160">cairo_raster_source_copy_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t">cairo_raster_source_copy_func_t ()</a>
632 </dt>
633 <dt id="ientry-idp46842962872928">cairo_raster_source_finish_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t">cairo_raster_source_finish_func_t ()</a>
634 </dt>
635 <dt id="ientry-idp46842962115008">cairo_raster_source_pattern_get_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire">cairo_raster_source_pattern_get_acquire ()</a>
636 </dt>
637 <dt id="ientry-idp46842962069632">cairo_raster_source_pattern_get_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data">cairo_raster_source_pattern_get_callback_data ()</a>
638 </dt>
639 <dt id="ientry-idp46842962196112">cairo_raster_source_pattern_get_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy">cairo_raster_source_pattern_get_copy ()</a>
640 </dt>
641 <dt id="ientry-idp46842962233952">cairo_raster_source_pattern_get_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish">cairo_raster_source_pattern_get_finish ()</a>
642 </dt>
643 <dt id="ientry-idp46842962158384">cairo_raster_source_pattern_get_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot">cairo_raster_source_pattern_get_snapshot ()</a>
644 </dt>
645 <dt id="ientry-idp46842962087312">cairo_raster_source_pattern_set_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire">cairo_raster_source_pattern_set_acquire ()</a>
646 </dt>
647 <dt id="ientry-idp46842962050032">cairo_raster_source_pattern_set_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data">cairo_raster_source_pattern_set_callback_data ()</a>
648 </dt>
649 <dt id="ientry-idp46842962176144">cairo_raster_source_pattern_set_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy">cairo_raster_source_pattern_set_copy ()</a>
650 </dt>
651 <dt id="ientry-idp46842962213968">cairo_raster_source_pattern_set_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish">cairo_raster_source_pattern_set_finish ()</a>
652 </dt>
653 <dt id="ientry-idp46842962138496">cairo_raster_source_pattern_set_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot">cairo_raster_source_pattern_set_snapshot ()</a>
654 </dt>
655 <dt id="ientry-idp46842962801264">cairo_raster_source_release_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t">cairo_raster_source_release_func_t ()</a>
656 </dt>
657 <dt id="ientry-idp46842962824256">cairo_raster_source_snapshot_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t">cairo_raster_source_snapshot_func_t ()</a>
658 </dt>
659 <dt id="ientry-idp46842967343392">cairo_read_func_t, <a class="indexterm" href="cairo-PNG-Support.html#cairo-read-func-t">cairo_read_func_t ()</a>
660 </dt>
661 <dt id="ientry-idp46842963377808">cairo_recording_surface_create, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-create">cairo_recording_surface_create ()</a>
662 </dt>
663 <dt id="ientry-idp46842952448816">cairo_recording_surface_get_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents">cairo_recording_surface_get_extents ()</a>
664 </dt>
665 <dt id="ientry-idp46842956333408">cairo_recording_surface_ink_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents">cairo_recording_surface_ink_extents ()</a>
666 </dt>
667 <dt id="ientry-idp46842951094528">cairo_rectangle, <a class="indexterm" href="cairo-Paths.html#cairo-rectangle">cairo_rectangle ()</a>
668 </dt>
669 <dt id="ientry-idp46842966054816">cairo_rectangle_int_t, <a class="indexterm" href="cairo-Types.html#cairo-rectangle-int-t">cairo_rectangle_int_t</a>
670 </dt>
671 <dt id="ientry-idp46842958359872">cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-destroy">cairo_rectangle_list_destroy ()</a>
672 </dt>
673 <dt id="ientry-idp46842959152016">cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>
674 </dt>
675 <dt id="ientry-idp46842959122208">cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-t">cairo_rectangle_t</a>
676 </dt>
677 <dt id="ientry-idp46842953407920">cairo_reference, <a class="indexterm" href="cairo-cairo-t.html#cairo-reference">cairo_reference ()</a>
678 </dt>
679 <dt id="ientry-idp46842959757600">cairo_region_contains_point, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-point">cairo_region_contains_point ()</a>
680 </dt>
681 <dt id="ientry-idp46842959790672">cairo_region_contains_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-rectangle">cairo_region_contains_rectangle ()</a>
682 </dt>
683 <dt id="ientry-idp46842959579072">cairo_region_copy, <a class="indexterm" href="cairo-Regions.html#cairo-region-copy">cairo_region_copy ()</a>
684 </dt>
685 <dt id="ientry-idp46842952090208">cairo_region_create, <a class="indexterm" href="cairo-Regions.html#cairo-region-create">cairo_region_create ()</a>
686 </dt>
687 <dt id="ientry-idp46842959529776">cairo_region_create_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangle">cairo_region_create_rectangle ()</a>
688 </dt>
689 <dt id="ientry-idp46842959552496">cairo_region_create_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangles">cairo_region_create_rectangles ()</a>
690 </dt>
691 <dt id="ientry-idp46842959623808">cairo_region_destroy, <a class="indexterm" href="cairo-Regions.html#cairo-region-destroy">cairo_region_destroy ()</a>
692 </dt>
693 <dt id="ientry-idp46842959823200">cairo_region_equal, <a class="indexterm" href="cairo-Regions.html#cairo-region-equal">cairo_region_equal ()</a>
694 </dt>
695 <dt id="ientry-idp46842959665760">cairo_region_get_extents, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-extents">cairo_region_get_extents ()</a>
696 </dt>
697 <dt id="ientry-idp46842959708320">cairo_region_get_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-rectangle">cairo_region_get_rectangle ()</a>
698 </dt>
699 <dt id="ientry-idp46842959879872">cairo_region_intersect, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect">cairo_region_intersect ()</a>
700 </dt>
701 <dt id="ientry-idp46842959907504">cairo_region_intersect_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect-rectangle">cairo_region_intersect_rectangle ()</a>
702 </dt>
703 <dt id="ientry-idp46842959735088">cairo_region_is_empty, <a class="indexterm" href="cairo-Regions.html#cairo-region-is-empty">cairo_region_is_empty ()</a>
704 </dt>
705 <dt id="ientry-idp46842959688032">cairo_region_num_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-num-rectangles">cairo_region_num_rectangles ()</a>
706 </dt>
707 <dt id="ientry-idp46842960119536">cairo_region_overlap_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-overlap-t">enum cairo_region_overlap_t</a>
708 </dt>
709 <dt id="ientry-idp46842959601760">cairo_region_reference, <a class="indexterm" href="cairo-Regions.html#cairo-region-reference">cairo_region_reference ()</a>
710 </dt>
711 <dt id="ientry-idp46842959644912">cairo_region_status, <a class="indexterm" href="cairo-Regions.html#cairo-region-status">cairo_region_status ()</a>
712 </dt>
713 <dt id="ientry-idp46842959934960">cairo_region_subtract, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract">cairo_region_subtract ()</a>
714 </dt>
715 <dt id="ientry-idp46842959962576">cairo_region_subtract_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract-rectangle">cairo_region_subtract_rectangle ()</a>
716 </dt>
717 <dt id="ientry-idp46842960106576">cairo_region_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-t">cairo_region_t</a>
718 </dt>
719 <dt id="ientry-idp46842959853216">cairo_region_translate, <a class="indexterm" href="cairo-Regions.html#cairo-region-translate">cairo_region_translate ()</a>
720 </dt>
721 <dt id="ientry-idp46842959990096">cairo_region_union, <a class="indexterm" href="cairo-Regions.html#cairo-region-union">cairo_region_union ()</a>
722 </dt>
723 <dt id="ientry-idp46842960017680">cairo_region_union_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-union-rectangle">cairo_region_union_rectangle ()</a>
724 </dt>
725 <dt id="ientry-idp46842960045280">cairo_region_xor, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor">cairo_region_xor ()</a>
726 </dt>
727 <dt id="ientry-idp46842960075008">cairo_region_xor_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor-rectangle">cairo_region_xor_rectangle ()</a>
728 </dt>
729 <dt id="ientry-idp46842955660864">cairo_rel_curve_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-curve-to">cairo_rel_curve_to ()</a>
730 </dt>
731 <dt id="ientry-idp46842955719680">cairo_rel_line_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-line-to">cairo_rel_line_to ()</a>
732 </dt>
733 <dt id="ientry-idp46842955754672">cairo_rel_move_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-move-to">cairo_rel_move_to ()</a>
734 </dt>
735 <dt id="ientry-idp46842958336992">cairo_reset_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-reset-clip">cairo_reset_clip ()</a>
736 </dt>
737 <dt id="ientry-idp46842957431056">cairo_restore, <a class="indexterm" href="cairo-cairo-t.html#cairo-restore">cairo_restore ()</a>
738 </dt>
739 <dt id="ientry-idp46842953548432">cairo_rotate, <a class="indexterm" href="cairo-Transformations.html#cairo-rotate">cairo_rotate ()</a>
732740 </dt>
733741 </dl>
734742 </div>
735743 <div class="indexdiv">
736744 <h3>S</h3>
737745 <dl>
738 <dt id="ientry-idp46937701765328">cairo_save, <a class="indexterm" href="cairo-cairo-t.html#cairo-save">cairo_save ()</a>
739 </dt>
740 <dt id="ientry-idp46937699505088">cairo_scale, <a class="indexterm" href="cairo-Transformations.html#cairo-scale">cairo_scale ()</a>
741 </dt>
742 <dt id="ientry-idp46937707106768">cairo_scaled_font_create, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create">cairo_scaled_font_create ()</a>
743 </dt>
744 <dt id="ientry-idp46937707167120">cairo_scaled_font_destroy, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy">cairo_scaled_font_destroy ()</a>
745 </dt>
746 <dt id="ientry-idp46937707207584">cairo_scaled_font_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-extents">cairo_scaled_font_extents ()</a>
747 </dt>
748 <dt id="ientry-idp46937708545280">cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm ()</a>
749 </dt>
750 <dt id="ientry-idp46937708486864">cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face ()</a>
751 </dt>
752 <dt id="ientry-idp46937708525888">cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix ()</a>
753 </dt>
754 <dt id="ientry-idp46937708506496">cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options ()</a>
755 </dt>
756 <dt id="ientry-idp46937708603872">cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count">cairo_scaled_font_get_reference_count ()</a>
757 </dt>
758 <dt id="ientry-idp46937708565664">cairo_scaled_font_get_scale_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix">cairo_scaled_font_get_scale_matrix ()</a>
759 </dt>
760 <dt id="ientry-idp46937708585232">cairo_scaled_font_get_type, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type ()</a>
761 </dt>
762 <dt id="ientry-idp46937708655264">cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data">cairo_scaled_font_get_user_data ()</a>
763 </dt>
764 <dt id="ientry-idp46937707259568">cairo_scaled_font_glyph_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-glyph-extents">cairo_scaled_font_glyph_extents ()</a>
765 </dt>
766 <dt id="ientry-idp46937707141424">cairo_scaled_font_reference, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference">cairo_scaled_font_reference ()</a>
767 </dt>
768 <dt id="ientry-idp46937708621520">cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data">cairo_scaled_font_set_user_data ()</a>
769 </dt>
770 <dt id="ientry-idp46937707186624">cairo_scaled_font_status, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status">cairo_scaled_font_status ()</a>
771 </dt>
772 <dt id="ientry-idp46937708680000">cairo_scaled_font_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t">cairo_scaled_font_t</a>
773 </dt>
774 <dt id="ientry-idp46937707230016">cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents ()</a>
775 </dt>
776 <dt id="ientry-idp46937707293392">cairo_scaled_font_text_to_glyphs, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs ()</a>
777 </dt>
778 <dt id="ientry-idp46937714376912">cairo_script_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create">cairo_script_create ()</a>
779 </dt>
780 <dt id="ientry-idp46937713202368">cairo_script_create_for_stream, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create-for-stream">cairo_script_create_for_stream ()</a>
781 </dt>
782 <dt id="ientry-idp46937714300096">cairo_script_from_recording_surface, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-from-recording-surface">cairo_script_from_recording_surface ()</a>
783 </dt>
784 <dt id="ientry-idp46937714323312">cairo_script_get_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-get-mode">cairo_script_get_mode ()</a>
785 </dt>
786 <dt id="ientry-idp46937713852144">cairo_script_mode_t, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-mode-t">enum cairo_script_mode_t</a>
787 </dt>
788 <dt id="ientry-idp46937714341264">cairo_script_set_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-set-mode">cairo_script_set_mode ()</a>
789 </dt>
790 <dt id="ientry-idp46937713760544">cairo_script_surface_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create">cairo_script_surface_create ()</a>
791 </dt>
792 <dt id="ientry-idp46937713793488">cairo_script_surface_create_for_target, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target">cairo_script_surface_create_for_target ()</a>
793 </dt>
794 <dt id="ientry-idp46937713819280">cairo_script_write_comment, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-write-comment">cairo_script_write_comment ()</a>
795 </dt>
796 <dt id="ientry-idp46937705646560">cairo_select_font_face, <a class="indexterm" href="cairo-text.html#cairo-select-font-face">cairo_select_font_face ()</a>
797 </dt>
798 <dt id="ientry-idp46937702121264">cairo_set_antialias, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-antialias">cairo_set_antialias ()</a>
799 </dt>
800 <dt id="ientry-idp46937702164416">cairo_set_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-dash">cairo_set_dash ()</a>
801 </dt>
802 <dt id="ientry-idp46937702258000">cairo_set_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-fill-rule">cairo_set_fill_rule ()</a>
803 </dt>
804 <dt id="ientry-idp46937705818992">cairo_set_font_face, <a class="indexterm" href="cairo-text.html#cairo-set-font-face">cairo_set_font_face ()</a>
805 </dt>
806 <dt id="ientry-idp46937705725552">cairo_set_font_matrix, <a class="indexterm" href="cairo-text.html#cairo-set-font-matrix">cairo_set_font_matrix ()</a>
807 </dt>
808 <dt id="ientry-idp46937705771824">cairo_set_font_options, <a class="indexterm" href="cairo-text.html#cairo-set-font-options">cairo_set_font_options ()</a>
809 </dt>
810 <dt id="ientry-idp46937705695904">cairo_set_font_size, <a class="indexterm" href="cairo-text.html#cairo-set-font-size">cairo_set_font_size ()</a>
811 </dt>
812 <dt id="ientry-idp46937702303792">cairo_set_line_cap, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-cap">cairo_set_line_cap ()</a>
813 </dt>
814 <dt id="ientry-idp46937702349664">cairo_set_line_join, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-join">cairo_set_line_join ()</a>
815 </dt>
816 <dt id="ientry-idp46937702395536">cairo_set_line_width, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-width">cairo_set_line_width ()</a>
817 </dt>
818 <dt id="ientry-idp46937704283888">cairo_set_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-set-matrix">cairo_set_matrix ()</a>
819 </dt>
820 <dt id="ientry-idp46937702446816">cairo_set_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-miter-limit">cairo_set_miter_limit ()</a>
821 </dt>
822 <dt id="ientry-idp46937702494336">cairo_set_operator, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-operator">cairo_set_operator ()</a>
823 </dt>
824 <dt id="ientry-idp46937706298560">cairo_set_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-set-scaled-font">cairo_set_scaled_font ()</a>
825 </dt>
826 <dt id="ientry-idp46937702036992">cairo_set_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source">cairo_set_source ()</a>
827 </dt>
828 <dt id="ientry-idp46937701971920">cairo_set_source_rgb, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-rgb">cairo_set_source_rgb ()</a>
829 </dt>
830 <dt id="ientry-idp46937702003472">cairo_set_source_rgba, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-rgba">cairo_set_source_rgba ()</a>
831 </dt>
832 <dt id="ientry-idp46937702063008">cairo_set_source_surface, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-surface">cairo_set_source_surface ()</a>
833 </dt>
834 <dt id="ientry-idp46937702536592">cairo_set_tolerance, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-tolerance">cairo_set_tolerance ()</a>
835 </dt>
836 <dt id="ientry-idp46937703170560">cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-user-data">cairo_set_user_data ()</a>
837 </dt>
838 <dt id="ientry-idp46937706369216">cairo_show_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-glyphs">cairo_show_glyphs ()</a>
839 </dt>
840 <dt id="ientry-idp46937703130064">cairo_show_page, <a class="indexterm" href="cairo-cairo-t.html#cairo-show-page">cairo_show_page ()</a>
841 </dt>
842 <dt id="ientry-idp46937706345584">cairo_show_text, <a class="indexterm" href="cairo-text.html#cairo-show-text">cairo_show_text ()</a>
843 </dt>
844 <dt id="ientry-idp46937706390416">cairo_show_text_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs ()</a>
845 </dt>
846 <dt id="ientry-idp46937701749056">cairo_status, <a class="indexterm" href="cairo-cairo-t.html#cairo-status">cairo_status ()</a>
847 </dt>
848 <dt id="ientry-idp46937714255696">cairo_status_t, <a class="indexterm" href="cairo-Error-handling.html#cairo-status-t">enum cairo_status_t</a>
849 </dt>
850 <dt id="ientry-idp46937713285584">cairo_status_to_string, <a class="indexterm" href="cairo-Error-handling.html#cairo-status-to-string">cairo_status_to_string ()</a>
851 </dt>
852 <dt id="ientry-idp46937702965312">cairo_stroke, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke">cairo_stroke ()</a>
853 </dt>
854 <dt id="ientry-idp46937703029872">cairo_stroke_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke-extents">cairo_stroke_extents ()</a>
855 </dt>
856 <dt id="ientry-idp46937703005088">cairo_stroke_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke-preserve">cairo_stroke_preserve ()</a>
857 </dt>
858 <dt id="ientry-idp46937708232960">cairo_subpixel_order_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t">enum cairo_subpixel_order_t</a>
859 </dt>
860 <dt id="ientry-idp46937712490624">cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page ()</a>
861 </dt>
862 <dt id="ientry-idp46937710776672">cairo_surface_create_for_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle">cairo_surface_create_for_rectangle ()</a>
863 </dt>
864 <dt id="ientry-idp46937710704304">cairo_surface_create_similar, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar">cairo_surface_create_similar ()</a>
865 </dt>
866 <dt id="ientry-idp46937710740848">cairo_surface_create_similar_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image">cairo_surface_create_similar_image ()</a>
867 </dt>
868 <dt id="ientry-idp46937710837760">cairo_surface_destroy, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-destroy">cairo_surface_destroy ()</a>
869 </dt>
870 <dt id="ientry-idp46937712106608">cairo_surface_finish, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-finish">cairo_surface_finish ()</a>
871 </dt>
872 <dt id="ientry-idp46937712126416">cairo_surface_flush, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-flush">cairo_surface_flush ()</a>
873 </dt>
874 <dt id="ientry-idp46937712180976">cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-content">cairo_surface_get_content ()</a>
875 </dt>
876 <dt id="ientry-idp46937712141568">cairo_surface_get_device, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device">cairo_surface_get_device ()</a>
877 </dt>
878 <dt id="ientry-idp46937712270800">cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset">cairo_surface_get_device_offset ()</a>
879 </dt>
880 <dt id="ientry-idp46937712293312">cairo_surface_get_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale">cairo_surface_get_device_scale ()</a>
881 </dt>
882 <dt id="ientry-idp46937712366928">cairo_surface_get_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution">cairo_surface_get_fallback_resolution ()</a>
883 </dt>
884 <dt id="ientry-idp46937712160832">cairo_surface_get_font_options, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-font-options">cairo_surface_get_font_options ()</a>
885 </dt>
886 <dt id="ientry-idp46937712620288">cairo_surface_get_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data">cairo_surface_get_mime_data ()</a>
887 </dt>
888 <dt id="ientry-idp46937712407088">cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count">cairo_surface_get_reference_count ()</a>
889 </dt>
890 <dt id="ientry-idp46937712389440">cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-type">cairo_surface_get_type ()</a>
891 </dt>
892 <dt id="ientry-idp46937712463712">cairo_surface_get_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-user-data">cairo_surface_get_user_data ()</a>
893 </dt>
894 <dt id="ientry-idp46937712532112">cairo_surface_has_show_text_glyphs, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs">cairo_surface_has_show_text_glyphs ()</a>
895 </dt>
896 <dt id="ientry-idp46937712680160">cairo_surface_map_to_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image">cairo_surface_map_to_image ()</a>
897 </dt>
898 <dt id="ientry-idp46937712199248">cairo_surface_mark_dirty, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty">cairo_surface_mark_dirty ()</a>
899 </dt>
900 <dt id="ientry-idp46937712215168">cairo_surface_mark_dirty_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle">cairo_surface_mark_dirty_rectangle ()</a>
901 </dt>
902 <dt id="ientry-idp46937710813248">cairo_surface_reference, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-reference">cairo_surface_reference ()</a>
903 </dt>
904 <dt id="ientry-idp46937712245120">cairo_surface_set_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset">cairo_surface_set_device_offset ()</a>
905 </dt>
906 <dt id="ientry-idp46937712315824">cairo_surface_set_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale">cairo_surface_set_device_scale ()</a>
907 </dt>
908 <dt id="ientry-idp46937712340784">cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution ()</a>
909 </dt>
910 <dt id="ientry-idp46937712562336">cairo_surface_set_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data">cairo_surface_set_mime_data ()</a>
911 </dt>
912 <dt id="ientry-idp46937712426400">cairo_surface_set_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data">cairo_surface_set_user_data ()</a>
913 </dt>
914 <dt id="ientry-idp46937712511376">cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page ()</a>
915 </dt>
916 <dt id="ientry-idp46937712083392">cairo_surface_status, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-status">cairo_surface_status ()</a>
917 </dt>
918 <dt id="ientry-idp46937712651968">cairo_surface_supports_mime_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type">cairo_surface_supports_mime_type ()</a>
919 </dt>
920 <dt id="ientry-idp46937712793776">cairo_surface_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>
921 </dt>
922 <dt id="ientry-idp46937712840576">cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-type-t">enum cairo_surface_type_t</a>
923 </dt>
924 <dt id="ientry-idp46937712711920">cairo_surface_unmap_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image">cairo_surface_unmap_image ()</a>
925 </dt>
926 <dt id="ientry-idp46937711329792">cairo_surface_write_to_png, <a class="indexterm" href="cairo-PNG-Support.html#cairo-surface-write-to-png">cairo_surface_write_to_png ()</a>
927 </dt>
928 <dt id="ientry-idp46937711715936">cairo_surface_write_to_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#cairo-surface-write-to-png-stream">cairo_surface_write_to_png_stream ()</a>
929 </dt>
930 <dt id="ientry-idp46937713044864">cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions">cairo_svg_get_versions ()</a>
931 </dt>
932 <dt id="ientry-idp46937712014608">cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create">cairo_svg_surface_create ()</a>
933 </dt>
934 <dt id="ientry-idp46937711955232">cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream ()</a>
935 </dt>
936 <dt id="ientry-idp46937713021920">cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version ()</a>
937 </dt>
938 <dt id="ientry-idp46937713095648">cairo_svg_version_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">enum cairo_svg_version_t</a>
939 </dt>
940 <dt id="ientry-idp46937713065984">cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string">cairo_svg_version_to_string ()</a>
746 <dt id="ientry-idp46842957405824">cairo_save, <a class="indexterm" href="cairo-cairo-t.html#cairo-save">cairo_save ()</a>
747 </dt>
748 <dt id="ientry-idp46842955244768">cairo_scale, <a class="indexterm" href="cairo-Transformations.html#cairo-scale">cairo_scale ()</a>
749 </dt>
750 <dt id="ientry-idp46842963146048">cairo_scaled_font_create, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create">cairo_scaled_font_create ()</a>
751 </dt>
752 <dt id="ientry-idp46842963206400">cairo_scaled_font_destroy, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy">cairo_scaled_font_destroy ()</a>
753 </dt>
754 <dt id="ientry-idp46842963246864">cairo_scaled_font_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-extents">cairo_scaled_font_extents ()</a>
755 </dt>
756 <dt id="ientry-idp46842964467376">cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm ()</a>
757 </dt>
758 <dt id="ientry-idp46842964408960">cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face ()</a>
759 </dt>
760 <dt id="ientry-idp46842964447984">cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix ()</a>
761 </dt>
762 <dt id="ientry-idp46842964428592">cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options ()</a>
763 </dt>
764 <dt id="ientry-idp46842964525968">cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count">cairo_scaled_font_get_reference_count ()</a>
765 </dt>
766 <dt id="ientry-idp46842964487760">cairo_scaled_font_get_scale_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix">cairo_scaled_font_get_scale_matrix ()</a>
767 </dt>
768 <dt id="ientry-idp46842964507328">cairo_scaled_font_get_type, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type ()</a>
769 </dt>
770 <dt id="ientry-idp46842964577360">cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data">cairo_scaled_font_get_user_data ()</a>
771 </dt>
772 <dt id="ientry-idp46842963298848">cairo_scaled_font_glyph_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-glyph-extents">cairo_scaled_font_glyph_extents ()</a>
773 </dt>
774 <dt id="ientry-idp46842963180704">cairo_scaled_font_reference, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference">cairo_scaled_font_reference ()</a>
775 </dt>
776 <dt id="ientry-idp46842964543616">cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data">cairo_scaled_font_set_user_data ()</a>
777 </dt>
778 <dt id="ientry-idp46842963225904">cairo_scaled_font_status, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status">cairo_scaled_font_status ()</a>
779 </dt>
780 <dt id="ientry-idp46842964602096">cairo_scaled_font_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t">cairo_scaled_font_t</a>
781 </dt>
782 <dt id="ientry-idp46842963269296">cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents ()</a>
783 </dt>
784 <dt id="ientry-idp46842963332672">cairo_scaled_font_text_to_glyphs, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs ()</a>
785 </dt>
786 <dt id="ientry-idp46842969908752">cairo_script_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create">cairo_script_create ()</a>
787 </dt>
788 <dt id="ientry-idp46842970725184">cairo_script_create_for_stream, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create-for-stream">cairo_script_create_for_stream ()</a>
789 </dt>
790 <dt id="ientry-idp46842970749776">cairo_script_from_recording_surface, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-from-recording-surface">cairo_script_from_recording_surface ()</a>
791 </dt>
792 <dt id="ientry-idp46842970772992">cairo_script_get_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-get-mode">cairo_script_get_mode ()</a>
793 </dt>
794 <dt id="ientry-idp46842970902576">cairo_script_mode_t, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-mode-t">enum cairo_script_mode_t</a>
795 </dt>
796 <dt id="ientry-idp46842970790944">cairo_script_set_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-set-mode">cairo_script_set_mode ()</a>
797 </dt>
798 <dt id="ientry-idp46842970810976">cairo_script_surface_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create">cairo_script_surface_create ()</a>
799 </dt>
800 <dt id="ientry-idp46842970843920">cairo_script_surface_create_for_target, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target">cairo_script_surface_create_for_target ()</a>
801 </dt>
802 <dt id="ientry-idp46842970869712">cairo_script_write_comment, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-write-comment">cairo_script_write_comment ()</a>
803 </dt>
804 <dt id="ientry-idp46842960293504">cairo_select_font_face, <a class="indexterm" href="cairo-text.html#cairo-select-font-face">cairo_select_font_face ()</a>
805 </dt>
806 <dt id="ientry-idp46842957763072">cairo_set_antialias, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-antialias">cairo_set_antialias ()</a>
807 </dt>
808 <dt id="ientry-idp46842957806096">cairo_set_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-dash">cairo_set_dash ()</a>
809 </dt>
810 <dt id="ientry-idp46842957899488">cairo_set_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-fill-rule">cairo_set_fill_rule ()</a>
811 </dt>
812 <dt id="ientry-idp46842960465936">cairo_set_font_face, <a class="indexterm" href="cairo-text.html#cairo-set-font-face">cairo_set_font_face ()</a>
813 </dt>
814 <dt id="ientry-idp46842960372496">cairo_set_font_matrix, <a class="indexterm" href="cairo-text.html#cairo-set-font-matrix">cairo_set_font_matrix ()</a>
815 </dt>
816 <dt id="ientry-idp46842960418768">cairo_set_font_options, <a class="indexterm" href="cairo-text.html#cairo-set-font-options">cairo_set_font_options ()</a>
817 </dt>
818 <dt id="ientry-idp46842960342848">cairo_set_font_size, <a class="indexterm" href="cairo-text.html#cairo-set-font-size">cairo_set_font_size ()</a>
819 </dt>
820 <dt id="ientry-idp46842957945408">cairo_set_line_cap, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-cap">cairo_set_line_cap ()</a>
821 </dt>
822 <dt id="ientry-idp46842957991216">cairo_set_line_join, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-join">cairo_set_line_join ()</a>
823 </dt>
824 <dt id="ientry-idp46842958037232">cairo_set_line_width, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-width">cairo_set_line_width ()</a>
825 </dt>
826 <dt id="ientry-idp46842952045408">cairo_set_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-set-matrix">cairo_set_matrix ()</a>
827 </dt>
828 <dt id="ientry-idp46842958088448">cairo_set_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-miter-limit">cairo_set_miter_limit ()</a>
829 </dt>
830 <dt id="ientry-idp46842958136096">cairo_set_operator, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-operator">cairo_set_operator ()</a>
831 </dt>
832 <dt id="ientry-idp46842962296624">cairo_set_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-set-scaled-font">cairo_set_scaled_font ()</a>
833 </dt>
834 <dt id="ientry-idp46842957678736">cairo_set_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source">cairo_set_source ()</a>
835 </dt>
836 <dt id="ientry-idp46842957613680">cairo_set_source_rgb, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-rgb">cairo_set_source_rgb ()</a>
837 </dt>
838 <dt id="ientry-idp46842957645216">cairo_set_source_rgba, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-rgba">cairo_set_source_rgba ()</a>
839 </dt>
840 <dt id="ientry-idp46842957704752">cairo_set_source_surface, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-surface">cairo_set_source_surface ()</a>
841 </dt>
842 <dt id="ientry-idp46842958178288">cairo_set_tolerance, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-tolerance">cairo_set_tolerance ()</a>
843 </dt>
844 <dt id="ientry-idp46842958811872">cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-user-data">cairo_set_user_data ()</a>
845 </dt>
846 <dt id="ientry-idp46842962367280">cairo_show_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-glyphs">cairo_show_glyphs ()</a>
847 </dt>
848 <dt id="ientry-idp46842958771440">cairo_show_page, <a class="indexterm" href="cairo-cairo-t.html#cairo-show-page">cairo_show_page ()</a>
849 </dt>
850 <dt id="ientry-idp46842962343648">cairo_show_text, <a class="indexterm" href="cairo-text.html#cairo-show-text">cairo_show_text ()</a>
851 </dt>
852 <dt id="ientry-idp46842962388480">cairo_show_text_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs ()</a>
853 </dt>
854 <dt id="ientry-idp46842957389552">cairo_status, <a class="indexterm" href="cairo-cairo-t.html#cairo-status">cairo_status ()</a>
855 </dt>
856 <dt id="ientry-idp46842971306416">cairo_status_t, <a class="indexterm" href="cairo-Error-handling.html#cairo-status-t">enum cairo_status_t</a>
857 </dt>
858 <dt id="ientry-idp46842969916208">cairo_status_to_string, <a class="indexterm" href="cairo-Error-handling.html#cairo-status-to-string">cairo_status_to_string ()</a>
859 </dt>
860 <dt id="ientry-idp46842958606816">cairo_stroke, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke">cairo_stroke ()</a>
861 </dt>
862 <dt id="ientry-idp46842958671248">cairo_stroke_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke-extents">cairo_stroke_extents ()</a>
863 </dt>
864 <dt id="ientry-idp46842958646528">cairo_stroke_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke-preserve">cairo_stroke_preserve ()</a>
865 </dt>
866 <dt id="ientry-idp46842963603296">cairo_subpixel_order_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t">enum cairo_subpixel_order_t</a>
867 </dt>
868 <dt id="ientry-idp46842967962528">cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page ()</a>
869 </dt>
870 <dt id="ientry-idp46842966744112">cairo_surface_create_for_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle">cairo_surface_create_for_rectangle ()</a>
871 </dt>
872 <dt id="ientry-idp46842966671744">cairo_surface_create_similar, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar">cairo_surface_create_similar ()</a>
873 </dt>
874 <dt id="ientry-idp46842966708288">cairo_surface_create_similar_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image">cairo_surface_create_similar_image ()</a>
875 </dt>
876 <dt id="ientry-idp46842966805200">cairo_surface_destroy, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-destroy">cairo_surface_destroy ()</a>
877 </dt>
878 <dt id="ientry-idp46842967541664">cairo_surface_finish, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-finish">cairo_surface_finish ()</a>
879 </dt>
880 <dt id="ientry-idp46842967561472">cairo_surface_flush, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-flush">cairo_surface_flush ()</a>
881 </dt>
882 <dt id="ientry-idp46842967616848">cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-content">cairo_surface_get_content ()</a>
883 </dt>
884 <dt id="ientry-idp46842967576624">cairo_surface_get_device, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device">cairo_surface_get_device ()</a>
885 </dt>
886 <dt id="ientry-idp46842967720416">cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset">cairo_surface_get_device_offset ()</a>
887 </dt>
888 <dt id="ientry-idp46842967746384">cairo_surface_get_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale">cairo_surface_get_device_scale ()</a>
889 </dt>
890 <dt id="ientry-idp46842967831168">cairo_surface_get_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution">cairo_surface_get_fallback_resolution ()</a>
891 </dt>
892 <dt id="ientry-idp46842967595888">cairo_surface_get_font_options, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-font-options">cairo_surface_get_font_options ()</a>
893 </dt>
894 <dt id="ientry-idp46842968094560">cairo_surface_get_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data">cairo_surface_get_mime_data ()</a>
895 </dt>
896 <dt id="ientry-idp46842967877664">cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count">cairo_surface_get_reference_count ()</a>
897 </dt>
898 <dt id="ientry-idp46842967857104">cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-type">cairo_surface_get_type ()</a>
899 </dt>
900 <dt id="ientry-idp46842967935680">cairo_surface_get_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-user-data">cairo_surface_get_user_data ()</a>
901 </dt>
902 <dt id="ientry-idp46842968004016">cairo_surface_has_show_text_glyphs, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs">cairo_surface_has_show_text_glyphs ()</a>
903 </dt>
904 <dt id="ientry-idp46842968154432">cairo_surface_map_to_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image">cairo_surface_map_to_image ()</a>
905 </dt>
906 <dt id="ientry-idp46842967638256">cairo_surface_mark_dirty, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty">cairo_surface_mark_dirty ()</a>
907 </dt>
908 <dt id="ientry-idp46842967656624">cairo_surface_mark_dirty_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle">cairo_surface_mark_dirty_rectangle ()</a>
909 </dt>
910 <dt id="ientry-idp46842966780688">cairo_surface_reference, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-reference">cairo_surface_reference ()</a>
911 </dt>
912 <dt id="ientry-idp46842967690912">cairo_surface_set_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset">cairo_surface_set_device_offset ()</a>
913 </dt>
914 <dt id="ientry-idp46842967772352">cairo_surface_set_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale">cairo_surface_set_device_scale ()</a>
915 </dt>
916 <dt id="ientry-idp46842967801024">cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution ()</a>
917 </dt>
918 <dt id="ientry-idp46842968034240">cairo_surface_set_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data">cairo_surface_set_mime_data ()</a>
919 </dt>
920 <dt id="ientry-idp46842967898432">cairo_surface_set_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data">cairo_surface_set_user_data ()</a>
921 </dt>
922 <dt id="ientry-idp46842967983344">cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page ()</a>
923 </dt>
924 <dt id="ientry-idp46842967518448">cairo_surface_status, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-status">cairo_surface_status ()</a>
925 </dt>
926 <dt id="ientry-idp46842968126304">cairo_surface_supports_mime_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type">cairo_surface_supports_mime_type ()</a>
927 </dt>
928 <dt id="ientry-idp46842968294896">cairo_surface_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>
929 </dt>
930 <dt id="ientry-idp46842968341760">cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-type-t">enum cairo_surface_type_t</a>
931 </dt>
932 <dt id="ientry-idp46842968186192">cairo_surface_unmap_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image">cairo_surface_unmap_image ()</a>
933 </dt>
934 <dt id="ientry-idp46842965718848">cairo_surface_write_to_png, <a class="indexterm" href="cairo-PNG-Support.html#cairo-surface-write-to-png">cairo_surface_write_to_png ()</a>
935 </dt>
936 <dt id="ientry-idp46842967225696">cairo_surface_write_to_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#cairo-surface-write-to-png-stream">cairo_surface_write_to_png_stream ()</a>
937 </dt>
938 <dt id="ientry-idp46842969311776">cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions">cairo_svg_get_versions ()</a>
939 </dt>
940 <dt id="ientry-idp46842965582736">cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create">cairo_svg_surface_create ()</a>
941 </dt>
942 <dt id="ientry-idp46842969251120">cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream ()</a>
943 </dt>
944 <dt id="ientry-idp46842969288832">cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version ()</a>
945 </dt>
946 <dt id="ientry-idp46842969362560">cairo_svg_version_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">enum cairo_svg_version_t</a>
947 </dt>
948 <dt id="ientry-idp46842969332896">cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string">cairo_svg_version_to_string ()</a>
941949 </dt>
942950 </dl>
943951 </div>
944952 <div class="indexdiv">
945953 <h3>T</h3>
946954 <dl>
947 <dt id="ientry-idp46937703237904">cairo_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-t">cairo_t</a>
948 </dt>
949 <dt id="ientry-idp46937700395616">cairo_tag_begin, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin ()</a>
950 </dt>
951 <dt id="ientry-idp46937706159008">CAIRO_TAG_DEST, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS">CAIRO_TAG_DEST</a>
952 </dt>
953 <dt id="ientry-idp46937699448416">cairo_tag_end, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end ()</a>
954 </dt>
955 <dt id="ientry-idp46937700443824">CAIRO_TAG_LINK, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS">CAIRO_TAG_LINK</a>
956 </dt>
957 <dt id="ientry-idp46937706633248">cairo_text_cluster_allocate, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-allocate">cairo_text_cluster_allocate ()</a>
958 </dt>
959 <dt id="ientry-idp46937706762048">cairo_text_cluster_flags_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-flags-t">enum cairo_text_cluster_flags_t</a>
960 </dt>
961 <dt id="ientry-idp46937706655056">cairo_text_cluster_free, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free ()</a>
962 </dt>
963 <dt id="ientry-idp46937706735728">cairo_text_cluster_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-t">cairo_text_cluster_t</a>
964 </dt>
965 <dt id="ientry-idp46937706461216">cairo_text_extents, <a class="indexterm" href="cairo-text.html#cairo-text-extents">cairo_text_extents ()</a>
966 </dt>
967 <dt id="ientry-idp46937708727632">cairo_text_extents_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t">cairo_text_extents_t</a>
968 </dt>
969 <dt id="ientry-idp46937700090944">cairo_text_path, <a class="indexterm" href="cairo-Paths.html#cairo-text-path">cairo_text_path ()</a>
970 </dt>
971 <dt id="ientry-idp46937706517520">cairo_toy_font_face_create, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-create">cairo_toy_font_face_create ()</a>
972 </dt>
973 <dt id="ientry-idp46937706546336">cairo_toy_font_face_get_family, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-family">cairo_toy_font_face_get_family ()</a>
974 </dt>
975 <dt id="ientry-idp46937706562256">cairo_toy_font_face_get_slant, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-slant">cairo_toy_font_face_get_slant ()</a>
976 </dt>
977 <dt id="ientry-idp46937706577904">cairo_toy_font_face_get_weight, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-weight">cairo_toy_font_face_get_weight ()</a>
978 </dt>
979 <dt id="ientry-idp46937696899920">cairo_transform, <a class="indexterm" href="cairo-Transformations.html#cairo-transform">cairo_transform ()</a>
980 </dt>
981 <dt id="ientry-idp46937695337856">cairo_translate, <a class="indexterm" href="cairo-Transformations.html#cairo-translate">cairo_translate ()</a>
955 <dt id="ientry-idp46842958879344">cairo_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-t">cairo_t</a>
956 </dt>
957 <dt id="ientry-idp46842962253792">cairo_tag_begin, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin ()</a>
958 </dt>
959 <dt id="ientry-idp46842960592544">CAIRO_TAG_DEST, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS">CAIRO_TAG_DEST</a>
960 </dt>
961 <dt id="ientry-idp46842960638208">cairo_tag_end, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end ()</a>
962 </dt>
963 <dt id="ientry-idp46842960599168">CAIRO_TAG_LINK, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS">CAIRO_TAG_LINK</a>
964 </dt>
965 <dt id="ientry-idp46842962631312">cairo_text_cluster_allocate, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-allocate">cairo_text_cluster_allocate ()</a>
966 </dt>
967 <dt id="ientry-idp46842962753328">cairo_text_cluster_flags_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-flags-t">enum cairo_text_cluster_flags_t</a>
968 </dt>
969 <dt id="ientry-idp46842962653120">cairo_text_cluster_free, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free ()</a>
970 </dt>
971 <dt id="ientry-idp46842962731040">cairo_text_cluster_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-t">cairo_text_cluster_t</a>
972 </dt>
973 <dt id="ientry-idp46842962459280">cairo_text_extents, <a class="indexterm" href="cairo-text.html#cairo-text-extents">cairo_text_extents ()</a>
974 </dt>
975 <dt id="ientry-idp46842964649728">cairo_text_extents_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t">cairo_text_extents_t</a>
976 </dt>
977 <dt id="ientry-idp46842951154000">cairo_text_path, <a class="indexterm" href="cairo-Paths.html#cairo-text-path">cairo_text_path ()</a>
978 </dt>
979 <dt id="ientry-idp46842962515584">cairo_toy_font_face_create, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-create">cairo_toy_font_face_create ()</a>
980 </dt>
981 <dt id="ientry-idp46842962544400">cairo_toy_font_face_get_family, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-family">cairo_toy_font_face_get_family ()</a>
982 </dt>
983 <dt id="ientry-idp46842962560320">cairo_toy_font_face_get_slant, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-slant">cairo_toy_font_face_get_slant ()</a>
984 </dt>
985 <dt id="ientry-idp46842962575968">cairo_toy_font_face_get_weight, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-weight">cairo_toy_font_face_get_weight ()</a>
986 </dt>
987 <dt id="ientry-idp46842952855968">cairo_transform, <a class="indexterm" href="cairo-Transformations.html#cairo-transform">cairo_transform ()</a>
988 </dt>
989 <dt id="ientry-idp46842952159984">cairo_translate, <a class="indexterm" href="cairo-Transformations.html#cairo-translate">cairo_translate ()</a>
982990 </dt>
983991 </dl>
984992 </div>
985993 <div class="indexdiv">
986994 <h3>U</h3>
987995 <dl>
988 <dt id="ientry-idp46937715069424">cairo_user_data_key_t, <a class="indexterm" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a>
989 </dt>
990 <dt id="ientry-idp46937709539584">cairo_user_font_face_create, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-create">cairo_user_font_face_create ()</a>
991 </dt>
992 <dt id="ientry-idp46937709578960">cairo_user_font_face_get_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func">cairo_user_font_face_get_init_func ()</a>
993 </dt>
994 <dt id="ientry-idp46937710508208">cairo_user_font_face_get_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func">cairo_user_font_face_get_render_glyph_func ()</a>
995 </dt>
996 <dt id="ientry-idp46937710583984">cairo_user_font_face_get_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func">cairo_user_font_face_get_text_to_glyphs_func ()</a>
997 </dt>
998 <dt id="ientry-idp46937710546096">cairo_user_font_face_get_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func">cairo_user_font_face_get_unicode_to_glyph_func ()</a>
999 </dt>
1000 <dt id="ientry-idp46937709555504">cairo_user_font_face_set_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func">cairo_user_font_face_set_init_func ()</a>
1001 </dt>
1002 <dt id="ientry-idp46937709598512">cairo_user_font_face_set_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func">cairo_user_font_face_set_render_glyph_func ()</a>
1003 </dt>
1004 <dt id="ientry-idp46937710563360">cairo_user_font_face_set_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func">cairo_user_font_face_set_text_to_glyphs_func ()</a>
1005 </dt>
1006 <dt id="ientry-idp46937710525472">cairo_user_font_face_set_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func">cairo_user_font_face_set_unicode_to_glyph_func ()</a>
1007 </dt>
1008 <dt id="ientry-idp46937709331376">cairo_user_scaled_font_init_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t">cairo_user_scaled_font_init_func_t ()</a>
1009 </dt>
1010 <dt id="ientry-idp46937709366736">cairo_user_scaled_font_render_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t">cairo_user_scaled_font_render_glyph_func_t ()</a>
1011 </dt>
1012 <dt id="ientry-idp46937709422672">cairo_user_scaled_font_text_to_glyphs_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t">cairo_user_scaled_font_text_to_glyphs_func_t ()</a>
1013 </dt>
1014 <dt id="ientry-idp46937709503664">cairo_user_scaled_font_unicode_to_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t">cairo_user_scaled_font_unicode_to_glyph_func_t ()</a>
1015 </dt>
1016 <dt id="ientry-idp46937697565744">cairo_user_to_device, <a class="indexterm" href="cairo-Transformations.html#cairo-user-to-device">cairo_user_to_device ()</a>
1017 </dt>
1018 <dt id="ientry-idp46937695452032">cairo_user_to_device_distance, <a class="indexterm" href="cairo-Transformations.html#cairo-user-to-device-distance">cairo_user_to_device_distance ()</a>
996 <dt id="ientry-idp46842970628976">cairo_user_data_key_t, <a class="indexterm" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a>
997 </dt>
998 <dt id="ientry-idp46842965496384">cairo_user_font_face_create, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-create">cairo_user_font_face_create ()</a>
999 </dt>
1000 <dt id="ientry-idp46842965535760">cairo_user_font_face_get_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func">cairo_user_font_face_get_init_func ()</a>
1001 </dt>
1002 <dt id="ientry-idp46842966466528">cairo_user_font_face_get_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func">cairo_user_font_face_get_render_glyph_func ()</a>
1003 </dt>
1004 <dt id="ientry-idp46842966542304">cairo_user_font_face_get_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func">cairo_user_font_face_get_text_to_glyphs_func ()</a>
1005 </dt>
1006 <dt id="ientry-idp46842966504416">cairo_user_font_face_get_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func">cairo_user_font_face_get_unicode_to_glyph_func ()</a>
1007 </dt>
1008 <dt id="ientry-idp46842965512304">cairo_user_font_face_set_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func">cairo_user_font_face_set_init_func ()</a>
1009 </dt>
1010 <dt id="ientry-idp46842965555312">cairo_user_font_face_set_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func">cairo_user_font_face_set_render_glyph_func ()</a>
1011 </dt>
1012 <dt id="ientry-idp46842966521680">cairo_user_font_face_set_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func">cairo_user_font_face_set_text_to_glyphs_func ()</a>
1013 </dt>
1014 <dt id="ientry-idp46842966483792">cairo_user_font_face_set_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func">cairo_user_font_face_set_unicode_to_glyph_func ()</a>
1015 </dt>
1016 <dt id="ientry-idp46842965288176">cairo_user_scaled_font_init_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t">cairo_user_scaled_font_init_func_t ()</a>
1017 </dt>
1018 <dt id="ientry-idp46842965323536">cairo_user_scaled_font_render_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t">cairo_user_scaled_font_render_glyph_func_t ()</a>
1019 </dt>
1020 <dt id="ientry-idp46842965379472">cairo_user_scaled_font_text_to_glyphs_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t">cairo_user_scaled_font_text_to_glyphs_func_t ()</a>
1021 </dt>
1022 <dt id="ientry-idp46842965460464">cairo_user_scaled_font_unicode_to_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t">cairo_user_scaled_font_unicode_to_glyph_func_t ()</a>
1023 </dt>
1024 <dt id="ientry-idp46842956024320">cairo_user_to_device, <a class="indexterm" href="cairo-Transformations.html#cairo-user-to-device">cairo_user_to_device ()</a>
1025 </dt>
1026 <dt id="ientry-idp46842956112736">cairo_user_to_device_distance, <a class="indexterm" href="cairo-Transformations.html#cairo-user-to-device-distance">cairo_user_to_device_distance ()</a>
10191027 </dt>
10201028 </dl>
10211029 </div>
10221030 <div class="indexdiv">
10231031 <h3>V</h3>
10241032 <dl>
1025 <dt id="ientry-idp46937715567632">cairo_version, <a class="indexterm" href="cairo-Version-Information.html#cairo-version">cairo_version ()</a>
1026 </dt>
1027 <dt id="ientry-idp46937715594512">CAIRO_VERSION, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS">CAIRO_VERSION</a>
1028 </dt>
1029 <dt id="ientry-idp46937715003088">CAIRO_VERSION_ENCODE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS">CAIRO_VERSION_ENCODE()</a>
1030 </dt>
1031 <dt id="ientry-idp46937715600704">CAIRO_VERSION_MAJOR, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS">CAIRO_VERSION_MAJOR</a>
1032 </dt>
1033 <dt id="ientry-idp46937715611104">CAIRO_VERSION_MICRO, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS">CAIRO_VERSION_MICRO</a>
1034 </dt>
1035 <dt id="ientry-idp46937715605904">CAIRO_VERSION_MINOR, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS">CAIRO_VERSION_MINOR</a>
1036 </dt>
1037 <dt id="ientry-idp46937715581344">cairo_version_string, <a class="indexterm" href="cairo-Version-Information.html#cairo-version-string">cairo_version_string ()</a>
1038 </dt>
1039 <dt id="ientry-idp46937715616304">CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</a>
1040 </dt>
1041 <dt id="ientry-idp46937715547504">CAIRO_VERSION_STRINGIZE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS">CAIRO_VERSION_STRINGIZE()</a>
1033 <dt id="ientry-idp46842970705024">cairo_version, <a class="indexterm" href="cairo-Version-Information.html#cairo-version">cairo_version ()</a>
1034 </dt>
1035 <dt id="ientry-idp46842971622512">CAIRO_VERSION, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS">CAIRO_VERSION</a>
1036 </dt>
1037 <dt id="ientry-idp46842966001712">CAIRO_VERSION_ENCODE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS">CAIRO_VERSION_ENCODE()</a>
1038 </dt>
1039 <dt id="ientry-idp46842971628704">CAIRO_VERSION_MAJOR, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS">CAIRO_VERSION_MAJOR</a>
1040 </dt>
1041 <dt id="ientry-idp46842971639104">CAIRO_VERSION_MICRO, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS">CAIRO_VERSION_MICRO</a>
1042 </dt>
1043 <dt id="ientry-idp46842971633904">CAIRO_VERSION_MINOR, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS">CAIRO_VERSION_MINOR</a>
1044 </dt>
1045 <dt id="ientry-idp46842971609344">cairo_version_string, <a class="indexterm" href="cairo-Version-Information.html#cairo-version-string">cairo_version_string ()</a>
1046 </dt>
1047 <dt id="ientry-idp46842971644304">CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</a>
1048 </dt>
1049 <dt id="ientry-idp46842970682224">CAIRO_VERSION_STRINGIZE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS">CAIRO_VERSION_STRINGIZE()</a>
10421050 </dt>
10431051 </dl>
10441052 </div>
10451053 <div class="indexdiv">
10461054 <h3>W</h3>
10471055 <dl>
1048 <dt id="ientry-idp46937707344464">cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont ()</a>
1049 </dt>
1050 <dt id="ientry-idp46937707809952">cairo_win32_font_face_create_for_logfontw, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw">cairo_win32_font_face_create_for_logfontw ()</a>
1051 </dt>
1052 <dt id="ientry-idp46937707371152">cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont">cairo_win32_font_face_create_for_logfontw_hfont ()</a>
1053 </dt>
1054 <dt id="ientry-idp46937711757248">cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create">cairo_win32_printing_surface_create ()</a>
1055 </dt>
1056 <dt id="ientry-idp46937708915408">cairo_win32_scaled_font_done_font, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font">cairo_win32_scaled_font_done_font ()</a>
1057 </dt>
1058 <dt id="ientry-idp46937708971408">cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical">cairo_win32_scaled_font_get_device_to_logical ()</a>
1059 </dt>
1060 <dt id="ientry-idp46937708951088">cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device">cairo_win32_scaled_font_get_logical_to_device ()</a>
1061 </dt>
1062 <dt id="ientry-idp46937708932384">cairo_win32_scaled_font_get_metrics_factor, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor">cairo_win32_scaled_font_get_metrics_factor ()</a>
1063 </dt>
1064 <dt id="ientry-idp46937707404448">cairo_win32_scaled_font_select_font, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font">cairo_win32_scaled_font_select_font ()</a>
1065 </dt>
1066 <dt id="ientry-idp46937689792048">cairo_win32_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create">cairo_win32_surface_create ()</a>
1067 </dt>
1068 <dt id="ientry-idp46937711413376">cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb">cairo_win32_surface_create_with_ddb ()</a>
1069 </dt>
1070 <dt id="ientry-idp46937711850624">cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib ()</a>
1071 </dt>
1072 <dt id="ientry-idp46937711776992">cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">cairo_win32_surface_get_dc ()</a>
1073 </dt>
1074 <dt id="ientry-idp46937712956464">cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image">cairo_win32_surface_get_image ()</a>
1075 </dt>
1076 <dt id="ientry-idp46937711685328">cairo_write_func_t, <a class="indexterm" href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t ()</a>
1056 <dt id="ientry-idp46842964908192">cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont ()</a>
1057 </dt>
1058 <dt id="ientry-idp46842964881360">cairo_win32_font_face_create_for_logfontw, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw">cairo_win32_font_face_create_for_logfontw ()</a>
1059 </dt>
1060 <dt id="ientry-idp46842963684432">cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont">cairo_win32_font_face_create_for_logfontw_hfont ()</a>
1061 </dt>
1062 <dt id="ientry-idp46842966854880">cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create">cairo_win32_printing_surface_create ()</a>
1063 </dt>
1064 <dt id="ientry-idp46842963749056">cairo_win32_scaled_font_done_font, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font">cairo_win32_scaled_font_done_font ()</a>
1065 </dt>
1066 <dt id="ientry-idp46842965211184">cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical">cairo_win32_scaled_font_get_device_to_logical ()</a>
1067 </dt>
1068 <dt id="ientry-idp46842965193040">cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device">cairo_win32_scaled_font_get_logical_to_device ()</a>
1069 </dt>
1070 <dt id="ientry-idp46842963766032">cairo_win32_scaled_font_get_metrics_factor, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor">cairo_win32_scaled_font_get_metrics_factor ()</a>
1071 </dt>
1072 <dt id="ientry-idp46842963717728">cairo_win32_scaled_font_select_font, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font">cairo_win32_scaled_font_select_font ()</a>
1073 </dt>
1074 <dt id="ientry-idp46842963884272">cairo_win32_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create">cairo_win32_surface_create ()</a>
1075 </dt>
1076 <dt id="ientry-idp46842966825536">cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb">cairo_win32_surface_create_with_ddb ()</a>
1077 </dt>
1078 <dt id="ientry-idp46842967317936">cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib ()</a>
1079 </dt>
1080 <dt id="ientry-idp46842968922624">cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">cairo_win32_surface_get_dc ()</a>
1081 </dt>
1082 <dt id="ientry-idp46842968947520">cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image">cairo_win32_surface_get_image ()</a>
1083 </dt>
1084 <dt id="ientry-idp46842965748640">cairo_write_func_t, <a class="indexterm" href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t ()</a>
10771085 </dt>
10781086 </dl>
10791087 </div>
10801088 <div class="indexdiv">
10811089 <h3>X</h3>
10821090 <dl>
1083 <dt id="ientry-idp46937713718032">cairo_xcb_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version">cairo_xcb_device_debug_cap_xrender_version ()</a>
1084 </dt>
1085 <dt id="ientry-idp46937713743120">cairo_xcb_device_debug_cap_xshm_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version">cairo_xcb_device_debug_cap_xshm_version ()</a>
1086 </dt>
1087 <dt id="ientry-idp46937714592816">cairo_xcb_device_debug_get_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision">cairo_xcb_device_debug_get_precision ()</a>
1088 </dt>
1089 <dt id="ientry-idp46937714609216">cairo_xcb_device_debug_set_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision">cairo_xcb_device_debug_set_precision ()</a>
1090 </dt>
1091 <dt id="ientry-idp46937713698480">cairo_xcb_device_get_connection, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection">cairo_xcb_device_get_connection ()</a>
1092 </dt>
1093 <dt id="ientry-idp46937713513424">cairo_xcb_surface_create, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create">cairo_xcb_surface_create ()</a>
1094 </dt>
1095 <dt id="ientry-idp46937713555472">cairo_xcb_surface_create_for_bitmap, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap">cairo_xcb_surface_create_for_bitmap ()</a>
1096 </dt>
1097 <dt id="ientry-idp46937713594416">cairo_xcb_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format">cairo_xcb_surface_create_with_xrender_format ()</a>
1098 </dt>
1099 <dt id="ientry-idp46937713668512">cairo_xcb_surface_set_drawable, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable">cairo_xcb_surface_set_drawable ()</a>
1100 </dt>
1101 <dt id="ientry-idp46937713641376">cairo_xcb_surface_set_size, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size">cairo_xcb_surface_set_size ()</a>
1102 </dt>
1103 <dt id="ientry-idp46937714050368">cairo_xlib_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version">cairo_xlib_device_debug_cap_xrender_version ()</a>
1104 </dt>
1105 <dt id="ientry-idp46937714075504">cairo_xlib_device_debug_get_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision">cairo_xlib_device_debug_get_precision ()</a>
1106 </dt>
1107 <dt id="ientry-idp46937714094128">cairo_xlib_device_debug_set_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision">cairo_xlib_device_debug_set_precision ()</a>
1108 </dt>
1109 <dt id="ientry-idp46937714513472">cairo_xlib_surface_create, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create">cairo_xlib_surface_create ()</a>
1110 </dt>
1111 <dt id="ientry-idp46937714552816">cairo_xlib_surface_create_for_bitmap, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap">cairo_xlib_surface_create_for_bitmap ()</a>
1112 </dt>
1113 <dt id="ientry-idp46937714421696">cairo_xlib_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-create-with-xrender-format">cairo_xlib_surface_create_with_xrender_format ()</a>
1114 </dt>
1115 <dt id="ientry-idp46937714031824">cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth ()</a>
1116 </dt>
1117 <dt id="ientry-idp46937713887056">cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">cairo_xlib_surface_get_display ()</a>
1118 </dt>
1119 <dt id="ientry-idp46937713952944">cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable ()</a>
1120 </dt>
1121 <dt id="ientry-idp46937714013232">cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">cairo_xlib_surface_get_height ()</a>
1122 </dt>
1123 <dt id="ientry-idp46937713905648">cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen ()</a>
1124 </dt>
1125 <dt id="ientry-idp46937713971536">cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual ()</a>
1126 </dt>
1127 <dt id="ientry-idp46937713994544">cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">cairo_xlib_surface_get_width ()</a>
1128 </dt>
1129 <dt id="ientry-idp46937713271376">cairo_xlib_surface_get_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format">cairo_xlib_surface_get_xrender_format ()</a>
1130 </dt>
1131 <dt id="ientry-idp46937713924224">cairo_xlib_surface_set_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable">cairo_xlib_surface_set_drawable ()</a>
1132 </dt>
1133 <dt id="ientry-idp46937713861456">cairo_xlib_surface_set_size, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size">cairo_xlib_surface_set_size ()</a>
1091 <dt id="ientry-idp46842969835040">cairo_xcb_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version">cairo_xcb_device_debug_cap_xrender_version ()</a>
1092 </dt>
1093 <dt id="ientry-idp46842969860128">cairo_xcb_device_debug_cap_xshm_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version">cairo_xcb_device_debug_cap_xshm_version ()</a>
1094 </dt>
1095 <dt id="ientry-idp46842970153424">cairo_xcb_device_debug_get_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision">cairo_xcb_device_debug_get_precision ()</a>
1096 </dt>
1097 <dt id="ientry-idp46842970169824">cairo_xcb_device_debug_set_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision">cairo_xcb_device_debug_set_precision ()</a>
1098 </dt>
1099 <dt id="ientry-idp46842969815488">cairo_xcb_device_get_connection, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection">cairo_xcb_device_get_connection ()</a>
1100 </dt>
1101 <dt id="ientry-idp46842969630384">cairo_xcb_surface_create, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create">cairo_xcb_surface_create ()</a>
1102 </dt>
1103 <dt id="ientry-idp46842969672480">cairo_xcb_surface_create_for_bitmap, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap">cairo_xcb_surface_create_for_bitmap ()</a>
1104 </dt>
1105 <dt id="ientry-idp46842969711424">cairo_xcb_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format">cairo_xcb_surface_create_with_xrender_format ()</a>
1106 </dt>
1107 <dt id="ientry-idp46842969785520">cairo_xcb_surface_set_drawable, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable">cairo_xcb_surface_set_drawable ()</a>
1108 </dt>
1109 <dt id="ientry-idp46842969758384">cairo_xcb_surface_set_size, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size">cairo_xcb_surface_set_size ()</a>
1110 </dt>
1111 <dt id="ientry-idp46842970545680">cairo_xlib_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version">cairo_xlib_device_debug_cap_xrender_version ()</a>
1112 </dt>
1113 <dt id="ientry-idp46842970567968">cairo_xlib_device_debug_get_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision">cairo_xlib_device_debug_get_precision ()</a>
1114 </dt>
1115 <dt id="ientry-idp46842970584368">cairo_xlib_device_debug_set_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision">cairo_xlib_device_debug_set_precision ()</a>
1116 </dt>
1117 <dt id="ientry-idp46842970212768">cairo_xlib_surface_create, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create">cairo_xlib_surface_create ()</a>
1118 </dt>
1119 <dt id="ientry-idp46842970252112">cairo_xlib_surface_create_for_bitmap, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap">cairo_xlib_surface_create_for_bitmap ()</a>
1120 </dt>
1121 <dt id="ientry-idp46842968854656">cairo_xlib_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-create-with-xrender-format">cairo_xlib_surface_create_with_xrender_format ()</a>
1122 </dt>
1123 <dt id="ientry-idp46842970529408">cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth ()</a>
1124 </dt>
1125 <dt id="ientry-idp46842970313792">cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">cairo_xlib_surface_get_display ()</a>
1126 </dt>
1127 <dt id="ientry-idp46842970379680">cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable ()</a>
1128 </dt>
1129 <dt id="ientry-idp46842970439968">cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">cairo_xlib_surface_get_height ()</a>
1130 </dt>
1131 <dt id="ientry-idp46842970332384">cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen ()</a>
1132 </dt>
1133 <dt id="ientry-idp46842970398272">cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual ()</a>
1134 </dt>
1135 <dt id="ientry-idp46842970421280">cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">cairo_xlib_surface_get_width ()</a>
1136 </dt>
1137 <dt id="ientry-idp46842969428352">cairo_xlib_surface_get_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format">cairo_xlib_surface_get_xrender_format ()</a>
1138 </dt>
1139 <dt id="ientry-idp46842970350960">cairo_xlib_surface_set_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable">cairo_xlib_surface_set_drawable ()</a>
1140 </dt>
1141 <dt id="ientry-idp46842970288192">cairo_xlib_surface_set_size, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size">cairo_xlib_surface_set_size ()</a>
11341142 </dt>
11351143 </dl>
11361144 </div>
1313 <div class="titlepage">
1414 <div>
1515 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Cairo: A Vector Graphics Library</p></th></tr></table></div>
16 <div><p class="releaseinfo">for Cairo 1.15.8
16 <div><p class="releaseinfo">for Cairo 1.15.10
1717 </p></div>
1818 </div>
1919 <hr>
2020
2121
2222 <!-- ##### MACRO CAIRO_HAS_MIME_SURFACE ##### -->
23 <para>
24
25 </para>
26
27
28
29 <!-- ##### MACRO CAIRO_MIME_TYPE_CCITT_FAX ##### -->
30 <para>
31
32 </para>
33
34
35
36 <!-- ##### MACRO CAIRO_MIME_TYPE_CCITT_FAX_PARAMS ##### -->
37 <para>
38
39 </para>
40
41
42
43 <!-- ##### MACRO CAIRO_MIME_TYPE_EPS ##### -->
44 <para>
45
46 </para>
47
48
49
50 <!-- ##### MACRO CAIRO_MIME_TYPE_EPS_PARAMS ##### -->
2351 <para>
2452
2553 </para>
88
99 </para>
1010
11
1112 <!-- ##### SECTION See_Also ##### -->
1213 <para>
1314
1415 </para>
16
1517
1618 <!-- ##### SECTION Stability_Level ##### -->
1719
0 <!-- ##### STRUCT cairo_skia_context ##### -->
1 <para>
2
3 </para>
4
5 @base:
6 @original:
7 @target:
8 @matrix:
9 @canvas:
10 @paint:
11 @path:
12 @source:
13 @source_image:
14 @source_extra:
15
16 <!-- ##### STRUCT cairo_skia_surface ##### -->
17 <para>
18
19 </para>
20
21 @image:
22 @bitmap:
23
0 1.15.8
0 1.15.10
33 <!ENTITY version SYSTEM "version.xml">
44 ]>
55 <indexdiv id="api-index-1.16">
6 <indexdiv><title>M</title>
7 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS">CAIRO_MIME_TYPE_CCITT_FAX</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
8 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
9 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-EPS:CAPS"><link linkend="CAIRO-MIME-TYPE-EPS:CAPS">CAIRO_MIME_TYPE_EPS</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
10 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"><link linkend="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS">CAIRO_MIME_TYPE_EPS_PARAMS</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
11 </indexdiv>
612 <indexdiv><title>P</title>
713 <indexentry><primaryie linkends="cairo-pdf-metadata-t"><link linkend="cairo-pdf-metadata-t">cairo_pdf_metadata_t</link>, enum in <link linkend="cairo-PDF-Surfaces">PDF Surfaces</link></primaryie></indexentry>
814 <indexentry><primaryie linkends="cairo-pdf-outline-flags-t"><link linkend="cairo-pdf-outline-flags-t">cairo_pdf_outline_flags_t</link>, enum in <link linkend="cairo-PDF-Surfaces">PDF Surfaces</link></primaryie></indexentry>
1218 <indexentry><primaryie linkends="cairo-pdf-surface-set-page-label"><link linkend="cairo-pdf-surface-set-page-label">cairo_pdf_surface_set_page_label</link>, function in <link linkend="cairo-PDF-Surfaces">PDF Surfaces</link></primaryie></indexentry>
1319 <indexentry><primaryie linkends="cairo-pdf-surface-set-thumbnail-size"><link linkend="cairo-pdf-surface-set-thumbnail-size">cairo_pdf_surface_set_thumbnail_size</link>, function in <link linkend="cairo-PDF-Surfaces">PDF Surfaces</link></primaryie></indexentry>
1420 </indexdiv>
21 <indexdiv><title>S</title>
22 <indexentry><primaryie linkends="cairo-svg-version-t"><link linkend="cairo-svg-version-t">cairo_svg_version_t</link>, enum in <link linkend="cairo-SVG-Surfaces">SVG Surfaces</link></primaryie></indexentry>
23 </indexdiv>
1524 <indexdiv><title>T</title>
1625 <indexentry><primaryie linkends="cairo-tag-begin"><link linkend="cairo-tag-begin">cairo_tag_begin</link>, function in <link linkend="cairo-Tags-and-Links">Tags and Links</link></primaryie></indexentry>
1726 <indexentry><primaryie linkends="CAIRO-TAG-DEST:CAPS"><link linkend="CAIRO-TAG-DEST:CAPS">CAIRO_TAG_DEST</link>, macro in <link linkend="cairo-Tags-and-Links">Tags and Links</link></primaryie></indexentry>
5757 <indexentry><primaryie linkends="cairo-svg-surface-create"><link linkend="cairo-svg-surface-create">cairo_svg_surface_create</link>, function in <link linkend="cairo-SVG-Surfaces">SVG Surfaces</link></primaryie></indexentry>
5858 <indexentry><primaryie linkends="cairo-svg-surface-create-for-stream"><link linkend="cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream</link>, function in <link linkend="cairo-SVG-Surfaces">SVG Surfaces</link></primaryie></indexentry>
5959 <indexentry><primaryie linkends="cairo-svg-surface-restrict-to-version"><link linkend="cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version</link>, function in <link linkend="cairo-SVG-Surfaces">SVG Surfaces</link></primaryie></indexentry>
60 <indexentry><primaryie linkends="cairo-svg-version-t"><link linkend="cairo-svg-version-t">cairo_svg_version_t</link>, enum in <link linkend="cairo-SVG-Surfaces">SVG Surfaces</link></primaryie></indexentry>
6160 <indexentry><primaryie linkends="cairo-svg-version-to-string"><link linkend="cairo-svg-version-to-string">cairo_svg_version_to_string</link>, function in <link linkend="cairo-SVG-Surfaces">SVG Surfaces</link></primaryie></indexentry>
6261 </indexdiv>
6362 <indexdiv><title>W</title>
204204 <indexentry><primaryie linkends="cairo-mesh-pattern-set-control-point"><link linkend="cairo-mesh-pattern-set-control-point">cairo_mesh_pattern_set_control_point</link>, function in <link linkend="cairo-cairo-pattern-t">cairo_pattern_t</link></primaryie></indexentry>
205205 <indexentry><primaryie linkends="cairo-mesh-pattern-set-corner-color-rgb"><link linkend="cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</link>, function in <link linkend="cairo-cairo-pattern-t">cairo_pattern_t</link></primaryie></indexentry>
206206 <indexentry><primaryie linkends="cairo-mesh-pattern-set-corner-color-rgba"><link linkend="cairo-mesh-pattern-set-corner-color-rgba">cairo_mesh_pattern_set_corner_color_rgba</link>, function in <link linkend="cairo-cairo-pattern-t">cairo_pattern_t</link></primaryie></indexentry>
207 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS">CAIRO_MIME_TYPE_CCITT_FAX</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
208 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
209 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-EPS:CAPS"><link linkend="CAIRO-MIME-TYPE-EPS:CAPS">CAIRO_MIME_TYPE_EPS</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
210 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"><link linkend="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS">CAIRO_MIME_TYPE_EPS_PARAMS</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
207211 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-JBIG2:CAPS"><link linkend="CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
208212 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"><link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
209213 <indexentry><primaryie linkends="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</link>, macro in <link linkend="cairo-cairo-surface-t">cairo_surface_t</link></primaryie></indexentry>
7171 <para>The following mime types are supported: <link linkend="CAIRO-MIME-TYPE-JPEG:CAPS"><literal>CAIRO_MIME_TYPE_JPEG</literal></link>,
7272 <link linkend="CAIRO-MIME-TYPE-JP2:CAPS"><literal>CAIRO_MIME_TYPE_JP2</literal></link>, <link linkend="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"><literal>CAIRO_MIME_TYPE_UNIQUE_ID</literal></link>,
7373 <link linkend="CAIRO-MIME-TYPE-JBIG2:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2</literal></link>, <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL</literal></link>,
74 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</literal></link>.</para>
75 <para>JBIG2 data in PDF must be in the embedded format as described in
74 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</literal></link>,
75 <link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX</literal></link>, <link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link>.</para>
76 <refsect2><title>JBIG2 Images</title><para>JBIG2 data in PDF must be in the embedded format as described in
7677 ISO/IEC 11544. Image specific JBIG2 data must be in
7778 <link linkend="CAIRO-MIME-TYPE-JBIG2:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2</literal></link>. Any global segments in the JBIG2 data
7879 (segments with page association field set to 0) must be in
7980 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL</literal></link>. The global data may be shared by
8081 multiple images. All images sharing the same global data must set
81 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</literal></link> to a unique identifer. At least
82 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</literal></link> to a unique identifier. At least
8283 one of the images must provide the global data using
8384 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL</literal></link>. The global data will only be
84 embedded once but shared by all JBIG2 images with the same
85 embedded once and shared by all JBIG2 images with the same
8586 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</literal></link>.</para>
87 </refsect2>
88 <refsect2 id="ccitt"><title>CCITT Fax Images</title><para>The <link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX</literal></link> mime data requires a number of decoding
89 parameters These parameters are specified using <link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link>.</para>
90 <para><link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link> mime data must contain a string of the form
91 "param1=value1 param2=value2 ...".</para>
92 <para><parameter>Columns</parameter>
93 : [required] An integer specifying the width of the image in pixels.</para>
94 <para><parameter>Rows</parameter>
95 : [required] An integer specifying the height of the image in scan lines.</para>
96 <para><parameter>K</parameter>
97 : [optional] An integer identifying the encoding scheme used. &lt; 0
98 is 2 dimensional Group 4, = 0 is Group3 1 dimensional, &gt; 0 is mixed 1
99 and 2 dimensional encoding. Default is 0.</para>
100 <para><parameter>EndOfLine</parameter>
101 : [optional] If true end-of-line bit patterns are present. Default is false.</para>
102 <para><parameter>EncodedByteAlign</parameter>
103 : [optional] If true the end of line is padded
104 with 0 bits so the next line begins on a byte boundary. Default is false.</para>
105 <para><parameter>EndOfBlock</parameter>
106 : [optional] If true the data contains an end-of-block pattern. Default is true.</para>
107 <para><parameter>BlackIs1</parameter>
108 : [optional] If true 1 bits are black pixels. Default is false.</para>
109 <para><parameter>DamagedRowsBeforeError</parameter>
110 : [optional] An integer specifying the
111 number of damages rows tolerated before an error occurs. Default is 0.</para>
112 <para>Boolean values may be "true" or "false", or 1 or 0.</para>
113 <para>These parameters are the same as the CCITTFaxDecode parameters in the
114 <ulink url="https://www.adobe.com/products/postscript/pdfs/PLRM.pdf">PostScript Language Reference</ulink>
115 and <ulink url="https://www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf">Portable Document Format (PDF)</ulink>.
116 Refer to these documents for further details.</para>
117 <para>An example <link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link> string is:</para>
118 <programlisting>
119 "Columns=10230 Rows=40000 K=1 EndOfLine=true EncodedByteAlign=1 BlackIs1=false"
120 </programlisting>
121 </refsect2>
86122
87123 </refsect1>
88124 <refsect1 id="cairo-PDF-Surfaces.functions_details" role="details">
8383 <colspec colname="parameters_annotations" colwidth="200px"/>
8484 <tbody>
8585 <row><entry role="parameter_name"><para>filename</para></entry>
86 <entry role="parameter_description"><para>name of PNG file to load</para></entry>
86 <entry role="parameter_description"><para>name of PNG file to load. On Windows this filename
87 is encoded in UTF-8.</para></entry>
8788 <entry role="parameter_annotations"></entry></row>
8889 </tbody></tgroup></informaltable>
8990 </refsect3><refsect3 id="cairo-image-surface-create-from-png.returns" role="returns">
198199 <entry role="parameter_description"><para>a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> with pixel contents</para></entry>
199200 <entry role="parameter_annotations"></entry></row>
200201 <row><entry role="parameter_name"><para>filename</para></entry>
201 <entry role="parameter_description"><para>the name of a file to write to</para></entry>
202 <entry role="parameter_description"><para>the name of a file to write to; on Windows this filename
203 is encoded in UTF-8.</para></entry>
202204 <entry role="parameter_annotations"></entry></row>
203205 </tbody></tgroup></informaltable>
204206 </refsect3><refsect3 id="cairo-surface-write-to-png.returns" role="returns">
6767 <title role="desc.title">Description</title>
6868 <para>The PostScript surface is used to render cairo graphics to Adobe
6969 PostScript files and is a multi-page vector surface backend.</para>
70 <para>The following mime types are supported: <link linkend="CAIRO-MIME-TYPE-JPEG:CAPS"><literal>CAIRO_MIME_TYPE_JPEG</literal></link>,
71 <link linkend="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"><literal>CAIRO_MIME_TYPE_UNIQUE_ID</literal></link>,
72 <link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX</literal></link>, <link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link>,
73 <link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX</literal></link>, <link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link>,
74 <link linkend="CAIRO-MIME-TYPE-EPS:CAPS"><literal>CAIRO_MIME_TYPE_EPS</literal></link>, <link linkend="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_EPS_PARAMS</literal></link>.</para>
75 <para>Source surfaces used by the PostScript surface that have a
76 <link linkend="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"><literal>CAIRO_MIME_TYPE_UNIQUE_ID</literal></link> mime type will be stored in PostScript
77 printer memory for the duration of the print
78 job. <link linkend="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"><literal>CAIRO_MIME_TYPE_UNIQUE_ID</literal></link> should only be used for small
79 frequently used sources.</para>
80 <para>The <link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX</literal></link> and <link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link> mime types
81 are documented in <link linkend="ccitt">CCITT Fax Images</link>.</para>
82 <refsect2 id="eps"><title>Embedding EPS files</title><para>Encapsulated PostScript files can be embedded in the PS output by
83 setting the CAIRO_MIME_TYPE_EPS mime data on a surface to the EPS
84 data and painting the surface. The EPS will be scaled and
85 translated to the extents of the surface the EPS data is attached
86 to.</para>
87 <para>The <link linkend="CAIRO-MIME-TYPE-EPS:CAPS"><literal>CAIRO_MIME_TYPE_EPS</literal></link> mime type requires the
88 <link linkend="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_EPS_PARAMS</literal></link> mime data to also be provided in order
89 to specify the embeddding parameters. <link linkend="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_EPS_PARAMS</literal></link>
90 mime data must contain a string of the form "bbox=[llx lly urx
91 ury]" that specifies the bounding box (in PS coordinates) of the
92 EPS graphics. The parameters are: lower left x, lower left y, upper
93 right x, upper right y. Normally the bbox data is identical to the
94 %%<link linkend="BoundingBox"><literal>BoundingBox</literal></link> data in the EPS file.</para>
95 </refsect2>
7096
7197 </refsect1>
7298 <refsect1 id="cairo-PostScript-Surfaces.functions_details" role="details">
9595 <colspec colname="description"/>
9696 <tbody>
9797 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-HAS-MIME-SURFACE:CAPS">CAIRO_HAS_MIME_SURFACE</link></entry></row>
98 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS">CAIRO_MIME_TYPE_CCITT_FAX</link></entry></row>
99 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</link></entry></row>
100 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-MIME-TYPE-EPS:CAPS">CAIRO_MIME_TYPE_EPS</link></entry></row>
101 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS">CAIRO_MIME_TYPE_EPS_PARAMS</link></entry></row>
98102 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</link></entry></row>
99103 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</link></entry></row>
100104 <row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</link></entry></row>
10111015 <para>The recognized MIME types are the following: <link linkend="CAIRO-MIME-TYPE-JPEG:CAPS"><literal>CAIRO_MIME_TYPE_JPEG</literal></link>,
10121016 <link linkend="CAIRO-MIME-TYPE-PNG:CAPS"><literal>CAIRO_MIME_TYPE_PNG</literal></link>, <link linkend="CAIRO-MIME-TYPE-JP2:CAPS"><literal>CAIRO_MIME_TYPE_JP2</literal></link>, <link linkend="CAIRO-MIME-TYPE-URI:CAPS"><literal>CAIRO_MIME_TYPE_URI</literal></link>,
10131017 <link linkend="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"><literal>CAIRO_MIME_TYPE_UNIQUE_ID</literal></link>, <link linkend="CAIRO-MIME-TYPE-JBIG2:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2</literal></link>,
1014 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL</literal></link>, <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</literal></link>.</para>
1018 <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL</literal></link>, <link linkend="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"><literal>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</literal></link>,
1019 <link linkend="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX</literal></link>, <link linkend="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"><literal>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</literal></link>.</para>
10151020 <para>See corresponding backend surface docs for details about which MIME
10161021 types it can handle. Caution: the associated MIME data will be
10171022 discarded if you draw on the surface afterwards. Use this function
12091214 <para>
12101215 </para>
12111216 </refsect2>
1217 <refsect2 id="CAIRO-MIME-TYPE-CCITT-FAX:CAPS" role="macro" condition="since:1.16">
1218 <title>CAIRO_MIME_TYPE_CCITT_FAX</title>
1219 <indexterm zone="CAIRO-MIME-TYPE-CCITT-FAX:CAPS" role="1.16"><primary sortas="MIME_TYPE_CCITT_FAX">CAIRO_MIME_TYPE_CCITT_FAX</primary></indexterm>
1220 <programlisting language="C">#define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax"
1221 </programlisting>
1222 <para>Group 3 or Group 4 CCITT facsimile encoding (International
1223 Telecommunication Union, Recommendations T.4 and T.6.)</para>
1224 <para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
1225 <refsect2 id="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" role="macro" condition="since:1.16">
1226 <title>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</title>
1227 <indexterm zone="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" role="1.16"><primary sortas="MIME_TYPE_CCITT_FAX_PARAMS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</primary></indexterm>
1228 <programlisting language="C">#define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params"
1229 </programlisting>
1230 <para>Decode parameters for Group 3 or Group 4 CCITT facsimile encoding.
1231 See <link linkend="ccitt">CCITT Fax Images</link>.</para>
1232 <para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
1233 <refsect2 id="CAIRO-MIME-TYPE-EPS:CAPS" role="macro" condition="since:1.16">
1234 <title>CAIRO_MIME_TYPE_EPS</title>
1235 <indexterm zone="CAIRO-MIME-TYPE-EPS:CAPS" role="1.16"><primary sortas="MIME_TYPE_EPS">CAIRO_MIME_TYPE_EPS</primary></indexterm>
1236 <programlisting language="C">#define CAIRO_MIME_TYPE_EPS "application/postscript"
1237 </programlisting>
1238 <para>Encapsulated PostScript file.
1239 <ulink url="http://wwwimages.adobe.com/content/dam/Adobe/endevnet/postscript/pdfs/5002.EPSF_Spec.pdf">Encapsulated PostScript File Format Specification</ulink></para>
1240 <para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
1241 <refsect2 id="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" role="macro" condition="since:1.16">
1242 <title>CAIRO_MIME_TYPE_EPS_PARAMS</title>
1243 <indexterm zone="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" role="1.16"><primary sortas="MIME_TYPE_EPS_PARAMS">CAIRO_MIME_TYPE_EPS_PARAMS</primary></indexterm>
1244 <programlisting language="C">#define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params"
1245 </programlisting>
1246 <para>Embedding parameters Encapsulated PostScript data.
1247 See <link linkend="eps">Embedding EPS files</link>.</para>
1248 <para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
12121249 <refsect2 id="CAIRO-MIME-TYPE-JBIG2:CAPS" role="macro" condition="since:1.14">
12131250 <title>CAIRO_MIME_TYPE_JBIG2</title>
12141251 <indexterm zone="CAIRO-MIME-TYPE-JBIG2:CAPS" role="1.14"><primary sortas="MIME_TYPE_JBIG2">CAIRO_MIME_TYPE_JBIG2</primary></indexterm>
8282 <para>If <link linkend="CAIRO-MIME-TYPE-URI:CAPS"><literal>CAIRO_MIME_TYPE_URI</literal></link> is not present, but <link linkend="CAIRO-MIME-TYPE-JPEG:CAPS"><literal>CAIRO_MIME_TYPE_JPEG</literal></link>
8383 or <link linkend="CAIRO-MIME-TYPE-PNG:CAPS"><literal>CAIRO_MIME_TYPE_PNG</literal></link> is specified, the corresponding data is
8484 Base64-encoded and emitted.</para>
85 <para>If <link linkend="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"><literal>CAIRO_MIME_TYPE_UNIQUE_ID</literal></link> is present, all surfaces with the same
86 unique identifier will only be embedded once.</para>
8587 <refsect3 id="cairo-svg-surface-create.parameters" role="parameters">
8688 <title>Parameters</title>
8789 <informaltable role="parameters_table" pgwide="1" frame="none">
251253 <para>Defined if the SVG surface backend is available.
252254 This macro can be used to conditionally compile backend-specific code.</para>
253255 <para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2>
254 <refsect2 id="cairo-svg-version-t" role="enum" condition="since:1.2">
256 <refsect2 id="cairo-svg-version-t" role="enum" condition="since:1.16">
255257 <title>enum cairo_svg_version_t</title>
256 <indexterm zone="cairo-svg-version-t" role="1.2"><primary sortas="svg_version_t">cairo_svg_version_t</primary></indexterm>
257 <para><link linkend="cairo-svg-version-t"><type>cairo_svg_version_t</type></link> is used to describe the version number of the SVG
258 specification that a generated SVG file will conform to.</para>
258 <indexterm zone="cairo-svg-version-t" role="1.16"><primary sortas="svg_version_t">cairo_svg_version_t</primary></indexterm>
259 <para><parameter>CAIRO_SVG_UNIT_USER</parameter>
260 : User unit, a value in the current coordinate system.
261 If used in the root element for the initial coordinate systems it
262 corresponds to pixels. (Since 1.16)
263 <parameter>CAIRO_SVG_UNIT_EM</parameter>
264 : The size of the element's font. (Since 1.16)
265 <parameter>CAIRO_SVG_UNIT_EX</parameter>
266 : The x-height of the element’s font. (Since 1.16)
267 <parameter>CAIRO_SVG_UNIT_PX</parameter>
268 : Pixels (1px = 1/96th of 1in). (Since 1.16)
269 <parameter>CAIRO_SVG_UNIT_IN</parameter>
270 : Inches (1in = 2.54cm = 96px). (Since 1.16)
271 <parameter>CAIRO_SVG_UNIT_CM</parameter>
272 : Centimeters (1cm = 96px/2.54). (Since 1.16)
273 <parameter>CAIRO_SVG_UNIT_MM</parameter>
274 : Millimeters (1mm = 1/10th of 1cm). (Since 1.16)
275 <parameter>CAIRO_SVG_UNIT_PT</parameter>
276 : Points (1pt = 1/72th of 1in). (Since 1.16)
277 <parameter>CAIRO_SVG_UNIT_PC</parameter>
278 : Picas (1pc = 1/6th of 1in). (Since 1.16)
279 <parameter>CAIRO_SVG_UNIT_PERCENT</parameter>
280 : Percent, a value that is some fraction of another
281 reference value. (Since 1.16)</para>
282 <para><link linkend="cairo-svg-unit-t"><type>cairo_svg_unit_t</type></link> is used to describe the units valid for coordinates and
283 lengths in the SVG specification.</para>
284 <para>See also:
285 https://www.w3.org/TR/SVG/coords.html<link linkend="Units"><type>Units</type></link>
286 https://www.w3.org/TR/SVG/types.html<link linkend="DataTypeLength"><type>DataTypeLength</type></link>
287 https://www.w3.org/TR/css-values-3/<link linkend="lengths"><type>lengths</type></link></para>
259288 <refsect3 id="cairo-svg-version-t.members" role="enum_members">
260289 <title>Members</title>
261290 <informaltable role="enum_members_table" pgwide="1" frame="none">
265294 <colspec colname="enum_members_annotations" colwidth="200px"/>
266295 <tbody>
267296 <row role="constant"><entry role="enum_member_name"><para id="CAIRO-SVG-VERSION-1-1:CAPS">CAIRO_SVG_VERSION_1_1</para></entry>
268 <entry role="enum_member_description"><para>The version 1.1 of the SVG specification. (Since 1.2)</para>
269 </entry>
297 <entry role="enum_member_description"></entry>
270298 <entry role="enum_member_annotations"></entry>
271299 </row>
272300 <row role="constant"><entry role="enum_member_name"><para id="CAIRO-SVG-VERSION-1-2:CAPS">CAIRO_SVG_VERSION_1_2</para></entry>
273 <entry role="enum_member_description"><para>The version 1.2 of the SVG specification. (Since 1.2)</para>
274 </entry>
301 <entry role="enum_member_description"></entry>
275302 <entry role="enum_member_annotations"></entry>
276303 </row>
277304 </tbody></tgroup></informaltable>
278 </refsect3><para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2>
305 </refsect3><para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
279306
280307 </refsect1>
281308 <refsect1 id="cairo-SVG-Surfaces.see-also">
102102 $(top_srcdir)/build/aclocal.compare.m4 \
103103 $(top_srcdir)/build/aclocal.enable.m4 \
104104 $(top_srcdir)/build/aclocal.float.m4 \
105 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
106105 $(top_srcdir)/build/aclocal.makefile.m4 \
107106 $(top_srcdir)/build/aclocal.pkg.m4 \
108 $(top_srcdir)/build/libtool.m4 \
107 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
109108 $(top_srcdir)/build/ltoptions.m4 \
110109 $(top_srcdir)/build/ltsugar.m4 \
111110 $(top_srcdir)/build/ltversion.m4 \
564563 GREP = @GREP@
565564 GS = @GS@
566565 GTKDOC_CHECK = @GTKDOC_CHECK@
566 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
567 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
568 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
569 GTKDOC_MKPDF = @GTKDOC_MKPDF@
570 GTKDOC_REBASE = @GTKDOC_REBASE@
567571 HTML_DIR = @HTML_DIR@
568572 INSTALL = @INSTALL@
569573 INSTALL_DATA = @INSTALL_DATA@
662666 gl_LIBS = @gl_LIBS@
663667 glesv2_CFLAGS = @glesv2_CFLAGS@
664668 glesv2_LIBS = @glesv2_LIBS@
669 glesv3_CFLAGS = @glesv3_CFLAGS@
670 glesv3_LIBS = @glesv3_LIBS@
665671 glib_CFLAGS = @glib_CFLAGS@
666672 glib_LIBS = @glib_LIBS@
667673 gtk_CFLAGS = @gtk_CFLAGS@
9696 $(top_srcdir)/build/aclocal.compare.m4 \
9797 $(top_srcdir)/build/aclocal.enable.m4 \
9898 $(top_srcdir)/build/aclocal.float.m4 \
99 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
10099 $(top_srcdir)/build/aclocal.makefile.m4 \
101100 $(top_srcdir)/build/aclocal.pkg.m4 \
102 $(top_srcdir)/build/libtool.m4 \
101 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
103102 $(top_srcdir)/build/ltoptions.m4 \
104103 $(top_srcdir)/build/ltsugar.m4 \
105104 $(top_srcdir)/build/ltversion.m4 \
465464 GREP = @GREP@
466465 GS = @GS@
467466 GTKDOC_CHECK = @GTKDOC_CHECK@
467 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
468 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
469 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
470 GTKDOC_MKPDF = @GTKDOC_MKPDF@
471 GTKDOC_REBASE = @GTKDOC_REBASE@
468472 HTML_DIR = @HTML_DIR@
469473 INSTALL = @INSTALL@
470474 INSTALL_DATA = @INSTALL_DATA@
563567 gl_LIBS = @gl_LIBS@
564568 glesv2_CFLAGS = @glesv2_CFLAGS@
565569 glesv2_LIBS = @glesv2_LIBS@
570 glesv3_CFLAGS = @glesv3_CFLAGS@
571 glesv3_LIBS = @glesv3_LIBS@
566572 glib_CFLAGS = @glib_CFLAGS@
567573 glib_LIBS = @glib_LIBS@
568574 gtk_CFLAGS = @gtk_CFLAGS@
320320 enabled_cairo_pkgconf += cairo-glesv2.pc
321321 endif
322322
323 unsupported_cairo_headers += $(cairo_glesv3_headers)
324 all_cairo_headers += $(cairo_glesv3_headers)
325 all_cairo_private += $(cairo_glesv3_private)
326 all_cairo_cxx_sources += $(cairo_glesv3_cxx_sources)
327 all_cairo_sources += $(cairo_glesv3_sources)
328 if CAIRO_HAS_GLESV3_SURFACE
329 enabled_cairo_headers += $(cairo_glesv3_headers)
330 enabled_cairo_private += $(cairo_glesv3_private)
331 enabled_cairo_cxx_sources += $(cairo_glesv3_cxx_sources)
332 enabled_cairo_sources += $(cairo_glesv3_sources)
333 endif
334 all_cairo_pkgconf += cairo-glesv3.pc
335 if CAIRO_HAS_GLESV3_SURFACE
336 enabled_cairo_pkgconf += cairo-glesv3.pc
337 endif
338
323339 unsupported_cairo_headers += $(cairo_cogl_headers)
324340 all_cairo_headers += $(cairo_cogl_headers)
325341 all_cairo_private += $(cairo_cogl_private)
145145 build_triplet = @build@
146146 host_triplet = @host@
147147 EXTRA_PROGRAMS =
148 TESTS = $(am__EXEEXT_1) $(am__append_186)
148 TESTS = $(am__EXEEXT_1) $(am__append_191)
149149 check_PROGRAMS = check-link$(EXEEXT)
150150 @CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_1 = $(cairo_xlib_headers)
151151 @CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_2 = $(cairo_xlib_private)
242242 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_93 = $(cairo_glesv2_cxx_sources)
243243 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_94 = $(cairo_glesv2_sources)
244244 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_95 = cairo-glesv2.pc
245 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_96 = $(cairo_cogl_headers)
246 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_97 = $(cairo_cogl_private)
247 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_98 = $(cairo_cogl_cxx_sources)
248 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_99 = $(cairo_cogl_sources)
249 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_100 = cairo-cogl.pc
250 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_101 = $(cairo_directfb_headers)
251 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_102 = $(cairo_directfb_private)
252 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_103 = $(cairo_directfb_cxx_sources)
253 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_104 = $(cairo_directfb_sources)
254 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_105 = cairo-directfb.pc
255 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_106 = $(cairo_vg_headers)
256 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_107 = $(cairo_vg_private)
257 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_108 = $(cairo_vg_cxx_sources)
258 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_109 = $(cairo_vg_sources)
259 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_110 = cairo-vg.pc
260 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_111 = $(cairo_egl_headers)
261 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_112 = $(cairo_egl_private)
262 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_113 = $(cairo_egl_cxx_sources)
263 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_114 = $(cairo_egl_sources)
264 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_115 = cairo-egl.pc
265 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_116 = $(cairo_glx_headers)
266 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_117 = $(cairo_glx_private)
267 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_118 = $(cairo_glx_cxx_sources)
268 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_119 = $(cairo_glx_sources)
269 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_120 = cairo-glx.pc
270 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_121 = $(cairo_wgl_headers)
271 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_122 = $(cairo_wgl_private)
272 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_123 = $(cairo_wgl_cxx_sources)
273 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_124 = $(cairo_wgl_sources)
274 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_125 = cairo-wgl.pc
275 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_126 = $(cairo_script_headers)
276 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_127 = $(cairo_script_private)
277 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_128 = $(cairo_script_cxx_sources)
278 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_129 = $(cairo_script_sources)
279 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_130 = cairo-script.pc
280 @CAIRO_HAS_FT_FONT_TRUE@am__append_131 = $(cairo_ft_headers)
281 @CAIRO_HAS_FT_FONT_TRUE@am__append_132 = $(cairo_ft_private)
282 @CAIRO_HAS_FT_FONT_TRUE@am__append_133 = $(cairo_ft_cxx_sources)
283 @CAIRO_HAS_FT_FONT_TRUE@am__append_134 = $(cairo_ft_sources)
284 @CAIRO_HAS_FT_FONT_TRUE@am__append_135 = cairo-ft.pc
285 @CAIRO_HAS_FC_FONT_TRUE@am__append_136 = $(cairo_fc_headers)
286 @CAIRO_HAS_FC_FONT_TRUE@am__append_137 = $(cairo_fc_private)
287 @CAIRO_HAS_FC_FONT_TRUE@am__append_138 = $(cairo_fc_cxx_sources)
288 @CAIRO_HAS_FC_FONT_TRUE@am__append_139 = $(cairo_fc_sources)
289 @CAIRO_HAS_FC_FONT_TRUE@am__append_140 = cairo-fc.pc
290 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_141 = $(cairo_ps_headers)
291 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_142 = $(cairo_ps_private)
292 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_143 = $(cairo_ps_cxx_sources)
293 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_144 = $(cairo_ps_sources)
294 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_145 = cairo-ps.pc
295 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_146 = $(cairo_pdf_headers)
296 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_147 = $(cairo_pdf_private)
297 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_148 = $(cairo_pdf_cxx_sources)
298 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_149 = $(cairo_pdf_sources)
299 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_150 = cairo-pdf.pc
300 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_151 = $(cairo_svg_headers)
301 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_152 = $(cairo_svg_private)
302 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_153 = $(cairo_svg_cxx_sources)
303 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_154 = $(cairo_svg_sources)
304 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_155 = cairo-svg.pc
305 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_156 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers)
306 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_157 = $(cairo_test_surfaces_cxx_sources)
307 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_158 = $(cairo_test_surfaces_sources)
308 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_159 = $(cairo_tee_headers)
309 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_160 = $(cairo_tee_private)
310 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_161 = $(cairo_tee_cxx_sources)
311 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_162 = $(cairo_tee_sources)
312 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_163 = cairo-tee.pc
313 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_164 = $(cairo_xml_headers)
314 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_165 = $(cairo_xml_private)
315 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_166 = $(cairo_xml_cxx_sources)
316 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_167 = $(cairo_xml_sources)
317 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_168 = cairo-xml.pc
318 @CAIRO_HAS_PTHREAD_TRUE@am__append_169 = $(cairo_pthread_private) $(cairo_pthread_headers)
319 @CAIRO_HAS_PTHREAD_TRUE@am__append_170 = $(cairo_pthread_cxx_sources)
320 @CAIRO_HAS_PTHREAD_TRUE@am__append_171 = $(cairo_pthread_sources)
321 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_172 = $(cairo_gobject_headers)
322 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_173 = $(cairo_gobject_private)
323 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_174 = $(cairo_gobject_cxx_sources)
324 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_175 = $(cairo_gobject_sources)
325 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_176 = cairo-gobject.pc
326 @CAIRO_HAS_TRACE_TRUE@am__append_177 = $(cairo_trace_private) $(cairo_trace_headers)
327 @CAIRO_HAS_TRACE_TRUE@am__append_178 = $(cairo_trace_cxx_sources)
328 @CAIRO_HAS_TRACE_TRUE@am__append_179 = $(cairo_trace_sources)
329 @CAIRO_HAS_INTERPRETER_TRUE@am__append_180 = $(cairo_interpreter_private) $(cairo_interpreter_headers)
330 @CAIRO_HAS_INTERPRETER_TRUE@am__append_181 = $(cairo_interpreter_cxx_sources)
331 @CAIRO_HAS_INTERPRETER_TRUE@am__append_182 = $(cairo_interpreter_sources)
332 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_183 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
333 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_184 = $(cairo_symbol_lookup_cxx_sources)
334 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_185 = $(cairo_symbol_lookup_sources)
335 @CROSS_COMPILING_FALSE@am__append_186 = check-link$(EXEEXT)
245 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_96 = $(cairo_glesv3_headers)
246 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_97 = $(cairo_glesv3_private)
247 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_98 = $(cairo_glesv3_cxx_sources)
248 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_99 = $(cairo_glesv3_sources)
249 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_100 = cairo-glesv3.pc
250 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_101 = $(cairo_cogl_headers)
251 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_102 = $(cairo_cogl_private)
252 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_103 = $(cairo_cogl_cxx_sources)
253 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_104 = $(cairo_cogl_sources)
254 @CAIRO_HAS_COGL_SURFACE_TRUE@am__append_105 = cairo-cogl.pc
255 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_106 = $(cairo_directfb_headers)
256 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_107 = $(cairo_directfb_private)
257 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_108 = $(cairo_directfb_cxx_sources)
258 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_109 = $(cairo_directfb_sources)
259 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_110 = cairo-directfb.pc
260 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_111 = $(cairo_vg_headers)
261 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_112 = $(cairo_vg_private)
262 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_113 = $(cairo_vg_cxx_sources)
263 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_114 = $(cairo_vg_sources)
264 @CAIRO_HAS_VG_SURFACE_TRUE@am__append_115 = cairo-vg.pc
265 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_116 = $(cairo_egl_headers)
266 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_117 = $(cairo_egl_private)
267 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_118 = $(cairo_egl_cxx_sources)
268 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_119 = $(cairo_egl_sources)
269 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_120 = cairo-egl.pc
270 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_121 = $(cairo_glx_headers)
271 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_122 = $(cairo_glx_private)
272 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_123 = $(cairo_glx_cxx_sources)
273 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_124 = $(cairo_glx_sources)
274 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_125 = cairo-glx.pc
275 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_126 = $(cairo_wgl_headers)
276 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_127 = $(cairo_wgl_private)
277 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_128 = $(cairo_wgl_cxx_sources)
278 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_129 = $(cairo_wgl_sources)
279 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_130 = cairo-wgl.pc
280 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_131 = $(cairo_script_headers)
281 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_132 = $(cairo_script_private)
282 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_133 = $(cairo_script_cxx_sources)
283 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_134 = $(cairo_script_sources)
284 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_135 = cairo-script.pc
285 @CAIRO_HAS_FT_FONT_TRUE@am__append_136 = $(cairo_ft_headers)
286 @CAIRO_HAS_FT_FONT_TRUE@am__append_137 = $(cairo_ft_private)
287 @CAIRO_HAS_FT_FONT_TRUE@am__append_138 = $(cairo_ft_cxx_sources)
288 @CAIRO_HAS_FT_FONT_TRUE@am__append_139 = $(cairo_ft_sources)
289 @CAIRO_HAS_FT_FONT_TRUE@am__append_140 = cairo-ft.pc
290 @CAIRO_HAS_FC_FONT_TRUE@am__append_141 = $(cairo_fc_headers)
291 @CAIRO_HAS_FC_FONT_TRUE@am__append_142 = $(cairo_fc_private)
292 @CAIRO_HAS_FC_FONT_TRUE@am__append_143 = $(cairo_fc_cxx_sources)
293 @CAIRO_HAS_FC_FONT_TRUE@am__append_144 = $(cairo_fc_sources)
294 @CAIRO_HAS_FC_FONT_TRUE@am__append_145 = cairo-fc.pc
295 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_146 = $(cairo_ps_headers)
296 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_147 = $(cairo_ps_private)
297 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_148 = $(cairo_ps_cxx_sources)
298 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_149 = $(cairo_ps_sources)
299 @CAIRO_HAS_PS_SURFACE_TRUE@am__append_150 = cairo-ps.pc
300 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_151 = $(cairo_pdf_headers)
301 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_152 = $(cairo_pdf_private)
302 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_153 = $(cairo_pdf_cxx_sources)
303 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_154 = $(cairo_pdf_sources)
304 @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_155 = cairo-pdf.pc
305 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_156 = $(cairo_svg_headers)
306 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_157 = $(cairo_svg_private)
307 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_158 = $(cairo_svg_cxx_sources)
308 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_159 = $(cairo_svg_sources)
309 @CAIRO_HAS_SVG_SURFACE_TRUE@am__append_160 = cairo-svg.pc
310 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_161 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers)
311 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_162 = $(cairo_test_surfaces_cxx_sources)
312 @CAIRO_HAS_TEST_SURFACES_TRUE@am__append_163 = $(cairo_test_surfaces_sources)
313 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_164 = $(cairo_tee_headers)
314 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_165 = $(cairo_tee_private)
315 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_166 = $(cairo_tee_cxx_sources)
316 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_167 = $(cairo_tee_sources)
317 @CAIRO_HAS_TEE_SURFACE_TRUE@am__append_168 = cairo-tee.pc
318 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_169 = $(cairo_xml_headers)
319 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_170 = $(cairo_xml_private)
320 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_171 = $(cairo_xml_cxx_sources)
321 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_172 = $(cairo_xml_sources)
322 @CAIRO_HAS_XML_SURFACE_TRUE@am__append_173 = cairo-xml.pc
323 @CAIRO_HAS_PTHREAD_TRUE@am__append_174 = $(cairo_pthread_private) $(cairo_pthread_headers)
324 @CAIRO_HAS_PTHREAD_TRUE@am__append_175 = $(cairo_pthread_cxx_sources)
325 @CAIRO_HAS_PTHREAD_TRUE@am__append_176 = $(cairo_pthread_sources)
326 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_177 = $(cairo_gobject_headers)
327 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_178 = $(cairo_gobject_private)
328 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_179 = $(cairo_gobject_cxx_sources)
329 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_180 = $(cairo_gobject_sources)
330 @CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_181 = cairo-gobject.pc
331 @CAIRO_HAS_TRACE_TRUE@am__append_182 = $(cairo_trace_private) $(cairo_trace_headers)
332 @CAIRO_HAS_TRACE_TRUE@am__append_183 = $(cairo_trace_cxx_sources)
333 @CAIRO_HAS_TRACE_TRUE@am__append_184 = $(cairo_trace_sources)
334 @CAIRO_HAS_INTERPRETER_TRUE@am__append_185 = $(cairo_interpreter_private) $(cairo_interpreter_headers)
335 @CAIRO_HAS_INTERPRETER_TRUE@am__append_186 = $(cairo_interpreter_cxx_sources)
336 @CAIRO_HAS_INTERPRETER_TRUE@am__append_187 = $(cairo_interpreter_sources)
337 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_188 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
338 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_189 = $(cairo_symbol_lookup_cxx_sources)
339 @CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_190 = $(cairo_symbol_lookup_sources)
340 @CROSS_COMPILING_FALSE@am__append_191 = check-link$(EXEEXT)
336341 subdir = src
337342 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
338343 am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \
339344 $(top_srcdir)/build/aclocal.compare.m4 \
340345 $(top_srcdir)/build/aclocal.enable.m4 \
341346 $(top_srcdir)/build/aclocal.float.m4 \
342 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
343347 $(top_srcdir)/build/aclocal.makefile.m4 \
344348 $(top_srcdir)/build/aclocal.pkg.m4 \
345 $(top_srcdir)/build/libtool.m4 \
349 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
346350 $(top_srcdir)/build/ltoptions.m4 \
347351 $(top_srcdir)/build/ltsugar.m4 \
348352 $(top_srcdir)/build/ltversion.m4 \
368372 cairo-quartz.pc cairo-quartz-font.pc cairo-quartz-image.pc \
369373 cairo-win32.pc cairo-win32-font.pc cairo-skia.pc cairo-os2.pc \
370374 cairo-beos.pc cairo-drm.pc cairo-gallium.pc cairo-png.pc \
371 cairo-gl.pc cairo-glesv2.pc cairo-cogl.pc cairo-directfb.pc \
372 cairo-vg.pc cairo-egl.pc cairo-glx.pc cairo-wgl.pc \
373 cairo-script.pc cairo-ft.pc cairo-fc.pc cairo-ps.pc \
374 cairo-pdf.pc cairo-svg.pc cairo-tee.pc cairo-xml.pc \
375 cairo-gobject.pc
375 cairo-gl.pc cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \
376 cairo-directfb.pc cairo-vg.pc cairo-egl.pc cairo-glx.pc \
377 cairo-wgl.pc cairo-script.pc cairo-ft.pc cairo-fc.pc \
378 cairo-ps.pc cairo-pdf.pc cairo-svg.pc cairo-tee.pc \
379 cairo-xml.pc cairo-gobject.pc
376380 CONFIG_CLEAN_VPATH_FILES =
377381 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
378382 am__vpath_adj = case $$p in \
462466 cairo-truetype-subset-private.h cairo-type1-private.h \
463467 cairo-type3-glyph-surface-private.h \
464468 cairo-pdf-operators-private.h cairo-pdf-shading-private.h \
465 cairo-xlib-private.h cairo-xlib-surface-private.h \
466 cairo-xlib-xrender-private.h cairo-xcb-private.h \
467 cairo-quartz-private.h win32/cairo-win32-private.h \
468 skia/cairo-skia-private.h cairo-os2-private.h \
469 drm/cairo-drm-private.h drm/cairo-drm-intel-private.h \
469 cairo-tag-attributes-private.h cairo-xlib-private.h \
470 cairo-xlib-surface-private.h cairo-xlib-xrender-private.h \
471 cairo-xcb-private.h cairo-quartz-private.h \
472 win32/cairo-win32-private.h skia/cairo-skia-private.h \
473 cairo-os2-private.h drm/cairo-drm-private.h \
474 drm/cairo-drm-intel-private.h \
470475 drm/cairo-drm-intel-brw-defines.h \
471476 drm/cairo-drm-intel-brw-structs.h drm/cairo-drm-intel-brw-eu.h \
472477 drm/cairo-drm-intel-command-private.h \
479484 cairo-cogl-utils-private.h cairo-script-private.h \
480485 cairo-ft-private.h cairo-ps-surface-private.h \
481486 cairo-pdf-surface-private.h cairo-tag-stack-private.h \
482 cairo-tag-attributes-private.h cairo-svg-surface-private.h \
483 test-compositor-surface.h test-compositor-surface-private.h \
487 cairo-svg-surface-private.h test-compositor-surface.h \
488 test-compositor-surface-private.h \
484489 test-null-compositor-surface.h test-paginated-surface.h \
485490 cairo-tee-surface-private.h cairo-analysis-surface.c \
486491 cairo-arc.c cairo-array.c cairo-atomic.c cairo-base64-stream.c \
529534 cairo-type1-fallback.c cairo-type1-glyph-names.c \
530535 cairo-type1-subset.c cairo-type3-glyph-surface.c \
531536 cairo-pdf-operators.c cairo-pdf-shading.c \
532 cairo-deflate-stream.c cairo-xlib-display.c \
533 cairo-xlib-core-compositor.c cairo-xlib-fallback-compositor.c \
537 cairo-tag-attributes.c cairo-deflate-stream.c \
538 cairo-xlib-display.c cairo-xlib-core-compositor.c \
539 cairo-xlib-fallback-compositor.c \
534540 cairo-xlib-render-compositor.c cairo-xlib-screen.c \
535541 cairo-xlib-source.c cairo-xlib-surface.c \
536542 cairo-xlib-surface-shm.c cairo-xlib-visual.c \
566572 cairo-egl-context.c cairo-glx-context.c cairo-wgl-context.c \
567573 cairo-script-surface.c cairo-ft-font.c cairo-ps-surface.c \
568574 cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c \
569 cairo-tag-attributes.c cairo-svg-surface.c \
570 test-compositor-surface.c test-null-compositor-surface.c \
571 test-base-compositor-surface.c test-paginated-surface.c \
572 cairo-tee-surface.c cairo-xml-surface.c cairo-version.h
575 cairo-svg-surface.c test-compositor-surface.c \
576 test-null-compositor-surface.c test-base-compositor-surface.c \
577 test-paginated-surface.c cairo-tee-surface.c \
578 cairo-xml-surface.c cairo-version.h
573579 am__objects_1 =
574580 @CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_2 = $(am__objects_1)
575581 @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__objects_3 = $(am__objects_1)
585591 @CAIRO_HAS_GL_SURFACE_TRUE@am__objects_13 = $(am__objects_1)
586592 am__objects_14 = $(am__objects_1)
587593 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__objects_15 = $(am__objects_14)
588 @CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_16 = $(am__objects_1)
589 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_17 = $(am__objects_1)
590 @CAIRO_HAS_VG_SURFACE_TRUE@am__objects_18 = $(am__objects_1)
591 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_19 = $(am__objects_1)
592 @CAIRO_HAS_FT_FONT_TRUE@am__objects_20 = $(am__objects_1)
593 @CAIRO_HAS_PS_SURFACE_TRUE@am__objects_21 = $(am__objects_1)
594 @CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_22 = $(am__objects_1)
595 @CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_23 = $(am__objects_1)
596 @CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_24 = $(am__objects_1)
597 @CAIRO_HAS_XML_SURFACE_TRUE@am__objects_25 = $(am__objects_1)
598 am__objects_26 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
594 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__objects_16 = $(am__objects_14)
595 @CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_17 = $(am__objects_1)
596 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_18 = $(am__objects_1)
597 @CAIRO_HAS_VG_SURFACE_TRUE@am__objects_19 = $(am__objects_1)
598 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_20 = $(am__objects_1)
599 @CAIRO_HAS_FT_FONT_TRUE@am__objects_21 = $(am__objects_1)
600 @CAIRO_HAS_PS_SURFACE_TRUE@am__objects_22 = $(am__objects_1)
601 @CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_23 = $(am__objects_1)
602 @CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_24 = $(am__objects_1)
603 @CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_25 = $(am__objects_1)
604 @CAIRO_HAS_XML_SURFACE_TRUE@am__objects_26 = $(am__objects_1)
605 am__objects_27 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
599606 $(am__objects_4) $(am__objects_1) $(am__objects_1) \
600607 $(am__objects_5) $(am__objects_6) $(am__objects_1) \
601608 $(am__objects_7) $(am__objects_8) $(am__objects_1) \
602609 $(am__objects_9) $(am__objects_10) $(am__objects_11) \
603610 $(am__objects_12) $(am__objects_1) $(am__objects_1) \
604611 $(am__objects_13) $(am__objects_15) $(am__objects_16) \
605 $(am__objects_17) $(am__objects_18) $(am__objects_1) \
606 $(am__objects_1) $(am__objects_1) $(am__objects_19) \
607 $(am__objects_20) $(am__objects_1) $(am__objects_21) \
612 $(am__objects_17) $(am__objects_18) $(am__objects_19) \
613 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
614 $(am__objects_20) $(am__objects_21) $(am__objects_1) \
608615 $(am__objects_22) $(am__objects_23) $(am__objects_24) \
609 $(am__objects_25) $(am__objects_1)
610 am__objects_27 = $(am__objects_1) $(am__objects_1)
611 @CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_28 = $(am__objects_1)
612 am__objects_29 = $(am__objects_27) $(am__objects_2) $(am__objects_1) \
616 $(am__objects_25) $(am__objects_26) $(am__objects_1)
617 am__objects_28 = $(am__objects_1) $(am__objects_1)
618 @CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_29 = $(am__objects_1)
619 am__objects_30 = $(am__objects_28) $(am__objects_2) $(am__objects_1) \
613620 $(am__objects_4) $(am__objects_1) $(am__objects_1) \
614621 $(am__objects_1) $(am__objects_6) $(am__objects_1) \
615622 $(am__objects_1) $(am__objects_8) $(am__objects_1) \
616623 $(am__objects_9) $(am__objects_10) $(am__objects_1) \
617624 $(am__objects_12) $(am__objects_1) $(am__objects_1) \
618625 $(am__objects_13) $(am__objects_15) $(am__objects_16) \
626 $(am__objects_17) $(am__objects_1) $(am__objects_1) \
619627 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
620 $(am__objects_1) $(am__objects_1) $(am__objects_19) \
621 $(am__objects_20) $(am__objects_1) $(am__objects_21) \
622 $(am__objects_22) $(am__objects_23) $(am__objects_28) \
623 $(am__objects_24) $(am__objects_1) $(am__objects_1) \
628 $(am__objects_20) $(am__objects_21) $(am__objects_1) \
629 $(am__objects_22) $(am__objects_23) $(am__objects_24) \
630 $(am__objects_29) $(am__objects_25) $(am__objects_1) \
624631 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
625 $(am__objects_1)
626 am__objects_30 = cairo-cff-subset.lo cairo-scaled-font-subsets.lo \
632 $(am__objects_1) $(am__objects_1)
633 am__objects_31 = cairo-cff-subset.lo cairo-scaled-font-subsets.lo \
627634 cairo-truetype-subset.lo cairo-type1-fallback.lo \
628635 cairo-type1-glyph-names.lo cairo-type1-subset.lo \
629636 cairo-type3-glyph-surface.lo
630 am__objects_31 = cairo-pdf-operators.lo cairo-pdf-shading.lo
631 am__objects_32 = cairo-deflate-stream.lo
632 am__objects_33 = cairo-analysis-surface.lo cairo-arc.lo cairo-array.lo \
637 am__objects_32 = cairo-pdf-operators.lo cairo-pdf-shading.lo \
638 cairo-tag-attributes.lo
639 am__objects_33 = cairo-deflate-stream.lo
640 am__objects_34 = cairo-analysis-surface.lo cairo-arc.lo cairo-array.lo \
633641 cairo-atomic.lo cairo-base64-stream.lo cairo-base85-stream.lo \
634642 cairo-bentley-ottmann.lo cairo-bentley-ottmann-rectangular.lo \
635643 cairo-bentley-ottmann-rectilinear.lo \
671679 cairo-clip-tor-scan-converter.lo cairo-toy-font-face.lo \
672680 cairo-traps.lo cairo-tristrip.lo cairo-traps-compositor.lo \
673681 cairo-unicode.lo cairo-user-font.lo cairo-version.lo \
674 cairo-wideint.lo $(am__objects_30) $(am__objects_31) \
675 $(am__objects_32)
676 am__objects_34 = cairo-xlib-display.lo cairo-xlib-core-compositor.lo \
682 cairo-wideint.lo $(am__objects_31) $(am__objects_32) \
683 $(am__objects_33)
684 am__objects_35 = cairo-xlib-display.lo cairo-xlib-core-compositor.lo \
677685 cairo-xlib-fallback-compositor.lo \
678686 cairo-xlib-render-compositor.lo cairo-xlib-screen.lo \
679687 cairo-xlib-source.lo cairo-xlib-surface.lo \
680688 cairo-xlib-surface-shm.lo cairo-xlib-visual.lo \
681689 cairo-xlib-xcb-surface.lo
682 @CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_35 = $(am__objects_34)
683 am__objects_36 = cairo-xcb-connection.lo cairo-xcb-connection-core.lo \
690 @CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_36 = $(am__objects_35)
691 am__objects_37 = cairo-xcb-connection.lo cairo-xcb-connection-core.lo \
684692 cairo-xcb-connection-render.lo cairo-xcb-connection-shm.lo \
685693 cairo-xcb-screen.lo cairo-xcb-shm.lo cairo-xcb-surface.lo \
686694 cairo-xcb-surface-core.lo cairo-xcb-surface-render.lo \
687695 cairo-xcb-resources.lo
688 @CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_37 = $(am__objects_36)
689 am__objects_38 = cairo-quartz-surface.lo
690 @CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_39 = $(am__objects_38)
691 am__objects_40 = cairo-quartz-font.lo
692 @CAIRO_HAS_QUARTZ_FONT_TRUE@am__objects_41 = $(am__objects_40)
693 am__objects_42 = cairo-quartz-image-surface.lo
694 @CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__objects_43 = \
695 @CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@ $(am__objects_42)
696 am__objects_44 = cairo-win32-debug.lo cairo-win32-device.lo \
696 @CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_38 = $(am__objects_37)
697 am__objects_39 = cairo-quartz-surface.lo
698 @CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_40 = $(am__objects_39)
699 am__objects_41 = cairo-quartz-font.lo
700 @CAIRO_HAS_QUARTZ_FONT_TRUE@am__objects_42 = $(am__objects_41)
701 am__objects_43 = cairo-quartz-image-surface.lo
702 @CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__objects_44 = \
703 @CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@ $(am__objects_43)
704 am__objects_45 = cairo-win32-debug.lo cairo-win32-device.lo \
697705 cairo-win32-gdi-compositor.lo cairo-win32-system.lo \
698706 cairo-win32-surface.lo cairo-win32-display-surface.lo \
699707 cairo-win32-printing-surface.lo
700 @CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_45 = $(am__objects_44)
701 am__objects_46 = cairo-win32-font.lo
702 @CAIRO_HAS_WIN32_FONT_TRUE@am__objects_47 = $(am__objects_46)
703 am__objects_48 = cairo-os2-surface.lo
704 @CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_49 = $(am__objects_48)
705 am__objects_50 = cairo-drm.lo cairo-drm-bo.lo cairo-drm-surface.lo \
708 @CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_46 = $(am__objects_45)
709 am__objects_47 = cairo-win32-font.lo
710 @CAIRO_HAS_WIN32_FONT_TRUE@am__objects_48 = $(am__objects_47)
711 am__objects_49 = cairo-os2-surface.lo
712 @CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_50 = $(am__objects_49)
713 am__objects_51 = cairo-drm.lo cairo-drm-bo.lo cairo-drm-surface.lo \
706714 cairo-drm-intel.lo cairo-drm-intel-debug.lo \
707715 cairo-drm-intel-surface.lo cairo-drm-i915-surface.lo \
708716 cairo-drm-i915-glyphs.lo cairo-drm-i915-shader.lo \
711719 cairo-drm-i965-spans.lo cairo-drm-intel-brw-eu.lo \
712720 cairo-drm-intel-brw-eu-emit.lo cairo-drm-intel-brw-eu-util.lo \
713721 cairo-drm-radeon.lo cairo-drm-radeon-surface.lo
714 @CAIRO_HAS_DRM_SURFACE_TRUE@am__objects_51 = $(am__objects_50)
715 am__objects_52 = cairo-drm-gallium-surface.lo
716 @CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__objects_53 = $(am__objects_52)
717 am__objects_54 = cairo-png.lo
718 @CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__objects_55 = $(am__objects_54)
719 am__objects_56 = cairo-gl-composite.lo cairo-gl-device.lo \
722 @CAIRO_HAS_DRM_SURFACE_TRUE@am__objects_52 = $(am__objects_51)
723 am__objects_53 = cairo-drm-gallium-surface.lo
724 @CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__objects_54 = $(am__objects_53)
725 am__objects_55 = cairo-png.lo
726 @CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__objects_56 = $(am__objects_55)
727 am__objects_57 = cairo-gl-composite.lo cairo-gl-device.lo \
720728 cairo-gl-dispatch.lo cairo-gl-glyphs.lo cairo-gl-gradient.lo \
721729 cairo-gl-info.lo cairo-gl-operand.lo cairo-gl-shaders.lo \
722730 cairo-gl-msaa-compositor.lo cairo-gl-spans-compositor.lo \
723731 cairo-gl-traps-compositor.lo cairo-gl-source.lo \
724732 cairo-gl-surface.lo
725 @CAIRO_HAS_GL_SURFACE_TRUE@am__objects_57 = $(am__objects_56)
726 am__objects_58 = $(am__objects_56)
727 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__objects_59 = $(am__objects_58)
728 am__objects_60 = cairo-cogl-surface.lo cairo-cogl-gradient.lo \
733 @CAIRO_HAS_GL_SURFACE_TRUE@am__objects_58 = $(am__objects_57)
734 am__objects_59 = $(am__objects_57)
735 @CAIRO_HAS_GLESV2_SURFACE_TRUE@am__objects_60 = $(am__objects_59)
736 @CAIRO_HAS_GLESV3_SURFACE_TRUE@am__objects_61 = $(am__objects_59)
737 am__objects_62 = cairo-cogl-surface.lo cairo-cogl-gradient.lo \
729738 cairo-cogl-context.lo cairo-cogl-utils.lo
730 @CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_61 = $(am__objects_60)
731 am__objects_62 = cairo-directfb-surface.lo
732 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_63 = $(am__objects_62)
733 am__objects_64 = cairo-vg-surface.lo
734 @CAIRO_HAS_VG_SURFACE_TRUE@am__objects_65 = $(am__objects_64)
735 am__objects_66 = cairo-egl-context.lo
736 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__objects_67 = $(am__objects_66)
737 am__objects_68 = cairo-glx-context.lo
738 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__objects_69 = $(am__objects_68)
739 am__objects_70 = cairo-wgl-context.lo
740 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__objects_71 = $(am__objects_70)
741 am__objects_72 = cairo-script-surface.lo
742 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_73 = $(am__objects_72)
743 am__objects_74 = cairo-ft-font.lo
744 @CAIRO_HAS_FT_FONT_TRUE@am__objects_75 = $(am__objects_74)
745 am__objects_76 = cairo-ps-surface.lo
746 @CAIRO_HAS_PS_SURFACE_TRUE@am__objects_77 = $(am__objects_76)
747 am__objects_78 = cairo-pdf-surface.lo cairo-pdf-interchange.lo \
748 cairo-tag-stack.lo cairo-tag-attributes.lo
749 @CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_79 = $(am__objects_78)
750 am__objects_80 = cairo-svg-surface.lo
751 @CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_81 = $(am__objects_80)
752 am__objects_82 = test-compositor-surface.lo \
739 @CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_63 = $(am__objects_62)
740 am__objects_64 = cairo-directfb-surface.lo
741 @CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_65 = $(am__objects_64)
742 am__objects_66 = cairo-vg-surface.lo
743 @CAIRO_HAS_VG_SURFACE_TRUE@am__objects_67 = $(am__objects_66)
744 am__objects_68 = cairo-egl-context.lo
745 @CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__objects_69 = $(am__objects_68)
746 am__objects_70 = cairo-glx-context.lo
747 @CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__objects_71 = $(am__objects_70)
748 am__objects_72 = cairo-wgl-context.lo
749 @CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__objects_73 = $(am__objects_72)
750 am__objects_74 = cairo-script-surface.lo
751 @CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_75 = $(am__objects_74)
752 am__objects_76 = cairo-ft-font.lo
753 @CAIRO_HAS_FT_FONT_TRUE@am__objects_77 = $(am__objects_76)
754 am__objects_78 = cairo-ps-surface.lo
755 @CAIRO_HAS_PS_SURFACE_TRUE@am__objects_79 = $(am__objects_78)
756 am__objects_80 = cairo-pdf-surface.lo cairo-pdf-interchange.lo \
757 cairo-tag-stack.lo
758 @CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_81 = $(am__objects_80)
759 am__objects_82 = cairo-svg-surface.lo
760 @CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_83 = $(am__objects_82)
761 am__objects_84 = test-compositor-surface.lo \
753762 test-null-compositor-surface.lo \
754763 test-base-compositor-surface.lo test-paginated-surface.lo
755 @CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_83 = $(am__objects_82)
756 am__objects_84 = cairo-tee-surface.lo
757 @CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_85 = $(am__objects_84)
758 am__objects_86 = cairo-xml-surface.lo
759 @CAIRO_HAS_XML_SURFACE_TRUE@am__objects_87 = $(am__objects_86)
760 am__objects_88 = $(am__objects_33) $(am__objects_35) $(am__objects_1) \
761 $(am__objects_37) $(am__objects_1) $(am__objects_1) \
762 $(am__objects_1) $(am__objects_39) $(am__objects_41) \
763 $(am__objects_43) $(am__objects_45) $(am__objects_47) \
764 $(am__objects_1) $(am__objects_49) $(am__objects_1) \
765 $(am__objects_51) $(am__objects_53) $(am__objects_55) \
766 $(am__objects_57) $(am__objects_59) $(am__objects_61) \
764 @CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_85 = $(am__objects_84)
765 am__objects_86 = cairo-tee-surface.lo
766 @CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_87 = $(am__objects_86)
767 am__objects_88 = cairo-xml-surface.lo
768 @CAIRO_HAS_XML_SURFACE_TRUE@am__objects_89 = $(am__objects_88)
769 am__objects_90 = $(am__objects_34) $(am__objects_36) $(am__objects_1) \
770 $(am__objects_38) $(am__objects_1) $(am__objects_1) \
771 $(am__objects_1) $(am__objects_40) $(am__objects_42) \
772 $(am__objects_44) $(am__objects_46) $(am__objects_48) \
773 $(am__objects_1) $(am__objects_50) $(am__objects_1) \
774 $(am__objects_52) $(am__objects_54) $(am__objects_56) \
775 $(am__objects_58) $(am__objects_60) $(am__objects_61) \
767776 $(am__objects_63) $(am__objects_65) $(am__objects_67) \
768777 $(am__objects_69) $(am__objects_71) $(am__objects_73) \
769 $(am__objects_75) $(am__objects_1) $(am__objects_77) \
778 $(am__objects_75) $(am__objects_77) $(am__objects_1) \
770779 $(am__objects_79) $(am__objects_81) $(am__objects_83) \
771 $(am__objects_85) $(am__objects_87) $(am__objects_1) \
780 $(am__objects_85) $(am__objects_87) $(am__objects_89) \
772781 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
773 $(am__objects_1)
774 am_libcairo_la_OBJECTS = $(am__objects_26) $(am__objects_29) \
775 $(am__objects_88)
782 $(am__objects_1) $(am__objects_1)
783 am_libcairo_la_OBJECTS = $(am__objects_27) $(am__objects_30) \
784 $(am__objects_90)
776785 nodist_libcairo_la_OBJECTS =
777786 libcairo_la_OBJECTS = $(am_libcairo_la_OBJECTS) \
778787 $(nodist_libcairo_la_OBJECTS)
839848 cairo-truetype-subset-private.h cairo-type1-private.h \
840849 cairo-type3-glyph-surface-private.h \
841850 cairo-pdf-operators-private.h cairo-pdf-shading-private.h \
842 cairo-xlib-private.h cairo-xlib-surface-private.h \
843 cairo-xlib-xrender-private.h cairo-xcb-private.h \
844 cairo-quartz-private.h win32/cairo-win32-private.h \
845 skia/cairo-skia-private.h cairo-os2-private.h \
846 drm/cairo-drm-private.h drm/cairo-drm-intel-private.h \
851 cairo-tag-attributes-private.h cairo-xlib-private.h \
852 cairo-xlib-surface-private.h cairo-xlib-xrender-private.h \
853 cairo-xcb-private.h cairo-quartz-private.h \
854 win32/cairo-win32-private.h skia/cairo-skia-private.h \
855 cairo-os2-private.h drm/cairo-drm-private.h \
856 drm/cairo-drm-intel-private.h \
847857 drm/cairo-drm-intel-brw-defines.h \
848858 drm/cairo-drm-intel-brw-structs.h drm/cairo-drm-intel-brw-eu.h \
849859 drm/cairo-drm-intel-command-private.h \
856866 cairo-cogl-utils-private.h cairo-script-private.h \
857867 cairo-ft-private.h cairo-ps-surface-private.h \
858868 cairo-pdf-surface-private.h cairo-tag-stack-private.h \
859 cairo-tag-attributes-private.h cairo-svg-surface-private.h \
860 test-compositor-surface.h test-compositor-surface-private.h \
869 cairo-svg-surface-private.h test-compositor-surface.h \
870 test-compositor-surface-private.h \
861871 test-null-compositor-surface.h test-paginated-surface.h \
862872 cairo-tee-surface-private.h cairo-qt-surface.cpp \
863873 skia/cairo-skia-context.cpp skia/cairo-skia-surface.cpp \
864874 cairo-beos-surface.cpp
865 am__objects_89 = cairo-qt-surface.lo
866 @CAIRO_HAS_QT_SURFACE_TRUE@am__objects_90 = $(am__objects_89)
867 am__objects_91 = cairo-skia-context.lo cairo-skia-surface.lo
868 @CAIRO_HAS_SKIA_SURFACE_TRUE@am__objects_92 = $(am__objects_91)
869 am__objects_93 = cairo-beos-surface.lo
870 @CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_94 = $(am__objects_93)
871 am__objects_95 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
872 $(am__objects_1) $(am__objects_1) $(am__objects_90) \
875 am__objects_91 = cairo-qt-surface.lo
876 @CAIRO_HAS_QT_SURFACE_TRUE@am__objects_92 = $(am__objects_91)
877 am__objects_93 = cairo-skia-context.lo cairo-skia-surface.lo
878 @CAIRO_HAS_SKIA_SURFACE_TRUE@am__objects_94 = $(am__objects_93)
879 am__objects_95 = cairo-beos-surface.lo
880 @CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_96 = $(am__objects_95)
881 am__objects_97 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
882 $(am__objects_1) $(am__objects_1) $(am__objects_92) \
873883 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
874 $(am__objects_1) $(am__objects_1) $(am__objects_92) \
875 $(am__objects_1) $(am__objects_94) $(am__objects_1) \
884 $(am__objects_1) $(am__objects_1) $(am__objects_94) \
885 $(am__objects_1) $(am__objects_96) $(am__objects_1) \
876886 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
877887 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
878888 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
880890 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
881891 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
882892 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
883 $(am__objects_1) $(am__objects_1) $(am__objects_1)
884 am_libcairo_cxx_la_OBJECTS = $(am__objects_26) $(am__objects_29) \
885 $(am__objects_95)
893 $(am__objects_1) $(am__objects_1) $(am__objects_1) \
894 $(am__objects_1)
895 am_libcairo_cxx_la_OBJECTS = $(am__objects_27) $(am__objects_30) \
896 $(am__objects_97)
886897 libcairo_cxx_la_OBJECTS = $(am_libcairo_cxx_la_OBJECTS)
887898 libcairo_cxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
888899 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
12241235 GREP = @GREP@
12251236 GS = @GS@
12261237 GTKDOC_CHECK = @GTKDOC_CHECK@
1238 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
1239 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
1240 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
1241 GTKDOC_MKPDF = @GTKDOC_MKPDF@
1242 GTKDOC_REBASE = @GTKDOC_REBASE@
12271243 HTML_DIR = @HTML_DIR@
12281244 INSTALL = @INSTALL@
12291245 INSTALL_DATA = @INSTALL_DATA@
13221338 gl_LIBS = @gl_LIBS@
13231339 glesv2_CFLAGS = @glesv2_CFLAGS@
13241340 glesv2_LIBS = @glesv2_LIBS@
1341 glesv3_CFLAGS = @glesv3_CFLAGS@
1342 glesv3_LIBS = @glesv3_LIBS@
13251343 glib_CFLAGS = @glib_CFLAGS@
13261344 glib_LIBS = @glib_LIBS@
13271345 gtk_CFLAGS = @gtk_CFLAGS@
15011519 cairo_egl_sources = cairo-egl-context.c
15021520 cairo_glx_sources = cairo-glx-context.c
15031521 cairo_wgl_sources = cairo-wgl-context.c
1504 _cairo_pdf_operators_private = cairo-pdf-operators-private.h cairo-pdf-shading-private.h
1505 _cairo_pdf_operators_sources = cairo-pdf-operators.c cairo-pdf-shading.c
1522 _cairo_pdf_operators_private = \
1523 cairo-pdf-operators-private.h \
1524 cairo-pdf-shading-private.h \
1525 cairo-tag-attributes-private.h \
1526 $(NULL)
1527
1528 _cairo_pdf_operators_sources = \
1529 cairo-pdf-operators.c \
1530 cairo-pdf-shading.c \
1531 cairo-tag-attributes.c \
1532 $(NULL)
1533
15061534 cairo_png_sources = cairo-png.c
15071535 cairo_ps_headers = cairo-ps.h
15081536 cairo_ps_private = cairo-ps-surface-private.h
15091537 cairo_ps_sources = cairo-ps-surface.c
15101538 _cairo_deflate_stream_sources = cairo-deflate-stream.c
15111539 cairo_pdf_headers = cairo-pdf.h
1512 cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h cairo-tag-attributes-private.h
1513 cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c cairo-tag-attributes.c
1540 cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h
1541 cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c
15141542 cairo_svg_headers = cairo-svg.h
15151543 cairo_svg_private = cairo-svg-surface-private.h
15161544 cairo_svg_sources = cairo-svg-surface.c
16311659 cairo_glesv2_headers = $(cairo_gl_headers)
16321660 cairo_glesv2_private = $(cairo_gl_private)
16331661 cairo_glesv2_sources = $(cairo_gl_sources)
1662 cairo_glesv3_headers = $(cairo_gl_headers)
1663 cairo_glesv3_private = $(cairo_gl_private)
1664 cairo_glesv3_sources = $(cairo_gl_sources)
16341665 cairo_directfb_headers = cairo-directfb.h
16351666 cairo_directfb_sources = cairo-directfb-surface.c
16361667 cairo_drm_headers = cairo-drm.h
17041735 $(cairo_skia_headers) $(cairo_os2_headers) \
17051736 $(cairo_beos_headers) $(cairo_drm_headers) \
17061737 $(cairo_gallium_headers) $(cairo_gl_headers) \
1707 $(cairo_glesv2_headers) $(cairo_cogl_headers) \
1708 $(cairo_directfb_headers) $(cairo_vg_headers) \
1709 $(cairo_tee_headers) $(cairo_xml_headers)
1738 $(cairo_glesv2_headers) $(cairo_glesv3_headers) \
1739 $(cairo_cogl_headers) $(cairo_directfb_headers) \
1740 $(cairo_vg_headers) $(cairo_tee_headers) $(cairo_xml_headers)
17101741 all_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \
17111742 $(cairo_xlib_xrender_headers) $(cairo_xcb_headers) \
17121743 $(cairo_xlib_xcb_headers) $(cairo_xcb_shm_headers) \
17171748 $(cairo_beos_headers) $(cairo_drm_headers) \
17181749 $(cairo_gallium_headers) $(cairo_png_headers) \
17191750 $(cairo_gl_headers) $(cairo_glesv2_headers) \
1720 $(cairo_cogl_headers) $(cairo_directfb_headers) \
1721 $(cairo_vg_headers) $(cairo_egl_headers) $(cairo_glx_headers) \
1722 $(cairo_wgl_headers) $(cairo_script_headers) \
1723 $(cairo_ft_headers) $(cairo_fc_headers) $(cairo_ps_headers) \
1724 $(cairo_pdf_headers) $(cairo_svg_headers) \
1725 $(cairo_image_headers) $(cairo_mime_headers) \
1726 $(cairo_recording_headers) $(cairo_observer_headers) \
1727 $(cairo_tee_headers) $(cairo_xml_headers) \
1728 $(cairo_user_headers) $(cairo_gobject_headers)
1751 $(cairo_glesv3_headers) $(cairo_cogl_headers) \
1752 $(cairo_directfb_headers) $(cairo_vg_headers) \
1753 $(cairo_egl_headers) $(cairo_glx_headers) $(cairo_wgl_headers) \
1754 $(cairo_script_headers) $(cairo_ft_headers) \
1755 $(cairo_fc_headers) $(cairo_ps_headers) $(cairo_pdf_headers) \
1756 $(cairo_svg_headers) $(cairo_image_headers) \
1757 $(cairo_mime_headers) $(cairo_recording_headers) \
1758 $(cairo_observer_headers) $(cairo_tee_headers) \
1759 $(cairo_xml_headers) $(cairo_user_headers) \
1760 $(cairo_gobject_headers)
17291761 all_cairo_private = $(cairo_private) $(cairo_xlib_private) \
17301762 $(cairo_xlib_xrender_private) $(cairo_xcb_private) \
17311763 $(cairo_xlib_xcb_private) $(cairo_xcb_shm_private) \
17361768 $(cairo_beos_private) $(cairo_drm_private) \
17371769 $(cairo_gallium_private) $(cairo_png_private) \
17381770 $(cairo_gl_private) $(cairo_glesv2_private) \
1739 $(cairo_cogl_private) $(cairo_directfb_private) \
1740 $(cairo_vg_private) $(cairo_egl_private) $(cairo_glx_private) \
1741 $(cairo_wgl_private) $(cairo_script_private) \
1742 $(cairo_ft_private) $(cairo_fc_private) $(cairo_ps_private) \
1743 $(cairo_pdf_private) $(cairo_svg_private) \
1744 $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) \
1745 $(cairo_image_private) $(cairo_mime_private) \
1746 $(cairo_recording_private) $(cairo_observer_private) \
1747 $(cairo_tee_private) $(cairo_xml_private) \
1748 $(cairo_user_private) $(cairo_pthread_private) \
1749 $(cairo_pthread_headers) $(cairo_gobject_private) \
1750 $(cairo_trace_private) $(cairo_trace_headers) \
1751 $(cairo_interpreter_private) $(cairo_interpreter_headers) \
1752 $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
1771 $(cairo_glesv3_private) $(cairo_cogl_private) \
1772 $(cairo_directfb_private) $(cairo_vg_private) \
1773 $(cairo_egl_private) $(cairo_glx_private) $(cairo_wgl_private) \
1774 $(cairo_script_private) $(cairo_ft_private) \
1775 $(cairo_fc_private) $(cairo_ps_private) $(cairo_pdf_private) \
1776 $(cairo_svg_private) $(cairo_test_surfaces_private) \
1777 $(cairo_test_surfaces_headers) $(cairo_image_private) \
1778 $(cairo_mime_private) $(cairo_recording_private) \
1779 $(cairo_observer_private) $(cairo_tee_private) \
1780 $(cairo_xml_private) $(cairo_user_private) \
1781 $(cairo_pthread_private) $(cairo_pthread_headers) \
1782 $(cairo_gobject_private) $(cairo_trace_private) \
1783 $(cairo_trace_headers) $(cairo_interpreter_private) \
1784 $(cairo_interpreter_headers) $(cairo_symbol_lookup_private) \
1785 $(cairo_symbol_lookup_headers)
17531786 all_cairo_cxx_sources = $(cairo_cxx_sources) $(cairo_xlib_cxx_sources) \
17541787 $(cairo_xlib_xrender_cxx_sources) $(cairo_xcb_cxx_sources) \
17551788 $(cairo_xlib_xcb_cxx_sources) $(cairo_xcb_shm_cxx_sources) \
17601793 $(cairo_os2_cxx_sources) $(cairo_beos_cxx_sources) \
17611794 $(cairo_drm_cxx_sources) $(cairo_gallium_cxx_sources) \
17621795 $(cairo_png_cxx_sources) $(cairo_gl_cxx_sources) \
1763 $(cairo_glesv2_cxx_sources) $(cairo_cogl_cxx_sources) \
1764 $(cairo_directfb_cxx_sources) $(cairo_vg_cxx_sources) \
1765 $(cairo_egl_cxx_sources) $(cairo_glx_cxx_sources) \
1766 $(cairo_wgl_cxx_sources) $(cairo_script_cxx_sources) \
1767 $(cairo_ft_cxx_sources) $(cairo_fc_cxx_sources) \
1768 $(cairo_ps_cxx_sources) $(cairo_pdf_cxx_sources) \
1769 $(cairo_svg_cxx_sources) $(cairo_test_surfaces_cxx_sources) \
1770 $(cairo_image_cxx_sources) $(cairo_mime_cxx_sources) \
1771 $(cairo_recording_cxx_sources) $(cairo_observer_cxx_sources) \
1772 $(cairo_tee_cxx_sources) $(cairo_xml_cxx_sources) \
1773 $(cairo_user_cxx_sources) $(cairo_pthread_cxx_sources) \
1774 $(cairo_gobject_cxx_sources) $(cairo_trace_cxx_sources) \
1775 $(cairo_interpreter_cxx_sources) \
1796 $(cairo_glesv2_cxx_sources) $(cairo_glesv3_cxx_sources) \
1797 $(cairo_cogl_cxx_sources) $(cairo_directfb_cxx_sources) \
1798 $(cairo_vg_cxx_sources) $(cairo_egl_cxx_sources) \
1799 $(cairo_glx_cxx_sources) $(cairo_wgl_cxx_sources) \
1800 $(cairo_script_cxx_sources) $(cairo_ft_cxx_sources) \
1801 $(cairo_fc_cxx_sources) $(cairo_ps_cxx_sources) \
1802 $(cairo_pdf_cxx_sources) $(cairo_svg_cxx_sources) \
1803 $(cairo_test_surfaces_cxx_sources) $(cairo_image_cxx_sources) \
1804 $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \
1805 $(cairo_observer_cxx_sources) $(cairo_tee_cxx_sources) \
1806 $(cairo_xml_cxx_sources) $(cairo_user_cxx_sources) \
1807 $(cairo_pthread_cxx_sources) $(cairo_gobject_cxx_sources) \
1808 $(cairo_trace_cxx_sources) $(cairo_interpreter_cxx_sources) \
17761809 $(cairo_symbol_lookup_cxx_sources)
17771810 all_cairo_sources = $(cairo_sources) $(cairo_xlib_sources) \
17781811 $(cairo_xlib_xrender_sources) $(cairo_xcb_sources) \
17841817 $(cairo_beos_sources) $(cairo_drm_sources) \
17851818 $(cairo_gallium_sources) $(cairo_png_sources) \
17861819 $(cairo_gl_sources) $(cairo_glesv2_sources) \
1787 $(cairo_cogl_sources) $(cairo_directfb_sources) \
1788 $(cairo_vg_sources) $(cairo_egl_sources) $(cairo_glx_sources) \
1789 $(cairo_wgl_sources) $(cairo_script_sources) \
1790 $(cairo_ft_sources) $(cairo_fc_sources) $(cairo_ps_sources) \
1791 $(cairo_pdf_sources) $(cairo_svg_sources) \
1792 $(cairo_test_surfaces_sources) $(cairo_image_sources) \
1793 $(cairo_mime_sources) $(cairo_recording_sources) \
1794 $(cairo_observer_sources) $(cairo_tee_sources) \
1795 $(cairo_xml_sources) $(cairo_user_sources) \
1796 $(cairo_pthread_sources) $(cairo_gobject_sources) \
1797 $(cairo_trace_sources) $(cairo_interpreter_sources) \
1798 $(cairo_symbol_lookup_sources)
1820 $(cairo_glesv3_sources) $(cairo_cogl_sources) \
1821 $(cairo_directfb_sources) $(cairo_vg_sources) \
1822 $(cairo_egl_sources) $(cairo_glx_sources) $(cairo_wgl_sources) \
1823 $(cairo_script_sources) $(cairo_ft_sources) \
1824 $(cairo_fc_sources) $(cairo_ps_sources) $(cairo_pdf_sources) \
1825 $(cairo_svg_sources) $(cairo_test_surfaces_sources) \
1826 $(cairo_image_sources) $(cairo_mime_sources) \
1827 $(cairo_recording_sources) $(cairo_observer_sources) \
1828 $(cairo_tee_sources) $(cairo_xml_sources) \
1829 $(cairo_user_sources) $(cairo_pthread_sources) \
1830 $(cairo_gobject_sources) $(cairo_trace_sources) \
1831 $(cairo_interpreter_sources) $(cairo_symbol_lookup_sources)
17991832 enabled_cairo_headers = $(cairo_headers) $(am__append_1) \
18001833 $(am__append_6) $(am__append_11) $(am__append_16) \
18011834 $(am__append_21) $(am__append_26) $(am__append_31) \
18071840 $(am__append_111) $(am__append_116) $(am__append_121) \
18081841 $(am__append_126) $(am__append_131) $(am__append_136) \
18091842 $(am__append_141) $(am__append_146) $(am__append_151) \
1810 $(cairo_image_headers) $(cairo_mime_headers) \
1843 $(am__append_156) $(cairo_image_headers) $(cairo_mime_headers) \
18111844 $(cairo_recording_headers) $(cairo_observer_headers) \
1812 $(am__append_159) $(am__append_164) $(cairo_user_headers) \
1813 $(am__append_172)
1845 $(am__append_164) $(am__append_169) $(cairo_user_headers) \
1846 $(am__append_177)
18141847 enabled_cairo_private = $(cairo_private) $(am__append_2) \
18151848 $(am__append_7) $(am__append_12) $(am__append_17) \
18161849 $(am__append_22) $(am__append_27) $(am__append_32) \
18221855 $(am__append_112) $(am__append_117) $(am__append_122) \
18231856 $(am__append_127) $(am__append_132) $(am__append_137) \
18241857 $(am__append_142) $(am__append_147) $(am__append_152) \
1825 $(am__append_156) $(cairo_image_private) $(cairo_mime_private) \
1826 $(cairo_recording_private) $(cairo_observer_private) \
1827 $(am__append_160) $(am__append_165) $(cairo_user_private) \
1828 $(am__append_169) $(am__append_173) $(am__append_177) \
1829 $(am__append_180) $(am__append_183)
1858 $(am__append_157) $(am__append_161) $(cairo_image_private) \
1859 $(cairo_mime_private) $(cairo_recording_private) \
1860 $(cairo_observer_private) $(am__append_165) $(am__append_170) \
1861 $(cairo_user_private) $(am__append_174) $(am__append_178) \
1862 $(am__append_182) $(am__append_185) $(am__append_188)
18301863 enabled_cairo_cxx_sources = $(cairo_cxx_sources) $(am__append_3) \
18311864 $(am__append_8) $(am__append_13) $(am__append_18) \
18321865 $(am__append_23) $(am__append_28) $(am__append_33) \
18381871 $(am__append_113) $(am__append_118) $(am__append_123) \
18391872 $(am__append_128) $(am__append_133) $(am__append_138) \
18401873 $(am__append_143) $(am__append_148) $(am__append_153) \
1841 $(am__append_157) $(cairo_image_cxx_sources) \
1874 $(am__append_158) $(am__append_162) $(cairo_image_cxx_sources) \
18421875 $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \
1843 $(cairo_observer_cxx_sources) $(am__append_161) \
1844 $(am__append_166) $(cairo_user_cxx_sources) $(am__append_170) \
1845 $(am__append_174) $(am__append_178) $(am__append_181) \
1846 $(am__append_184)
1876 $(cairo_observer_cxx_sources) $(am__append_166) \
1877 $(am__append_171) $(cairo_user_cxx_sources) $(am__append_175) \
1878 $(am__append_179) $(am__append_183) $(am__append_186) \
1879 $(am__append_189)
18471880 enabled_cairo_sources = $(cairo_sources) $(am__append_4) \
18481881 $(am__append_9) $(am__append_14) $(am__append_19) \
18491882 $(am__append_24) $(am__append_29) $(am__append_34) \
18551888 $(am__append_114) $(am__append_119) $(am__append_124) \
18561889 $(am__append_129) $(am__append_134) $(am__append_139) \
18571890 $(am__append_144) $(am__append_149) $(am__append_154) \
1858 $(am__append_158) $(cairo_image_sources) $(cairo_mime_sources) \
1859 $(cairo_recording_sources) $(cairo_observer_sources) \
1860 $(am__append_162) $(am__append_167) $(cairo_user_sources) \
1861 $(am__append_171) $(am__append_175) $(am__append_179) \
1862 $(am__append_182) $(am__append_185)
1891 $(am__append_159) $(am__append_163) $(cairo_image_sources) \
1892 $(cairo_mime_sources) $(cairo_recording_sources) \
1893 $(cairo_observer_sources) $(am__append_167) $(am__append_172) \
1894 $(cairo_user_sources) $(am__append_176) $(am__append_180) \
1895 $(am__append_184) $(am__append_187) $(am__append_190)
18631896 all_cairo_pkgconf = cairo.pc cairo-xlib.pc cairo-xlib-xrender.pc \
18641897 cairo-xcb.pc cairo-xlib-xcb.pc cairo-xcb-shm.pc cairo-qt.pc \
18651898 cairo-quartz.pc cairo-quartz-font.pc cairo-quartz-image.pc \
18661899 cairo-win32.pc cairo-win32-font.pc cairo-skia.pc cairo-os2.pc \
18671900 cairo-beos.pc cairo-drm.pc cairo-gallium.pc cairo-png.pc \
1868 cairo-gl.pc cairo-glesv2.pc cairo-cogl.pc cairo-directfb.pc \
1869 cairo-vg.pc cairo-egl.pc cairo-glx.pc cairo-wgl.pc \
1870 cairo-script.pc cairo-ft.pc cairo-fc.pc cairo-ps.pc \
1871 cairo-pdf.pc cairo-svg.pc cairo-tee.pc cairo-xml.pc \
1872 cairo-gobject.pc
1901 cairo-gl.pc cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \
1902 cairo-directfb.pc cairo-vg.pc cairo-egl.pc cairo-glx.pc \
1903 cairo-wgl.pc cairo-script.pc cairo-ft.pc cairo-fc.pc \
1904 cairo-ps.pc cairo-pdf.pc cairo-svg.pc cairo-tee.pc \
1905 cairo-xml.pc cairo-gobject.pc
18731906 enabled_cairo_pkgconf = cairo.pc $(am__append_5) $(am__append_10) \
18741907 $(am__append_15) $(am__append_20) $(am__append_25) \
18751908 $(am__append_30) $(am__append_35) $(am__append_40) \
18801913 $(am__append_105) $(am__append_110) $(am__append_115) \
18811914 $(am__append_120) $(am__append_125) $(am__append_130) \
18821915 $(am__append_135) $(am__append_140) $(am__append_145) \
1883 $(am__append_150) $(am__append_155) $(am__append_163) \
1884 $(am__append_168) $(am__append_176)
1916 $(am__append_150) $(am__append_155) $(am__append_160) \
1917 $(am__append_168) $(am__append_173) $(am__append_181)
18851918 #MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
18861919 AM_CPPFLAGS = -I$(srcdir) $(CAIRO_CFLAGS)
18871920 AM_LDFLAGS = $(CAIRO_LDFLAGS)
20172050 cairo-gl.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in
20182051 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
20192052 cairo-glesv2.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in
2053 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
2054 cairo-glesv3.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in
20202055 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
20212056 cairo-cogl.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in
20222057 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
263263 cairo_glx_sources =
264264 cairo_wgl_sources =
265265
266 _cairo_pdf_operators_private = cairo-pdf-operators-private.h cairo-pdf-shading-private.h
267 _cairo_pdf_operators_sources = cairo-pdf-operators.c cairo-pdf-shading.c
266 _cairo_pdf_operators_private = \
267 cairo-pdf-operators-private.h \
268 cairo-pdf-shading-private.h \
269 cairo-tag-attributes-private.h \
270 $(NULL)
271 _cairo_pdf_operators_sources = \
272 cairo-pdf-operators.c \
273 cairo-pdf-shading.c \
274 cairo-tag-attributes.c \
275 $(NULL)
268276 cairo_private += $(_cairo_pdf_operators_private)
269277 cairo_sources += $(_cairo_pdf_operators_sources)
270278
278286 cairo_sources += $(_cairo_deflate_stream_sources)
279287
280288 cairo_pdf_headers = cairo-pdf.h
281 cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h cairo-tag-attributes-private.h
282 cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c cairo-tag-attributes.c
289 cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h
290 cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c
283291
284292 cairo_svg_headers = cairo-svg.h
285293 cairo_svg_private = cairo-svg-surface-private.h
405413 cairo_glesv2_headers = $(cairo_gl_headers)
406414 cairo_glesv2_private = $(cairo_gl_private)
407415 cairo_glesv2_sources = $(cairo_gl_sources)
416
417 cairo_glesv3_headers = $(cairo_gl_headers)
418 cairo_glesv3_private = $(cairo_gl_private)
419 cairo_glesv3_sources = $(cairo_gl_sources)
408420
409421 cairo_egl_sources += cairo-egl-context.c
410422 cairo_glx_sources += cairo-glx-context.c
324324 enabled_cairo_pkgconf += cairo-glesv2.pc
325325 endif
326326
327 unsupported_cairo_headers += $(cairo_glesv3_headers)
328 all_cairo_headers += $(cairo_glesv3_headers)
329 all_cairo_private += $(cairo_glesv3_private)
330 all_cairo_cxx_sources += $(cairo_glesv3_cxx_sources)
331 all_cairo_sources += $(cairo_glesv3_sources)
332 ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)
333 enabled_cairo_headers += $(cairo_glesv3_headers)
334 enabled_cairo_private += $(cairo_glesv3_private)
335 enabled_cairo_cxx_sources += $(cairo_glesv3_cxx_sources)
336 enabled_cairo_sources += $(cairo_glesv3_sources)
337 endif
338 all_cairo_pkgconf += cairo-glesv3.pc
339 ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)
340 enabled_cairo_pkgconf += cairo-glesv3.pc
341 endif
342
327343 unsupported_cairo_headers += $(cairo_cogl_headers)
328344 all_cairo_headers += $(cairo_cogl_headers)
329345 all_cairo_private += $(cairo_cogl_private)
137137 }
138138
139139 static cairo_int_status_t
140 _analyze_recording_surface_pattern (cairo_analysis_surface_t *surface,
141 const cairo_pattern_t *pattern,
142 cairo_rectangle_int_t *extents)
143 {
144 const cairo_surface_pattern_t *surface_pattern;
145 cairo_analysis_surface_t *tmp;
146 cairo_surface_t *source, *proxy;
147 cairo_matrix_t p2d;
148 cairo_status_t status, analysis_status;
149 cairo_bool_t surface_is_unbounded;
150 cairo_bool_t unused;
151
152 assert (pattern->type == CAIRO_PATTERN_TYPE_SURFACE);
153 surface_pattern = (const cairo_surface_pattern_t *) pattern;
154 assert (surface_pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING);
155 source = surface_pattern->surface;
156
157 proxy = _cairo_surface_has_snapshot (source, &proxy_backend);
158 if (proxy != NULL) {
159 /* nothing untoward found so far */
160 return CAIRO_STATUS_SUCCESS;
161 }
162
163 tmp = (cairo_analysis_surface_t *)
164 _cairo_analysis_surface_create (surface->target);
165 if (unlikely (tmp->base.status))
166 return tmp->base.status;
167 proxy = attach_proxy (source, &tmp->base);
168
169 p2d = pattern->matrix;
170 status = cairo_matrix_invert (&p2d);
171 assert (status == CAIRO_STATUS_SUCCESS);
172 _cairo_analysis_surface_set_ctm (&tmp->base, &p2d);
173
174 source = _cairo_surface_get_source (source, NULL);
175 surface_is_unbounded = (pattern->extend == CAIRO_EXTEND_REPEAT
176 || pattern->extend == CAIRO_EXTEND_REFLECT);
177 status = _cairo_recording_surface_replay_and_create_regions (source,
178 &pattern->matrix,
179 &tmp->base,
180 surface_is_unbounded);
181 if (tmp->has_supported) {
182 surface->has_supported = TRUE;
183 unused = cairo_region_union (&surface->supported_region, &tmp->supported_region);
184 }
185
186 if (tmp->has_unsupported) {
187 surface->has_unsupported = TRUE;
188 unused = cairo_region_union (&surface->fallback_region, &tmp->fallback_region);
189 }
190
191 analysis_status = tmp->has_unsupported ? CAIRO_INT_STATUS_IMAGE_FALLBACK : CAIRO_INT_STATUS_SUCCESS;
192
193 if (pattern->extend != CAIRO_EXTEND_NONE) {
194 _cairo_unbounded_rectangle_init (extents);
195 } else if (source->content & CAIRO_CONTENT_ALPHA) {
196 status = cairo_matrix_invert (&tmp->ctm);
197 _cairo_matrix_transform_bounding_box_fixed (&tmp->ctm,
198 &tmp->page_bbox, NULL);
199 _cairo_box_round_to_rectangle (&tmp->page_bbox, extents);
200 } else {
201 /* black background fills entire extents */
202 _cairo_surface_get_extents (source, extents);
203 }
204
205 detach_proxy (proxy);
206 cairo_surface_destroy (&tmp->base);
207
208 if (unlikely (status))
209 return status;
210
211 return analysis_status;
212 }
213
214 static cairo_int_status_t
215140 _add_operation (cairo_analysis_surface_t *surface,
216141 cairo_rectangle_int_t *rect,
217142 cairo_int_status_t backend_status)
328253 return status;
329254 }
330255
256 static cairo_int_status_t
257 _analyze_recording_surface_pattern (cairo_analysis_surface_t *surface,
258 const cairo_pattern_t *pattern,
259 cairo_rectangle_int_t *extents)
260 {
261 const cairo_surface_pattern_t *surface_pattern;
262 cairo_analysis_surface_t *tmp;
263 cairo_surface_t *source, *proxy;
264 cairo_matrix_t p2d;
265 cairo_int_status_t status, analysis_status;
266 cairo_bool_t surface_is_unbounded;
267 cairo_bool_t unused;
268
269 assert (pattern->type == CAIRO_PATTERN_TYPE_SURFACE);
270 surface_pattern = (const cairo_surface_pattern_t *) pattern;
271 assert (surface_pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING);
272 source = surface_pattern->surface;
273
274 proxy = _cairo_surface_has_snapshot (source, &proxy_backend);
275 if (proxy != NULL) {
276 /* nothing untoward found so far */
277 return CAIRO_STATUS_SUCCESS;
278 }
279
280 tmp = (cairo_analysis_surface_t *)
281 _cairo_analysis_surface_create (surface->target);
282 if (unlikely (tmp->base.status)) {
283 status =tmp->base.status;
284 goto cleanup1;
285 }
286 proxy = attach_proxy (source, &tmp->base);
287
288 p2d = pattern->matrix;
289 status = cairo_matrix_invert (&p2d);
290 assert (status == CAIRO_INT_STATUS_SUCCESS);
291 _cairo_analysis_surface_set_ctm (&tmp->base, &p2d);
292
293
294 source = _cairo_surface_get_source (source, NULL);
295 surface_is_unbounded = (pattern->extend == CAIRO_EXTEND_REPEAT
296 || pattern->extend == CAIRO_EXTEND_REFLECT);
297 status = _cairo_recording_surface_replay_and_create_regions (source,
298 &pattern->matrix,
299 &tmp->base,
300 surface_is_unbounded);
301 if (unlikely (status))
302 goto cleanup2;
303
304 /* black background or mime data fills entire extents */
305 if (!(source->content & CAIRO_CONTENT_ALPHA) || _cairo_surface_has_mime_image (source)) {
306 cairo_rectangle_int_t rect;
307
308 if (_cairo_surface_get_extents (source, &rect)) {
309 cairo_box_t bbox;
310
311 _cairo_box_from_rectangle (&bbox, &rect);
312 _cairo_matrix_transform_bounding_box_fixed (&p2d, &bbox, NULL);
313 _cairo_box_round_to_rectangle (&bbox, &rect);
314 status = _add_operation (tmp, &rect, CAIRO_INT_STATUS_SUCCESS);
315 if (status == CAIRO_INT_STATUS_IMAGE_FALLBACK)
316 status = CAIRO_INT_STATUS_SUCCESS;
317 if (unlikely (status))
318 goto cleanup2;
319 }
320 }
321
322 if (tmp->has_supported) {
323 surface->has_supported = TRUE;
324 unused = cairo_region_union (&surface->supported_region, &tmp->supported_region);
325 }
326
327 if (tmp->has_unsupported) {
328 surface->has_unsupported = TRUE;
329 unused = cairo_region_union (&surface->fallback_region, &tmp->fallback_region);
330 }
331
332 analysis_status = tmp->has_unsupported ? CAIRO_INT_STATUS_IMAGE_FALLBACK : CAIRO_INT_STATUS_SUCCESS;
333 if (pattern->extend != CAIRO_EXTEND_NONE) {
334 _cairo_unbounded_rectangle_init (extents);
335 } else {
336 status = cairo_matrix_invert (&tmp->ctm);
337 _cairo_matrix_transform_bounding_box_fixed (&tmp->ctm,
338 &tmp->page_bbox, NULL);
339 _cairo_box_round_to_rectangle (&tmp->page_bbox, extents);
340 }
341
342 cleanup2:
343 detach_proxy (proxy);
344 cleanup1:
345 cairo_surface_destroy (&tmp->base);
346
347 if (unlikely (status))
348 return status;
349
350 return analysis_status;
351 }
352
331353 static cairo_status_t
332354 _cairo_analysis_surface_finish (void *abstract_surface)
333355 {
4343 #if HAVE_CONFIG_H
4444 #include "config.h"
4545 #endif
46
47 #include <assert.h>
4648
4749 /* The autoconf on OpenBSD 4.5 produces the malformed constant name
4850 * SIZEOF_VOID__ rather than SIZEOF_VOID_P. Work around that here. */
154156
155157 #endif
156158
157 #if HAVE_INTEL_ATOMIC_PRIMITIVES
159 #if HAVE_GCC_LEGACY_ATOMICS
158160
159161 #define HAS_ATOMIC_OPS 1
160162
161163 typedef int cairo_atomic_int_t;
162164
163 #ifdef ATOMIC_OP_NEEDS_MEMORY_BARRIER
164165 static cairo_always_inline cairo_atomic_int_t
165166 _cairo_atomic_int_get (cairo_atomic_int_t *x)
166167 {
186187 __sync_synchronize ();
187188 return *x;
188189 }
189 #else
190 # define _cairo_atomic_int_get(x) (*x)
191 # define _cairo_atomic_int_get_relaxed(x) (*x)
192 # define _cairo_atomic_int_set_relaxed(x, val) (*x) = (val)
193 # define _cairo_atomic_ptr_get(x) (*x)
194 #endif
195190
196191 # define _cairo_atomic_int_inc(x) ((void) __sync_fetch_and_add(x, 1))
197192 # define _cairo_atomic_int_dec(x) ((void) __sync_fetch_and_add(x, -1))
392387 (void) ret__; \
393388 } while (0)
394389
390 typedef cairo_atomic_int_t cairo_atomic_once_t;
391
392 #define CAIRO_ATOMIC_ONCE_UNINITIALIZED (0)
393 #define CAIRO_ATOMIC_ONCE_INITIALIZING (1)
394 #define CAIRO_ATOMIC_ONCE_INITIALIZED (2)
395 #define CAIRO_ATOMIC_ONCE_INIT CAIRO_ATOMIC_ONCE_UNINITIALIZED
396
397 static cairo_always_inline cairo_bool_t
398 _cairo_atomic_init_once_enter(cairo_atomic_once_t *once)
399 {
400 if (likely(_cairo_atomic_int_get(once) == CAIRO_ATOMIC_ONCE_INITIALIZED))
401 return 0;
402
403 if (_cairo_atomic_int_cmpxchg(once,
404 CAIRO_ATOMIC_ONCE_UNINITIALIZED,
405 CAIRO_ATOMIC_ONCE_INITIALIZING))
406 return 1;
407
408 while (_cairo_atomic_int_get(once) != CAIRO_ATOMIC_ONCE_INITIALIZED) {}
409 return 0;
410 }
411
412 static cairo_always_inline void
413 _cairo_atomic_init_once_leave(cairo_atomic_once_t *once)
414 {
415 if (unlikely(!_cairo_atomic_int_cmpxchg(once,
416 CAIRO_ATOMIC_ONCE_INITIALIZING,
417 CAIRO_ATOMIC_ONCE_INITIALIZED)))
418 assert (0 && "incorrect use of _cairo_atomic_init_once API (once != CAIRO_ATOMIC_ONCE_INITIALIZING)");
419 }
420
395421 CAIRO_END_DECLS
396422
397423 #endif
592592 pqueue_push (sweep, rectangle);
593593 }
594594
595 static int
596 sweep_line_setjmp (sweep_line_t *sweep_line)
597 {
598 return setjmp (sweep_line->unwind);
599 }
600
595601 static cairo_status_t
596602 _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles,
597603 int num_rectangles,
608614 rectangles, num_rectangles,
609615 fill_rule,
610616 do_traps, container);
611 if ((status = setjmp (sweep_line.unwind)))
617 if ((status = sweep_line_setjmp (&sweep_line)))
612618 return status;
613619
614620 rectangle = rectangle_pop_start (&sweep_line);
21272127 return CAIRO_STATUS_SUCCESS;
21282128 }
21292129
2130 #if 0
21302131 static cairo_status_t
21312132 _cairo_botor_scan_converter_add_edge (void *converter,
21322133 const cairo_point_t *p1,
21452146
21462147 return botor_add_edge (self, &edge);
21472148 }
2149 #endif
21482150
21492151 cairo_status_t
21502152 _cairo_botor_scan_converter_add_polygon (cairo_botor_scan_converter_t *converter,
101101 boxes->is_pixel_aligned = n == num_boxes;
102102 }
103103
104 /**
104 /** _cairo_boxes_limit:
105 *
105106 * Computes the minimum bounding box of the given list of boxes and assign
106107 * it to the given boxes set. It also assigns that list as the list of
107108 * limiting boxes in the box set.
274275 return boxes->status;
275276 }
276277
277 /**
278 /** _cairo_boxes_extents:
279 *
278280 * Computes the minimum bounding box of the given box set and stores
279281 * it in the given box.
280282 *
281 * @param boxes the box set whose minimum bounding is computed
282 * @param box return buffer for the computed result
283 * @param boxes The box set whose minimum bounding is computed.
284 * @param box Return buffer for the computed result.
283285 */
284286 void
285287 _cairo_boxes_extents (const cairo_boxes_t *boxes,
333335 boxes->is_pixel_aligned = TRUE;
334336 }
335337
336 /**
338 /** _cairo_boxes_to_array:
339 *
337340 * Linearize a box set of possibly multiple chunks into one big chunk
338341 * and returns an array of boxes
339342 *
340 * @param boxes the box set to be converted
341 * @param num_boxes return buffer for the number of boxes (array count)
342 * @return pointer to the newly allocated array of boxes
343 * (the number o elements is given in num_boxes)
344 * */
343 * @param boxes The box set to be converted.
344 * @param num_boxes Return buffer for the number of boxes (array count).
345 * @return Pointer to the newly allocated array of boxes
346 * (the number o elements is given in num_boxes).
347 */
345348 cairo_box_t *
346349 _cairo_boxes_to_array (const cairo_boxes_t *boxes,
347350 int *num_boxes)
4040 * http://www.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5177.Type2.pdf
4141 */
4242
43 #define _BSD_SOURCE /* for snprintf(), strdup() */
43 #define _DEFAULT_SOURCE /* for snprintf(), strdup() */
4444 #include "cairoint.h"
4545
4646 #include "cairo-array-private.h"
294294 static unsigned char *
295295 decode_real (unsigned char *p, double *real)
296296 {
297 const char *decimal_point;
298 int decimal_point_len;
299 int n;
300297 char buffer[100];
301 char buffer2[200];
302 char *q;
303298 char *buf = buffer;
304299 char *buf_end = buffer + sizeof (buffer);
305
306 decimal_point = cairo_get_locale_decimal_point ();
307 decimal_point_len = strlen (decimal_point);
308
309 assert (decimal_point_len != 0);
310 assert (sizeof(buffer) + decimal_point_len < sizeof(buffer2));
300 char *end;
301 int n;
311302
312303 p++;
313304 while (buf + 2 < buf_end) {
323314 };
324315 *buf = 0;
325316
326 buf = buffer;
327 if (strchr (buffer, '.')) {
328 q = strchr (buffer, '.');
329 strncpy (buffer2, buffer, q - buffer);
330 buf = buffer2 + (q - buffer);
331 strncpy (buf, decimal_point, decimal_point_len);
332 buf += decimal_point_len;
333 strcpy (buf, q + 1);
334 buf = buffer2;
335 }
336
337 if (sscanf(buf, "%lf", real) != 1)
338 *real = 0.0;
317 *real = _cairo_strtod (buffer, &end);
339318
340319 return p;
341320 }
263263 return _cairo_clip_intersect_rectangle_box (clip, &r, box);
264264 }
265265
266 /**
267 * copy a box set to an clip
268 *
269 * @param box the box set to copy from
270 * @param clip the clip to copy to (return buffer)
271 * @result zero if the allocation failed - the clip will be set to all-clipped
272 * otherwise non-zero
266 /* Copy a box set to a clip
267 *
268 * @param boxes The box set to copy from.
269 * @param clip The clip to copy to (return buffer).
270 * @returns Zero if the allocation failed (the clip will be set to
271 * all-clipped), otherwise non-zero.
273272 */
274273 static cairo_bool_t
275274 _cairo_boxes_copy_to_clip (const cairo_boxes_t *boxes, cairo_clip_t *clip)
222222 if (f > 0)
223223 return ((f - 1)>>CAIRO_FIXED_FRAC_BITS) + 1;
224224 else
225 return - (-f >> CAIRO_FIXED_FRAC_BITS);
225 return - ((cairo_fixed_t)(-(cairo_fixed_unsigned_t)f) >> CAIRO_FIXED_FRAC_BITS);
226226 }
227227
228228 /* A bunch of explicit 16.16 operators; we need these
3737 * Carl Worth <cworth@cworth.org>
3838 */
3939
40 #define _BSD_SOURCE /* for strdup() */
40 #define _DEFAULT_SOURCE /* for strdup() */
4141 #include "cairoint.h"
4242
4343 #include "cairo-error-private.h"
26572657 if (face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS) {
26582658 FT_MM_Var *mm_var = NULL;
26592659 FT_Fixed *coords = NULL;
2660 int num_axis, i;
2660 int num_axis;
26612661
26622662 /* If this is an MM or variable font we can't assume the current outlines
26632663 * are the same as the font tables */
26812681 * current design coordinates are the default coordinates. In this case
26822682 * the current outlines match the font tables.
26832683 */
2684 FT_Get_Var_Design_Coordinates (face, num_axis, coords);
2685 *is_synthetic = FALSE;
2686 for (i = 0; i < num_axis; i++) {
2687 if (coords[i] != mm_var->axis[i].def) {
2688 *is_synthetic = TRUE;
2689 break;
2684 {
2685 int i;
2686
2687 FT_Get_Var_Design_Coordinates (face, num_axis, coords);
2688 *is_synthetic = FALSE;
2689 for (i = 0; i < num_axis; i++) {
2690 if (coords[i] != mm_var->axis[i].def) {
2691 *is_synthetic = TRUE;
2692 break;
2693 }
26902694 }
26912695 }
26922696 #endif
5151 #include "cairo-error-private.h"
5252 #include "cairo-image-surface-private.h"
5353
54 /* FIXME: Copy of same routine in cairo-gl-msaa-compositor.c */
55 static cairo_int_status_t
56 _draw_int_rect (cairo_gl_context_t *ctx,
57 cairo_gl_composite_t *setup,
58 cairo_rectangle_int_t *rect)
59 {
60 cairo_box_t box;
61 cairo_point_t quad[4];
62
63 _cairo_box_from_rectangle (&box, rect);
64 quad[0].x = box.p1.x;
65 quad[0].y = box.p1.y;
66 quad[1].x = box.p1.x;
67 quad[1].y = box.p2.y;
68 quad[2].x = box.p2.x;
69 quad[2].y = box.p2.y;
70 quad[3].x = box.p2.x;
71 quad[3].y = box.p1.y;
72
73 return _cairo_gl_composite_emit_quad_as_tristrip (ctx, setup, quad);
74 }
75
76 static cairo_int_status_t
77 _blit_texture_to_renderbuffer (cairo_gl_surface_t *surface)
78 {
79 cairo_gl_context_t *ctx = NULL;
80 cairo_gl_composite_t setup;
81 cairo_surface_pattern_t pattern;
82 cairo_rectangle_int_t extents;
83 cairo_int_status_t status;
84
85 /* FIXME: This only permits blit when glesv3 is enabled. But note that
86 glesv2 with the ANGLE extension should also be able to support this feature,
87 so once the ANGLE support code is in place this check can be relaxed. */
88 if (((cairo_gl_context_t *)surface->base.device)->gl_flavor != CAIRO_GL_FLAVOR_ES3)
89 return CAIRO_INT_STATUS_SUCCESS;
90
91 if (! surface->content_in_texture)
92 return CAIRO_INT_STATUS_SUCCESS;
93
94 memset (&setup, 0, sizeof (cairo_gl_composite_t));
95
96 status = _cairo_gl_composite_set_operator (&setup,
97 CAIRO_OPERATOR_SOURCE,
98 FALSE);
99
100 if (status)
101 return status;
102
103 setup.dst = surface;
104 setup.clip_region = surface->clip_region;
105
106 _cairo_pattern_init_for_surface (&pattern, &surface->base);
107 status = _cairo_gl_composite_set_source (&setup, &pattern.base,
108 NULL, NULL, FALSE);
109 _cairo_pattern_fini (&pattern.base);
110
111 if (unlikely (status))
112 goto FAIL;
113
114 _cairo_gl_composite_set_multisample (&setup);
115
116 status = _cairo_gl_composite_begin (&setup, &ctx);
117
118 if (unlikely (status))
119 goto FAIL;
120
121 extents.x = extents.y = 0;
122 extents.width = surface->width;
123 extents.height = surface->height;
124
125 status = _draw_int_rect (ctx, &setup, &extents);
126
127 if (status == CAIRO_INT_STATUS_SUCCESS)
128 surface->content_in_texture = FALSE;
129
130 FAIL:
131 _cairo_gl_composite_fini (&setup);
132
133 if (ctx) {
134 _cairo_gl_composite_flush (ctx);
135 status = _cairo_gl_context_release (ctx, status);
136 }
137
138 return status;
139 }
140
54141 cairo_int_status_t
55142 _cairo_gl_composite_set_source (cairo_gl_composite_t *setup,
56143 const cairo_pattern_t *pattern,
67154 _cairo_gl_composite_set_source_operand (cairo_gl_composite_t *setup,
68155 const cairo_gl_operand_t *source)
69156 {
157 cairo_int_status_t status;
158
70159 _cairo_gl_operand_destroy (&setup->src);
71160 _cairo_gl_operand_copy (&setup->src, source);
161
162 if (source->type == CAIRO_GL_OPERAND_TEXTURE)
163 status = _cairo_gl_surface_resolve_multisampling (source->texture.surface);
72164 }
73165
74166 void
98190 _cairo_gl_composite_set_mask_operand (cairo_gl_composite_t *setup,
99191 const cairo_gl_operand_t *mask)
100192 {
193 cairo_int_status_t status;
101194 _cairo_gl_operand_destroy (&setup->mask);
102 if (mask)
195 if (mask) {
103196 _cairo_gl_operand_copy (&setup->mask, mask);
197 if (mask->type == CAIRO_GL_OPERAND_TEXTURE)
198 status = _cairo_gl_surface_resolve_multisampling (mask->texture.surface);
199 }
104200 }
105201
106202 void
173269
174270 switch (extend) {
175271 case CAIRO_EXTEND_NONE:
176 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2)
272 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
273 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2)
177274 wrap_mode = GL_CLAMP_TO_EDGE;
178275 else
179276 wrap_mode = GL_CLAMP_TO_BORDER;
11771274 {
11781275 cairo_status_t status;
11791276
1277 status = _blit_texture_to_renderbuffer (dst);
1278
11801279 memset (setup, 0, sizeof (cairo_gl_composite_t));
11811280
11821281 status = _cairo_gl_composite_set_operator (setup, op,
170170 if (gl_flavor == CAIRO_GL_FLAVOR_DESKTOP)
171171 return TRUE;
172172
173 assert (gl_flavor == CAIRO_GL_FLAVOR_ES2);
173 assert (gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
174 gl_flavor == CAIRO_GL_FLAVOR_ES2);
174175
175176 /* For OpenGL ES we have to look for the specific extension and BGRA only
176177 * matches cairo's integer packed bytes on little-endian machines. */
189190 int n;
190191
191192 cairo_bool_t is_desktop = gl_flavor == CAIRO_GL_FLAVOR_DESKTOP;
192 cairo_bool_t is_gles = gl_flavor == CAIRO_GL_FLAVOR_ES2;
193 cairo_bool_t is_gles = (gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
194 gl_flavor == CAIRO_GL_FLAVOR_ES2);
193195
194196 _cairo_device_init (&ctx->base, &_cairo_gl_device_backend);
195197
262264 }
263265 #endif
264266
265 #if CAIRO_HAS_GLESV2_SURFACE && defined(GL_MAX_SAMPLES_EXT)
267 #if CAIRO_HAS_GLESV3_SURFACE
268 if (is_gles && ctx->has_packed_depth_stencil) {
269 glGetIntegerv(GL_MAX_SAMPLES, &ctx->num_samples);
270 }
271
272 #elif CAIRO_HAS_GLESV2_SURFACE && defined(GL_MAX_SAMPLES_EXT)
266273 if (is_gles && ctx->has_packed_depth_stencil &&
267274 _cairo_gl_has_extension ("GL_EXT_multisampled_render_to_texture")) {
268275 glGetIntegerv(GL_MAX_SAMPLES_EXT, &ctx->num_samples);
269276 }
270 #endif
271
272 #if CAIRO_HAS_GLESV2_SURFACE && defined(GL_MAX_SAMPLES_IMG)
277
273278 if (is_gles && ctx->has_packed_depth_stencil &&
274279 _cairo_gl_has_extension ("GL_IMG_multisampled_render_to_texture")) {
275280 glGetIntegerv(GL_MAX_SAMPLES_IMG, &ctx->num_samples);
276281 }
277282 #endif
278283
279 ctx->supports_msaa = ctx->num_samples > 1;
284 /* we always use renderbuffer for rendering in glesv3 */
285 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
286 ctx->supports_msaa = TRUE;
287 else
288 ctx->supports_msaa = ctx->num_samples > 1;
280289 if (ctx->num_samples > MAX_MSAA_SAMPLES)
281290 ctx->num_samples = MAX_MSAA_SAMPLES;
282
283291
284292 ctx->current_operator = -1;
285293 ctx->gl_flavor = gl_flavor;
348356 return GL_DEPTH_STENCIL;
349357 #endif
350358
351 #if CAIRO_HAS_GLESV2_SURFACE
359 #if CAIRO_HAS_GLESV2_SURFACE && !CAIRO_HAS_GLESV3_SURFACE
352360 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP)
353361 return GL_DEPTH24_STENCIL8_OES;
354362 #endif
355363
356364 #if CAIRO_HAS_GL_SURFACE
357365 return GL_DEPTH_STENCIL;
366 #elif CAIRO_HAS_GLESV3_SURFACE
367 return GL_DEPTH24_STENCIL8;
358368 #elif CAIRO_HAS_GLESV2_SURFACE
359369 return GL_DEPTH24_STENCIL8_OES;
360370 #endif
380390 }
381391 #endif
382392
383 static void
393 void
384394 _cairo_gl_ensure_framebuffer (cairo_gl_context_t *ctx,
385395 cairo_gl_surface_t *surface)
386396 {
435445 str, status);
436446 }
437447 }
438 #if CAIRO_HAS_GL_SURFACE
448 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
439449 static void
440450 _cairo_gl_ensure_multisampling (cairo_gl_context_t *ctx,
441451 cairo_gl_surface_t *surface)
442452 {
443453 assert (surface->supports_msaa);
444 assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP);
454 assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP ||
455 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3);
445456
446457 if (surface->msaa_fb)
447458 return;
459470 this information. */
460471 ctx->dispatch.RenderbufferStorageMultisample (GL_RENDERBUFFER,
461472 ctx->num_samples,
473 #if CAIRO_HAS_GLESV3_SURFACE
474 GL_RGBA8,
475 #else
462476 GL_RGBA,
477 #endif
463478 surface->width,
464479 surface->height);
465480 ctx->dispatch.FramebufferRenderbuffer (GL_FRAMEBUFFER,
471486 glDisable (GL_SCISSOR_TEST);
472487 glClearColor (0, 0, 0, 0);
473488 glClear (GL_COLOR_BUFFER_BIT);
489
490 /* for glesv3 with multisample renderbuffer, we always render to
491 this renderbuffer */
492 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
493 surface->msaa_active = TRUE;
474494 }
475495 #endif
476496
483503 return TRUE;
484504
485505 _cairo_gl_ensure_framebuffer (ctx, surface);
486 #if CAIRO_HAS_GL_SURFACE
487 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP)
506 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
507 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP ||
508 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
488509 _cairo_gl_ensure_multisampling (ctx, surface);
489510 #endif
490511
498519 surface->width,
499520 surface->height);
500521
501 #if CAIRO_HAS_GL_SURFACE
502 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) {
522 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
523 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP ||
524 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3) {
503525 dispatch->FramebufferRenderbuffer (GL_FRAMEBUFFER,
504526 GL_DEPTH_STENCIL_ATTACHMENT,
505527 GL_RENDERBUFFER,
614636 #undef M
615637 }
616638
617 #if CAIRO_HAS_GL_SURFACE
639 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
618640 static void
619641 bind_multisample_framebuffer (cairo_gl_context_t *ctx,
620642 cairo_gl_surface_t *surface)
623645 cairo_bool_t scissor_test_enabled;
624646
625647 assert (surface->supports_msaa);
626 assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP);
648 assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP ||
649 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3);
627650
628651 _cairo_gl_ensure_framebuffer (ctx, surface);
629652 _cairo_gl_ensure_multisampling (ctx, surface);
630653
631654 if (surface->msaa_active) {
655 #if CAIRO_HAS_GL_SURFACE
632656 glEnable (GL_MULTISAMPLE);
657 #endif
633658 ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->msaa_fb);
659 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
660 surface->content_in_texture = FALSE;
634661 return;
635662 }
636663
641668 glDisable (GL_STENCIL_TEST);
642669 glDisable (GL_SCISSOR_TEST);
643670
671 #if CAIRO_HAS_GL_SURFACE
644672 glEnable (GL_MULTISAMPLE);
673 #endif
645674
646675 /* The last time we drew to the surface, we were not using multisampling,
647676 so we need to blit from the non-multisampling framebuffer into the
650679 ctx->dispatch.BindFramebuffer (GL_READ_FRAMEBUFFER, surface->fb);
651680 ctx->dispatch.BlitFramebuffer (0, 0, surface->width, surface->height,
652681 0, 0, surface->width, surface->height,
653 GL_COLOR_BUFFER_BIT, GL_NEAREST);
682 GL_COLOR_BUFFER_BIT
683 #if CAIRO_HAS_GL_SURFACE
684 | GL_STENCIL_BUFFER_BIT
685 #endif
686 ,
687 GL_NEAREST);
654688 ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->msaa_fb);
655689
656690 if (stencil_test_enabled)
657691 glEnable (GL_STENCIL_TEST);
658692 if (scissor_test_enabled)
659693 glEnable (GL_SCISSOR_TEST);
660 }
661 #endif
662
663 #if CAIRO_HAS_GL_SURFACE
694 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
695 surface->content_in_texture = FALSE;
696 }
697 #endif
698
699 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
664700 static void
665701 bind_singlesample_framebuffer (cairo_gl_context_t *ctx,
666702 cairo_gl_surface_t *surface)
668704 cairo_bool_t stencil_test_enabled;
669705 cairo_bool_t scissor_test_enabled;
670706
671 assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP);
707 assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP ||
708 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3);
672709 _cairo_gl_ensure_framebuffer (ctx, surface);
673710
674711 if (! surface->msaa_active) {
712 #if CAIRO_HAS_GL_SURFACE
675713 glDisable (GL_MULTISAMPLE);
714 #endif
715
676716 ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->fb);
677717 return;
678718 }
684724 glDisable (GL_STENCIL_TEST);
685725 glDisable (GL_SCISSOR_TEST);
686726
727 #if CAIRO_HAS_GL_SURFACE
687728 glDisable (GL_MULTISAMPLE);
729 #endif
688730
689731 /* The last time we drew to the surface, we were using multisampling,
690732 so we need to blit from the multisampling framebuffer into the
717759 return;
718760 }
719761
720 #if CAIRO_HAS_GL_SURFACE
762 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
721763 if (multisampling)
722764 bind_multisample_framebuffer (ctx, surface);
723765 else
736778 #endif
737779 }
738780
739 surface->msaa_active = multisampling;
781 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP)
782 surface->msaa_active = multisampling;
740783 }
741784
742785 void
750793 * we create an OpenGL ES surface, so we can never switch modes. */
751794 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2)
752795 multisampling = surface->msaa_active;
796 /* For GLESV3, we always use renderbuffer for drawing */
797 else if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
798 multisampling = TRUE;
753799
754800 changing_surface = ctx->current_target != surface || surface->needs_update;
755 changing_sampling = surface->msaa_active != multisampling;
801 changing_sampling = (surface->msaa_active != multisampling ||
802 surface->content_in_texture);
756803 if (! changing_surface && ! changing_sampling)
757804 return;
758805
123123 else
124124 return CAIRO_STATUS_DEVICE_ERROR;
125125 }
126 else if (gl_flavor == CAIRO_GL_FLAVOR_ES3)
127 {
128 dispatch_name = CAIRO_GL_DISPATCH_NAME_CORE;
129 }
126130 else if (gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
127131 gl_version >= CAIRO_GL_VERSION_ENCODE (2, 0))
128132 {
154158 dispatch_name = CAIRO_GL_DISPATCH_NAME_EXT;
155159 else
156160 return CAIRO_STATUS_DEVICE_ERROR;
161 }
162 else if (gl_flavor == CAIRO_GL_FLAVOR_ES3)
163 {
164 dispatch_name = CAIRO_GL_DISPATCH_NAME_CORE;
157165 }
158166 else if (gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
159167 gl_version >= CAIRO_GL_VERSION_ENCODE (2, 0))
187195 dispatch_name = CAIRO_GL_DISPATCH_NAME_EXT;
188196 else
189197 return CAIRO_STATUS_DEVICE_ERROR;
198 }
199 else if (gl_flavor == CAIRO_GL_FLAVOR_ES3)
200 {
201 dispatch_name = CAIRO_GL_DISPATCH_NAME_CORE;
190202 }
191203 else if (gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
192204 gl_version >= CAIRO_GL_VERSION_ENCODE (2, 0))
5050
5151 #include "cairo-gl.h"
5252
53 #if CAIRO_HAS_GL_SURFACE
54 #include <GL/gl.h>
55 #include <GL/glext.h>
53 #if CAIRO_HAS_GLESV3_SURFACE
54 #include <GLES3/gl3.h>
55 #include <GLES3/gl3ext.h>
5656 #elif CAIRO_HAS_GLESV2_SURFACE
5757 #include <GLES2/gl2.h>
5858 #include <GLES2/gl2ext.h>
59 #elif CAIRO_HAS_GL_SURFACE
60 #include <GL/gl.h>
61 #include <GL/glext.h>
5962 #endif
6063
6164 #define CAIRO_GL_GRADIENT_CACHE_SIZE 4096
281281 * In OpenGL ES 2.0 no format conversion is allowed i.e. 'internalFormat'
282282 * must match 'format' in glTexImage2D.
283283 */
284 if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES2)
284 if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES3 ||
285 _cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES2)
285286 internal_format = GL_BGRA;
286287 else
287288 internal_format = GL_RGBA;
6464
6565 if (version == NULL)
6666 flavor = CAIRO_GL_FLAVOR_NONE;
67 else if (strstr (version, "OpenGL ES 3") != NULL)
68 flavor = CAIRO_GL_FLAVOR_ES3;
6769 else if (strstr (version, "OpenGL ES 2") != NULL)
6870 flavor = CAIRO_GL_FLAVOR_ES2;
6971 else
272272 can_use_msaa_compositor (cairo_gl_surface_t *surface,
273273 cairo_antialias_t antialias)
274274 {
275 cairo_gl_flavor_t gl_flavor = ((cairo_gl_context_t *) surface->base.device)->gl_flavor;
276
275277 query_surface_capabilities (surface);
276278 if (! surface->supports_stencil)
277279 return FALSE;
279281 /* Multisampling OpenGL ES surfaces only maintain one multisampling
280282 framebuffer and thus must use the spans compositor to do non-antialiased
281283 rendering. */
282 if (((cairo_gl_context_t *) surface->base.device)->gl_flavor == CAIRO_GL_FLAVOR_ES2
284 if ((gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
285 gl_flavor == CAIRO_GL_FLAVOR_ES2)
283286 && surface->supports_msaa
287 && surface->num_samples > 1
284288 && antialias == CAIRO_ANTIALIAS_NONE)
285289 return FALSE;
286290
377381 FALSE);
378382 if (unlikely (status))
379383 goto finish;
384
385 _cairo_gl_context_set_destination (ctx, dst, setup.multisample);
386
380387 status = _cairo_gl_set_operands_and_operator (&setup, ctx);
381388 if (unlikely (status))
382389 goto finish;
633640 glGetIntegerv(GL_STENCIL_BITS, &stencil_bits);
634641 surface->supports_stencil = stencil_bits > 0;
635642 surface->supports_msaa = samples > 1;
643 surface->num_samples = samples;
636644
637645 status = _cairo_gl_context_release (ctx, status);
638646 }
935943 const cairo_compositor_t *
936944 _cairo_gl_msaa_compositor_get (void)
937945 {
946 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
938947 static cairo_compositor_t compositor;
939 if (compositor.delegate == NULL)
948 if (_cairo_atomic_init_once_enter(&once)) {
940949 _cairo_gl_msaa_compositor_init (&compositor,
941950 _cairo_gl_span_compositor_get ());
951 _cairo_atomic_init_once_leave(&once);
952 }
942953
943954 return &compositor;
944955 }
657657 * with CAIRO_EXTEND_NONE). When bilinear filtering is enabled,
658658 * these shaders need the texture dimensions for their calculations.
659659 */
660 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
660 if ((ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
661 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2) &&
661662 _cairo_gl_operand_get_extend (operand) == CAIRO_EXTEND_NONE &&
662663 _cairo_gl_operand_get_gl_filter (operand) == GL_LINEAR)
663664 {
5959
6060 #include <assert.h>
6161
62 #if CAIRO_HAS_GL_SURFACE
63 #include <GL/gl.h>
64 #include <GL/glext.h>
62 #if CAIRO_HAS_GLESV3_SURFACE
63 #include <GLES3/gl3.h>
64 #include <GLES3/gl3ext.h>
6565 #elif CAIRO_HAS_GLESV2_SURFACE
6666 #include <GLES2/gl2.h>
6767 #include <GLES2/gl2ext.h>
68 #elif CAIRO_HAS_GL_SURFACE
69 #include <GL/gl.h>
70 #include <GL/glext.h>
6871 #endif
6972
7073 #include "cairo-gl-ext-def-private.h"
98101
99102 typedef struct _cairo_gl_surface cairo_gl_surface_t;
100103
101 /* GL flavor */
104 /* GL flavor is the type of GL supported by the underlying platform. */
102105 typedef enum cairo_gl_flavor {
103106 CAIRO_GL_FLAVOR_NONE = 0,
104107 CAIRO_GL_FLAVOR_DESKTOP = 1,
105 CAIRO_GL_FLAVOR_ES2 = 2
108 CAIRO_GL_FLAVOR_ES2 = 2,
109 CAIRO_GL_FLAVOR_ES3 = 3
106110 } cairo_gl_flavor_t;
107111
108112 /* Indices for vertex attributes used by BindAttribLocation, etc. */
168172 GLuint fb; /* GL framebuffer object wrapping our data. */
169173 GLuint depth_stencil; /* GL renderbuffer object for holding stencil buffer clip. */
170174
171 #if CAIRO_HAS_GL_SURFACE
175 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
172176 GLuint msaa_rb; /* The ARB MSAA path uses a renderbuffer. */
173177 GLuint msaa_fb;
174178 #endif
177181 cairo_bool_t stencil_and_msaa_caps_initialized;
178182 cairo_bool_t supports_stencil; /* Stencil support for for non-texture surfaces. */
179183 cairo_bool_t supports_msaa;
184 GLint num_samples;
180185 cairo_bool_t msaa_active; /* Whether the multisampling
181186 framebuffer is active or not. */
187 cairo_bool_t content_in_texture; /* whether we just uploaded image
188 to texture, used for certain
189 gles2 extensions and glesv3 */
182190 cairo_clip_t *clip_on_stencil_buffer;
183191
184192 int owns_tex;
800808 cairo_composite_glyphs_info_t *info,
801809 cairo_clip_t *clip);
802810
811 cairo_private void
812 _cairo_gl_ensure_framebuffer (cairo_gl_context_t *ctx,
813 cairo_gl_surface_t *surface);
814
803815 cairo_private cairo_surface_t *
804816 _cairo_gl_surface_create_scratch (cairo_gl_context_t *ctx,
805817 cairo_content_t content,
397397 "vec4 get_%s()\n"
398398 "{\n",
399399 rectstr, namestr, namestr, namestr, namestr);
400 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
400 if ((ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
401 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2) &&
401402 _cairo_gl_shader_needs_border_fade (op))
402403 {
403404 _cairo_output_stream_printf (stream,
424425 "vec4 get_%s()\n"
425426 "{\n",
426427 namestr, namestr, rectstr, namestr, namestr);
427 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
428 if ((ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
429 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2) &&
428430 _cairo_gl_shader_needs_border_fade (op))
429431 {
430432 _cairo_output_stream_printf (stream,
461463 " float is_valid = step (-%s_radius_0, t * %s_circle_d.z);\n",
462464 namestr, namestr, rectstr, namestr, namestr, namestr, namestr,
463465 namestr, namestr, namestr, namestr, namestr);
464 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
466 if ((ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
467 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2) &&
465468 _cairo_gl_shader_needs_border_fade (op))
466469 {
467470 _cairo_output_stream_printf (stream,
506509 " float upper_t = mix (t.y, t.x, is_valid.x);\n",
507510 namestr, namestr, rectstr, namestr, namestr, namestr, namestr,
508511 namestr, namestr, namestr, namestr, namestr, namestr);
509 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2 &&
512 if ((ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
513 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2) &&
510514 _cairo_gl_shader_needs_border_fade (op))
511515 {
512516 _cairo_output_stream_printf (stream,
673677 _cairo_gl_shader_emit_wrap (ctx, stream, src, CAIRO_GL_TEX_SOURCE);
674678 _cairo_gl_shader_emit_wrap (ctx, stream, mask, CAIRO_GL_TEX_MASK);
675679
676 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2) {
680 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3 ||
681 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES2) {
677682 if (_cairo_gl_shader_needs_border_fade (src))
678683 _cairo_gl_shader_emit_border_fade (stream, src, CAIRO_GL_TEX_SOURCE);
679684 if (_cairo_gl_shader_needs_border_fade (mask))
527527 const cairo_compositor_t *
528528 _cairo_gl_span_compositor_get (void)
529529 {
530 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
530531 static cairo_spans_compositor_t spans;
531532 static cairo_compositor_t shape;
532533
533 if (spans.base.delegate == NULL) {
534 if (_cairo_atomic_init_once_enter(&once)) {
534535 /* The fallback to traps here is essentially just for glyphs... */
535536 _cairo_shape_mask_compositor_init (&shape,
536537 _cairo_gl_traps_compositor_get());
546547 //spans.check_span_renderer = check_span_renderer;
547548 spans.renderer_init = _cairo_gl_span_renderer_init;
548549 spans.renderer_fini = _cairo_gl_span_renderer_fini;
550
551 _cairo_atomic_init_once_leave(&once);
549552 }
550553
551554 return &spans.base;
394394 surface->width = width;
395395 surface->height = height;
396396 surface->needs_update = FALSE;
397 surface->content_in_texture = FALSE;
397398
398399 _cairo_gl_surface_embedded_operand_init (surface);
399400 }
432433 _cairo_gl_surface_init (&ctx->base, surface, content, width, height);
433434
434435 surface->supports_msaa = ctx->supports_msaa;
436 surface->num_samples = ctx->num_samples;
435437 surface->supports_stencil = TRUE;
436438
437439 /* Create the texture used to store the surface's data. */
867869 cairo_image_surface_t *clone = NULL;
868870 cairo_gl_context_t *ctx;
869871 int cpp;
872 cairo_image_surface_t *rgba_clone = NULL;
870873 cairo_int_status_t status = CAIRO_INT_STATUS_SUCCESS;
871874
872875 status = _cairo_gl_context_acquire (dst->base.device, &ctx);
873876 if (unlikely (status))
874877 return status;
878
879 if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES3 ||
880 _cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES2) {
881 pixman_format_code_t pixman_format;
882 cairo_surface_pattern_t pattern;
883 cairo_bool_t require_conversion = FALSE;
884 pixman_format = _cairo_is_little_endian () ? PIXMAN_a8b8g8r8 : PIXMAN_r8g8b8a8;
885
886 if (src->base.content != CAIRO_CONTENT_ALPHA) {
887 if (src->pixman_format != pixman_format)
888 require_conversion = TRUE;
889 }
890 else if (dst->base.content != CAIRO_CONTENT_ALPHA) {
891 require_conversion = TRUE;
892 }
893 else if (src->pixman_format != PIXMAN_a8) {
894 pixman_format = PIXMAN_a8;
895 require_conversion = TRUE;
896 }
897
898 if (require_conversion) {
899 rgba_clone = (cairo_image_surface_t *)
900 _cairo_image_surface_create_with_pixman_format (NULL,
901 pixman_format,
902 src->width,
903 src->height,
904 0);
905 if (unlikely (rgba_clone->base.status))
906 goto FAIL;
907
908 _cairo_pattern_init_for_surface (&pattern, &src->base);
909 status = _cairo_surface_paint (&rgba_clone->base,
910 CAIRO_OPERATOR_SOURCE,
911 &pattern.base, NULL);
912 _cairo_pattern_fini (&pattern.base);
913 if (unlikely (status))
914 goto FAIL;
915
916 src = rgba_clone;
917 }
918 }
875919
876920 if (! _cairo_gl_get_image_format_and_type (ctx->gl_flavor,
877921 src->pixman_format,
937981 else
938982 {
939983 glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
940 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP)
984 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP ||
985 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
941986 glPixelStorei (GL_UNPACK_ROW_LENGTH, src->stride / cpp);
987 }
988
989 /* we must resolve the renderbuffer to texture before we
990 upload image */
991 status = _cairo_gl_surface_resolve_multisampling (dst);
992 if (unlikely (status)) {
993 free (data_start_gles2);
994 goto FAIL;
942995 }
943996
944997 _cairo_gl_context_activate (ctx, CAIRO_GL_TEX_TEMP);
9601013 dst_x, dst_y,
9611014 width, height);
9621015 }
1016 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
1017 dst->content_in_texture = TRUE;
9631018 } else {
9641019 cairo_surface_t *tmp;
9651020
9991054 }
10001055
10011056 cairo_surface_destroy (tmp);
1057 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
1058 dst->content_in_texture = TRUE;
10021059 }
10031060
10041061 FAIL:
10061063
10071064 if (clone)
10081065 cairo_surface_destroy (&clone->base);
1066
1067 if (rgba_clone)
1068 cairo_surface_destroy (&rgba_clone->base);
10091069
10101070 return status;
10111071 }
10461106 if (surface->msaa_depth_stencil)
10471107 ctx->dispatch.DeleteRenderbuffers (1, &surface->msaa_depth_stencil);
10481108
1049 #if CAIRO_HAS_GL_SURFACE
1109 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV3_SURFACE
10501110 if (surface->msaa_fb)
10511111 ctx->dispatch.DeleteFramebuffers (1, &surface->msaa_fb);
10521112 if (surface->msaa_rb)
10981158 return NULL;
10991159 }
11001160
1101 if (_cairo_gl_surface_flavor (surface) == CAIRO_GL_FLAVOR_ES2) {
1161 if (_cairo_gl_surface_flavor (surface) == CAIRO_GL_FLAVOR_ES3 ||
1162 _cairo_gl_surface_flavor (surface) == CAIRO_GL_FLAVOR_ES2) {
11021163 /* If only RGBA is supported, we must download data in a compatible
11031164 * format. This means that pixman will convert the data on the CPU when
11041165 * interacting with other image surfaces. For ALPHA, GLES2 does not
11471208 * fall back instead.
11481209 */
11491210 _cairo_gl_composite_flush (ctx);
1150 _cairo_gl_context_set_destination (ctx, surface, FALSE);
1211
1212 if (ctx->gl_flavor != CAIRO_GL_FLAVOR_ES3) {
1213 _cairo_gl_context_set_destination (ctx, surface, FALSE);
1214 } else {
1215 if (surface->content_in_texture) {
1216 _cairo_gl_ensure_framebuffer (ctx, surface);
1217 ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->fb);
1218 } else {
1219 status = _cairo_gl_surface_resolve_multisampling (surface);
1220 if (unlikely (status)) {
1221 status = _cairo_gl_context_release (ctx, status);
1222 cairo_surface_destroy (&image->base);
1223 return _cairo_image_surface_create_in_error (status);
1224 }
1225 }
1226 }
11511227
11521228 flipped = ! _cairo_gl_surface_is_texture (surface);
11531229 mesa_invert = flipped && ctx->has_mesa_pack_invert;
11541230
11551231 glPixelStorei (GL_PACK_ALIGNMENT, 4);
1156 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP)
1232 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP ||
1233 ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
11571234 glPixelStorei (GL_PACK_ROW_LENGTH, image->stride / cpp);
11581235 if (mesa_invert)
11591236 glPixelStorei (GL_PACK_INVERT_MESA, 1);
13201397 /* GLES surfaces do not need explicit resolution. */
13211398 if (((cairo_gl_context_t *) surface->base.device)->gl_flavor == CAIRO_GL_FLAVOR_ES2)
13221399 return CAIRO_INT_STATUS_SUCCESS;
1400 else if (((cairo_gl_context_t *) surface->base.device)->gl_flavor == CAIRO_GL_FLAVOR_ES3 &&
1401 surface->content_in_texture)
1402 return CAIRO_INT_STATUS_SUCCESS;
13231403
13241404 if (! _cairo_gl_surface_is_texture (surface))
13251405 return CAIRO_INT_STATUS_SUCCESS;
13281408 if (unlikely (status))
13291409 return status;
13301410
1411 #if CAIRO_HAS_GLESV3_SURFACE
1412 _cairo_gl_composite_flush (ctx);
1413 ctx->current_target = NULL;
1414 _cairo_gl_context_bind_framebuffer (ctx, surface, FALSE);
1415 if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES3)
1416 surface->content_in_texture = TRUE;
1417
1418 #elif CAIRO_HAS_GL_SURFACE
13311419 ctx->current_target = surface;
1332
1333 #if CAIRO_HAS_GL_SURFACE
13341420 _cairo_gl_context_bind_framebuffer (ctx, surface, FALSE);
1421
1422 #else
1423 ctx->current_target = surface;
1424
13351425 #endif
13361426
13371427 status = _cairo_gl_context_release (ctx, status);
302302 return image->status;
303303 }
304304
305 /* GLES2 only supports RGB/RGBA when uploading */
306 if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES2) {
307 cairo_surface_pattern_t pattern;
308 cairo_surface_t *rgba_image;
309
310 /* XXX perform this fixup inside _cairo_gl_draw_image() */
311
312 rgba_image =
313 _cairo_image_surface_create_with_pixman_format (NULL,
314 _cairo_is_little_endian () ? PIXMAN_a8b8g8r8 : PIXMAN_r8g8b8a8,
315 extents->width,
316 extents->height,
317 0);
318 if (unlikely (rgba_image->status))
319 return rgba_image->status;
320
321 _cairo_pattern_init_for_surface (&pattern, image);
322 status = _cairo_surface_paint (rgba_image, CAIRO_OPERATOR_SOURCE,
323 &pattern.base, NULL);
324 _cairo_pattern_fini (&pattern.base);
325
326 cairo_surface_destroy (image);
327 image = rgba_image;
328
329 if (unlikely (status)) {
330 cairo_surface_destroy (image);
331 return status;
332 }
333 }
334
335305 mask = _cairo_surface_create_scratch (_dst,
336306 CAIRO_CONTENT_COLOR_ALPHA,
337307 extents->width,
529499 const cairo_compositor_t *
530500 _cairo_gl_traps_compositor_get (void)
531501 {
502 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
532503 static cairo_traps_compositor_t compositor;
533504
534 if (compositor.base.delegate == NULL) {
505 if (_cairo_atomic_init_once_enter(&once)) {
535506 _cairo_traps_compositor_init (&compositor, &_cairo_fallback_compositor);
536507 compositor.acquire = acquire;
537508 compositor.release = release;
551522 compositor.composite_tristrip = composite_tristrip;
552523 compositor.check_composite_glyphs = _cairo_gl_check_composite_glyphs;
553524 compositor.composite_glyphs = _cairo_gl_composite_glyphs;
525
526 _cairo_atomic_init_once_leave(&once);
554527 }
555528
556529 return &compositor.base;
6161
6262 #include "cairo.h"
6363
64 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV2_SURFACE
64 #if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV2_SURFACE || CAIRO_HAS_GLESV3_SURFACE
6565
6666 CAIRO_BEGIN_DECLS
6767
4343 #include "cairo-gstate-private.h"
4444 #include "cairo-pattern-private.h"
4545 #include "cairo-traps-private.h"
46
47 #if _XOPEN_SOURCE >= 600 || defined (_ISOC99_SOURCE)
48 #define ISFINITE(x) isfinite (x)
49 #else
50 #define ISFINITE(x) ((x) * (x) >= 0.) /* check for NaNs */
51 #endif
5246
5347 static cairo_status_t
5448 _cairo_gstate_init_copy (cairo_gstate_t *gstate, cairo_gstate_t *other);
12431243 const cairo_compositor_t *
12441244 _cairo_image_traps_compositor_get (void)
12451245 {
1246 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
12461247 static cairo_traps_compositor_t compositor;
12471248
1248 if (compositor.base.delegate == NULL) {
1249 _cairo_traps_compositor_init (&compositor,
1250 &__cairo_no_compositor);
1249 if (_cairo_atomic_init_once_enter(&once)) {
1250 _cairo_traps_compositor_init(&compositor,
1251 &__cairo_no_compositor);
12511252 compositor.acquire = acquire;
12521253 compositor.release = release;
12531254 compositor.set_clip_region = set_clip_region;
12681269 #endif
12691270 compositor.check_composite_glyphs = check_composite_glyphs;
12701271 compositor.composite_glyphs = composite_glyphs;
1272
1273 _cairo_atomic_init_once_leave(&once);
12711274 }
12721275
12731276 return &compositor.base;
12761279 const cairo_compositor_t *
12771280 _cairo_image_mask_compositor_get (void)
12781281 {
1282 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
12791283 static cairo_mask_compositor_t compositor;
12801284
1281 if (compositor.base.delegate == NULL) {
1285 if (_cairo_atomic_init_once_enter(&once)) {
12821286 _cairo_mask_compositor_init (&compositor,
12831287 _cairo_image_traps_compositor_get ());
12841288 compositor.acquire = acquire;
12951299 compositor.composite_boxes = composite_boxes;
12961300 compositor.check_composite_glyphs = check_composite_glyphs;
12971301 compositor.composite_glyphs = composite_glyphs;
1302
1303 _cairo_atomic_init_once_leave(&once);
12981304 }
12991305
13001306 return &compositor.base;
15741580 pixman_image_t *src, *mask;
15751581 union {
15761582 struct fill {
1577 int stride;
1583 ptrdiff_t stride;
15781584 uint8_t *data;
15791585 uint32_t pixel;
15801586 } fill;
15931599 struct finish {
15941600 cairo_rectangle_int_t extents;
15951601 int src_x, src_y;
1596 int stride;
1602 ptrdiff_t stride;
15971603 uint8_t *data;
15981604 } mask;
15991605 } u;
31043110 const cairo_compositor_t *
31053111 _cairo_image_spans_compositor_get (void)
31063112 {
3113 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
31073114 static cairo_spans_compositor_t spans;
31083115 static cairo_compositor_t shape;
31093116
3110 if (spans.base.delegate == NULL) {
3117 if (_cairo_atomic_init_once_enter(&once)) {
31113118 _cairo_shape_mask_compositor_init (&shape,
31123119 _cairo_image_traps_compositor_get());
31133120 shape.glyphs = NULL;
31303137 //spans.check_span_renderer = check_span_renderer;
31313138 spans.renderer_init = span_renderer_init;
31323139 spans.renderer_fini = span_renderer_fini;
3140
3141 _cairo_atomic_init_once_leave(&once);
31333142 }
31343143
31353144 return &spans.base;
3939
4040 #include "cairo-surface-private.h"
4141
42 #include <stddef.h>
4243 #include <pixman.h>
4344
4445 CAIRO_BEGIN_DECLS
7071
7172 int width;
7273 int height;
73 int stride;
74 ptrdiff_t stride;
7475 int depth;
7576
7677 unsigned owns_data : 1;
3838 #include <float.h>
3939
4040 #define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */
41
42 #if _XOPEN_SOURCE >= 600 || defined (_ISOC99_SOURCE)
43 #define ISFINITE(x) isfinite (x)
44 #else
45 #define ISFINITE(x) ((x) * (x) >= 0.) /* check for NaNs */
46 #endif
4741
4842 /**
4943 * SECTION:cairo-matrix
469469 tg += tg >> 16;
470470 tb += tb >> 16;
471471
472 *((uint32_t*) (data + y*stride + 4*x)) = ((ta << 16) & 0xff000000) |
472 *((uint32_t*) (data + y*(ptrdiff_t)stride + 4*x)) = ((ta << 16) & 0xff000000) |
473473 ((tr >> 8) & 0xff0000) | ((tg >> 16) & 0xff00) | (tb >> 24);
474474 }
475475 }
3939
4040 #include "cairoint.h"
4141 #include "cairo-error-private.h"
42
43 #include <stdio.h>
44 #include <errno.h>
4245
4346 COMPILE_TIME_ASSERT ((int)CAIRO_STATUS_LAST_STATUS < (int)CAIRO_INT_STATUS_UNSUPPORTED);
4447 COMPILE_TIME_ASSERT (CAIRO_INT_STATUS_LAST_STATUS <= 127);
770773 # include <locale.h>
771774
772775 const char *
773 cairo_get_locale_decimal_point (void)
776 _cairo_get_locale_decimal_point (void)
774777 {
775778 struct lconv *locale_data = localeconv ();
776779 return locale_data->decimal_point;
779782 #else
780783 /* Android's Bionic libc doesn't provide decimal_point */
781784 const char *
782 cairo_get_locale_decimal_point (void)
785 _cairo_get_locale_decimal_point (void)
783786 {
784787 return ".";
785788 }
786789 #endif
790
791 /* strtod replacement that ignores locale and only accepts decimal points */
792 double
793 _cairo_strtod (const char *nptr, char **endptr)
794 {
795 const char *decimal_point;
796 int decimal_point_len;
797 const char *p;
798 char buf[100];
799 char *bufptr;
800 char *bufend = buf + sizeof(buf) - 1;
801 double value;
802 char *end;
803 int delta;
804 cairo_bool_t have_dp;
805
806 decimal_point = _cairo_get_locale_decimal_point ();
807 decimal_point_len = strlen (decimal_point);
808 assert (decimal_point_len != 0);
809
810 p = nptr;
811 bufptr = buf;
812 delta = 0;
813 have_dp = FALSE;
814 while (*p && _cairo_isspace (*p)) {
815 p++;
816 delta++;
817 }
818
819 while (*p && (bufptr + decimal_point_len < bufend)) {
820 if (_cairo_isdigit (*p)) {
821 *bufptr++ = *p;
822 } else if (*p == '.') {
823 if (have_dp)
824 break;
825 strncpy (bufptr, decimal_point, decimal_point_len);
826 bufptr += decimal_point_len;
827 delta -= decimal_point_len - 1;
828 have_dp = TRUE;
829 } else {
830 break;
831 }
832 p++;
833 }
834 *bufptr = 0;
835
836 value = strtod (buf, &end);
837 if (endptr) {
838 if (end == buf)
839 *endptr = (char*)(nptr);
840 else
841 *endptr = (char*)(nptr + (end - buf) + delta);
842 }
843
844 return value;
845 }
846
847 /**
848 * _cairo_fopen:
849 * @filename: filename to open
850 * @mode: mode string with which to open the file
851 * @file_out: reference to file handle
852 *
853 * Exactly like the C library function, but possibly doing encoding
854 * conversion on the filename. On all platforms, the filename is
855 * passed directly to the system, but on Windows, the filename is
856 * interpreted as UTF-8, rather than in a codepage that would depend
857 * on system settings.
858 *
859 * Return value: CAIRO_STATUS_SUCCESS when the filename was converted
860 * successfully to the native encoding, or the error reported by
861 * _cairo_utf8_to_utf16 otherwise. To check if the file handle could
862 * be obtained, dereference file_out and compare its value against
863 * NULL
864 **/
865 cairo_status_t
866 _cairo_fopen (const char *filename, const char *mode, FILE **file_out)
867 {
868 FILE *result;
869 #ifdef _WIN32 /* also defined on x86_64 */
870 uint16_t *filename_w;
871 uint16_t *mode_w;
872 cairo_status_t status;
873
874 *file_out = NULL;
875
876 if (filename == NULL || mode == NULL) {
877 errno = EINVAL;
878 return CAIRO_STATUS_SUCCESS;
879 }
880
881 if ((status = _cairo_utf8_to_utf16 (filename, -1, &filename_w, NULL)) != CAIRO_STATUS_SUCCESS) {
882 errno = EINVAL;
883 return status;
884 }
885
886 if ((status = _cairo_utf8_to_utf16 (mode, -1, &mode_w, NULL)) != CAIRO_STATUS_SUCCESS) {
887 free (filename_w);
888 errno = EINVAL;
889 return status;
890 }
891
892 result = _wfopen(filename_w, mode_w);
893
894 free (filename_w);
895 free (mode_w);
896
897 #else /* Use fopen directly */
898 result = fopen (filename, mode);
899 #endif
900
901 *file_out = result;
902
903 return CAIRO_STATUS_SUCCESS;
904 }
787905
788906 #ifdef _WIN32
789907
3232 * Kristian Høgsberg <krh@redhat.com>
3333 */
3434
35 #define _BSD_SOURCE /* for snprintf() */
35 #define _DEFAULT_SOURCE /* for snprintf() */
3636 #include "cairoint.h"
3737
3838 #include "cairo-output-stream-private.h"
311311 if (d == 0.0)
312312 d = 0.0;
313313
314 decimal_point = cairo_get_locale_decimal_point ();
314 decimal_point = _cairo_get_locale_decimal_point ();
315315 decimal_point_len = strlen (decimal_point);
316316
317317 assert (decimal_point_len != 0);
489489 single_fmt, va_arg (ap, long int));
490490 }
491491 break;
492 case 's':
493 snprintf (buffer, sizeof buffer,
494 single_fmt, va_arg (ap, const char *));
492 case 's': {
493 /* Write out strings as they may be larger than the buffer. */
494 const char *s = va_arg (ap, const char *);
495 int len = strlen(s);
496 _cairo_output_stream_write (stream, s, len);
497 buffer[0] = 0;
498 }
495499 break;
496500 case 'f':
497501 _cairo_dtostr (buffer, sizeof buffer, va_arg (ap, double), FALSE);
652656 {
653657 stdio_stream_t *stream;
654658 FILE *file;
659 cairo_status_t status;
655660
656661 if (filename == NULL)
657662 return _cairo_null_stream_create ();
658663
659 file = fopen (filename, "wb");
664 status = _cairo_fopen (filename, "wb", &file);
665
666 if (status != CAIRO_STATUS_SUCCESS)
667 return _cairo_output_stream_create_in_error (status);
668
660669 if (file == NULL) {
661670 switch (errno) {
662671 case ENOMEM:
199199 cairo_stroke_style_t style;
200200
201201 /* When calculating extents for vector surfaces, ensure lines thinner
202 * than the fixed point resolution are not optimized away. */
203 double min_line_width = _cairo_fixed_to_double (CAIRO_FIXED_EPSILON*2);
202 * than one point are not optimized away. */
203 double min_line_width = _cairo_matrix_transformed_circle_major_axis (ctm_inverse, 1.0);
204204 if (stroke_style->line_width < min_line_width)
205205 {
206206 style = *stroke_style;
3535 * Chris Wilson <chris@chris-wilson.co.uk>
3636 */
3737
38 #define _BSD_SOURCE /* for hypot() */
38 #define _DEFAULT_SOURCE /* for hypot() */
3939 #include "cairoint.h"
4040
4141 #include "cairo-box-inline.h"
3636 * Chris Wilson <chris@chris-wilson.co.uk>
3737 */
3838
39 #define _BSD_SOURCE /* for hypot() */
39 #define _DEFAULT_SOURCE /* for hypot() */
4040 #include "cairoint.h"
4141
4242 #include "cairo-box-inline.h"
3636 * Chris Wilson <chris@chris-wilson.co.uk>
3737 */
3838
39 #define _BSD_SOURCE /* for hypot() */
39 #define _DEFAULT_SOURCE /* for hypot() */
4040 #include "cairoint.h"
4141
4242 #include "cairo-box-inline.h"
3535 * Chris Wilson <chris@chris-wilson.co.uk>
3636 */
3737
38 #define _BSD_SOURCE /* for hypot() */
38 #define _DEFAULT_SOURCE /* for hypot() */
3939 #include "cairoint.h"
4040
4141 #include "cairo-box-inline.h"
255255 const cairo_rectangle_int_t *extents,
256256 cairo_color_t *color);
257257
258 cairo_private cairo_bool_t
259 _cairo_pattern_is_constant_alpha (const cairo_pattern_t *abstract_pattern,
260 const cairo_rectangle_int_t *extents,
261 double *alpha);
262
258263 cairo_private void
259264 _cairo_gradient_pattern_fit_to_range (const cairo_gradient_pattern_t *gradient,
260265 double max_value,
31333133 return TRUE;
31343134 }
31353135
3136 /**
3137 * _cairo_pattern_is_constant_alpha:
3138 *
3139 * Convenience function to determine whether a pattern has constant
3140 * alpha within the given extents. In this case the alpha argument is
3141 * initialized to the alpha within the extents.
3142 *
3143 * Return value: %TRUE if the pattern has constant alpha.
3144 **/
3145 cairo_bool_t
3146 _cairo_pattern_is_constant_alpha (const cairo_pattern_t *abstract_pattern,
3147 const cairo_rectangle_int_t *extents,
3148 double *alpha)
3149 {
3150 const cairo_pattern_union_t *pattern;
3151 cairo_color_t color;
3152
3153 if (_cairo_pattern_is_clear (abstract_pattern)) {
3154 *alpha = 0.0;
3155 return TRUE;
3156 }
3157
3158 if (_cairo_pattern_is_opaque (abstract_pattern, extents)) {
3159 *alpha = 1.0;
3160 return TRUE;
3161 }
3162
3163 pattern = (cairo_pattern_union_t *) abstract_pattern;
3164 switch (pattern->base.type) {
3165 case CAIRO_PATTERN_TYPE_SOLID:
3166 *alpha = pattern->solid.color.alpha;
3167 return TRUE;
3168
3169 case CAIRO_PATTERN_TYPE_LINEAR:
3170 case CAIRO_PATTERN_TYPE_RADIAL:
3171 if (_cairo_gradient_pattern_is_solid (&pattern->gradient.base, extents, &color)) {
3172 *alpha = color.alpha;
3173 return TRUE;
3174 } else {
3175 return FALSE;
3176 }
3177
3178 /* TODO: need to test these as well */
3179 case CAIRO_PATTERN_TYPE_SURFACE:
3180 case CAIRO_PATTERN_TYPE_RASTER_SOURCE:
3181 case CAIRO_PATTERN_TYPE_MESH:
3182 return FALSE;
3183 }
3184
3185 ASSERT_NOT_REACHED;
3186 return FALSE;
3187 }
3188
31363189 static cairo_bool_t
31373190 _mesh_is_clear (const cairo_mesh_pattern_t *mesh)
31383191 {
4242 * - page labels
4343 */
4444
45 #define _DEFAULT_SOURCE /* for localtime_r(), gmtime_r(), snprintf(), strdup() */
4546 #include "cairoint.h"
4647
4748 #include "cairo-pdf.h"
5051 #include "cairo-array-private.h"
5152 #include "cairo-error-private.h"
5253 #include "cairo-output-stream-private.h"
54
55 #include <time.h>
56
57 #ifndef HAVE_LOCALTIME_R
58 #define localtime_r(T, BUF) (*(BUF) = *localtime (T))
59 #endif
60 #ifndef HAVE_GMTIME_R
61 #define gmtime_r(T, BUF) (*(BUF) = *gmtime (T))
62 #endif
5363
5464 static void
5565 write_rect_to_pdf_quad_points (cairo_output_stream_t *stream,
101111 node->parent = parent;
102112 cairo_list_init (&node->children);
103113 _cairo_array_init (&node->mcid, sizeof(struct page_mcid));
104 memset (&node->annot, 0, sizeof(node->annot));
105 cairo_list_init (&node->children);
114 node->annot_res.id = 0;
115 node->extents.valid = FALSE;
116 cairo_list_init (&node->extents.link);
106117
107118 cairo_list_add_tail (&node->link, &parent->children);
108119
153164 mcid_elem.mcid = _cairo_array_num_elements (&ic->mcid_to_tree) - 1;
154165 *mcid = mcid_elem.mcid;
155166 return _cairo_array_append (&node->mcid, &mcid_elem);
167 }
168
169 static cairo_int_status_t
170 add_annotation (cairo_pdf_surface_t *surface,
171 cairo_pdf_struct_tree_node_t *node,
172 const char *name,
173 const char *attributes)
174 {
175 cairo_int_status_t status = CAIRO_STATUS_SUCCESS;
176 cairo_pdf_interchange_t *ic = &surface->interchange;
177 cairo_pdf_annotation_t *annot;
178
179 annot = malloc (sizeof(cairo_pdf_annotation_t));
180 if (unlikely (annot == NULL))
181 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
182
183 status = _cairo_tag_parse_link_attributes (attributes, &annot->link_attrs);
184 if (unlikely (status)) {
185 free (annot);
186 return status;
187 }
188
189 annot->node = node;
190
191 status = _cairo_array_append (&ic->annots, &annot);
192
193 return status;
194 }
195
196 static void
197 free_annotation (cairo_pdf_annotation_t *annot)
198 {
199 _cairo_array_fini (&annot->link_attrs.rects);
200 free (annot->link_attrs.dest);
201 free (annot->link_attrs.uri);
202 free (annot->link_attrs.file);
203 free (annot);
204 }
205
206 static void
207 cairo_pdf_interchange_clear_annotations (cairo_pdf_surface_t *surface)
208 {
209 cairo_pdf_interchange_t *ic = &surface->interchange;
210 int num_elems, i;
211
212 num_elems = _cairo_array_num_elements (&ic->annots);
213 for (i = 0; i < num_elems; i++) {
214 cairo_pdf_annotation_t * annot;
215
216 _cairo_array_copy_element (&ic->annots, i, &annot);
217 free_annotation (annot);
218 }
219 _cairo_array_truncate (&ic->annots, 0);
156220 }
157221
158222 static cairo_int_status_t
175239 node->parent->res.id);
176240
177241 if (! cairo_list_is_empty (&node->children)) {
178 if (cairo_list_is_singular (&node->children)) {
242 if (cairo_list_is_singular (&node->children) && node->annot_res.id == 0) {
179243 child = cairo_list_first_entry (&node->children, cairo_pdf_struct_tree_node_t, link);
180244 _cairo_output_stream_printf (surface->output, " /K %d 0 R\n", child->res.id);
181245 } else {
182246 _cairo_output_stream_printf (surface->output, " /K [ ");
183
247 if (node->annot_res.id != 0) {
248 _cairo_output_stream_printf (surface->output,
249 "<< /Type /OBJR /Obj %d 0 R >> ",
250 node->annot_res.id);
251 }
184252 cairo_list_foreach_entry (child, cairo_pdf_struct_tree_node_t,
185253 &node->children, link)
186254 {
196264 page_res = _cairo_array_index (&surface->pages, first_page - 1);
197265 _cairo_output_stream_printf (surface->output, " /Pg %d 0 R\n", page_res->id);
198266
199 if (num_mcid == 1 && node->annot.res.id == 0) {
267 if (num_mcid == 1 && node->annot_res.id == 0) {
200268 _cairo_output_stream_printf (surface->output, " /K %d\n", mcid_elem->mcid);
201269 } else {
202270 _cairo_output_stream_printf (surface->output, " /K [ ");
203 if (node->annot.res.id != 0) {
271 if (node->annot_res.id != 0) {
204272 _cairo_output_stream_printf (surface->output,
205 "%d 0 R ",
206 node->annot.res.id);
273 "<< /Type /OBJR /Obj %d 0 R >> ",
274 node->annot_res.id);
207275 }
208276 for (i = 0; i < num_mcid; i++) {
209277 mcid_elem = _cairo_array_index (&node->mcid, i);
404472 }
405473
406474 static cairo_int_status_t
407 cairo_pdf_interchange_write_annot (cairo_pdf_surface_t *surface,
408 cairo_pdf_struct_tree_node_t *node)
409 {
410 cairo_pdf_resource_t res;
475 cairo_pdf_interchange_write_annot (cairo_pdf_surface_t *surface,
476 cairo_pdf_annotation_t *annot)
477 {
411478 cairo_int_status_t status = CAIRO_STATUS_SUCCESS;
412479 cairo_pdf_interchange_t *ic = &surface->interchange;
480 cairo_pdf_struct_tree_node_t *node = annot->node;
413481 int sp;
414482 int i, num_rects;
415483 double height;
416484
417 num_rects = _cairo_array_num_elements (&node->annot.link_attrs.rects);
485 num_rects = _cairo_array_num_elements (&annot->link_attrs.rects);
418486 if (strcmp (node->name, CAIRO_TAG_LINK) == 0 &&
419 node->annot.link_attrs.link_type != TAG_LINK_EMPTY &&
420 (node->annot.extents.valid || num_rects > 0))
487 annot->link_attrs.link_type != TAG_LINK_EMPTY &&
488 (node->extents.valid || num_rects > 0))
421489 {
422 res = _cairo_pdf_surface_new_object (surface);
423
424 status = _cairo_array_append (&ic->parent_tree, &res);
490 status = _cairo_array_append (&ic->parent_tree, &node->res);
425491 if (unlikely (status))
426492 return status;
427493
428494 sp = _cairo_array_num_elements (&ic->parent_tree) - 1;
429495
430 status = _cairo_array_append (&surface->page_annots, &res);
496 node->annot_res = _cairo_pdf_surface_new_object (surface);
497
498 status = _cairo_array_append (&surface->page_annots, &node->annot_res);
431499 if (unlikely (status))
432500 return status;
433501
434 _cairo_pdf_surface_update_object (surface, res);
502 _cairo_pdf_surface_update_object (surface, node->annot_res);
435503 _cairo_output_stream_printf (surface->output,
436504 "%d 0 obj\n"
437505 "<< /Type /Annot\n"
438506 " /Subtype /Link\n"
439507 " /StructParent %d\n",
440 res.id,
508 node->annot_res.id,
441509 sp);
442510
443 _cairo_array_copy_element (&surface->page_heights, node->annot.src_page - 1, &height);
511 height = surface->height;
444512 if (num_rects > 0) {
445513 cairo_rectangle_int_t bbox_rect;
446514
450518 cairo_rectangle_t rectf;
451519 cairo_rectangle_int_t recti;
452520
453 _cairo_array_copy_element (&node->annot.link_attrs.rects, i, &rectf);
521 _cairo_array_copy_element (&annot->link_attrs.rects, i, &rectf);
454522 _cairo_rectangle_int_from_double (&recti, &rectf);
455523 if (i == 0)
456524 bbox_rect = recti;
468536 } else {
469537 _cairo_output_stream_printf (surface->output,
470538 " /Rect [ ");
471 write_rect_int_to_pdf_bbox (surface->output, &node->annot.extents.extents, height);
539 write_rect_int_to_pdf_bbox (surface->output, &node->extents.extents, height);
472540 _cairo_output_stream_printf (surface->output, " ]\n");
473541 }
474542
475 status = cairo_pdf_interchange_write_link_action (surface, &node->annot.link_attrs);
543 status = cairo_pdf_interchange_write_link_action (surface, &annot->link_attrs);
476544 if (unlikely (status))
477545 return status;
478546
532600 _cairo_output_stream_printf (surface->output,
533601 "%d 0 obj\n"
534602 "<< /Type /StructTreeRoot\n"
535 " /ParentTree %d 0 R\n"
536 " /K [ %d 0 R ]\n"
603 " /ParentTree %d 0 R\n",
604 surface->struct_tree_root.id,
605 ic->parent_tree_res.id);
606
607 if (cairo_list_is_singular (&ic->struct_root->children)) {
608 child = cairo_list_first_entry (&ic->struct_root->children, cairo_pdf_struct_tree_node_t, link);
609 _cairo_output_stream_printf (surface->output, " /K [ %d 0 R ]\n", child->res.id);
610 } else {
611 _cairo_output_stream_printf (surface->output, " /K [ ");
612
613 cairo_list_foreach_entry (child, cairo_pdf_struct_tree_node_t,
614 &ic->struct_root->children, link)
615 {
616 _cairo_output_stream_printf (surface->output, "%d 0 R ", child->res.id);
617 }
618 _cairo_output_stream_printf (surface->output, "]\n");
619 }
620
621 _cairo_output_stream_printf (surface->output,
537622 ">>\n"
538 "endobj\n",
539 surface->struct_tree_root.id,
540 ic->parent_tree_res.id,
541 child->res.id);
623 "endobj\n");
542624
543625 return CAIRO_STATUS_SUCCESS;
544626 }
547629 cairo_pdf_interchange_write_page_annots (cairo_pdf_surface_t *surface)
548630 {
549631 cairo_pdf_interchange_t *ic = &surface->interchange;
550
551 _cairo_array_truncate (&surface->page_annots, 0);
552 ic->annot_page = _cairo_array_num_elements (&surface->pages);
553
554 cairo_pdf_interchange_walk_struct_tree (surface, ic->struct_root, cairo_pdf_interchange_write_annot);
555
556 return CAIRO_STATUS_SUCCESS;
632 int num_elems, i;
633 cairo_int_status_t status = CAIRO_STATUS_SUCCESS;
634
635 num_elems = _cairo_array_num_elements (&ic->annots);
636 for (i = 0; i < num_elems; i++) {
637 cairo_pdf_annotation_t * annot;
638
639 _cairo_array_copy_element (&ic->annots, i, &annot);
640 status = cairo_pdf_interchange_write_annot (surface, annot);
641 if (unlikely (status))
642 return status;
643 }
644
645 return status;
557646 }
558647
559648 static cairo_int_status_t
651740 for (i = 1; i < num_elems; i++) {
652741 _cairo_array_copy_element (&ic->outline, i, &outline);
653742 _cairo_pdf_surface_update_object (surface, outline->res);
743
654744 status = _cairo_utf8_to_pdf_string (outline->name, &name);
655745 if (unlikely (status))
656746 return status;
662752 outline->res.id,
663753 name,
664754 outline->parent->res.id);
755 free (name);
665756
666757 if (outline->prev) {
667758 _cairo_output_stream_printf (surface->output,
10051096 _cairo_tag_stack_set_top_data (&ic->analysis_tag_stack, ic->current_node);
10061097
10071098 if (tag_type & TAG_TYPE_LINK) {
1008 status = _cairo_tag_parse_link_attributes (attributes, &ic->current_node->annot.link_attrs);
1099 status = add_annotation (surface, ic->current_node, name, attributes);
10091100 if (unlikely (status))
10101101 return status;
10111102
1012 ic->current_node->annot.src_page = _cairo_array_num_elements (&surface->pages);;
1013 cairo_list_add_tail (&ic->current_node->annot.extents.link, &ic->extents_list);
1103 cairo_list_add_tail (&ic->current_node->extents.link, &ic->extents_list);
10141104 }
10151105
10161106 } else if (surface->paginated_mode == CAIRO_PAGINATED_MODE_RENDER) {
11181208 if (tag_type & TAG_TYPE_LINK) {
11191209 cairo_list_foreach_entry_safe (tag, next, struct tag_extents,
11201210 &ic->extents_list, link) {
1121 if (tag == &node->annot.extents) {
1211 if (tag == &node->extents) {
11221212 cairo_list_del (&tag->link);
11231213 break;
11241214 }
12691359 if (unlikely (status))
12701360 return status;
12711361
1362 cairo_pdf_interchange_clear_annotations (surface);
1363
12721364 return cairo_pdf_interchange_write_page_parent_elems (surface);
12731365 }
12741366
13091401 status = cairo_pdf_interchange_write_docinfo (surface);
13101402
13111403 return status;
1404 }
1405
1406 static void
1407 _cairo_pdf_interchange_set_create_date (cairo_pdf_surface_t *surface)
1408 {
1409 time_t utc, local, offset;
1410 struct tm tm_local, tm_utc;
1411 char buf[50];
1412 int buf_size;
1413 char *p;
1414 cairo_pdf_interchange_t *ic = &surface->interchange;
1415
1416 utc = time (NULL);
1417 localtime_r (&utc, &tm_local);
1418 strftime (buf, sizeof(buf), "(D:%Y%m%d%H%M%S", &tm_local);
1419
1420 /* strftime "%z" is non standard and does not work on windows (it prints zone name, not offset).
1421 * Calculate time zone offset by comparing local and utc time_t values for the same time.
1422 */
1423 gmtime_r (&utc, &tm_utc);
1424 tm_utc.tm_isdst = tm_local.tm_isdst;
1425 local = mktime (&tm_utc);
1426 offset = difftime (utc, local);
1427
1428 if (offset == 0) {
1429 strcat (buf, "Z");
1430 } else {
1431 if (offset > 0) {
1432 strcat (buf, "+");
1433 } else {
1434 strcat (buf, "-");
1435 offset = -offset;
1436 }
1437 p = buf + strlen (buf);
1438 buf_size = sizeof (buf) - strlen (buf);
1439 snprintf (p, buf_size, "%02d'%02d", (int)(offset/3600), (int)(offset%3600)/60);
1440 }
1441 strcat (buf, ")");
1442 ic->docinfo.create_date = strdup (buf);
13121443 }
13131444
13141445 cairo_int_status_t
13321463 ic->end_page_node = NULL;
13331464 _cairo_array_init (&ic->parent_tree, sizeof(cairo_pdf_resource_t));
13341465 _cairo_array_init (&ic->mcid_to_tree, sizeof(cairo_pdf_struct_tree_node_t *));
1466 _cairo_array_init (&ic->annots, sizeof(cairo_pdf_annotation_t *));
13351467 ic->parent_tree_res.id = 0;
13361468 cairo_list_init (&ic->extents_list);
13371469 ic->named_dests = _cairo_hash_table_create (_named_dest_equal);
13481480 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
13491481
13501482 memset (&ic->docinfo, 0, sizeof (ic->docinfo));
1483 _cairo_pdf_interchange_set_create_date (surface);
13511484 status = _cairo_array_append (&ic->outline, &outline_root);
13521485
13531486 return status;
1487 }
1488
1489 static void
1490 _cairo_pdf_interchange_free_outlines (cairo_pdf_surface_t *surface)
1491 {
1492 cairo_pdf_interchange_t *ic = &surface->interchange;
1493 int num_elems, i;
1494
1495 num_elems = _cairo_array_num_elements (&ic->outline);
1496 for (i = 0; i < num_elems; i++) {
1497 cairo_pdf_outline_entry_t *outline;
1498
1499 _cairo_array_copy_element (&ic->outline, i, &outline);
1500 free (outline->name);
1501 free (outline->link_attrs.dest);
1502 free (outline->link_attrs.uri);
1503 free (outline->link_attrs.file);
1504 free (outline);
1505 }
1506 _cairo_array_fini (&ic->outline);
13541507 }
13551508
13561509 cairo_int_status_t
13571510 _cairo_pdf_interchange_fini (cairo_pdf_surface_t *surface)
13581511 {
13591512 cairo_pdf_interchange_t *ic = &surface->interchange;
1360 unsigned i;
13611513
13621514 _cairo_tag_stack_fini (&ic->analysis_tag_stack);
13631515 _cairo_tag_stack_fini (&ic->render_tag_stack);
13641516 _cairo_array_fini (&ic->push_data);
13651517 free_node (ic->struct_root);
13661518 _cairo_array_fini (&ic->mcid_to_tree);
1519 cairo_pdf_interchange_clear_annotations (surface);
1520 _cairo_array_fini (&ic->annots);
13671521 _cairo_array_fini (&ic->parent_tree);
13681522 _cairo_hash_table_foreach (ic->named_dests, _named_dest_pluck, ic->named_dests);
13691523 _cairo_hash_table_destroy (ic->named_dests);
13701524 free (ic->sorted_dests);
1371
1372 for (i = 0; i < _cairo_array_num_elements (&ic->outline); i++) {
1373 cairo_pdf_outline_entry_t *outline;
1374
1375 _cairo_array_copy_element (&ic->outline, i, &outline);
1376 free (outline);
1377 }
1378 _cairo_array_fini (&ic->outline);
1525 _cairo_pdf_interchange_free_outlines (surface);
13791526 free (ic->docinfo.title);
13801527 free (ic->docinfo.author);
13811528 free (ic->docinfo.subject);
7575 cairo_bool_t interpolate;
7676 cairo_bool_t stencil_mask;
7777 cairo_bool_t smask;
78 cairo_bool_t need_transp_group;
7879 cairo_pdf_resource_t surface_res;
7980 cairo_pdf_resource_t smask_res;
8081
81 /* Extents of the source surface. If bounded is false,
82 * extents is the ink extents. */
82 /* True if surface will be emitted as an Image XObject. */
83 cairo_bool_t emit_image;
84
85 /* Extents of the source surface. */
8386 cairo_bool_t bounded;
8487 cairo_rectangle_int_t extents;
8588
86 /* Union of source extents requried for all operations using this source */
89 /* Union of source extents required for all operations using this source */
8790 cairo_rectangle_int_t required_extents;
8891 } cairo_pdf_source_surface_entry_t;
8992
174177 struct _cairo_pdf_struct_tree_node *parent;
175178 cairo_list_t children;
176179 cairo_array_t mcid; /* array of struct page_mcid */
177 struct {
178 struct tag_extents extents;
179 cairo_pdf_resource_t res;
180 cairo_link_attrs_t link_attrs;
181 int src_page; /* page number containing the link */
182 } annot;
180 cairo_pdf_resource_t annot_res; /* 0 if no annot */
181 struct tag_extents extents;
183182 cairo_list_t link;
184183 } cairo_pdf_struct_tree_node_t;
184
185 typedef struct _cairo_pdf_annotation {
186 cairo_pdf_struct_tree_node_t *node; /* node containing the annotation */
187 cairo_link_attrs_t link_attrs;
188 } cairo_pdf_annotation_t;
185189
186190 typedef struct _cairo_pdf_named_dest {
187191 cairo_hash_entry_t base;
224228 cairo_pdf_struct_tree_node_t *end_page_node;
225229 cairo_array_t parent_tree; /* parent tree resources */
226230 cairo_array_t mcid_to_tree; /* mcid to tree node mapping for current page */
231 cairo_array_t annots; /* array of pointers to cairo_pdf_annotation_t */
227232 cairo_pdf_resource_t parent_tree_res;
228233 cairo_list_t extents_list;
229234 cairo_hash_table_t *named_dests;
260265 cairo_array_t alpha_linear_functions;
261266 cairo_array_t page_patterns;
262267 cairo_array_t page_surfaces;
268 cairo_array_t doc_surfaces;
263269 cairo_hash_table_t *all_surfaces;
264270 cairo_array_t smask_groups;
265271 cairo_array_t knockout_group;
3838 * Adrian Johnson <ajohnson@redneon.com>
3939 */
4040
41 #define _BSD_SOURCE /* for snprintf() */
41 #define _DEFAULT_SOURCE /* for snprintf() */
4242 #include "cairoint.h"
4343
4444 #include "cairo-pdf.h"
6262 #include "cairo-surface-subsurface-private.h"
6363 #include "cairo-type3-glyph-surface-private.h"
6464
65 #include <time.h>
6665 #include <zlib.h>
67
68 /* Issues:
69 *
70 * - We embed an image in the stream each time it's composited. We
71 * could add generation counters to surfaces and remember the stream
72 * ID for a particular generation for a particular surface.
73 *
74 * - Backend specific meta data.
75 */
7666
7767 /*
7868 * Page Structure of the Generated PDF:
133123 * The following mime types are supported: %CAIRO_MIME_TYPE_JPEG,
134124 * %CAIRO_MIME_TYPE_JP2, %CAIRO_MIME_TYPE_UNIQUE_ID,
135125 * %CAIRO_MIME_TYPE_JBIG2, %CAIRO_MIME_TYPE_JBIG2_GLOBAL,
136 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID.
126 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID,
127 * %CAIRO_MIME_TYPE_CCITT_FAX, %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS.
137128 *
129 * # JBIG2 Images #
138130 * JBIG2 data in PDF must be in the embedded format as described in
139131 * ISO/IEC 11544. Image specific JBIG2 data must be in
140132 * %CAIRO_MIME_TYPE_JBIG2. Any global segments in the JBIG2 data
141133 * (segments with page association field set to 0) must be in
142134 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data may be shared by
143135 * multiple images. All images sharing the same global data must set
144 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID to a unique identifer. At least
136 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID to a unique identifier. At least
145137 * one of the images must provide the global data using
146138 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data will only be
147 * embedded once but shared by all JBIG2 images with the same
139 * embedded once and shared by all JBIG2 images with the same
148140 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID.
141 *
142 * # CCITT Fax Images # {#ccitt}
143 * The %CAIRO_MIME_TYPE_CCITT_FAX mime data requires a number of decoding
144 * parameters These parameters are specified using %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS.
145 *
146 * %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime data must contain a string of the form
147 * "param1=value1 param2=value2 ...".
148 *
149 * @Columns: [required] An integer specifying the width of the image in pixels.
150 *
151 * @Rows: [required] An integer specifying the height of the image in scan lines.
152 *
153 * @K: [optional] An integer identifying the encoding scheme used. < 0
154 * is 2 dimensional Group 4, = 0 is Group3 1 dimensional, > 0 is mixed 1
155 * and 2 dimensional encoding. Default is 0.
156 *
157 * @EndOfLine: [optional] If true end-of-line bit patterns are present. Default is false.
158 *
159 * @EncodedByteAlign: [optional] If true the end of line is padded
160 * with 0 bits so the next line begins on a byte boundary. Default is false.
161 *
162 * @EndOfBlock: [optional] If true the data contains an end-of-block pattern. Default is true.
163 *
164 * @BlackIs1: [optional] If true 1 bits are black pixels. Default is false.
165 *
166 * @DamagedRowsBeforeError: [optional] An integer specifying the
167 * number of damages rows tolerated before an error occurs. Default is 0.
168 *
169 * Boolean values may be "true" or "false", or 1 or 0.
170 *
171 * These parameters are the same as the CCITTFaxDecode parameters in the
172 * [PostScript Language Reference](https://www.adobe.com/products/postscript/pdfs/PLRM.pdf)
173 * and [Portable Document Format (PDF)](https://www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf).
174 * Refer to these documents for further details.
175 *
176 * An example %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS string is:
177 *
178 * <programlisting>
179 * "Columns=10230 Rows=40000 K=1 EndOfLine=true EncodedByteAlign=1 BlackIs1=false"
180 * </programlisting>
181 *
149182 **/
150183
151184 static cairo_bool_t
183216 CAIRO_MIME_TYPE_JBIG2,
184217 CAIRO_MIME_TYPE_JBIG2_GLOBAL,
185218 CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID,
219 CAIRO_MIME_TYPE_CCITT_FAX,
220 CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
186221 NULL
187222 };
188223
232267 _cairo_pdf_surface_close_stream (cairo_pdf_surface_t *surface);
233268
234269 static cairo_int_status_t
270 _cairo_pdf_surface_emit_surface (cairo_pdf_surface_t *surface,
271 cairo_pdf_source_surface_t *source,
272 cairo_bool_t test,
273 cairo_bool_t *is_image);
274
275 static cairo_int_status_t
235276 _cairo_pdf_surface_write_page (cairo_pdf_surface_t *surface);
236277
237278 static void
242283
243284 static long
244285 _cairo_pdf_surface_write_xref (cairo_pdf_surface_t *surface);
286
287 static cairo_int_status_t
288 _cairo_pdf_surface_write_patterns_and_smask_groups (cairo_pdf_surface_t *surface,
289 cairo_bool_t finish);
245290
246291 static cairo_int_status_t
247292 _cairo_pdf_surface_write_page (cairo_pdf_surface_t *surface);
385430
386431 _cairo_array_init (&surface->page_patterns, sizeof (cairo_pdf_pattern_t));
387432 _cairo_array_init (&surface->page_surfaces, sizeof (cairo_pdf_source_surface_t));
433 _cairo_array_init (&surface->doc_surfaces, sizeof (cairo_pdf_source_surface_t));
388434 _cairo_array_init (&surface->jbig2_global, sizeof (cairo_pdf_jbig2_global_t));
389435 _cairo_array_init (&surface->page_heights, sizeof (double));
390436 surface->all_surfaces = _cairo_hash_table_create (_cairo_pdf_source_surface_equal);
456502 surface->thumbnail_width = 0;
457503 surface->thumbnail_height = 0;
458504 surface->thumbnail_image = NULL;
505
506 if (getenv ("CAIRO_DEBUG_PDF") != NULL)
507 surface->compress_content = FALSE;
459508
460509 surface->paginated_surface = _cairo_paginated_surface_create (
461510 &surface->base,
13571406 }
13581407
13591408 static cairo_int_status_t
1360 _get_jbig2_image_info (cairo_surface_t *source,
1361 cairo_image_info_t *info,
1362 const unsigned char **mime_data,
1363 unsigned long *mime_data_length)
1364 {
1365 cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JBIG2,
1366 mime_data, mime_data_length);
1367 if (*mime_data == NULL)
1368 return CAIRO_INT_STATUS_UNSUPPORTED;
1369
1370 return _cairo_image_info_get_jbig2_info (info, *mime_data, *mime_data_length);
1371 }
1372
1373 static cairo_int_status_t
1374 _get_jpx_image_info (cairo_surface_t *source,
1375 cairo_image_info_t *info,
1376 const unsigned char **mime_data,
1377 unsigned long *mime_data_length)
1378 {
1379 cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JP2,
1380 mime_data, mime_data_length);
1381 if (*mime_data == NULL)
1382 return CAIRO_INT_STATUS_UNSUPPORTED;
1383
1384 return _cairo_image_info_get_jpx_info (info, *mime_data, *mime_data_length);
1385 }
1386
1387 static cairo_int_status_t
1388 _get_jpeg_image_info (cairo_surface_t *source,
1389 cairo_image_info_t *info,
1390 const unsigned char **mime_data,
1391 unsigned long *mime_data_length)
1392 {
1393 cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JPEG,
1394 mime_data, mime_data_length);
1395 if (*mime_data == NULL)
1396 return CAIRO_INT_STATUS_UNSUPPORTED;
1397
1398 return _cairo_image_info_get_jpeg_info (info, *mime_data, *mime_data_length);
1399 }
1400
1401 static cairo_int_status_t
14021409 _get_source_surface_extents (cairo_surface_t *source,
14031410 cairo_rectangle_int_t *extents,
14041411 cairo_bool_t *bounded,
14051412 cairo_bool_t *subsurface)
14061413 {
14071414 cairo_int_status_t status;
1408 cairo_image_info_t info;
1409 const unsigned char *mime_data;
1410 unsigned long mime_data_length;
14111415
14121416 *bounded = TRUE;
14131417 *subsurface = FALSE;
14251429 } else {
14261430 cairo_box_t box;
14271431
1428 if (! _cairo_surface_get_extents (source, extents)) {
1429 status = _cairo_recording_surface_get_ink_bbox ((cairo_recording_surface_t *)source,
1430 &box, NULL);
1431 if (unlikely (status)) {
1432 cairo_surface_destroy (free_me);
1433 return status;
1434 }
1435 _cairo_box_round_to_rectangle (&box, extents);
1432 *bounded = _cairo_surface_get_extents (source, extents);
1433 if (! *bounded) {
1434 status = _cairo_recording_surface_get_ink_bbox ((cairo_recording_surface_t *)source,
1435 &box, NULL);
1436 if (unlikely (status)) {
1437 cairo_surface_destroy (free_me);
1438 return status;
1439 }
1440 _cairo_box_round_to_rectangle (&box, extents);
14361441 }
14371442 }
14381443 cairo_surface_destroy (free_me);
1439
1440 return CAIRO_STATUS_SUCCESS;
1441 }
1442
1443 extents->x = 0;
1444 extents->y = 0;
1445
1446 status = _get_jbig2_image_info (source, &info, &mime_data, &mime_data_length);
1447 if (status != CAIRO_INT_STATUS_UNSUPPORTED) {
1448 extents->width = info.width;
1449 extents->height = info.height;
1450 return status;
1451 }
1452
1453 status = _get_jpx_image_info (source, &info, &mime_data, &mime_data_length);
1454 if (status != CAIRO_INT_STATUS_UNSUPPORTED) {
1455 extents->width = info.width;
1456 extents->height = info.height;
1457 return status;
1458 }
1459
1460 status = _get_jpeg_image_info (source, &info, &mime_data, &mime_data_length);
1461 if (status != CAIRO_INT_STATUS_UNSUPPORTED) {
1462 extents->width = info.width;
1463 extents->height = info.height;
1464 return status;
1465 }
1466
1467 if (! _cairo_surface_get_extents (source, extents))
1468 return CAIRO_INT_STATUS_UNSUPPORTED;
1444 } else {
1445 *bounded = _cairo_surface_get_extents (source, extents);
1446 }
14691447
14701448 return CAIRO_STATUS_SUCCESS;
14711449 }
14791457 * @filter: [in] filter type of the source pattern
14801458 * @stencil_mask: [in] if true, the surface will be written to the PDF as an /ImageMask
14811459 * @smask: [in] if true, only the alpha channel will be written (images only)
1460 * @need_transp_group: [in] if true and an XObject is used, make it a Transparency group
14821461 * @extents: [in] extents of the operation that is using this source
14831462 * @smask_res: [in] if not NULL, the image written will specify this resource as the smask for
14841463 * the image (images only)
15051484 cairo_filter_t filter,
15061485 cairo_bool_t stencil_mask,
15071486 cairo_bool_t smask,
1487 cairo_bool_t need_transp_group,
15081488 const cairo_rectangle_int_t *extents,
15091489 cairo_pdf_resource_t *smask_res,
15101490 cairo_pdf_source_surface_entry_t **pdf_source,
16231603 surface_entry->interpolate = interpolate;
16241604 surface_entry->stencil_mask = stencil_mask;
16251605 surface_entry->smask = smask;
1606 surface_entry->need_transp_group = need_transp_group;
16261607 surface_entry->unique_id_length = unique_id_length;
16271608 surface_entry->unique_id = unique_id;
16281609 if (smask_res)
16701651 goto fail3;
16711652 }
16721653
1673 status = _cairo_array_append (&surface->page_surfaces, &src_surface);
1654 /* Test if surface will be emitted as image or recording */
1655 status = _cairo_pdf_surface_emit_surface (surface, &src_surface, TRUE, &surface_entry->emit_image);
16741656 if (unlikely (status))
16751657 goto fail3;
1658
1659 if (surface_entry->bounded) {
1660 status = _cairo_array_append (&surface->page_surfaces, &src_surface);
1661 if (unlikely (status))
1662 goto fail3;
1663 } else {
1664 status = _cairo_array_append (&surface->doc_surfaces, &src_surface);
1665 if (unlikely (status))
1666 goto fail3;
1667 }
16761668
16771669 status = _cairo_hash_table_insert (surface->all_surfaces,
16781670 &surface_entry->base);
17811773 return CAIRO_INT_STATUS_SUCCESS;
17821774 }
17831775
1784 /* Get BBox in PDF coordinates from extents in cairo coordinates */
1776 /* Get BBox from extents */
17851777 static void
1786 _get_bbox_from_extents (double surface_height,
1787 const cairo_rectangle_int_t *extents,
1788 cairo_box_double_t *bbox)
1778 _get_bbox_from_extents (const cairo_rectangle_int_t *extents,
1779 cairo_box_double_t *bbox)
17891780 {
17901781 bbox->p1.x = extents->x;
17911782 bbox->p1.y = extents->y;
22192210 cairo_pdf_jbig2_global_t *global;
22202211 char *label;
22212212
2213 _cairo_pdf_surface_clear (surface);
2214
2215 /* Emit unbounded surfaces */
2216 _cairo_pdf_surface_write_patterns_and_smask_groups (surface, TRUE);
2217
22222218 status = surface->base.status;
22232219 if (status == CAIRO_STATUS_SUCCESS)
22242220 status = _cairo_pdf_surface_emit_font_subsets (surface);
22832279 if (status == CAIRO_STATUS_SUCCESS)
22842280 status = status2;
22852281
2286 _cairo_pdf_surface_clear (surface);
22872282 _cairo_pdf_group_resources_fini (&surface->resources);
22882283
22892284 _cairo_array_fini (&surface->objects);
22922287 _cairo_array_fini (&surface->alpha_linear_functions);
22932288 _cairo_array_fini (&surface->page_patterns);
22942289 _cairo_array_fini (&surface->page_surfaces);
2290 _cairo_array_fini (&surface->doc_surfaces);
22952291 _cairo_hash_table_foreach (surface->all_surfaces,
22962292 _cairo_pdf_source_surface_entry_pluck,
22972293 surface->all_surfaces);
23222318 free (label);
23232319 }
23242320 _cairo_array_fini (&surface->page_labels);
2325
2326 _cairo_array_truncate (&surface->page_surfaces, 0);
23272321
23282322 _cairo_surface_clipper_reset (&surface->clipper);
23292323
24902484 source->filter,
24912485 FALSE, /* stencil mask */
24922486 FALSE, /* smask */
2487 FALSE, /* need_transp_group */
24932488 extents,
24942489 NULL, /* smask_res */
24952490 pdf_source,
29052900 static cairo_int_status_t
29062901 _cairo_pdf_surface_emit_jbig2_image (cairo_pdf_surface_t *surface,
29072902 cairo_surface_t *source,
2908 cairo_pdf_source_surface_entry_t *surface_entry)
2903 cairo_pdf_source_surface_entry_t *surface_entry,
2904 cairo_bool_t test)
29092905 {
29102906 cairo_int_status_t status;
29112907 const unsigned char *mime_data;
29272923 status = _cairo_image_info_get_jbig2_info (&info, mime_data, mime_data_length);
29282924 if (status)
29292925 return status;
2926
2927 /* At this point we know emitting jbig2 will succeed. */
2928 if (test)
2929 return CAIRO_STATUS_SUCCESS;
29302930
29312931 cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID,
29322932 &global_id, &global_id_length);
30133013 static cairo_int_status_t
30143014 _cairo_pdf_surface_emit_jpx_image (cairo_pdf_surface_t *surface,
30153015 cairo_surface_t *source,
3016 cairo_pdf_source_surface_entry_t *surface_entry)
3016 cairo_pdf_source_surface_entry_t *surface_entry,
3017 cairo_bool_t test)
30173018 {
30183019 cairo_int_status_t status;
30193020 const unsigned char *mime_data;
30433044 snprintf(smask_buf, sizeof(smask_buf), " /SMask %d 0 R\n", surface_entry->smask_res.id);
30443045 else
30453046 smask_buf[0] = 0;
3047
3048 /* At this point we know emitting jpx will succeed. */
3049 if (test)
3050 return CAIRO_STATUS_SUCCESS;
30463051
30473052 if (surface_entry->stencil_mask) {
30483053 status = _cairo_pdf_surface_open_stream (surface,
30883093 static cairo_int_status_t
30893094 _cairo_pdf_surface_emit_jpeg_image (cairo_pdf_surface_t *surface,
30903095 cairo_surface_t *source,
3091 cairo_pdf_source_surface_entry_t *surface_entry)
3096 cairo_pdf_source_surface_entry_t *surface_entry,
3097 cairo_bool_t test)
30923098 {
30933099 cairo_int_status_t status;
30943100 const unsigned char *mime_data;
31273133 default:
31283134 return CAIRO_INT_STATUS_UNSUPPORTED;
31293135 }
3136
3137 /* At this point we know emitting jpeg will succeed. */
3138 if (test)
3139 return CAIRO_STATUS_SUCCESS;
31303140
31313141 if (surface_entry->smask_res.id)
31323142 snprintf(smask_buf, sizeof(smask_buf), " /SMask %d 0 R\n", surface_entry->smask_res.id);
31813191 }
31823192
31833193 static cairo_int_status_t
3184 _cairo_pdf_surface_emit_image_surface (cairo_pdf_surface_t *surface,
3185 cairo_pdf_source_surface_t *source)
3186 {
3187 cairo_image_surface_t *image;
3188 void *image_extra;
3189 cairo_int_status_t status;
3190
3191 if (source->type == CAIRO_PATTERN_TYPE_SURFACE) {
3192 status = _cairo_pdf_surface_emit_jbig2_image (surface, source->surface, source->hash_entry);
3193 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
3194 return status;
3195
3196 status = _cairo_pdf_surface_emit_jpx_image (surface, source->surface, source->hash_entry);
3197 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
3198 return status;
3199
3200 status = _cairo_pdf_surface_emit_jpeg_image (surface, source->surface, source->hash_entry);
3201 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
3202 return status;
3203 }
3204
3205 if (source->type == CAIRO_PATTERN_TYPE_SURFACE) {
3206 status = _cairo_surface_acquire_source_image (source->surface, &image, &image_extra);
3194 _cairo_pdf_surface_emit_ccitt_image (cairo_pdf_surface_t *surface,
3195 cairo_surface_t *source,
3196 cairo_pdf_source_surface_entry_t *surface_entry,
3197 cairo_bool_t test)
3198 {
3199 cairo_status_t status;
3200 const unsigned char *ccitt_data;
3201 unsigned long ccitt_data_len;
3202 const unsigned char *ccitt_params_string;
3203 unsigned long ccitt_params_string_len;
3204 char *params, *p, *end;
3205 cairo_ccitt_params_t ccitt_params;
3206 char buf[300];
3207
3208 cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_CCITT_FAX,
3209 &ccitt_data, &ccitt_data_len);
3210 if (unlikely (source->status))
3211 return source->status;
3212 if (ccitt_data == NULL)
3213 return CAIRO_INT_STATUS_UNSUPPORTED;
3214
3215 cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
3216 &ccitt_params_string, &ccitt_params_string_len);
3217 if (unlikely (source->status))
3218 return source->status;
3219 if (ccitt_params_string == NULL)
3220 return CAIRO_INT_STATUS_UNSUPPORTED;
3221
3222 /* ensure params_string is null terminated */
3223 params = malloc (ccitt_params_string_len + 1);
3224 memcpy (params, ccitt_params_string, ccitt_params_string_len);
3225 params[ccitt_params_string_len] = 0;
3226 status = _cairo_tag_parse_ccitt_params (params, &ccitt_params);
3227 if (unlikely(status))
3228 return source->status;
3229
3230 free (params);
3231
3232 /* At this point we know emitting jbig2 will succeed. */
3233 if (test)
3234 return CAIRO_STATUS_SUCCESS;
3235
3236 p = buf;
3237 *p = 0;
3238 end = buf + sizeof(buf) - 1;
3239 p += snprintf (p, end - p, "/Columns %d /Rows %d /K %d",
3240 ccitt_params.columns,
3241 ccitt_params.rows,
3242 ccitt_params.k);
3243 if (ccitt_params.end_of_line)
3244 p += snprintf (p, end - p, " /EndOfLine true");
3245
3246 if (ccitt_params.encoded_byte_align)
3247 p += snprintf (p, end - p, " /EncodedByteAlign true");
3248
3249 if (!ccitt_params.end_of_block)
3250 p += snprintf (p, end - p, " /EndOfBlock false");
3251
3252 if (ccitt_params.black_is_1)
3253 p += snprintf (p, end - p, " /BlackIs1 true");
3254
3255 if (ccitt_params.damaged_rows_before_error > 0) {
3256 p += snprintf (p, end - p, " /DamagedRowsBeforeError %d",
3257 ccitt_params.damaged_rows_before_error);
3258 }
3259
3260 if (surface_entry->stencil_mask) {
3261 status = _cairo_pdf_surface_open_stream (surface,
3262 &surface_entry->surface_res,
3263 FALSE,
3264 " /Type /XObject\n"
3265 " /Subtype /Image\n"
3266 " /ImageMask true\n"
3267 " /Width %d\n"
3268 " /Height %d\n"
3269 " /Interpolate %s\n"
3270 " /BitsPerComponent 1\n"
3271 " /Decode [1 0]\n"
3272 " /Filter /CCITTFaxDecode\n"
3273 " /DecodeParms << %s >> ",
3274 ccitt_params.columns,
3275 ccitt_params.rows,
3276 surface_entry->interpolate ? "true" : "false",
3277 buf);
32073278 } else {
3208 status = _cairo_pdf_surface_acquire_source_image_from_pattern (surface, source->raster_pattern,
3209 &image, &image_extra);
3210 }
3211 if (unlikely (status))
3212 return status;
3213
3214 status = _cairo_pdf_surface_emit_image (surface,
3215 image,
3216 source->hash_entry);
3217
3218 if (source->type == CAIRO_PATTERN_TYPE_SURFACE)
3219 _cairo_surface_release_source_image (source->surface, image, image_extra);
3220 else
3221 _cairo_pdf_surface_release_source_image_from_pattern (surface, source->raster_pattern,
3222 image, image_extra);
3279 status = _cairo_pdf_surface_open_stream (surface,
3280 &surface_entry->surface_res,
3281 FALSE,
3282 " /Type /XObject\n"
3283 " /Subtype /Image\n"
3284 " /Width %d\n"
3285 " /Height %d\n"
3286 " /ColorSpace /DeviceGray\n"
3287 " /BitsPerComponent 1\n"
3288 " /Interpolate %s\n"
3289 " /Filter /CCITTFaxDecode\n"
3290 " /DecodeParms << %s >> ",
3291 ccitt_params.columns,
3292 ccitt_params.rows,
3293 surface_entry->interpolate ? "true" : "false",
3294 buf);
3295 }
3296 if (unlikely (status))
3297 return status;
3298
3299 _cairo_output_stream_write (surface->output, ccitt_data, ccitt_data_len);
3300 status = _cairo_pdf_surface_close_stream (surface);
32233301
32243302 return status;
32253303 }
32283306 _cairo_pdf_surface_emit_recording_surface (cairo_pdf_surface_t *surface,
32293307 cairo_pdf_source_surface_t *pdf_source)
32303308 {
3231 double old_width, old_height;
32323309 cairo_rectangle_int_t old_surface_extents;
32333310 cairo_bool_t old_surface_bounded;
32343311 cairo_paginated_mode_t old_paginated_mode;
32403317 cairo_surface_t *free_me = NULL;
32413318 cairo_surface_t *source;
32423319 const cairo_rectangle_int_t *extents;
3243 int width;
3244 int height;
32453320 cairo_bool_t is_subsurface;
32463321 cairo_bool_t transparency_group;
32473322 cairo_recording_surface_t *recording;
32483323
32493324 assert (pdf_source->type == CAIRO_PATTERN_TYPE_SURFACE);
3250 extents = &pdf_source->hash_entry->required_extents;
3251 width = pdf_source->hash_entry->extents.width;
3252 height = pdf_source->hash_entry->extents.height;
3325
3326 if (pdf_source->hash_entry->bounded) {
3327 extents = &pdf_source->hash_entry->extents;
3328 } else {
3329 extents = &pdf_source->hash_entry->required_extents;
3330 }
3331
32533332 is_subsurface = FALSE;
32543333 source = pdf_source->surface;
32553334 if (_cairo_surface_is_snapshot (source))
32603339
32613340 source = sub->target;
32623341 extents = &sub->extents;
3263 width = extents->width;
3264 height = extents->height;
32653342 is_subsurface = TRUE;
32663343 }
32673344
32683345 assert (source->type == CAIRO_SURFACE_TYPE_RECORDING);
32693346 recording = (cairo_recording_surface_t *) source;
32703347
3271 old_width = surface->width;
3272 old_height = surface->height;
32733348 old_in_xobject = surface->in_xobject;
32743349 old_surface_extents = surface->surface_extents;
32753350 old_surface_bounded = surface->surface_bounded;
32823357 _cairo_pdf_operators_reset (&surface->pdf_operators);
32833358 surface->in_xobject = TRUE;
32843359 surface->surface_extents = *extents;
3285 surface->surface_bounded = FALSE;
3360 surface->surface_bounded = TRUE;
32863361
32873362 /* Patterns are emitted after fallback images. The paginated mode
32883363 * needs to be set to _RENDER while the recording surface is replayed
32903365 */
32913366 surface->paginated_mode = CAIRO_PAGINATED_MODE_RENDER;
32923367 _cairo_pdf_group_resources_clear (&surface->resources);
3293 if (is_subsurface) {
3294 bbox.p1.x = extents->x;
3295 bbox.p1.y = extents->y;
3296 bbox.p2.x = extents->x + extents->width;
3297 bbox.p2.y = extents->y + extents->height;
3298 } else {
3299 _get_bbox_from_extents (height, extents, &bbox);
3300 }
3368 _get_bbox_from_extents (extents, &bbox);
33013369
33023370 /* We can optimize away the transparency group allowing the viewer
3303 * to replay the group in place when all operators are OVER and the
3304 * recording contains only opaque and/or clear alpha.
3371 * to replay the group in place when:
3372 * - ca/CA when painting this groups is 1.0 (need_transp_group is FALSE),
3373 * - all operators are OVER, and
3374 * - the recording contains only opaque and/or clear alpha.
33053375 */
3306 transparency_group = !(pdf_source->hash_entry->operator == CAIRO_OPERATOR_OVER &&
3376 transparency_group = pdf_source->hash_entry->need_transp_group ||
3377 !(pdf_source->hash_entry->operator == CAIRO_OPERATOR_OVER &&
33073378 _cairo_recording_surface_has_only_bilevel_alpha (recording) &&
33083379 _cairo_recording_surface_has_only_op_over (recording));
3309 status = _cairo_pdf_surface_open_content_stream (surface, &bbox, &pdf_source->hash_entry->surface_res,
3310 TRUE, transparency_group);
3380
3381 status = _cairo_pdf_surface_open_content_stream (surface,
3382 &bbox,
3383 &pdf_source->hash_entry->surface_res,
3384 TRUE,
3385 transparency_group);
33113386 if (unlikely (status))
33123387 goto err;
33133388
33173392 goto err;
33183393
33193394 _cairo_output_stream_printf (surface->output,
3320 "q /a%d gs 0 0 0 rg 0 0 %f %f re f Q\n",
3395 "q /a%d gs 0 0 0 rg %d %d %d %d re f Q\n",
33213396 alpha,
3322 surface->width,
3323 surface->height);
3397 extents->x,
3398 extents->y,
3399 extents->width,
3400 extents->height);
33243401 }
33253402
33263403 status = _cairo_recording_surface_replay_region (source,
33463423 return status;
33473424 }
33483425
3426 /**
3427 * _cairo_pdf_surface_emit_surface:
3428 * @surface: [in] the pdf surface
3429 * @source: [in] #cairo_pdf_source_surface_t containing the surface to write
3430 * @test: [in] if true, test what type of surface will be emitted.
3431 * @is_image: [out] if @test is true, returns TRUE if the surface will be emitted
3432 * as an Image XObject.
3433 *
3434 * If @test is FALSE, emit @src_surface as an XObject.
3435 * If @test is TRUE, don't emit anything. Set @is_image based on the output that would be emitted.
3436 **/
33493437 static cairo_int_status_t
33503438 _cairo_pdf_surface_emit_surface (cairo_pdf_surface_t *surface,
3351 cairo_pdf_source_surface_t *src_surface)
3352 {
3353 if (src_surface->type == CAIRO_PATTERN_TYPE_SURFACE &&
3354 src_surface->surface->type == CAIRO_SURFACE_TYPE_RECORDING)
3355 return _cairo_pdf_surface_emit_recording_surface (surface, src_surface);
3356
3357 return _cairo_pdf_surface_emit_image_surface (surface, src_surface);
3439 cairo_pdf_source_surface_t *source,
3440 cairo_bool_t test,
3441 cairo_bool_t *is_image)
3442 {
3443 cairo_image_surface_t *image;
3444 void *image_extra;
3445 cairo_int_status_t status;
3446
3447 /* Try all the supported mime types and recording type, falling through
3448 * each option if unsupported */
3449 if (source->type == CAIRO_PATTERN_TYPE_SURFACE) {
3450 status = _cairo_pdf_surface_emit_jbig2_image (surface,
3451 source->surface,
3452 source->hash_entry,
3453 test);
3454 if (status != CAIRO_INT_STATUS_UNSUPPORTED) {
3455 *is_image = TRUE;
3456 return status;
3457 }
3458
3459 status = _cairo_pdf_surface_emit_jpx_image (surface,
3460 source->surface,
3461 source->hash_entry,
3462 test);
3463 if (status != CAIRO_INT_STATUS_UNSUPPORTED) {
3464 *is_image = TRUE;
3465 return status;
3466 }
3467
3468 status = _cairo_pdf_surface_emit_jpeg_image (surface,
3469 source->surface,
3470 source->hash_entry,
3471 test);
3472 if (status != CAIRO_INT_STATUS_UNSUPPORTED) {
3473 *is_image = TRUE;
3474 return status;
3475 }
3476
3477 status = _cairo_pdf_surface_emit_ccitt_image (surface,
3478 source->surface,
3479 source->hash_entry,
3480 test);
3481 if (status != CAIRO_INT_STATUS_UNSUPPORTED) {
3482 *is_image = TRUE;
3483 return status;
3484 }
3485
3486 if (source->surface->type == CAIRO_SURFACE_TYPE_RECORDING) {
3487 if (test) {
3488 *is_image = FALSE;
3489 return CAIRO_INT_STATUS_SUCCESS;
3490 } else {
3491 return _cairo_pdf_surface_emit_recording_surface (surface, source);
3492 }
3493 }
3494 }
3495
3496 /* The only option left is to emit as an image surface */
3497
3498 if (source->type == CAIRO_PATTERN_TYPE_SURFACE) {
3499 status = _cairo_surface_acquire_source_image (source->surface, &image, &image_extra);
3500 } else {
3501 status = _cairo_pdf_surface_acquire_source_image_from_pattern (surface,
3502 source->raster_pattern,
3503 &image,
3504 &image_extra);
3505 }
3506 if (unlikely (status))
3507 return status;
3508
3509 if (test) {
3510 *is_image = TRUE;
3511 } else {
3512 status = _cairo_pdf_surface_emit_image (surface,
3513 image,
3514 source->hash_entry);
3515 }
3516
3517 if (source->type == CAIRO_PATTERN_TYPE_SURFACE) {
3518 _cairo_surface_release_source_image (source->surface, image, image_extra);
3519 } else {
3520 _cairo_pdf_surface_release_source_image_from_pattern (surface,
3521 source->raster_pattern,
3522 image,
3523 image_extra);
3524 }
3525
3526 return status;
33583527 }
33593528
33603529 static cairo_int_status_t
33933562 pattern->filter,
33943563 FALSE, /* stencil mask */
33953564 FALSE, /* smask */
3565 FALSE, /* need_transp_group */
33963566 &pdf_pattern->extents,
33973567 NULL, /* smask_res */
33983568 &pdf_source,
35003670
35013671 cairo_matrix_multiply (&pdf_p2d, &cairo_p2d, &mat);
35023672 cairo_matrix_translate (&pdf_p2d, x_offset, y_offset);
3503 if (((cairo_surface_pattern_t *)pattern)->surface->type != CAIRO_SURFACE_TYPE_RECORDING)
3504 {
3673 if (pdf_source->emit_image) {
35053674 cairo_matrix_translate (&pdf_p2d, 0.0, pdf_source->extents.height);
35063675 cairo_matrix_scale (&pdf_p2d, 1.0, -1.0);
35073676 }
35083677
3509 _get_bbox_from_extents (pattern_extents.height, &pattern_extents, &bbox);
3678 _get_bbox_from_extents (&pattern_extents, &bbox);
35103679 _cairo_pdf_surface_update_object (surface, pdf_pattern->pattern_res);
35113680 status = _cairo_pdf_surface_open_stream (surface,
35123681 &pdf_pattern->pattern_res,
35293698 if (unlikely (status))
35303699 return status;
35313700
3532 if (((cairo_surface_pattern_t *) pattern)->surface->type == CAIRO_SURFACE_TYPE_RECORDING) {
3533 snprintf(draw_surface,
3534 sizeof (draw_surface),
3535 "/x%d Do",
3536 pdf_source->surface_res.id);
3537 } else {
3701 if (pdf_source->emit_image) {
35383702 snprintf(draw_surface,
35393703 sizeof (draw_surface),
35403704 "q %d 0 0 %d 0 0 cm /x%d Do Q",
35413705 pdf_source->extents.width,
35423706 pdf_source->extents.height,
3707 pdf_source->surface_res.id);
3708 } else {
3709 snprintf(draw_surface,
3710 sizeof (draw_surface),
3711 "/x%d Do",
35433712 pdf_source->surface_res.id);
35443713 }
35453714
40364205 * coordinates. The color and alpha shading patterns painted
40374206 * in the XObject below contain the cairo pattern to pdf page
40384207 * matrix in the /Matrix entry of the pattern. */
4039 _get_bbox_from_extents (pdf_pattern->height, &pdf_pattern->extents, &box);
4208 _get_bbox_from_extents (&pdf_pattern->extents, &box);
40404209 x1 = box.p1.x;
40414210 y1 = box.p1.y;
40424211 x2 = box.p2.x;
45344703 cairo_operator_t op,
45354704 const cairo_pattern_t *source,
45364705 const cairo_rectangle_int_t *extents,
4706 double alpha,
45374707 cairo_pdf_resource_t *smask_res,
45384708 cairo_bool_t stencil_mask)
45394709 {
45404710 cairo_matrix_t cairo_p2d, pdf_p2d;
45414711 cairo_int_status_t status;
4542 int alpha;
4712 int alpha_id;
45434713 double x_offset;
45444714 double y_offset;
45454715 cairo_pdf_source_surface_entry_t *pdf_source;
45634733 source->filter,
45644734 stencil_mask,
45654735 FALSE, /* smask */
4736 alpha != 1.0, /* need_transp_group */
45664737 extents,
45674738 smask_res,
45684739 &pdf_source,
45814752 pdf_p2d = surface->cairo_to_pdf;
45824753 cairo_matrix_multiply (&pdf_p2d, &cairo_p2d, &pdf_p2d);
45834754 cairo_matrix_translate (&pdf_p2d, x_offset, y_offset);
4584 if (!(source->type == CAIRO_PATTERN_TYPE_SURFACE &&
4585 ((cairo_surface_pattern_t *)source)->surface->type == CAIRO_SURFACE_TYPE_RECORDING))
4586 {
4587 cairo_matrix_translate (&pdf_p2d, 0.0, pdf_source->extents.height);
4755 if (pdf_source->emit_image) {
4756 int width, height;
4757
4758 if (pdf_source->bounded) {
4759 width = pdf_source->extents.width;
4760 height = pdf_source->extents.height;
4761 } else {
4762 /* We can't scale an image to an unbounded surface size so just set the size to 1 */
4763 width = 1;
4764 height = 1;
4765 }
4766
4767 cairo_matrix_translate (&pdf_p2d, 0.0, height);
45884768 cairo_matrix_scale (&pdf_p2d, 1.0, -1.0);
4589 cairo_matrix_scale (&pdf_p2d, pdf_source->extents.width, pdf_source->extents.height);
4769 cairo_matrix_scale (&pdf_p2d, width, height);
45904770 }
45914771
45924772 status = _cairo_pdf_operators_flush (&surface->pdf_operators);
45984778 _cairo_output_stream_printf (surface->output, " cm\n");
45994779 }
46004780
4601 status = _cairo_pdf_surface_add_alpha (surface, 1.0, &alpha);
4781 status = _cairo_pdf_surface_add_alpha (surface, alpha, &alpha_id);
46024782 if (unlikely (status))
46034783 return status;
46044784
46094789 } else {
46104790 _cairo_output_stream_printf (surface->output,
46114791 "/a%d gs /x%d Do\n",
4612 alpha,
4792 alpha_id,
46134793 pdf_source->surface_res.id);
46144794 }
46154795
46204800 _cairo_pdf_surface_paint_gradient (cairo_pdf_surface_t *surface,
46214801 cairo_operator_t op,
46224802 const cairo_pattern_t *source,
4623 const cairo_rectangle_int_t *extents)
4803 const cairo_rectangle_int_t *extents,
4804 double alpha)
46244805 {
46254806 cairo_pdf_resource_t shading_res, gstate_res;
46264807 cairo_matrix_t pat_to_pdf;
46274808 cairo_int_status_t status;
4628 int alpha;
4809 int alpha_id;
46294810
46304811 status = _cairo_pdf_surface_add_pdf_shading (surface, source,
46314812 op, extents,
46644845 gstate_res.id,
46654846 shading_res.id);
46664847 } else {
4667 status = _cairo_pdf_surface_add_alpha (surface, 1.0, &alpha);
4848 status = _cairo_pdf_surface_add_alpha (surface, alpha, &alpha_id);
46684849 if (unlikely (status))
46694850 return status;
46704851
46714852 _cairo_output_stream_printf (surface->output,
46724853 "/a%d gs /sh%d sh\n",
4673 alpha,
4854 alpha_id,
46744855 shading_res.id);
46754856 }
46764857
46824863 cairo_operator_t op,
46834864 const cairo_pattern_t *source,
46844865 const cairo_rectangle_int_t *extents,
4866 double alpha,
46854867 cairo_bool_t mask)
46864868 {
46874869 switch (source->type) {
46914873 op,
46924874 source,
46934875 extents,
4876 alpha,
46944877 NULL,
46954878 mask);
46964879 case CAIRO_PATTERN_TYPE_LINEAR:
46994882 return _cairo_pdf_surface_paint_gradient (surface,
47004883 op,
47014884 source,
4702 extents);
4885 extents,
4886 alpha);
47034887
47044888 case CAIRO_PATTERN_TYPE_SOLID:
47054889 default:
63376521 cairo_box_double_t bbox;
63386522
63396523 /* Create mask group */
6340 _get_bbox_from_extents (group->height, &group->extents, &bbox);
6524 _get_bbox_from_extents (&group->extents, &bbox);
63416525 status = _cairo_pdf_surface_open_group (surface, &bbox, NULL);
63426526 if (unlikely (status))
63436527 return status;
63486532 CAIRO_OPERATOR_OVER,
63496533 group->mask,
63506534 &group->extents,
6351 FALSE);
6535 1.0, /* alpha */
6536 FALSE); /* mask */
63526537 if (unlikely (status))
63536538 return status;
63546539
64246609 CAIRO_OPERATOR_OVER,
64256610 group->source,
64266611 &group->extents,
6427 FALSE);
6612 1.0, /* alpha */
6613 FALSE); /* mask */
64286614 if (unlikely (status))
64296615 return status;
64306616
65456731 goto RESTORE_SIZE;
65466732 }
65476733
6548 _get_bbox_from_extents (group->height, &group->extents, &bbox);
6734 _get_bbox_from_extents (&group->extents, &bbox);
65496735 status = _cairo_pdf_surface_open_group (surface, &bbox, &group->group_res);
65506736 if (unlikely (status))
65516737 return status;
66086794 }
66096795
66106796 static cairo_int_status_t
6611 _cairo_pdf_surface_write_patterns_and_smask_groups (cairo_pdf_surface_t *surface)
6797 _cairo_pdf_surface_write_patterns_and_smask_groups (cairo_pdf_surface_t *surface,
6798 cairo_bool_t finish)
66126799 {
66136800 cairo_pdf_pattern_t pattern;
66146801 cairo_pdf_smask_group_t *group;
66156802 cairo_pdf_source_surface_t src_surface;
6616 unsigned int pattern_index, group_index, surface_index;
6803 unsigned int pattern_index, group_index, surface_index, doc_surface_index;
66176804 cairo_int_status_t status;
6805 cairo_bool_t is_image;
66186806
66196807 /* Writing out PDF_MASK groups will cause additional smask groups
66206808 * to be appended to surface->smask_groups. Additional patterns
66266814 pattern_index = 0;
66276815 group_index = 0;
66286816 surface_index = 0;
6817 doc_surface_index = 0;
66296818 while ((pattern_index < _cairo_array_num_elements (&surface->page_patterns)) ||
66306819 (group_index < _cairo_array_num_elements (&surface->smask_groups)) ||
6631 (surface_index < _cairo_array_num_elements (&surface->page_surfaces)))
6820 (surface_index < _cairo_array_num_elements (&surface->page_surfaces)) ||
6821 (finish && (doc_surface_index < _cairo_array_num_elements (&surface->doc_surfaces))))
66326822 {
66336823 for (; group_index < _cairo_array_num_elements (&surface->smask_groups); group_index++) {
66346824 _cairo_array_copy_element (&surface->smask_groups, group_index, &group);
66466836
66476837 for (; surface_index < _cairo_array_num_elements (&surface->page_surfaces); surface_index++) {
66486838 _cairo_array_copy_element (&surface->page_surfaces, surface_index, &src_surface);
6649 status = _cairo_pdf_surface_emit_surface (surface, &src_surface);
6839 status = _cairo_pdf_surface_emit_surface (surface, &src_surface, FALSE, &is_image);
66506840 if (unlikely (status))
66516841 return status;
6842 }
6843
6844 if (finish) {
6845 for (; doc_surface_index < _cairo_array_num_elements (&surface->doc_surfaces); doc_surface_index++) {
6846 _cairo_array_copy_element (&surface->doc_surfaces, doc_surface_index, &src_surface);
6847 status = _cairo_pdf_surface_emit_surface (surface, &src_surface, FALSE, &is_image);
6848 if (unlikely (status))
6849 return status;
6850 }
66526851 }
66536852 }
66546853
66766875 extents.y = 0;
66776876 extents.width = ceil (surface->width);
66786877 extents.height = ceil (surface->height);
6679 _get_bbox_from_extents (surface->height, &extents, &bbox);
6878 _get_bbox_from_extents (&extents, &bbox);
66806879 status = _cairo_pdf_surface_open_knockout_group (surface, &bbox);
66816880 if (unlikely (status))
66826881 return status;
67346933 _cairo_pdf_surface_update_object (surface, *page);
67356934 _cairo_output_stream_printf (surface->output,
67366935 "%d 0 obj\n"
6737 "<< /Type /Page\n"
6936 "<< /Type /Page %% %d\n"
67386937 " /Parent %d 0 R\n"
67396938 " /MediaBox [ 0 0 %f %f ]\n"
67406939 " /Contents %d 0 R\n"
67466945 " >>\n"
67476946 " /Resources %d 0 R\n",
67486947 page->id,
6948 page_num,
67496949 surface->pages_resource.id,
67506950 surface->width,
67516951 surface->height,
67816981 ">>\n"
67826982 "endobj\n");
67836983
6784 status = _cairo_pdf_surface_write_patterns_and_smask_groups (surface);
6984 status = _cairo_pdf_surface_write_patterns_and_smask_groups (surface, FALSE);
67856985 if (unlikely (status))
67866986 return status;
67876987
67906990
67916991 static cairo_int_status_t
67926992 _cairo_pdf_surface_analyze_surface_pattern_transparency (cairo_pdf_surface_t *surface,
6793 cairo_surface_pattern_t *pattern)
6993 cairo_surface_pattern_t *pattern)
67946994 {
67956995 cairo_image_surface_t *image;
67966996 void *image_extra;
71747374 source->filter,
71757375 FALSE, /* stencil mask */
71767376 TRUE, /* smask */
7377 FALSE, /* need_transp_group */
71777378 extents,
71787379 NULL, /* smask_res */
71797380 &pdf_source,
71907391
71917392 _cairo_output_stream_printf (surface->output, "q\n");
71927393 status = _cairo_pdf_surface_paint_surface_pattern (surface, op, source, extents,
7394 1.0, /* alpha */
71937395 need_smask ? &pdf_source->surface_res : NULL,
71947396 FALSE);
71957397 if (unlikely (status))
72537455 return status;
72547456
72557457 _cairo_output_stream_printf (surface->output, "q\n");
7256 status = _cairo_pdf_surface_paint_surface_pattern (surface, op, mask, extents, NULL, TRUE);
7458 status = _cairo_pdf_surface_paint_surface_pattern (surface, op, mask, extents, 1.0, NULL, TRUE);
72577459 if (unlikely (status))
72587460 return status;
72597461
73367538 op,
73377539 source,
73387540 &extents.bounded,
7339 FALSE);
7541 1.0, /* alpha */
7542 FALSE); /* mask */
73407543 if (unlikely (status))
73417544 goto cleanup;
73427545
74247627 cairo_int_status_t status;
74257628 cairo_rectangle_int_t r;
74267629 cairo_box_t box;
7630 double alpha;
74277631
74287632 status = _cairo_composite_rectangles_init_for_mask (&extents,
74297633 &surface->base,
75037707 status = _cairo_pdf_surface_emit_stencil_mask (surface, op, source, mask, &extents.bounded);
75047708 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
75057709 goto cleanup;
7710
7711 /* Check if we can set ca/CA instead of an smask. We could handle
7712 * other source patterns as well but for now this is the easiest,
7713 * and most common, case to handle. */
7714 if (_cairo_pattern_is_constant_alpha (mask, &extents.bounded, &alpha) &&
7715 _can_paint_pattern (source)) {
7716 _cairo_output_stream_printf (surface->output, "q\n");
7717 status = _cairo_pdf_surface_paint_pattern (surface,
7718 op,
7719 source,
7720 &extents.bounded,
7721 alpha,
7722 FALSE); /* mask */
7723 if (unlikely (status))
7724 goto cleanup;
7725
7726 _cairo_output_stream_printf (surface->output, "Q\n");
7727 _cairo_composite_rectangles_fini (&extents);
7728 return _cairo_output_stream_get_status (surface->output);
7729 }
75067730
75077731 group = _cairo_pdf_surface_create_smask_group (surface, &extents.bounded);
75087732 if (unlikely (group == NULL)) {
77818005 op,
77828006 source,
77838007 &extents.bounded,
7784 FALSE);
8008 1.0, /* alpha */
8009 FALSE); /* mask */
77858010 if (unlikely (status))
77868011 goto cleanup;
77878012
157157 */
158158 }
159159
160 static int
161 png_setjmp (png_struct *png)
162 {
163 #ifdef PNG_SETJMP_SUPPORTED
164 return setjmp (png_jmpbuf (png));
165 #endif
166 return 0;
167 }
160168
161169 /* Starting with libpng-1.2.30, we must explicitly specify an output_flush_fn.
162170 * Otherwise, we will segfault if we are writing to a stream. */
228236 goto BAIL4;
229237 }
230238
231 #ifdef PNG_SETJMP_SUPPORTED
232 if (setjmp (png_jmpbuf (png)))
239 if (png_setjmp (png))
233240 goto BAIL4;
234 #endif
235241
236242 png_set_write_fn (png, closure, write_func, png_simple_output_flush_fn);
237243
338344 /**
339345 * cairo_surface_write_to_png:
340346 * @surface: a #cairo_surface_t with pixel contents
341 * @filename: the name of a file to write to
347 * @filename: the name of a file to write to; on Windows this filename
348 * is encoded in UTF-8.
342349 *
343350 * Writes the contents of @surface to a new file @filename as a PNG
344351 * image.
366373 if (surface->finished)
367374 return _cairo_error (CAIRO_STATUS_SURFACE_FINISHED);
368375
369 fp = fopen (filename, "wb");
376 status = _cairo_fopen (filename, "wb", &fp);
377
378 if (status != CAIRO_STATUS_SUCCESS)
379 return _cairo_error (status);
380
370381 if (fp == NULL) {
371382 switch (errno) {
372383 case ENOMEM:
572583 png_set_read_fn (png, png_closure, stream_read_func);
573584
574585 status = CAIRO_STATUS_SUCCESS;
575 #ifdef PNG_SETJMP_SUPPORTED
576 if (setjmp (png_jmpbuf (png))) {
586
587 if (png_setjmp (png)) {
577588 surface = _cairo_surface_create_in_error (status);
578589 goto BAIL;
579590 }
580 #endif
581591
582592 png_read_info (png, info);
583593
672682 }
673683
674684 for (i = 0; i < png_height; i++)
675 row_pointers[i] = &data[i * stride];
685 row_pointers[i] = &data[i * (ptrdiff_t)stride];
676686
677687 png_read_image (png, row_pointers);
678688 png_read_end (png, info);
732742
733743 /**
734744 * cairo_image_surface_create_from_png:
735 * @filename: name of PNG file to load
745 * @filename: name of PNG file to load. On Windows this filename
746 * is encoded in UTF-8.
736747 *
737748 * Creates a new image surface and initializes the contents to the
738749 * given PNG file.
758769 {
759770 struct png_read_closure_t png_closure;
760771 cairo_surface_t *surface;
761
762 png_closure.closure = fopen (filename, "rb");
772 cairo_status_t status;
773
774 status = _cairo_fopen (filename, "rb", (FILE **) &png_closure.closure);
775
776 if (status != CAIRO_STATUS_SUCCESS)
777 return _cairo_surface_create_in_error (status);
778
763779 if (png_closure.closure == NULL) {
764 cairo_status_t status;
765780 switch (errno) {
766781 case ENOMEM:
767782 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
4848
4949 #include <time.h>
5050
51 typedef struct _cairo_ps_form {
52 cairo_hash_entry_t base;
53 unsigned char *unique_id;
54 unsigned long unique_id_length;
55 cairo_bool_t is_image;
56 int id;
57 cairo_surface_t *src_surface;
58 cairo_filter_t filter;
59
60 /* Union of source extents required for all operations using this form */
61 cairo_rectangle_int_t required_extents;
62 } cairo_ps_form_t;
63
5164 typedef struct cairo_ps_surface {
5265 cairo_surface_t base;
5366
6275 cairo_output_stream_t *stream;
6376
6477 cairo_bool_t eps;
78 cairo_bool_t contains_eps;
6579 cairo_content_t content;
6680 double width;
6781 double height;
6983 cairo_rectangle_int_t surface_extents;
7084 cairo_bool_t surface_bounded;
7185 cairo_matrix_t cairo_to_ps;
72
73 cairo_bool_t use_string_datasource;
86 cairo_bool_t paint_proc; /* TRUE if surface will be used in a PaintProc */
7487
7588 cairo_bool_t current_pattern_is_solid_color;
7689 cairo_color_t current_color;
90103 cairo_array_t dsc_setup_comments;
91104 cairo_array_t dsc_page_setup_comments;
92105
106 cairo_array_t recording_surf_stack;
107
93108 cairo_array_t *dsc_comment_target;
94109
95110 cairo_ps_level_t ps_level;
99114
100115 cairo_pdf_operators_t pdf_operators;
101116 cairo_surface_t *paginated_surface;
117 cairo_hash_table_t *forms;
118 int num_forms;
119 long total_form_size;
102120 } cairo_ps_surface_t;
103121
104122 #endif /* CAIRO_PS_SURFACE_PRIVATE_H */
5252 * 2. Using gs to do PS -> PDF and PDF -> PS will always work well.
5353 */
5454
55 #define _BSD_SOURCE /* for ctime_r(), snprintf(), strdup() */
55 #define _DEFAULT_SOURCE /* for ctime_r(), snprintf(), strdup() */
5656 #include "cairoint.h"
5757
5858 #include "cairo-ps.h"
7676 #include "cairo-output-stream-private.h"
7777 #include "cairo-type3-glyph-surface-private.h"
7878 #include "cairo-image-info-private.h"
79 #include "cairo-tag-attributes-private.h"
7980
8081 #include <stdio.h>
8182 #include <ctype.h>
8283 #include <time.h>
8384 #include <zlib.h>
8485 #include <errno.h>
86
87 /* Forms are emitted at the start and stored in memory so we limit the
88 * total size of all forms to prevent running out of memory. If this
89 * limit is exceeded, surfaces that would be stored in forms are
90 * emitted each time the surface is used. */
91 #define MAX_L2_FORM_DATA (256*1024)
92 #define MAX_L3_FORM_DATA (2*1024*1024) /* Assume Level 3 printers have more memory */
8593
8694 /* #define DEBUG_PS 1 */
8795
104112 *
105113 * The PostScript surface is used to render cairo graphics to Adobe
106114 * PostScript files and is a multi-page vector surface backend.
115 *
116 * The following mime types are supported: %CAIRO_MIME_TYPE_JPEG,
117 * %CAIRO_MIME_TYPE_UNIQUE_ID,
118 * %CAIRO_MIME_TYPE_CCITT_FAX, %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
119 * %CAIRO_MIME_TYPE_CCITT_FAX, %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
120 * %CAIRO_MIME_TYPE_EPS, %CAIRO_MIME_TYPE_EPS_PARAMS.
121 *
122 * Source surfaces used by the PostScript surface that have a
123 * %CAIRO_MIME_TYPE_UNIQUE_ID mime type will be stored in PostScript
124 * printer memory for the duration of the print
125 * job. %CAIRO_MIME_TYPE_UNIQUE_ID should only be used for small
126 * frequently used sources.
127 *
128 * The %CAIRO_MIME_TYPE_CCITT_FAX and %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime types
129 * are documented in [CCITT Fax Images][ccitt].
130 *
131 * # Embedding EPS files # {#eps}
132 *
133 * Encapsulated PostScript files can be embedded in the PS output by
134 * setting the CAIRO_MIME_TYPE_EPS mime data on a surface to the EPS
135 * data and painting the surface. The EPS will be scaled and
136 * translated to the extents of the surface the EPS data is attached
137 * to.
138 *
139 * The %CAIRO_MIME_TYPE_EPS mime type requires the
140 * %CAIRO_MIME_TYPE_EPS_PARAMS mime data to also be provided in order
141 * to specify the embeddding parameters. %CAIRO_MIME_TYPE_EPS_PARAMS
142 * mime data must contain a string of the form "bbox=[llx lly urx
143 * ury]" that specifies the bounding box (in PS coordinates) of the
144 * EPS graphics. The parameters are: lower left x, lower left y, upper
145 * right x, upper right y. Normally the bbox data is identical to the
146 * %%%BoundingBox data in the EPS file.
147 *
107148 **/
108149
109150 /**
119160 CAIRO_PS_COMPRESS_NONE,
120161 CAIRO_PS_COMPRESS_LZW,
121162 CAIRO_PS_COMPRESS_DEFLATE
122 } cairo_ps_compress_t;
163 } cairo_ps_compress_t;
164
165 typedef enum {
166 CAIRO_EMIT_SURFACE_ANALYZE,
167 CAIRO_EMIT_SURFACE_EMIT,
168 CAIRO_EMIT_SURFACE_EMIT_FORM
169 } cairo_emit_surface_mode_t;
170
171 typedef struct {
172 /* input params */
173 cairo_surface_t *src_surface;
174 cairo_operator_t op;
175 const cairo_rectangle_int_t *src_surface_extents;
176 cairo_bool_t src_surface_bounded;
177 const cairo_rectangle_int_t *src_op_extents; /* operation extents in src space */
178 cairo_filter_t filter;
179 cairo_bool_t stencil_mask; /* TRUE if source is to be used as a mask */
180
181 /* output params */
182 cairo_bool_t is_image; /* returns TRUE if PS image will be emitted */
183 /* FALSE if recording will be emitted */
184 long approx_size;
185 int eod_count;
186 } cairo_emit_surface_params_t;
123187
124188 static const cairo_surface_backend_t cairo_ps_surface_backend;
125189 static const cairo_paginated_surface_backend_t cairo_ps_surface_paginated_backend;
128192 _cairo_ps_surface_get_extents (void *abstract_surface,
129193 cairo_rectangle_int_t *rectangle);
130194
195 static void
196 _cairo_ps_form_emit (void *entry, void *closure);
197
131198 static const cairo_ps_level_t _cairo_ps_levels[] =
132199 {
133200 CAIRO_PS_LEVEL_2,
145212 static const char *_cairo_ps_supported_mime_types[] =
146213 {
147214 CAIRO_MIME_TYPE_JPEG,
215 CAIRO_MIME_TYPE_CCITT_FAX,
216 CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
148217 NULL
149218 };
150219
183252 } cairo_page_media_t;
184253
185254 static void
255 _cairo_ps_form_init_key (cairo_ps_form_t *key)
256 {
257 key->base.hash = _cairo_hash_bytes (_CAIRO_HASH_INIT_VALUE,
258 key->unique_id, key->unique_id_length);
259 }
260
261 static cairo_bool_t
262 _cairo_ps_form_equal (const void *key_a, const void *key_b)
263 {
264 const cairo_ps_form_t *a = key_a;
265 const cairo_ps_form_t *b = key_b;
266
267 if (a->filter != b->filter)
268 return FALSE;
269
270 if (a->unique_id_length != b->unique_id_length)
271 return FALSE;
272
273 return memcmp (a->unique_id, b->unique_id, a->unique_id_length) == 0;
274 }
275
276 static void
277 _cairo_ps_form_pluck (void *entry, void *closure)
278 {
279 cairo_ps_form_t *surface_entry = entry;
280 cairo_hash_table_t *patterns = closure;
281
282 _cairo_hash_table_remove (patterns, &surface_entry->base);
283 free (surface_entry->unique_id);
284 cairo_surface_destroy (surface_entry->src_surface);
285 free (surface_entry);
286 }
287
288 static void
186289 _cairo_ps_surface_emit_header (cairo_ps_surface_t *surface)
187290 {
188291 char ctime_buf[26];
272375
273376 if (surface->eps) {
274377 _cairo_output_stream_printf (surface->final_stream,
275 "save\n"
276378 "50 dict begin\n");
277379 } else {
278380 _cairo_output_stream_printf (surface->final_stream,
308410 "/W* { eoclip } bind def\n"
309411 "/BT { } bind def\n"
310412 "/ET { } bind def\n"
311 "/pdfmark where { pop globaldict /?pdfmark /exec load put }\n"
312 " { globaldict begin /?pdfmark /pop load def /pdfmark\n"
313 " /cleartomark load def end } ifelse\n"
314413 "/BDC { mark 3 1 roll /BDC pdfmark } bind def\n"
315414 "/EMC { mark /EMC pdfmark } bind def\n"
316415 "/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def\n"
335434 "/g { setgray } bind def\n"
336435 "/rg { setrgbcolor } bind def\n"
337436 "/d1 { setcachedevice } bind def\n"
437 "/cairo_data_source {\n"
438 " CairoDataIndex CairoData length lt\n"
439 " { CairoData CairoDataIndex get /CairoDataIndex CairoDataIndex 1 add def }\n"
440 " { () } ifelse\n"
441 "} def\n"
338442 "/cairo_flush_ascii85_file { cairo_ascii85_file status { cairo_ascii85_file flushfile } if } def\n"
339443 "/cairo_image { image cairo_flush_ascii85_file } def\n"
340444 "/cairo_imagemask { imagemask cairo_flush_ascii85_file } def\n");
373477 " } ifelse\n"
374478 "} def\n");
375479 }
480 if (surface->contains_eps) {
481 _cairo_output_stream_printf (surface->final_stream,
482 "/cairo_eps_begin {\n"
483 " /cairo_save_state save def\n"
484 " /dict_count countdictstack def\n"
485 " /op_count count 1 sub def\n"
486 " userdict begin\n"
487 " /showpage { } def\n"
488 " 0 g 0 J 1 w 0 j 10 M [ ] 0 d n\n"
489 "} bind def\n"
490 "/cairo_eps_end {\n"
491 " count op_count sub { pop } repeat\n"
492 " countdictstack dict_count sub { end } repeat\n"
493 " cairo_save_state restore\n"
494 "} bind def\n");
495 }
376496
377497 _cairo_output_stream_printf (surface->final_stream,
378498 "%%%%EndProlog\n");
379 _cairo_output_stream_printf (surface->final_stream,
380 "%%%%BeginSetup\n");
381499
382500 num_comments = _cairo_array_num_elements (&surface->dsc_setup_comments);
383501 if (num_comments) {
835953 surface);
836954 }
837955
956
957 static cairo_int_status_t
958 _cairo_ps_surface_emit_forms (cairo_ps_surface_t *surface)
959 {
960 _cairo_hash_table_foreach (surface->forms,
961 _cairo_ps_form_emit,
962 surface);
963 return surface->base.status;
964 }
965
838966 static cairo_status_t
839967 _cairo_ps_surface_emit_body (cairo_ps_surface_t *surface)
840968 {
862990
863991 if (surface->eps) {
864992 _cairo_output_stream_printf (surface->final_stream,
865 "end restore\n");
993 "end\n");
866994 }
867995
868996 _cairo_output_stream_printf (surface->final_stream,
10641192 surface->paginated_mode = CAIRO_PAGINATED_MODE_ANALYZE;
10651193 surface->force_fallbacks = FALSE;
10661194 surface->content = CAIRO_CONTENT_COLOR_ALPHA;
1067 surface->use_string_datasource = FALSE;
10681195 surface->current_pattern_is_solid_color = FALSE;
10691196 surface->document_bbox_p1.x = 0;
10701197 surface->document_bbox_p1.y = 0;
10711198 surface->document_bbox_p2.x = 0;
10721199 surface->document_bbox_p2.y = 0;
1200 surface->total_form_size = 0;
1201 surface->contains_eps = FALSE;
1202 surface->paint_proc = FALSE;
10731203
10741204 _cairo_surface_clipper_init (&surface->clipper,
10751205 _cairo_ps_surface_clipper_intersect_clip_path);
10851215 _cairo_array_init (&surface->dsc_header_comments, sizeof (char *));
10861216 _cairo_array_init (&surface->dsc_setup_comments, sizeof (char *));
10871217 _cairo_array_init (&surface->dsc_page_setup_comments, sizeof (char *));
1218 _cairo_array_init (&surface->recording_surf_stack, sizeof (unsigned int));
1219
1220 surface->num_forms = 0;
1221 surface->forms = _cairo_hash_table_create (_cairo_ps_form_equal);
1222 if (unlikely (surface->forms == NULL)) {
1223 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
1224 goto CLEANUP_FONT_SUBSETS;
1225 }
10881226
10891227 surface->dsc_comment_target = &surface->dsc_header_comments;
10901228
10991237 return surface->paginated_surface;
11001238 }
11011239
1240 CLEANUP_FONT_SUBSETS:
11021241 _cairo_scaled_font_subsets_destroy (surface->font_subsets);
11031242 CLEANUP_OUTPUT_STREAM:
11041243 status_ignored = _cairo_output_stream_destroy (surface->stream);
16211760
16221761 _cairo_ps_surface_emit_header (surface);
16231762
1763 _cairo_output_stream_printf (surface->final_stream,
1764 "%%%%BeginSetup\n");
1765
16241766 status = _cairo_ps_surface_emit_font_subsets (surface);
16251767 if (unlikely (status))
16261768 goto CLEANUP;
16271769
1770 status = _cairo_ps_surface_emit_forms (surface);
1771 if (unlikely (status))
1772 goto CLEANUP;
1773
16281774 _cairo_output_stream_printf (surface->final_stream,
16291775 "%%%%EndSetup\n");
16301776
16351781 _cairo_ps_surface_emit_footer (surface);
16361782
16371783 CLEANUP:
1784 _cairo_hash_table_foreach (surface->forms,
1785 _cairo_ps_form_pluck,
1786 surface->forms);
1787 _cairo_hash_table_destroy (surface->forms);
16381788 _cairo_scaled_font_subsets_destroy (surface->font_subsets);
16391789
16401790 status2 = _cairo_output_stream_destroy (surface->stream);
16761826 free (comments[i]);
16771827 _cairo_array_fini (&surface->dsc_page_setup_comments);
16781828
1829 _cairo_array_fini (&surface->recording_surf_stack);
1830
16791831 _cairo_surface_clipper_reset (&surface->clipper);
16801832
16811833 return status;
17241876 /**
17251877 * _cairo_ps_surface_acquire_source_surface_from_pattern:
17261878 * @surface: [in] the ps surface
1727 * @pattern: [in] A #cairo_pattern_t of type SURFACE or RASTER_SOURCE to use as the source
1879 * @pattern: [in] A #cairo_pattern_t of type SURFACE or RASTER_SOURCE to use
1880 * as the source
17281881 * @extents: [in] extents of the operation that is using this source
17291882 * @src_surface_extents: [out] return source surface extents
17301883 * @src_surface_bounded: [out] return TRUE if source surface is bounded
17321885 * @source_surface: [out] returns surface of type image surface or recording surface
17331886 * @x_offset: [out] return x offset of surface
17341887 * @y_offset: [out] return y offset of surface
1735 * @image_extra: [out] returns image extra for image type surface
17361888 *
17371889 * Acquire source surface or raster source pattern.
17381890 **/
17391891 static cairo_status_t
1740 _cairo_ps_surface_acquire_source_surface_from_pattern (cairo_ps_surface_t *surface,
1741 const cairo_pattern_t *pattern,
1742 const cairo_rectangle_int_t *extents,
1743 cairo_rectangle_int_t *src_surface_extents,
1744 cairo_bool_t *src_surface_bounded,
1745 cairo_rectangle_int_t *src_op_extents,
1746 cairo_surface_t **source_surface,
1747 double *x_offset,
1748 double *y_offset,
1749 void **image_extra)
1750 {
1751 cairo_status_t status;
1752 cairo_image_surface_t *image;
1892 _cairo_ps_surface_acquire_source_surface_from_pattern (
1893 cairo_ps_surface_t *surface,
1894 const cairo_pattern_t *pattern,
1895 const cairo_rectangle_int_t *extents,
1896 cairo_rectangle_int_t *src_surface_extents,
1897 cairo_bool_t *src_surface_bounded,
1898 cairo_rectangle_int_t *src_op_extents,
1899 cairo_surface_t **source_surface,
1900 double *x_offset,
1901 double *y_offset)
1902 {
1903 cairo_status_t status;
1904 cairo_box_t bbox;
17531905
17541906 *x_offset = 0;
17551907 *y_offset = 0;
1756 *image_extra = NULL;
1757 switch (pattern->type) {
1758 case CAIRO_PATTERN_TYPE_SURFACE: {
1759 cairo_box_t bbox;
1760 cairo_surface_t *surf = ((cairo_surface_pattern_t *) pattern)->surface;
1761
1908
1909 /* get the operation extents in pattern space */
1910 _cairo_box_from_rectangle (&bbox, extents);
1911 _cairo_matrix_transform_bounding_box_fixed (&pattern->matrix, &bbox, NULL);
1912 _cairo_box_round_to_rectangle (&bbox, src_op_extents);
1913
1914 if (pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) {
1915 cairo_surface_t *surf;
1916
1917 surf = _cairo_raster_source_pattern_acquire (pattern, &surface->base, src_op_extents);
1918 if (!surf)
1919 return CAIRO_INT_STATUS_UNSUPPORTED;
1920
1921 *src_surface_bounded = _cairo_surface_get_extents (surf, src_surface_extents);
1922 cairo_surface_get_device_offset (surf, x_offset, y_offset);
1923 *source_surface = surf;
1924 } else if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) {
1925 cairo_surface_t *surf = NULL;
1926
1927 *source_surface = ((cairo_surface_pattern_t *) pattern)->surface;
1928 surf = *source_surface;
1929 *src_surface_bounded = _cairo_surface_get_extents (surf, src_surface_extents);
17621930 if (surf->type == CAIRO_SURFACE_TYPE_RECORDING) {
1763 if (_cairo_surface_is_snapshot (surf)) {
1931 if (_cairo_surface_is_snapshot (surf))
17641932 surf = _cairo_surface_snapshot_get_target (surf);
1765 *image_extra = surf;
1766 }
1933
17671934 if (surf->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) {
17681935 cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) surf;
17691936
17711938 *src_surface_bounded = TRUE;
17721939 *x_offset = -sub->extents.x;
17731940 *y_offset = -sub->extents.y;
1774 } else {
1775 *src_surface_bounded = _cairo_surface_get_extents (surf, src_surface_extents);
17761941 }
1777 *source_surface = surf;
1778 _cairo_box_from_rectangle (&bbox, extents);
1779 _cairo_matrix_transform_bounding_box_fixed (&pattern->matrix, &bbox, NULL);
1780 _cairo_box_round_to_rectangle (&bbox, src_op_extents);
1781
1782 return CAIRO_STATUS_SUCCESS;
1783 } else {
1784 status = _cairo_surface_acquire_source_image (surf, &image, image_extra);
1785 if (unlikely (status)) {
1786 cairo_surface_destroy (*image_extra);
1942
1943 cairo_surface_destroy (surf);
1944 } else if (surf->type != CAIRO_SURFACE_TYPE_IMAGE) {
1945 cairo_image_surface_t *image;
1946 void *image_extra;
1947
1948 status = _cairo_surface_acquire_source_image (surf, &image, &image_extra);
1949 if (unlikely (status))
17871950 return status;
1788 }
1789 }
1790 } break;
1791
1792 case CAIRO_PATTERN_TYPE_RASTER_SOURCE: {
1793 cairo_surface_t *surf;
1794 cairo_box_t box;
1795 cairo_rectangle_int_t rect;
1796
1797 /* get the operation extents in pattern space */
1798 _cairo_box_from_rectangle (&box, extents);
1799 _cairo_matrix_transform_bounding_box_fixed (&pattern->matrix, &box, NULL);
1800 _cairo_box_round_to_rectangle (&box, &rect);
1801 surf = _cairo_raster_source_pattern_acquire (pattern, &surface->base, &rect);
1802 if (!surf)
1803 return CAIRO_INT_STATUS_UNSUPPORTED;
1804 assert (_cairo_surface_is_image (surf));
1805 image = (cairo_image_surface_t *) surf;
1806 cairo_surface_get_device_offset (surf, x_offset, y_offset);
1807 } break;
1808
1809 case CAIRO_PATTERN_TYPE_SOLID:
1810 case CAIRO_PATTERN_TYPE_LINEAR:
1811 case CAIRO_PATTERN_TYPE_RADIAL:
1812 case CAIRO_PATTERN_TYPE_MESH:
1813 default:
1951
1952 *src_surface_bounded = _cairo_surface_get_extents (&image->base, src_surface_extents);
1953 _cairo_surface_release_source_image (surf, image, image_extra);
1954 }
1955 } else {
18141956 ASSERT_NOT_REACHED;
1815 break;
1816 }
1817
1818 src_surface_extents->x = 0;
1819 src_surface_extents->y = 0;
1820 src_surface_extents->width = image->width;
1821 src_surface_extents->height = image->height;
1822 *src_surface_bounded = TRUE;
1823 *source_surface = &image->base;
1957 }
1958
18241959 return CAIRO_STATUS_SUCCESS;
18251960 }
18261961
18271962 static void
18281963 _cairo_ps_surface_release_source_surface_from_pattern (cairo_ps_surface_t *surface,
18291964 const cairo_pattern_t *pattern,
1830 cairo_surface_t *source_surface,
1831 void *image_extra)
1832 {
1833 switch (pattern->type) {
1834 case CAIRO_PATTERN_TYPE_SURFACE: {
1835 cairo_surface_pattern_t *surf_pat = (cairo_surface_pattern_t *) pattern;
1836 if (surf_pat->surface->type == CAIRO_SURFACE_TYPE_RECORDING) {
1837 cairo_surface_destroy (image_extra);
1838 } else {
1839 cairo_image_surface_t *image = (cairo_image_surface_t *) source_surface;
1840 _cairo_surface_release_source_image (surf_pat->surface, image, image_extra);
1841 }
1842 } break;
1843
1844 case CAIRO_PATTERN_TYPE_RASTER_SOURCE:
1965 cairo_surface_t *source_surface)
1966 {
1967 if (pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE)
18451968 _cairo_raster_source_pattern_release (pattern, source_surface);
1846 break;
1847
1848 case CAIRO_PATTERN_TYPE_SOLID:
1849 case CAIRO_PATTERN_TYPE_LINEAR:
1850 case CAIRO_PATTERN_TYPE_RADIAL:
1851 case CAIRO_PATTERN_TYPE_MESH:
1852 default:
1853
1854 ASSERT_NOT_REACHED;
1855 break;
1856 }
18571969 }
18581970
18591971 /**
18942006 _cairo_fixed_integer_floor(box.p2.y) > w ||
18952007 _cairo_fixed_integer_floor(box.p2.y) > h)
18962008 {
1897 pad_image =
1898 _cairo_image_surface_create_with_pixman_format (NULL,
1899 source->pixman_format,
1900 rect.width, rect.height,
1901 0);
2009 pad_image = _cairo_image_surface_create_with_content (source->base.content,
2010 rect.width,
2011 rect.height);
19022012 if (pad_image->status)
19032013 return pad_image->status;
19042014
19332043 cairo_rectangle_int_t src_op_extents;
19342044 cairo_surface_t *source_surface;
19352045 double x_offset, y_offset;
2046 cairo_image_surface_t *image;
19362047 void *image_extra;
1937 cairo_image_surface_t *image;
19382048 cairo_int_status_t status;
19392049 cairo_image_transparency_t transparency;
19402050
19462056 &src_op_extents,
19472057 &source_surface,
19482058 &x_offset,
1949 &y_offset,
1950 &image_extra);
2059 &y_offset);
19512060 if (unlikely (status))
19522061 return status;
19532062
1954 assert (_cairo_surface_is_image (source_surface));
1955 image = (cairo_image_surface_t *) source_surface;
2063 status = _cairo_surface_acquire_source_image (source_surface, &image, &image_extra);
2064 if (unlikely (status))
2065 return status;
2066
19562067 if (image->base.status)
19572068 return image->base.status;
19582069
19792090 ASSERT_NOT_REACHED;
19802091 }
19812092
1982 _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source_surface, image_extra);
2093 _cairo_surface_release_source_image (source_surface, image, image_extra);
2094 _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source_surface);
19832095
19842096 return status;
19852097 }
21662278
21672279 /* The "standard" implementation limit for PostScript string sizes is
21682280 * 65535 characters (see PostScript Language Reference, Appendix
2169 * B). We go one short of that because we sometimes need two
2170 * characters in a string to represent a single ASCII85 byte, (for the
2171 * escape sequences "\\", "\(", and "\)") and we must not split these
2172 * across two strings. So we'd be in trouble if we went right to the
2173 * limit and one of these escape sequences just happened to land at
2174 * the end.
2281 * B).
21752282 */
2176 #define STRING_ARRAY_MAX_STRING_SIZE (65535-1)
2283 #define STRING_ARRAY_MAX_STRING_SIZE 65535
21772284 #define STRING_ARRAY_MAX_COLUMN 72
21782285
21792286 typedef struct _string_array_stream {
21812288 cairo_output_stream_t *output;
21822289 int column;
21832290 int string_size;
2291 int tuple_count;
21842292 cairo_bool_t use_strings;
21852293 } string_array_stream_t;
21862294
21872295 static cairo_status_t
2188 _string_array_stream_write (cairo_output_stream_t *base,
2189 const unsigned char *data,
2190 unsigned int length)
2296 _base85_string_wrap_stream_write (cairo_output_stream_t *base,
2297 const unsigned char *data,
2298 unsigned int length)
21912299 {
21922300 string_array_stream_t *stream = (string_array_stream_t *) base;
21932301 unsigned char c;
2194 const unsigned char backslash = '\\';
21952302
21962303 if (length == 0)
21972304 return CAIRO_STATUS_SUCCESS;
21982305
21992306 while (length--) {
2200 if (stream->string_size == 0 && stream->use_strings) {
2201 _cairo_output_stream_printf (stream->output, "(");
2202 stream->column++;
2203 }
2204
2205 c = *data++;
2206 if (stream->use_strings) {
2207 switch (c) {
2208 case '\\':
2209 case '(':
2210 case ')':
2211 _cairo_output_stream_write (stream->output, &backslash, 1);
2212 stream->column++;
2213 stream->string_size++;
2214 break;
2307 if (stream->column == 0) {
2308 if (stream->use_strings) {
2309 _cairo_output_stream_printf (stream->output, "<~");
2310 stream->column = 2;
2311 } else {
2312 _cairo_output_stream_printf (stream->output, " ");
2313 stream->column = 1;
22152314 }
22162315 }
2217 /* Have to be careful to never split the final ~> sequence. */
2218 if (c == '~') {
2219 _cairo_output_stream_write (stream->output, &c, 1);
2220 stream->column++;
2221 stream->string_size++;
2222
2223 if (length-- == 0)
2224 break;
2225
2226 c = *data++;
2227 }
2316
2317 c = *data++;
22282318 _cairo_output_stream_write (stream->output, &c, 1);
22292319 stream->column++;
2230 stream->string_size++;
2231
2320
2321 /* Base85 encodes each 4 byte tuple with a 5 ASCII character
2322 * tuple, except for 'z' with represents 4 zero bytes. We need
2323 * to keep track of the string length after decoding.
2324 */
2325 if (c == 'z') {
2326 stream->string_size += 4;
2327 stream->tuple_count = 0;
2328 } else {
2329 if (++stream->tuple_count == 5) {
2330 stream->string_size += 4;
2331 stream->tuple_count = 0;
2332 }
2333 }
2334
2335 /* Split string at tuple boundary when there is not enough
2336 * space for another tuple */
22322337 if (stream->use_strings &&
2233 stream->string_size >= STRING_ARRAY_MAX_STRING_SIZE)
2338 stream->tuple_count == 0 &&
2339 stream->string_size > STRING_ARRAY_MAX_STRING_SIZE - 4)
22342340 {
2235 _cairo_output_stream_printf (stream->output, ")\n");
2341 _cairo_output_stream_printf (stream->output, "~>\n");
22362342 stream->string_size = 0;
22372343 stream->column = 0;
22382344 }
22392345 if (stream->column >= STRING_ARRAY_MAX_COLUMN) {
22402346 _cairo_output_stream_printf (stream->output, "\n ");
2241 stream->string_size += 2;
22422347 stream->column = 1;
22432348 }
22442349 }
22472352 }
22482353
22492354 static cairo_status_t
2250 _string_array_stream_close (cairo_output_stream_t *base)
2251 {
2252 cairo_status_t status;
2355 _base85_string_wrap_stream_close (cairo_output_stream_t *base)
2356 {
22532357 string_array_stream_t *stream = (string_array_stream_t *) base;
22542358
2255 if (stream->use_strings)
2256 _cairo_output_stream_printf (stream->output, ")\n");
2257
2258 status = _cairo_output_stream_get_status (stream->output);
2259
2260 return status;
2261 }
2262
2263 /* A string_array_stream wraps an existing output stream. It takes the
2264 * data provided to it and output one or more consecutive string
2265 * objects, each within the standard PostScript implementation limit
2266 * of 65k characters.
2267 *
2268 * The strings are each separated by a space character for easy
2269 * inclusion within an array object, (but the array delimiters are not
2270 * added by the string_array_stream).
2271 *
2359 if (!stream->use_strings || stream->string_size != 0)
2360 _cairo_output_stream_printf (stream->output, "~>");
2361
2362 return _cairo_output_stream_get_status (stream->output);
2363 }
2364
2365 /* A _base85_strings_stream wraps an existing output stream. It takes
2366 * base85 encoded data and splits it into strings each limited to
2367 * STRING_ARRAY_MAX_STRING_SIZE bytes when decoded. Each string is
2368 * enclosed in "<~" and "~>".
2369
22722370 * The string array stream is also careful to wrap the output within
2273 * STRING_ARRAY_MAX_COLUMN columns (+/- 1). The stream also adds
2274 * necessary escaping for special characters within a string,
2275 * (specifically '\', '(', and ')').
2371 * STRING_ARRAY_MAX_COLUMN columns. Wrapped lines start with a space
2372 * in case an encoded line starts with %% which could be interpreted
2373 * as a DSC comment.
22762374 */
22772375 static cairo_output_stream_t *
2278 _string_array_stream_create (cairo_output_stream_t *output)
2376 _base85_strings_stream_create (cairo_output_stream_t *output)
22792377 {
22802378 string_array_stream_t *stream;
22812379
22862384 }
22872385
22882386 _cairo_output_stream_init (&stream->base,
2289 _string_array_stream_write,
2387 _base85_string_wrap_stream_write,
22902388 NULL,
2291 _string_array_stream_close);
2389 _base85_string_wrap_stream_close);
22922390 stream->output = output;
22932391 stream->column = 0;
22942392 stream->string_size = 0;
2393 stream->tuple_count = 0;
22952394 stream->use_strings = TRUE;
22962395
22972396 return &stream->base;
22982397 }
22992398
2300 /* A base85_array_stream wraps an existing output stream. It wraps the
2301 * output within STRING_ARRAY_MAX_COLUMN columns (+/- 1). The output
2302 * is not enclosed in strings like string_array_stream.
2399 /* A base85_wrap_stream wraps an existing output stream. It wraps the
2400 * output within STRING_ARRAY_MAX_COLUMN columns. A base85 EOD "~>" is
2401 * appended to the end. Wrapped lines start with a space in case an
2402 * encoded line starts with %% which could be interpreted as a DSC
2403 * comment.
23032404 */
23042405 static cairo_output_stream_t *
2305 _base85_array_stream_create (cairo_output_stream_t *output)
2406 _base85_wrap_stream_create (cairo_output_stream_t *output)
23062407 {
23072408 string_array_stream_t *stream;
23082409
23132414 }
23142415
23152416 _cairo_output_stream_init (&stream->base,
2316 _string_array_stream_write,
2417 _base85_string_wrap_stream_write,
23172418 NULL,
2318 _string_array_stream_close);
2419 _base85_string_wrap_stream_close);
23192420 stream->output = output;
23202421 stream->column = 0;
23212422 stream->string_size = 0;
2423 stream->tuple_count = 0;
23222424 stream->use_strings = FALSE;
23232425
23242426 return &stream->base;
23802482 cairo_status_t status, status2;
23812483
23822484 if (use_strings)
2383 string_array_stream = _string_array_stream_create (surface->stream);
2485 string_array_stream = _base85_strings_stream_create (surface->stream);
23842486 else
2385 string_array_stream = _base85_array_stream_create (surface->stream);
2487 string_array_stream = _base85_wrap_stream_create (surface->stream);
23862488
23872489 status = _cairo_output_stream_get_status (string_array_stream);
23882490 if (unlikely (status))
24292531 break;
24302532 }
24312533 status = _cairo_output_stream_destroy (base85_stream);
2432
2433 /* Mark end of base85 data */
2434 _cairo_output_stream_printf (string_array_stream, "~>");
24352534 status2 = _cairo_output_stream_destroy (string_array_stream);
24362535 if (status == CAIRO_STATUS_SUCCESS)
24372536 status = status2;
24392538 return status;
24402539 }
24412540
2541 static const char *
2542 get_interpolate (cairo_filter_t filter)
2543 {
2544 const char *interpolate;
2545
2546 switch (filter) {
2547 default:
2548 case CAIRO_FILTER_GOOD:
2549 case CAIRO_FILTER_BEST:
2550 case CAIRO_FILTER_BILINEAR:
2551 interpolate = "true";
2552 break;
2553 case CAIRO_FILTER_FAST:
2554 case CAIRO_FILTER_NEAREST:
2555 case CAIRO_FILTER_GAUSSIAN:
2556 interpolate = "false";
2557 break;
2558 }
2559
2560 return interpolate;
2561 }
2562
24422563 static cairo_status_t
2443 _cairo_ps_surface_emit_image (cairo_ps_surface_t *surface,
2444 cairo_image_surface_t *image_surf,
2445 cairo_operator_t op,
2446 cairo_filter_t filter,
2447 cairo_bool_t stencil_mask)
2564 _cairo_ps_surface_emit_image (cairo_ps_surface_t *surface,
2565 cairo_emit_surface_mode_t mode,
2566 cairo_emit_surface_params_t *params)
24482567 {
24492568 cairo_status_t status;
24502569 unsigned char *data;
24602579 const char *interpolate;
24612580 cairo_ps_compress_t compress;
24622581 const char *compress_filter;
2582 cairo_image_surface_t *image_surf;
24632583 cairo_image_surface_t *image;
2464
2465 if (image_surf->base.status)
2466 return image_surf->base.status;
2584 void *image_extra;
2585
2586 if (params->src_surface->status)
2587 return params->src_surface->status;
2588
2589 status = _cairo_surface_acquire_source_image (params->src_surface, &image_surf, &image_extra);
2590 if (unlikely (status))
2591 return status;
24672592
24682593 image = image_surf;
24692594 if (image->format != CAIRO_FORMAT_RGB24 &&
24742599 cairo_surface_t *surf;
24752600 cairo_surface_pattern_t pattern;
24762601
2477 surf = _cairo_image_surface_create_with_content (image_surf->base.content,
2478 image_surf->width,
2479 image_surf->height);
2602 surf = _cairo_image_surface_create_with_content (image->base.content,
2603 image->width,
2604 image->height);
24802605 image = (cairo_image_surface_t *) surf;
24812606 if (surf->status) {
24822607 status = surf->status;
24832608 goto bail0;
24842609 }
24852610
2486 _cairo_pattern_init_for_surface (&pattern, &image_surf->base);
2611 _cairo_pattern_init_for_surface (&pattern, &image->base);
24872612 status = _cairo_surface_paint (surf,
24882613 CAIRO_OPERATOR_SOURCE, &pattern.base,
24892614 NULL);
24922617 goto bail0;
24932618 }
24942619 ps_image = image;
2495
2496 switch (filter) {
2497 default:
2498 case CAIRO_FILTER_GOOD:
2499 case CAIRO_FILTER_BEST:
2500 case CAIRO_FILTER_BILINEAR:
2501 interpolate = "true";
2502 break;
2503 case CAIRO_FILTER_FAST:
2504 case CAIRO_FILTER_NEAREST:
2505 case CAIRO_FILTER_GAUSSIAN:
2506 interpolate = "false";
2507 break;
2508 }
2509
2510 if (stencil_mask) {
2620 interpolate = get_interpolate (params->filter);
2621
2622 if (params->stencil_mask) {
25112623 use_mask = FALSE;
25122624 color = CAIRO_IMAGE_IS_MONOCHROME;
25132625 transparency = CAIRO_IMAGE_HAS_BILEVEL_ALPHA;
25182630 current image over a white (or black for CONTENT_COLOR
25192631 surfaces) RGB surface to eliminate it. */
25202632
2521 if (op == CAIRO_OPERATOR_SOURCE ||
2633 if (params->op == CAIRO_OPERATOR_SOURCE ||
25222634 transparency == CAIRO_IMAGE_HAS_ALPHA ||
25232635 (transparency == CAIRO_IMAGE_HAS_BILEVEL_ALPHA &&
25242636 surface->ps_level == CAIRO_PS_LEVEL_2))
25682680
25692681 i = 0;
25702682 for (y = 0; y < ps_image->height; y++) {
2571 if (stencil_mask || use_mask) {
2683 if (params->stencil_mask || use_mask) {
25722684 /* mask row */
25732685 if (ps_image->format == CAIRO_FORMAT_A1) {
25742686 pixel8 = (uint8_t *) (ps_image->data + y * ps_image->stride);
26092721 i++;
26102722 }
26112723 }
2612 if (stencil_mask)
2724 if (params->stencil_mask)
26132725 continue;
26142726
26152727 /* image row*/
26742786 surface->ps_level_used = CAIRO_PS_LEVEL_3;
26752787 }
26762788
2677 if (surface->use_string_datasource) {
2789 if (surface->paint_proc) {
26782790 /* Emit the image data as a base85-encoded string which will
26792791 * be used as the data source for the image operator later. */
26802792 _cairo_output_stream_printf (surface->stream,
2681 "/CairoImageData [\n");
2793 "/CairoData [\n");
26822794
26832795 status = _cairo_ps_surface_emit_base85_string (surface,
26842796 data,
26912803 _cairo_output_stream_printf (surface->stream,
26922804 "] def\n");
26932805 _cairo_output_stream_printf (surface->stream,
2694 "/CairoImageDataIndex 0 def\n");
2806 "/CairoDataIndex 0 def\n");
26952807 } else {
26962808 _cairo_output_stream_printf (surface->stream,
26972809 "/cairo_ascii85_file currentfile /ASCII85Decode filter def\n");
27002812 if (use_mask) {
27012813 _cairo_output_stream_printf (surface->stream,
27022814 "%s setcolorspace\n"
2703 "5 dict dup begin\n"
2704 " /ImageType 3 def\n"
2705 " /InterleaveType 2 def\n"
2706 " /DataDict 8 dict def\n"
2707 " DataDict begin\n"
2708 " /ImageType 1 def\n"
2709 " /Width %d def\n"
2710 " /Height %d def\n"
2711 " /Interpolate %s def\n"
2712 " /BitsPerComponent %d def\n"
2713 " /Decode [ %s ] def\n",
2815 "<<\n"
2816 " /ImageType 3\n"
2817 " /InterleaveType 2\n"
2818 " /DataDict <<\n"
2819 " /ImageType 1\n"
2820 " /Width %d\n"
2821 " /Height %d\n"
2822 " /Interpolate %s\n"
2823 " /BitsPerComponent %d\n"
2824 " /Decode [ %s ]\n",
27142825 color == CAIRO_IMAGE_IS_COLOR ? "/DeviceRGB" : "/DeviceGray",
27152826 ps_image->width,
27162827 ps_image->height,
27182829 color == CAIRO_IMAGE_IS_MONOCHROME ? 1 : 8,
27192830 color == CAIRO_IMAGE_IS_COLOR ? "0 1 0 1 0 1" : "0 1");
27202831
2721 if (surface->use_string_datasource) {
2832 if (surface->paint_proc) {
27222833 _cairo_output_stream_printf (surface->stream,
2723 " /DataSource {\n"
2724 " CairoImageData CairoImageDataIndex get\n"
2725 " /CairoImageDataIndex CairoImageDataIndex 1 add def\n"
2726 " CairoImageDataIndex CairoImageData length 1 sub gt\n"
2727 " { /CairoImageDataIndex 0 def } if\n"
2728 " } /ASCII85Decode filter /%s filter def\n",
2834 " /DataSource { cairo_data_source } /%s filter\n",
27292835 compress_filter);
27302836 } else {
27312837 _cairo_output_stream_printf (surface->stream,
2732 " /DataSource cairo_ascii85_file /%s filter def\n",
2838 " /DataSource cairo_ascii85_file /%s filter\n",
27332839 compress_filter);
27342840 }
27352841
27362842 _cairo_output_stream_printf (surface->stream,
2737 " /ImageMatrix [ 1 0 0 -1 0 %d ] def\n"
2738 " end\n"
2739 " /MaskDict 8 dict def\n"
2740 " MaskDict begin\n"
2741 " /ImageType 1 def\n"
2742 " /Width %d def\n"
2743 " /Height %d def\n"
2744 " /Interpolate %s def\n"
2745 " /BitsPerComponent 1 def\n"
2746 " /Decode [ 1 0 ] def\n"
2747 " /ImageMatrix [ 1 0 0 -1 0 %d ] def\n"
2748 " end\n"
2749 "end\n"
2843 " /ImageMatrix [ %d 0 0 %d 0 %d ]\n"
2844 " >>\n"
2845 " /MaskDict <<\n"
2846 " /ImageType 1\n"
2847 " /Width %d\n"
2848 " /Height %d\n"
2849 " /Interpolate %s\n"
2850 " /BitsPerComponent 1\n"
2851 " /Decode [ 1 0 ]\n"
2852 " /ImageMatrix [ %d 0 0 %d 0 %d ]\n"
2853 " >>\n"
2854 ">>\n"
27502855 "image\n",
2856 ps_image->width,
2857 -ps_image->height,
27512858 ps_image->height,
27522859 ps_image->width,
27532860 ps_image->height,
27542861 interpolate,
2862 ps_image->width,
2863 -ps_image->height,
27552864 ps_image->height);
27562865 } else {
2757 if (!stencil_mask) {
2866 const char *decode;
2867
2868 if (!params->stencil_mask) {
27582869 _cairo_output_stream_printf (surface->stream,
27592870 "%s setcolorspace\n",
27602871 color == CAIRO_IMAGE_IS_COLOR ? "/DeviceRGB" : "/DeviceGray");
27612872 }
2873 if (params->stencil_mask)
2874 decode = "1 0";
2875 else if (color == CAIRO_IMAGE_IS_COLOR)
2876 decode = "0 1 0 1 0 1";
2877 else
2878 decode ="0 1";
2879
27622880 _cairo_output_stream_printf (surface->stream,
2763 "8 dict dup begin\n"
2764 " /ImageType 1 def\n"
2765 " /Width %d def\n"
2766 " /Height %d def\n"
2767 " /Interpolate %s def\n"
2768 " /BitsPerComponent %d def\n"
2769 " /Decode [ %s ] def\n",
2881 "<<\n"
2882 " /ImageType 1\n"
2883 " /Width %d\n"
2884 " /Height %d\n"
2885 " /Interpolate %s\n"
2886 " /BitsPerComponent %d\n"
2887 " /Decode [ %s ]\n",
27702888 ps_image->width,
27712889 ps_image->height,
27722890 interpolate,
27732891 color == CAIRO_IMAGE_IS_MONOCHROME ? 1 : 8,
2774 stencil_mask ? "1 0" : color == CAIRO_IMAGE_IS_COLOR ? "0 1 0 1 0 1" : "0 1");
2775 if (surface->use_string_datasource) {
2892 decode);
2893 if (surface->paint_proc) {
27762894 _cairo_output_stream_printf (surface->stream,
2777 " /DataSource {\n"
2778 " CairoImageData CairoImageDataIndex get\n"
2779 " /CairoImageDataIndex CairoImageDataIndex 1 add def\n"
2780 " CairoImageDataIndex CairoImageData length 1 sub gt\n"
2781 " { /CairoImageDataIndex 0 def } if\n"
2782 " } /ASCII85Decode filter /%s filter def\n",
2895 " /DataSource { cairo_data_source } /%s filter\n",
27832896 compress_filter);
27842897 } else {
27852898 _cairo_output_stream_printf (surface->stream,
2786 " /DataSource cairo_ascii85_file /%s filter def\n",
2899 " /DataSource cairo_ascii85_file /%s filter\n",
27872900 compress_filter);
27882901 }
27892902
27902903 _cairo_output_stream_printf (surface->stream,
2791 " /ImageMatrix [ 1 0 0 -1 0 %d ] def\n"
2792 "end\n"
2904 " /ImageMatrix [ %d 0 0 %d 0 %d ]\n"
2905 ">>\n"
27932906 "%s%s\n",
2907 ps_image->width,
2908 -ps_image->height,
27942909 ps_image->height,
2795 surface->use_string_datasource ? "" : "cairo_",
2796 stencil_mask ? "imagemask" : "image");
2797 }
2798
2799 if (!surface->use_string_datasource) {
2910 surface->paint_proc ? "" : "cairo_",
2911 params->stencil_mask ? "imagemask" : "image");
2912 }
2913
2914 if (!surface->paint_proc) {
28002915 /* Emit the image data as a base85-encoded string which will
28012916 * be used as the data source for the image operator. */
28022917 status = _cairo_ps_surface_emit_base85_string (surface,
28202935 if (image != image_surf)
28212936 cairo_surface_destroy (&image->base);
28222937
2938 _cairo_surface_release_source_image (params->src_surface, image_surf, image_extra);
2939
28232940 return status;
28242941 }
28252942
2826 static cairo_status_t
2827 _cairo_ps_surface_emit_jpeg_image (cairo_ps_surface_t *surface,
2828 cairo_surface_t *source,
2829 int width,
2830 int height)
2943 static cairo_int_status_t
2944 _cairo_ps_surface_emit_jpeg_image (cairo_ps_surface_t *surface,
2945 cairo_emit_surface_mode_t mode,
2946 cairo_emit_surface_params_t *params)
28312947 {
28322948 cairo_status_t status;
28332949 const unsigned char *mime_data;
28362952 const char *colorspace;
28372953 const char *decode;
28382954
2839 cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JPEG,
2955 if (unlikely (params->src_surface->status))
2956 return params->src_surface->status;
2957
2958 cairo_surface_get_mime_data (params->src_surface, CAIRO_MIME_TYPE_JPEG,
28402959 &mime_data, &mime_data_length);
2841 if (unlikely (source->status))
2842 return source->status;
28432960 if (mime_data == NULL)
28442961 return CAIRO_INT_STATUS_UNSUPPORTED;
28452962
28642981 return CAIRO_INT_STATUS_UNSUPPORTED;
28652982 }
28662983
2867 if (surface->use_string_datasource) {
2984 /* At this point we know emitting jpeg will succeed. */
2985 if (mode == CAIRO_EMIT_SURFACE_ANALYZE) {
2986 params->is_image = TRUE;
2987 params->approx_size = mime_data_length;
2988 return CAIRO_STATUS_SUCCESS;
2989 }
2990
2991 if (surface->paint_proc) {
28682992 /* Emit the image data as a base85-encoded string which will
28692993 * be used as the data source for the image operator later. */
28702994 _cairo_output_stream_printf (surface->stream,
2871 "/CairoImageData [\n");
2995 "/CairoData [\n");
28722996
28732997 status = _cairo_ps_surface_emit_base85_string (surface,
28742998 mime_data,
28813005 _cairo_output_stream_printf (surface->stream,
28823006 "] def\n");
28833007 _cairo_output_stream_printf (surface->stream,
2884 "/CairoImageDataIndex 0 def\n");
3008 "/CairoDataIndex 0 def\n");
28853009 } else {
28863010 _cairo_output_stream_printf (surface->stream,
28873011 "/cairo_ascii85_file currentfile /ASCII85Decode filter def\n");
28893013
28903014 _cairo_output_stream_printf (surface->stream,
28913015 "%s setcolorspace\n"
2892 "8 dict dup begin\n"
2893 " /ImageType 1 def\n"
2894 " /Width %d def\n"
2895 " /Height %d def\n"
2896 " /BitsPerComponent %d def\n"
2897 " /Decode [ %s ] def\n",
3016 "<<\n"
3017 " /ImageType 1\n"
3018 " /Width %d\n"
3019 " /Height %d\n"
3020 " /BitsPerComponent %d\n"
3021 " /Interpolate %s\n"
3022 " /Decode [ %s ]\n",
28983023 colorspace,
28993024 info.width,
29003025 info.height,
29013026 info.bits_per_component,
3027 get_interpolate (params->filter),
29023028 decode);
29033029
2904 if (surface->use_string_datasource) {
3030 if (surface->paint_proc) {
29053031 _cairo_output_stream_printf (surface->stream,
2906 " /DataSource {\n"
2907 " CairoImageData CairoImageDataIndex get\n"
2908 " /CairoImageDataIndex CairoImageDataIndex 1 add def\n"
2909 " CairoImageDataIndex CairoImageData length 1 sub gt\n"
2910 " { /CairoImageDataIndex 0 def } if\n"
2911 " } /ASCII85Decode filter /DCTDecode filter def\n");
3032 " /DataSource { cairo_data_source } /DCTDecode filter\n");
29123033 } else {
29133034 _cairo_output_stream_printf (surface->stream,
2914 " /DataSource cairo_ascii85_file /DCTDecode filter def\n");
3035 " /DataSource cairo_ascii85_file /DCTDecode filter\n");
29153036 }
29163037
29173038 _cairo_output_stream_printf (surface->stream,
2918 " /ImageMatrix [ 1 0 0 -1 0 %d ] def\n"
2919 "end\n"
3039 " /ImageMatrix [ %d 0 0 %d 0 %d ]\n"
3040 ">>\n"
29203041 "%simage\n",
3042 info.width,
3043 -info.height,
29213044 info.height,
2922 surface->use_string_datasource ? "" : "cairo_");
2923
2924 if (!surface->use_string_datasource) {
3045 surface->paint_proc ? "" : "cairo_");
3046
3047 if (!surface->paint_proc) {
29253048 /* Emit the image data as a base85-encoded string which will
29263049 * be used as the data source for the image operator. */
29273050 status = _cairo_ps_surface_emit_base85_string (surface,
29343057 return status;
29353058 }
29363059
3060 static cairo_int_status_t
3061 _cairo_ps_surface_emit_ccitt_image (cairo_ps_surface_t *surface,
3062 cairo_emit_surface_mode_t mode,
3063 cairo_emit_surface_params_t *params)
3064 {
3065 cairo_status_t status;
3066 const unsigned char *ccitt_data;
3067 unsigned long ccitt_data_len;
3068 const unsigned char *ccitt_params_data;
3069 unsigned long ccitt_params_data_len;
3070 char *ccitt_params_string;
3071 cairo_ccitt_params_t ccitt_params;
3072
3073 if (unlikely (params->src_surface->status))
3074 return params->src_surface->status;
3075
3076 cairo_surface_get_mime_data (params->src_surface, CAIRO_MIME_TYPE_CCITT_FAX,
3077 &ccitt_data, &ccitt_data_len);
3078 if (ccitt_data == NULL)
3079 return CAIRO_INT_STATUS_UNSUPPORTED;
3080
3081 cairo_surface_get_mime_data (params->src_surface, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
3082 &ccitt_params_data, &ccitt_params_data_len);
3083 if (ccitt_params_data == NULL)
3084 return CAIRO_INT_STATUS_UNSUPPORTED;
3085
3086 /* ensure params_string is null terminated */
3087 ccitt_params_string = malloc (ccitt_params_data_len + 1);
3088 memcpy (ccitt_params_string, ccitt_params_data, ccitt_params_data_len);
3089 ccitt_params_string[ccitt_params_data_len] = 0;
3090 status = _cairo_tag_parse_ccitt_params (ccitt_params_string, &ccitt_params);
3091 if (unlikely(status))
3092 return status;
3093
3094 free (ccitt_params_string);
3095
3096 if (ccitt_params.columns <= 0 || ccitt_params.rows <= 0)
3097 return CAIRO_INT_STATUS_UNSUPPORTED;
3098
3099 /* At this point we know emitting ccitt will succeed. */
3100 if (mode == CAIRO_EMIT_SURFACE_ANALYZE) {
3101 params->is_image = TRUE;
3102 params->approx_size = ccitt_data_len;
3103 return CAIRO_STATUS_SUCCESS;
3104 }
3105
3106 if (surface->paint_proc) {
3107 /* Emit the image data as a base85-encoded string which will
3108 * be used as the data source for the image operator later. */
3109 _cairo_output_stream_printf (surface->stream,
3110 "/CairoData [\n");
3111
3112 status = _cairo_ps_surface_emit_base85_string (surface,
3113 ccitt_data,
3114 ccitt_data_len,
3115 CAIRO_PS_COMPRESS_NONE,
3116 TRUE);
3117 if (unlikely (status))
3118 return status;
3119
3120 _cairo_output_stream_printf (surface->stream,
3121 "] def\n");
3122 _cairo_output_stream_printf (surface->stream,
3123 "/CairoDataIndex 0 def\n");
3124 } else {
3125 _cairo_output_stream_printf (surface->stream,
3126 "/cairo_ascii85_file currentfile /ASCII85Decode filter def\n");
3127 }
3128
3129 if (!params->stencil_mask) {
3130 _cairo_output_stream_printf (surface->stream,
3131 "/DeviceGray setcolorspace\n");
3132 }
3133
3134 _cairo_output_stream_printf (surface->stream,
3135 "<<\n"
3136 " /ImageType 1\n"
3137 " /Width %d\n"
3138 " /Height %d\n"
3139 " /BitsPerComponent 1\n"
3140 " /Interpolate %s\n"
3141 " /Decode [ 0 1 ]\n",
3142 ccitt_params.columns,
3143 ccitt_params.rows,
3144 get_interpolate (params->filter));
3145
3146 if (surface->paint_proc) {
3147 _cairo_output_stream_printf (surface->stream,
3148 " /DataSource { cairo_data_source }\n");
3149 } else {
3150 _cairo_output_stream_printf (surface->stream,
3151 " /DataSource cairo_ascii85_file\n");
3152 }
3153
3154 _cairo_output_stream_printf (surface->stream,
3155 " << /Columns %d /Rows %d /K %d\n",
3156 ccitt_params.columns,
3157 ccitt_params.rows,
3158 ccitt_params.k);
3159
3160 if (ccitt_params.end_of_line)
3161 _cairo_output_stream_printf (surface->stream, " /EndOfLine true\n");
3162
3163 if (ccitt_params.encoded_byte_align)
3164 _cairo_output_stream_printf (surface->stream, " /EncodedByteAlign true\n");
3165
3166 if (!ccitt_params.end_of_block)
3167 _cairo_output_stream_printf (surface->stream, " /EndOfBlock false\n");
3168
3169 if (ccitt_params.black_is_1)
3170 _cairo_output_stream_printf (surface->stream, " /BlackIs1 true\n");
3171
3172 if (ccitt_params.damaged_rows_before_error > 0) {
3173 _cairo_output_stream_printf (surface->stream,
3174 " /DamagedRowsBeforeError %d\n",
3175 ccitt_params.damaged_rows_before_error);
3176 }
3177
3178 _cairo_output_stream_printf (surface->stream,
3179 " >> /CCITTFaxDecode filter\n");
3180
3181 _cairo_output_stream_printf (surface->stream,
3182 " /ImageMatrix [ %d 0 0 %d 0 %d ]\n"
3183 ">>\n"
3184 "%s%s\n",
3185 ccitt_params.columns,
3186 -ccitt_params.rows,
3187 ccitt_params.rows,
3188 surface->paint_proc ? "" : "cairo_",
3189 params->stencil_mask ? "imagemask" : "image");
3190
3191 if (!surface->paint_proc) {
3192 /* Emit the image data as a base85-encoded string which will
3193 * be used as the data source for the image operator. */
3194 status = _cairo_ps_surface_emit_base85_string (surface,
3195 ccitt_data,
3196 ccitt_data_len,
3197 CAIRO_PS_COMPRESS_NONE,
3198 FALSE);
3199 }
3200
3201 return status;
3202 }
3203
3204 /* The '|' character is not used in PS (including ASCII85). We can
3205 * speed up the search by first searching for the first char before
3206 * comparing strings.
3207 */
3208 #define SUBFILE_FILTER_EOD "|EOD|"
3209
3210 /* Count number of non overlapping occurrences of SUBFILE_FILTER_EOD in data. */
3211 static int
3212 count_eod_strings (const unsigned char *data, unsigned long data_len)
3213 {
3214 const unsigned char *p = data;
3215 const unsigned char *end;
3216 int first_char, len, count;
3217 const char *eod_str = SUBFILE_FILTER_EOD;
3218
3219 first_char = eod_str[0];
3220 len = strlen (eod_str);
3221 p = data;
3222 end = data + data_len - len + 1;
3223 count = 0;
3224 while (p < end) {
3225 p = memchr (p, first_char, end - p);
3226 if (!p)
3227 break;
3228
3229 if (memcmp (p, eod_str, len) == 0) {
3230 count++;
3231 p += len;
3232 }
3233 }
3234
3235 return count;
3236 }
3237
3238 static cairo_status_t
3239 _cairo_ps_surface_emit_eps (cairo_ps_surface_t *surface,
3240 cairo_emit_surface_mode_t mode,
3241 cairo_emit_surface_params_t *params)
3242 {
3243 cairo_status_t status;
3244 const unsigned char *eps_data = NULL;
3245 unsigned long eps_data_len;
3246 const unsigned char *eps_params_string = NULL;
3247 unsigned long eps_params_string_len;
3248 char *params_string = NULL;
3249 cairo_eps_params_t eps_params;
3250 cairo_matrix_t mat;
3251 double eps_width, eps_height;
3252
3253 if (unlikely (params->src_surface->status))
3254 return params->src_surface->status;
3255
3256 /* We only embed EPS with level 3 as we may use ReusableStreamDecode and we
3257 * don't know what level the EPS file requires. */
3258 if (surface->ps_level == CAIRO_PS_LEVEL_2)
3259 return CAIRO_INT_STATUS_UNSUPPORTED;
3260
3261 cairo_surface_get_mime_data (params->src_surface, CAIRO_MIME_TYPE_EPS,
3262 &eps_data, &eps_data_len);
3263 if (eps_data == NULL)
3264 return CAIRO_INT_STATUS_UNSUPPORTED;
3265
3266 cairo_surface_get_mime_data (params->src_surface, CAIRO_MIME_TYPE_EPS_PARAMS,
3267 &eps_params_string, &eps_params_string_len);
3268 if (eps_params_string == NULL)
3269 return CAIRO_INT_STATUS_UNSUPPORTED;
3270
3271 /* ensure params_string is null terminated */
3272 params_string = malloc (eps_params_string_len + 1);
3273 memcpy (params_string, eps_params_string, eps_params_string_len);
3274 params_string[eps_params_string_len] = 0;
3275 status = _cairo_tag_parse_eps_params (params_string, &eps_params);
3276 if (unlikely(status))
3277 return status;
3278
3279 /* At this point we know emitting EPS will succeed. */
3280 if (mode == CAIRO_EMIT_SURFACE_ANALYZE) {
3281 params->is_image = FALSE;
3282 params->approx_size = eps_data_len;
3283 surface->contains_eps = TRUE;
3284
3285 /* Find number of occurences of SUBFILE_FILTER_EOD in the EPS data.
3286 * We will need it before emitting the data if a ReusableStream is used.
3287 */
3288 params->eod_count = count_eod_strings (eps_data, eps_data_len);
3289 return CAIRO_STATUS_SUCCESS;
3290 }
3291
3292 surface->ps_level_used = CAIRO_PS_LEVEL_3;
3293 _cairo_output_stream_printf (surface->stream, "cairo_eps_begin\n");
3294
3295 eps_width = eps_params.bbox.p2.x - eps_params.bbox.p1.x;
3296 eps_height = eps_params.bbox.p2.y - eps_params.bbox.p1.y;
3297 cairo_matrix_init_translate (&mat,
3298 params->src_surface_extents->x,
3299 params->src_surface_extents->y);
3300 cairo_matrix_scale (&mat,
3301 params->src_surface_extents->width/eps_width,
3302 params->src_surface_extents->height/eps_height);
3303 cairo_matrix_scale (&mat, 1, -1);
3304 cairo_matrix_translate (&mat, -eps_params.bbox.p1.x, -eps_params.bbox.p2.y);
3305
3306 if (! _cairo_matrix_is_identity (&mat)) {
3307 _cairo_output_stream_printf (surface->stream, "[ ");
3308 _cairo_output_stream_print_matrix (surface->stream, &mat);
3309 _cairo_output_stream_printf (surface->stream, " ] concat\n");
3310 }
3311
3312 _cairo_output_stream_printf (surface->stream,
3313 "%f %f %f %f rectclip\n",
3314 eps_params.bbox.p1.x,
3315 eps_params.bbox.p1.y,
3316 eps_width,
3317 eps_height);
3318
3319 _cairo_output_stream_write (surface->stream, eps_data, eps_data_len);
3320 _cairo_output_stream_printf (surface->stream, "\ncairo_eps_end\n");
3321
3322 return CAIRO_STATUS_SUCCESS;
3323 }
3324
29373325 static cairo_status_t
29383326 _cairo_ps_surface_emit_recording_surface (cairo_ps_surface_t *surface,
29393327 cairo_surface_t *recording_surface,
29473335 cairo_content_t old_content;
29483336 cairo_surface_clipper_t old_clipper;
29493337 cairo_int_status_t status;
3338 cairo_surface_t *free_me = NULL;
3339 unsigned int id;
3340 int i, recording_surf_stack_size;
3341
3342 /* Prevent infinite recursion if the recording_surface references a recording
3343 * currently being emitted */
3344 recording_surf_stack_size = _cairo_array_num_elements (&surface->recording_surf_stack);
3345 for (i = 0; i < recording_surf_stack_size; i++) {
3346 _cairo_array_copy_element (&surface->recording_surf_stack, i, &id);
3347 if (id == recording_surface->unique_id)
3348 return CAIRO_STATUS_SUCCESS;
3349 }
3350 id = recording_surface->unique_id;
3351 status = _cairo_array_append (&surface->recording_surf_stack, &id);
3352 if (unlikely (status))
3353 return status;
3354
3355 if (_cairo_surface_is_snapshot (recording_surface))
3356 free_me = recording_surface = _cairo_surface_snapshot_get_target (recording_surface);
29503357
29513358 old_content = surface->content;
29523359 old_width = surface->width;
30143421
30153422 _cairo_pdf_operators_set_cairo_to_pdf_matrix (&surface->pdf_operators,
30163423 &surface->cairo_to_ps);
3424 cairo_surface_destroy (free_me);
3425
3426 _cairo_array_truncate (&surface->recording_surf_stack, recording_surf_stack_size);
30173427
30183428 return status;
30193429 }
30603470 red, green, blue);
30613471 }
30623472
3063 static cairo_status_t
3473 /*
3474 * PS Forms are used for sources that have CAIRO_MIME_TYPE_UNIQUE_ID. They will be
3475 * emitted once in the PS header and can be rendered with the 'execform' operator.
3476 *
3477 * This function tries adding the source the form hash table. If the source does not
3478 * have CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_INT_STATUS_UNSUPPORTED is returned.
3479
3480 * @source: [in] the source for the form
3481 * @params: [in] source parameters
3482 * @test: [in] if TRUE, test if form will be used (excludes size check)
3483 * @ps_form [out] the new or exisiting entry int the hash table.
3484 * image or recording.
3485 */
3486 static cairo_int_status_t
3487 _cairo_ps_surface_use_form (cairo_ps_surface_t *surface,
3488 cairo_emit_surface_params_t *params,
3489 cairo_bool_t test,
3490 cairo_ps_form_t **ps_form)
3491 {
3492 cairo_ps_form_t source_key;
3493 cairo_ps_form_t *source_entry;
3494 unsigned char *unique_id = NULL;
3495 unsigned long unique_id_length = 0;
3496 cairo_status_t status;
3497 long max_size;
3498
3499 if (params->op != CAIRO_OPERATOR_OVER || params->stencil_mask)
3500 return CAIRO_INT_STATUS_UNSUPPORTED;
3501
3502 if (params->src_surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE)
3503 return CAIRO_INT_STATUS_UNSUPPORTED;
3504
3505 cairo_surface_get_mime_data (params->src_surface, CAIRO_MIME_TYPE_UNIQUE_ID,
3506 (const unsigned char **) &source_key.unique_id,
3507 &source_key.unique_id_length);
3508 if (source_key.unique_id == NULL || source_key.unique_id_length == 0)
3509 return CAIRO_INT_STATUS_UNSUPPORTED;
3510
3511 if (test)
3512 return CAIRO_STATUS_SUCCESS;
3513
3514 source_key.filter = params->filter;
3515 _cairo_ps_form_init_key (&source_key);
3516 source_entry = _cairo_hash_table_lookup (surface->forms, &source_key.base);
3517 if (source_entry) {
3518 _cairo_rectangle_union (&source_entry->required_extents, params->src_op_extents);
3519 *ps_form = source_entry;
3520 return CAIRO_STATUS_SUCCESS;
3521 }
3522
3523 if (surface->ps_level == CAIRO_PS_LEVEL_3)
3524 max_size = MAX_L3_FORM_DATA;
3525 else
3526 max_size = MAX_L3_FORM_DATA;
3527
3528 /* Don't add any more Forms if we exceed the form memory limit */
3529 if (surface->total_form_size + params->approx_size > max_size)
3530 return CAIRO_INT_STATUS_UNSUPPORTED;
3531
3532 surface->total_form_size += params->approx_size > max_size;
3533 unique_id = _cairo_malloc (source_key.unique_id_length);
3534 if (unique_id == NULL)
3535 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
3536
3537 unique_id_length = source_key.unique_id_length;
3538 memcpy (unique_id, source_key.unique_id, unique_id_length);
3539
3540 source_entry = calloc (sizeof (cairo_ps_form_t), 1);
3541 if (source_entry == NULL) {
3542 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
3543 goto fail;
3544 }
3545
3546 source_entry->unique_id_length = unique_id_length;
3547 source_entry->unique_id = unique_id;
3548 source_entry->id = surface->num_forms++;
3549 source_entry->src_surface = cairo_surface_reference (params->src_surface);
3550 source_entry->required_extents = *params->src_op_extents;
3551 source_entry->filter = params->filter;
3552 source_entry->is_image = params->is_image;
3553 _cairo_ps_form_init_key (source_entry);
3554 status = _cairo_hash_table_insert (surface->forms, &source_entry->base);
3555 if (unlikely(status))
3556 goto fail;
3557
3558 *ps_form = source_entry;
3559 return CAIRO_STATUS_SUCCESS;
3560
3561 fail:
3562 free (unique_id);
3563 free (source_entry);
3564 return status;
3565 }
3566
3567 static cairo_int_status_t
3568 _cairo_ps_surface_emit_form (cairo_ps_surface_t *surface,
3569 cairo_emit_surface_params_t *params,
3570 cairo_bool_t test)
3571 {
3572 cairo_ps_form_t *ps_form;
3573 cairo_status_t status;
3574
3575 status = _cairo_ps_surface_use_form (surface,
3576 params,
3577 test,
3578 &ps_form);
3579 if (test || status)
3580 return status;
3581
3582 /* _cairo_ps_form_emit will use Level 3 if permitted by ps_level */
3583 if (surface->ps_level == CAIRO_PS_LEVEL_3)
3584 surface->ps_level_used = CAIRO_PS_LEVEL_3;
3585
3586 _cairo_output_stream_printf (surface->stream,
3587 "/cairoform-%d /Form findresource execform\n",
3588 ps_form->id);
3589
3590 return CAIRO_STATUS_SUCCESS;
3591 }
3592
3593 /* Emit a surface. This function has three modes.
3594 *
3595 * CAIRO_EMIT_SURFACE_ANALYZE: This will determine the surface type to
3596 * be emitted and approximate size. is_image is set to TRUE if the
3597 * emitted surface is an image surface (including mime images). This
3598 * is used by the caller to setup the correct CTM. approx_size is set
3599 * to the approximate size of the emitted surface and is used as an
3600 * input by the emit mode.
3601 *
3602 * CAIRO_EMIT_SURFACE_EMIT: Emits the surface will be emitted. The
3603 * approx_size and the surface unique id values are used to determine
3604 * if a Form should be used. If a form is used, the exec form
3605 * operation is emitted and the surface is added to the forms hash
3606 * table.
3607 *
3608 * CAIRO_EMIT_SURFACE_EMIT_FORM: Emits the form definition for the surface.
3609 *
3610 * Usage is:
3611 * 1) Setup input params and call with ANALYZE.
3612 * 2) Setup CTM for surface and call with EMIT using same params struct.
3613 * The EMIT_FORM mode is used when emitting the form definitions.
3614 */
3615 static cairo_int_status_t
30643616 _cairo_ps_surface_emit_surface (cairo_ps_surface_t *surface,
3065 const cairo_pattern_t *source_pattern,
3066 cairo_surface_t *source_surface,
3067 cairo_operator_t op,
3068 const cairo_rectangle_int_t *src_surface_extents,
3069 cairo_bool_t src_surface_bounded,
3070 const cairo_rectangle_int_t *src_op_extents,
3071 cairo_bool_t stencil_mask)
3617 cairo_emit_surface_mode_t mode,
3618 cairo_emit_surface_params_t *params)
30723619 {
30733620 cairo_int_status_t status;
3074
3075 if (source_pattern->type == CAIRO_PATTERN_TYPE_SURFACE &&
3076 source_pattern->extend != CAIRO_EXTEND_PAD && src_surface_bounded)
3077 {
3078 cairo_surface_t *surf = ((cairo_surface_pattern_t *) source_pattern)->surface;
3079
3080 status = _cairo_ps_surface_emit_jpeg_image (surface, surf, src_surface_extents->width, src_surface_extents->height);
3081 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
3621 cairo_output_stream_t *old_stream;
3622 cairo_bool_t use_form;
3623
3624 /* Try emitting as a form. Returns unsupported if the surface is
3625 * deemed unsuitable for a form. */
3626 use_form = FALSE;
3627 if (mode == CAIRO_EMIT_SURFACE_ANALYZE || mode == CAIRO_EMIT_SURFACE_EMIT) {
3628 status = _cairo_ps_surface_emit_form (surface,
3629 params,
3630 mode == CAIRO_EMIT_SURFACE_ANALYZE);
3631 use_form = (status == CAIRO_INT_STATUS_SUCCESS);
3632 if (status != CAIRO_INT_STATUS_SUCCESS && status != CAIRO_INT_STATUS_UNSUPPORTED)
30823633 return status;
3083 }
3084
3085 if (source_surface->type == CAIRO_SURFACE_TYPE_RECORDING) {
3086 if (source_surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) {
3087 cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) source_surface;
3088 status = _cairo_ps_surface_emit_recording_surface (surface, sub->target, &sub->extents, TRUE);
3634
3635 if (mode == CAIRO_EMIT_SURFACE_EMIT && status == CAIRO_INT_STATUS_SUCCESS)
3636 return status;
3637 }
3638
3639 status = _cairo_ps_surface_emit_eps (surface, mode, params);
3640 if (status == CAIRO_INT_STATUS_SUCCESS) {
3641 params->is_image = FALSE;
3642 goto surface_emitted;
3643 }
3644 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
3645 return status;
3646
3647 status = _cairo_ps_surface_emit_jpeg_image (surface, mode, params);
3648 if (status == CAIRO_INT_STATUS_SUCCESS) {
3649 params->is_image = TRUE;
3650 goto surface_emitted;
3651 }
3652 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
3653 return status;
3654
3655 status = _cairo_ps_surface_emit_ccitt_image (surface, mode, params);
3656 if (status == CAIRO_INT_STATUS_SUCCESS) {
3657 params->is_image = TRUE;
3658 goto surface_emitted;
3659 }
3660 if (status != CAIRO_INT_STATUS_UNSUPPORTED)
3661 return status;
3662
3663 if (mode == CAIRO_EMIT_SURFACE_ANALYZE) {
3664 /* Find size of image or recording surface by emitting to a memory stream */
3665 status = _cairo_pdf_operators_flush (&surface->pdf_operators);
3666 if (unlikely (status))
3667 return status;
3668
3669 old_stream = surface->stream;
3670 surface->stream = _cairo_memory_stream_create ();
3671 _cairo_pdf_operators_set_stream (&surface->pdf_operators, surface->stream);
3672 }
3673
3674 if (params->src_surface->type == CAIRO_SURFACE_TYPE_RECORDING) {
3675 params->is_image = FALSE;
3676 if (params->src_surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) {
3677 cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) params->src_surface;
3678 status = _cairo_ps_surface_emit_recording_surface (surface,
3679 sub->target,
3680 &sub->extents,
3681 TRUE);
30893682 } else {
3090 status = _cairo_ps_surface_emit_recording_surface (surface, source_surface, src_op_extents, FALSE);
3683 status = _cairo_ps_surface_emit_recording_surface (surface,
3684 params->src_surface,
3685 params->src_op_extents,
3686 FALSE);
30913687 }
30923688 } else {
3093 cairo_image_surface_t *image = (cairo_image_surface_t *) source_surface;
3094
3095 status = _cairo_ps_surface_emit_image (surface, image,
3096 op, source_pattern->filter, stencil_mask);
3097 }
3689 params->is_image = TRUE;
3690 status = _cairo_ps_surface_emit_image (surface, mode, params);
3691 }
3692
3693 if (mode == CAIRO_EMIT_SURFACE_ANALYZE) {
3694 unsigned char *data;
3695 unsigned long length;
3696
3697 status = _cairo_pdf_operators_flush (&surface->pdf_operators);
3698 if (unlikely (status))
3699 return status;
3700
3701 status = _cairo_memory_stream_destroy (surface->stream, &data, &length);
3702 free (data);
3703 if (unlikely (status))
3704 return status;
3705
3706 params->approx_size = length;
3707 surface->stream = old_stream;
3708 _cairo_pdf_operators_set_stream (&surface->pdf_operators,
3709 surface->stream);
3710 }
3711
3712 surface_emitted:
30983713
30993714 return status;
31003715 }
31013716
3717 static void
3718 _cairo_ps_form_emit (void *entry, void *closure)
3719 {
3720 cairo_ps_form_t *form = entry;
3721 cairo_ps_surface_t *surface = closure;
3722 cairo_emit_surface_params_t params;
3723 cairo_int_status_t status;
3724 cairo_output_stream_t *old_stream;
3725
3726 params.src_surface = form->src_surface;
3727 params.op = CAIRO_OPERATOR_OVER;
3728 params.src_op_extents = &form->required_extents;
3729 params.filter = form->filter;
3730 params.stencil_mask = FALSE;
3731 params.is_image = form->is_image;
3732 params.approx_size = 0;
3733
3734 _cairo_output_stream_printf (surface->final_stream,
3735 "%%%%BeginResource: form cairoform-%d\n",
3736 form->id);
3737
3738 _cairo_output_stream_printf (surface->final_stream,
3739 "/cairo_paint_form-%d",
3740 form->id);
3741 if (surface->ps_level == CAIRO_PS_LEVEL_3) {
3742 surface->paint_proc = FALSE;
3743 _cairo_output_stream_printf (surface->final_stream,
3744 "\n"
3745 "currentfile\n"
3746 "<< /Filter /SubFileDecode\n"
3747 " /DecodeParms << /EODString (%s) /EODCount 0 >>\n"
3748 ">> /ReusableStreamDecode filter\n",
3749 SUBFILE_FILTER_EOD);
3750 } else {
3751 surface->paint_proc = TRUE;
3752 _cairo_output_stream_printf (surface->final_stream,
3753 " {\n");
3754 }
3755 _cairo_output_stream_printf (surface->final_stream,
3756 "5 dict begin\n");
3757
3758 old_stream = surface->stream;
3759 surface->stream = surface->final_stream;
3760 _cairo_pdf_operators_set_stream (&surface->pdf_operators, surface->stream);
3761 status = _cairo_ps_surface_emit_surface (surface,
3762 CAIRO_EMIT_SURFACE_EMIT_FORM,
3763 &params);
3764 status = _cairo_pdf_operators_flush (&surface->pdf_operators);
3765 surface->stream = old_stream;
3766 _cairo_pdf_operators_set_stream (&surface->pdf_operators, surface->stream);
3767
3768 _cairo_output_stream_printf (surface->final_stream,
3769 "end\n");
3770 if (surface->ps_level == CAIRO_PS_LEVEL_3) {
3771 _cairo_output_stream_printf (surface->final_stream,
3772 "%s\n"
3773 "def\n",
3774 SUBFILE_FILTER_EOD);
3775 } else {
3776 _cairo_output_stream_printf (surface->final_stream,
3777 "} bind def\n");
3778 }
3779
3780 _cairo_output_stream_printf (surface->final_stream,
3781 "\n"
3782 "/cairoform-%d\n"
3783 "<<\n"
3784 " /FormType 1\n",
3785 form->id);
3786
3787 if (form->is_image) {
3788 _cairo_output_stream_printf (surface->final_stream,
3789 " /BBox [ 0 0 1 1 ]\n");
3790 } else {
3791 _cairo_output_stream_printf (surface->final_stream,
3792 " /BBox [ %d %d %d %d ]\n",
3793 form->required_extents.x,
3794 form->required_extents.y,
3795 form->required_extents.x + form->required_extents.width,
3796 form->required_extents.y + form->required_extents.height);
3797 }
3798
3799 _cairo_output_stream_printf (surface->final_stream,
3800 " /Matrix [ 1 0 0 1 0 0 ]\n"
3801 " /PaintProc { pop cairo_paint_form-%d",
3802 form->id);
3803
3804 if (surface->ps_level == CAIRO_PS_LEVEL_3) {
3805 _cairo_output_stream_printf (surface->final_stream,
3806 " dup 0 setfileposition cvx exec");
3807 }
3808 _cairo_output_stream_printf (surface->final_stream,
3809 " } bind\n"
3810 ">>\n"
3811 "/Form defineresource pop\n");
3812
3813 _cairo_output_stream_printf (surface->final_stream,
3814 "%%%%EndResource\n");
3815 if (status)
3816 surface->base.status = status;
3817 }
31023818
31033819 static void
31043820 _path_fixed_init_rectangle (cairo_path_fixed_t *path,
31413857 cairo_rectangle_int_t src_op_extents;
31423858 cairo_surface_t *source_surface;
31433859 double x_offset, y_offset;
3144 void *image_extra;
31453860 cairo_status_t status;
31463861 cairo_matrix_t cairo_p2d, ps_p2d;
31473862 cairo_path_fixed_t path;
3863 cairo_emit_surface_params_t params;
31483864 cairo_image_surface_t *image = NULL;
31493865
31503866 status = _cairo_pdf_operators_flush (&surface->pdf_operators);
31593875 &src_op_extents,
31603876 &source_surface,
31613877 &x_offset,
3162 &y_offset,
3163 &image_extra);
3878 &y_offset);
31643879 if (unlikely (status))
31653880 return status;
31663881
32353950 ps_p2d = surface->cairo_to_ps;
32363951 cairo_matrix_multiply (&ps_p2d, &cairo_p2d, &ps_p2d);
32373952 cairo_matrix_translate (&ps_p2d, x_offset, y_offset);
3238 if (!(pattern->type == CAIRO_PATTERN_TYPE_SURFACE &&
3239 ((cairo_surface_pattern_t *)pattern)->surface->type == CAIRO_SURFACE_TYPE_RECORDING))
3240 {
3953
3954 params.src_surface = image ? &image->base : source_surface;
3955 params.op = op;
3956 params.src_surface_extents = &src_surface_extents;
3957 params.src_surface_bounded = src_surface_bounded;
3958 params.src_op_extents = &src_op_extents;
3959 params.filter = pattern->filter;
3960 params.stencil_mask = stencil_mask;
3961 params.is_image = FALSE;
3962 params.approx_size = 0;
3963
3964 status = _cairo_ps_surface_emit_surface (surface, CAIRO_EMIT_SURFACE_ANALYZE, &params);
3965 if (unlikely (status))
3966 goto release_source;
3967
3968 if (params.is_image) {
32413969 cairo_matrix_translate (&ps_p2d, 0.0, src_surface_extents.height);
32423970 cairo_matrix_scale (&ps_p2d, 1.0, -1.0);
3971 cairo_matrix_scale (&ps_p2d, src_surface_extents.width, src_surface_extents.height);
32433972 }
32443973
32453974 if (! _cairo_matrix_is_identity (&ps_p2d)) {
32483977 _cairo_output_stream_printf (surface->stream, " ] concat\n");
32493978 }
32503979
3251 status = _cairo_ps_surface_emit_surface (surface,
3252 pattern,
3253 image ? &image->base : source_surface,
3254 op,
3255 &src_surface_extents,
3256 image ? TRUE : src_surface_bounded,
3257 &src_op_extents,
3258 stencil_mask);
3980 status = _cairo_ps_surface_emit_surface (surface, CAIRO_EMIT_SURFACE_EMIT, &params);
32593981
32603982 release_source:
32613983 if (image)
32623984 cairo_surface_destroy (&image->base);
32633985
3264 _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source_surface, image_extra);
3986 _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source_surface);
32653987
32663988 return status;
32673989 }
32773999 cairo_rectangle_int_t pattern_extents;
32784000 cairo_bool_t bounded;
32794001 cairo_matrix_t cairo_p2d, ps_p2d;
3280 cairo_bool_t old_use_string_datasource;
4002 cairo_bool_t old_paint_proc;
32814003 double x_offset, y_offset;
32824004 cairo_surface_t *source_surface;
32834005 cairo_image_surface_t *image = NULL;
3284 void *image_extra;
32854006 cairo_rectangle_int_t src_op_extents;
4007 cairo_emit_surface_params_t params;
32864008 cairo_extend_t extend = cairo_pattern_get_extend (pattern);
32874009
32884010 cairo_p2d = pattern->matrix;
32974019 &bounded,
32984020 &src_op_extents,
32994021 &source_surface,
3300 &x_offset, &y_offset,
3301 &image_extra);
4022 &x_offset, &y_offset);
33024023 if (unlikely (status))
33034024 return status;
33044025
33784099 pattern_extents.x, pattern_extents.y,
33794100 pattern_extents.width, pattern_extents.height);
33804101
3381 old_use_string_datasource = surface->use_string_datasource;
3382 surface->use_string_datasource = TRUE;
4102 if (extend == CAIRO_EXTEND_REPEAT || extend == CAIRO_EXTEND_REFLECT)
4103 src_op_extents = pattern_extents;
4104
4105 old_paint_proc = surface->paint_proc;
4106 surface->paint_proc = TRUE;
4107 params.src_surface = image ? &image->base : source_surface;
4108 params.op = op;
4109 params.src_surface_extents = &pattern_extents;
4110 params.src_surface_bounded = bounded;
4111 params.src_op_extents = &src_op_extents;
4112 params.filter = pattern->filter;
4113 params.stencil_mask = FALSE;
4114 params.is_image = FALSE;
4115 params.approx_size = 0;
4116 status = _cairo_ps_surface_emit_surface (surface, CAIRO_EMIT_SURFACE_ANALYZE, &params);
4117 if (unlikely (status))
4118 goto release_source;
4119
4120 if (params.is_image) {
4121 _cairo_output_stream_printf (surface->stream,
4122 "[ %d 0 0 %d 0 0 ] concat\n",
4123 pattern_extents.width, pattern_extents.height);
4124 }
4125
33834126 if (op == CAIRO_OPERATOR_SOURCE) {
33844127 _cairo_output_stream_printf (surface->stream,
33854128 "%d g %d %d %f %f rectfill\n",
33884131 xstep, ystep);
33894132 }
33904133
3391 if (extend == CAIRO_EXTEND_REPEAT || extend == CAIRO_EXTEND_REFLECT)
3392 src_op_extents = pattern_extents;
3393
3394 status = _cairo_ps_surface_emit_surface (surface,
3395 pattern,
3396 image ? &image->base : source_surface,
3397 op,
3398 &pattern_extents,
3399 bounded,
3400 &src_op_extents,
3401 FALSE);
4134 status = _cairo_ps_surface_emit_surface (surface, CAIRO_EMIT_SURFACE_EMIT, &params);
34024135 if (unlikely (status))
34034136 goto release_source;
34044137
3405 surface->use_string_datasource = old_use_string_datasource;
34064138 _cairo_output_stream_printf (surface->stream,
34074139 " Q } bind def\n");
34084140
34914223 " ]\n"
34924224 "makepattern setpattern\n");
34934225
4226 surface->paint_proc = old_paint_proc;
4227
34944228 release_source:
34954229 if (image)
34964230 cairo_surface_destroy (&image->base);
34974231
3498 _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source_surface, image_extra);
4232 _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source_surface);
34994233
35004234 return status;
35014235 }
3939 * Adrian Johnson <ajohnson@redneon.com>
4040 */
4141
42 #define _BSD_SOURCE /* for snprintf(), strdup() */
42 #define _DEFAULT_SOURCE /* for snprintf(), strdup() */
4343 #include "cairoint.h"
4444 #include "cairo-error-private.h"
4545
4444 #include "cairo-pattern-private.h"
4545 #include "cairo-scaled-font-private.h"
4646 #include "cairo-surface-backend-private.h"
47
48 #if _XOPEN_SOURCE >= 600 || defined (_ISOC99_SOURCE)
49 #define ISFINITE(x) isfinite (x)
50 #else
51 #define ISFINITE(x) ((x) * (x) >= 0.) /* check for NaNs */
52 #endif
5347
5448 /**
5549 * SECTION:cairo-scaled-font
29282922 {
29292923 cairo_scaled_glyph_page_t *page;
29302924
2925 assert (scaled_font->cache_frozen);
29312926 assert (! cairo_list_is_empty (&scaled_font->glyph_pages));
29322927 page = cairo_list_last_entry (&scaled_font->glyph_pages,
29332928 cairo_scaled_glyph_page_t,
29372932 _cairo_scaled_glyph_fini (scaled_font, scaled_glyph);
29382933
29392934 if (--page->num_glyphs == 0) {
2935 _cairo_scaled_font_thaw_cache (scaled_font);
2936 CAIRO_MUTEX_LOCK (scaled_font->mutex);
2937
29402938 CAIRO_MUTEX_LOCK (_cairo_scaled_glyph_page_cache_mutex);
29412939 /* Temporarily disconnect callback to avoid recursive locking */
29422940 cairo_scaled_glyph_page_cache.entry_destroy = NULL;
29452943 _cairo_scaled_glyph_page_destroy (scaled_font, page);
29462944 cairo_scaled_glyph_page_cache.entry_destroy = _cairo_scaled_glyph_page_pluck;
29472945 CAIRO_MUTEX_UNLOCK (_cairo_scaled_glyph_page_cache_mutex);
2946
2947 CAIRO_MUTEX_UNLOCK (scaled_font->mutex);
2948 _cairo_scaled_font_freeze_cache (scaled_font);
29482949 }
29492950 }
29502951
12011201 _write_image_surface (cairo_output_stream_t *output,
12021202 const cairo_image_surface_t *image)
12031203 {
1204 int stride, row, width;
1204 int row, width;
1205 ptrdiff_t stride;
12051206 uint8_t row_stack[CAIRO_STACK_BUFFER_SIZE];
12061207 uint8_t *rowdata;
12071208 uint8_t *data;
10241024 {
10251025 cairo_status_t status;
10261026
1027 surface->finished = TRUE;
1028
10291027 /* call finish even if in error mode */
10301028 if (surface->backend->finish) {
10311029 status = surface->backend->finish (surface);
10321030 if (unlikely (status))
10331031 _cairo_surface_set_error (surface, status);
10341032 }
1033
1034 surface->finished = TRUE;
10351035
10361036 assert (surface->snapshot_of == NULL);
10371037 assert (!_cairo_surface_has_snapshots (surface));
12231223 free (mime_data);
12241224 }
12251225
1226
1227 static const char *_cairo_surface_image_mime_types[] = {
1228 CAIRO_MIME_TYPE_JPEG,
1229 CAIRO_MIME_TYPE_PNG,
1230 CAIRO_MIME_TYPE_JP2,
1231 CAIRO_MIME_TYPE_JBIG2,
1232 CAIRO_MIME_TYPE_CCITT_FAX,
1233 };
1234
1235 cairo_bool_t
1236 _cairo_surface_has_mime_image (cairo_surface_t *surface)
1237 {
1238 cairo_user_data_slot_t *slots;
1239 int i, j, num_slots;
1240
1241 /* Prevent reads of the array during teardown */
1242 if (! CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count))
1243 return FALSE;
1244
1245 /* The number of mime-types attached to a surface is usually small,
1246 * typically zero. Therefore it is quicker to do a strcmp() against
1247 * each key than it is to intern the string (i.e. compute a hash,
1248 * search the hash table, and do a final strcmp).
1249 */
1250 num_slots = surface->mime_data.num_elements;
1251 slots = _cairo_array_index (&surface->mime_data, 0);
1252 for (i = 0; i < num_slots; i++) {
1253 if (slots[i].key != NULL) {
1254 for (j = 0; j < ARRAY_LENGTH (_cairo_surface_image_mime_types); j++) {
1255 if (strcmp ((char *) slots[i].key, _cairo_surface_image_mime_types[j]) == 0)
1256 return TRUE;
1257 }
1258 }
1259 }
1260
1261 return FALSE;
1262 }
1263
1264 /**
1265 * CAIRO_MIME_TYPE_CCITT_FAX:
1266 *
1267 * Group 3 or Group 4 CCITT facsimile encoding (International
1268 * Telecommunication Union, Recommendations T.4 and T.6.)
1269 *
1270 * Since: 1.16
1271 **/
1272
1273 /**
1274 * CAIRO_MIME_TYPE_CCITT_FAX_PARAMS:
1275 *
1276 * Decode parameters for Group 3 or Group 4 CCITT facsimile encoding.
1277 * See [CCITT Fax Images][ccitt].
1278 *
1279 * Since: 1.16
1280 **/
1281
1282 /**
1283 * CAIRO_MIME_TYPE_EPS:
1284 *
1285 * Encapsulated PostScript file.
1286 * [Encapsulated PostScript File Format Specification](http://wwwimages.adobe.com/content/dam/Adobe/endevnet/postscript/pdfs/5002.EPSF_Spec.pdf)
1287 *
1288 * Since: 1.16
1289 **/
1290
1291 /**
1292 * CAIRO_MIME_TYPE_EPS_PARAMS:
1293 *
1294 * Embedding parameters Encapsulated PostScript data.
1295 * See [Embedding EPS files][eps].
1296 *
1297 * Since: 1.16
1298 **/
1299
12261300 /**
12271301 * CAIRO_MIME_TYPE_JBIG2:
12281302 *
13131387 * The recognized MIME types are the following: %CAIRO_MIME_TYPE_JPEG,
13141388 * %CAIRO_MIME_TYPE_PNG, %CAIRO_MIME_TYPE_JP2, %CAIRO_MIME_TYPE_URI,
13151389 * %CAIRO_MIME_TYPE_UNIQUE_ID, %CAIRO_MIME_TYPE_JBIG2,
1316 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL, %CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID.
1390 * %CAIRO_MIME_TYPE_JBIG2_GLOBAL, %CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID,
1391 * %CAIRO_MIME_TYPE_CCITT_FAX, %CAIRO_MIME_TYPE_CCITT_FAX_PARAMS.
13171392 *
13181393 * See corresponding backend surface docs for details about which MIME
13191394 * types it can handle. Caution: the associated MIME data will be
13851460 return _cairo_surface_set_error (surface, status);
13861461 }
13871462
1463 surface->is_clear = FALSE;
1464
13881465 return CAIRO_STATUS_SUCCESS;
13891466 }
13901467 slim_hidden_def (cairo_surface_set_mime_data);
14581535 _cairo_user_data_array_foreach (&dst->mime_data,
14591536 _cairo_mime_data_reference,
14601537 NULL);
1538
1539 dst->is_clear = FALSE;
14611540
14621541 return CAIRO_STATUS_SUCCESS;
14631542 }
25702649 pattern = cairo_pattern_create_for_surface ((cairo_surface_t *)glyph_surface);
25712650 cairo_matrix_init_translate (&matrix, - x, - y);
25722651 cairo_pattern_set_matrix (pattern, &matrix);
2573 status = surface->backend->paint (surface, op, pattern, clip);
2652 if (op == CAIRO_OPERATOR_SOURCE || op == CAIRO_OPERATOR_CLEAR)
2653 status = surface->backend->mask (surface, op, pattern, pattern, clip);
2654 else
2655 status = surface->backend->paint (surface, op, pattern, clip);
25742656 }
25752657
25762658 return status;
4747
4848 typedef struct cairo_svg_document cairo_svg_document_t;
4949
50 typedef struct _cairo_svg_source_surface {
51 cairo_hash_entry_t base;
52 unsigned int id;
53 unsigned char *unique_id;
54 unsigned long unique_id_length;
55 } cairo_svg_source_surface_t;
56
5057 typedef struct cairo_svg_surface {
5158 cairo_surface_t base;
5259
5461
5562 double width;
5663 double height;
64 cairo_bool_t surface_bounded;
5765
5866 cairo_svg_document_t *document;
5967
6068 cairo_output_stream_t *xml_node;
6169 cairo_array_t page_set;
70 cairo_hash_table_t *source_surfaces;
6271
6372 cairo_surface_clipper_t clipper;
6473 unsigned int clip_level;
3838 * Carl Worth <cworth@cworth.org>
3939 */
4040
41 #define _BSD_SOURCE /* for snprintf() */
41 #define _DEFAULT_SOURCE /* for snprintf() */
4242 #include "cairoint.h"
4343
4444 #include "cairo-svg.h"
9393 {
9494 CAIRO_MIME_TYPE_JPEG,
9595 CAIRO_MIME_TYPE_PNG,
96 CAIRO_MIME_TYPE_UNIQUE_ID,
9697 CAIRO_MIME_TYPE_URI,
9798 NULL
9899 };
118119 {
119120 "1.1",
120121 "1.2"
122 };
123
124 static const char * _cairo_svg_unit_strings[] =
125 {
126 [CAIRO_SVG_UNIT_USER] = "",
127 [CAIRO_SVG_UNIT_EM] = "em",
128 [CAIRO_SVG_UNIT_EX] = "ex",
129 [CAIRO_SVG_UNIT_PX] = "px",
130 [CAIRO_SVG_UNIT_IN] = "in",
131 [CAIRO_SVG_UNIT_CM] = "cm",
132 [CAIRO_SVG_UNIT_MM] = "mm",
133 [CAIRO_SVG_UNIT_PT] = "pt",
134 [CAIRO_SVG_UNIT_PC] = "pc",
135 [CAIRO_SVG_UNIT_PERCENT] = "%"
121136 };
122137
123138 struct cairo_svg_page {
134149
135150 double width;
136151 double height;
152 cairo_svg_unit_t unit;
137153
138154 cairo_output_stream_t *xml_node_defs;
139155 cairo_output_stream_t *xml_node_glyphs;
175191 _cairo_svg_surface_create_for_document (cairo_svg_document_t *document,
176192 cairo_content_t content,
177193 double width,
178 double height);
194 double height,
195 cairo_bool_t bounded);
196
179197 static cairo_surface_t *
180198 _cairo_svg_surface_create_for_stream_internal (cairo_output_stream_t *stream,
181199 double width,
251269 * or %CAIRO_MIME_TYPE_PNG is specified, the corresponding data is
252270 * Base64-encoded and emitted.
253271 *
272 * If %CAIRO_MIME_TYPE_UNIQUE_ID is present, all surfaces with the same
273 * unique identifier will only be embedded once.
274 *
254275 * Return value: a pointer to the newly created surface. The caller
255276 * owns the surface and should call cairo_surface_destroy() when done
256277 * with it.
396417 return NULL;
397418
398419 return _cairo_svg_version_strings[version];
420 }
421
422 /**
423 * cairo_svg_surface_set_document_unit:
424 * @surface: a SVG #cairo_surface_t
425 * @unit: SVG unit
426 *
427 * Use the specified unit for the width and height of the generated SVG file.
428 * See #cairo_svg_unit_t for a list of available unit values that can be used
429 * here.
430 *
431 * This function can be called at any time before generating the SVG file.
432 *
433 * However to minimize the risk of ambiguities it's recommended to call it
434 * before any drawing operations have been performed on the given surface, to
435 * make it clearer what the unit used in the drawing operations is.
436 *
437 * The simplest way to do this is to call this function immediately after
438 * creating the SVG surface.
439 *
440 * Note if this function is never called, the default unit for SVG documents
441 * generated by cairo will be "pt". This is for historical reasons.
442 *
443 * Since: 1.16
444 **/
445 void
446 cairo_svg_surface_set_document_unit (cairo_surface_t *abstract_surface,
447 cairo_svg_unit_t unit)
448 {
449 cairo_svg_surface_t *surface = NULL; /* hide compiler warning */
450
451 if (! _extract_svg_surface (abstract_surface, &surface))
452 return;
453
454 if (unit <= CAIRO_SVG_UNIT_PERCENT)
455 surface->document->unit = unit;
456 }
457
458 /**
459 * cairo_svg_surface_get_document_unit:
460 * @surface: a SVG #cairo_surface_t
461 *
462 * Get the unit of the SVG surface.
463 *
464 * If the surface passed as an argument is not a SVG surface, the function
465 * sets the error status to CAIRO_STATUS_SURFACE_TYPE_MISMATCH and returns
466 * CAIRO_SVG_UNIT_USER.
467 *
468 * Return value: the SVG unit of the SVG surface.
469 *
470 * Since: 1.16
471 **/
472 cairo_svg_unit_t
473 cairo_svg_surface_get_document_unit (cairo_surface_t *abstract_surface)
474 {
475 cairo_svg_surface_t *surface = NULL; /* hide compiler warning */
476
477 if (! _extract_svg_surface (abstract_surface, &surface)) {
478 _cairo_error_throw (CAIRO_STATUS_SURFACE_TYPE_MISMATCH);
479 return CAIRO_SVG_UNIT_USER;
480 }
481
482 return surface->document->unit;
483 }
484
485 static void
486 _cairo_svg_source_surface_init_key (cairo_svg_source_surface_t *key)
487 {
488 if (key->unique_id && key->unique_id_length > 0) {
489 key->base.hash = _cairo_hash_bytes (_CAIRO_HASH_INIT_VALUE,
490 key->unique_id, key->unique_id_length);
491 } else {
492 key->base.hash = key->id;
493 }
494 }
495
496 static cairo_bool_t
497 _cairo_svg_source_surface_equal (const void *key_a, const void *key_b)
498 {
499 const cairo_svg_source_surface_t *a = key_a;
500 const cairo_svg_source_surface_t *b = key_b;
501
502 if (a->unique_id && b->unique_id && a->unique_id_length == b->unique_id_length)
503 return (memcmp (a->unique_id, b->unique_id, a->unique_id_length) == 0);
504
505 return (a->id == b->id);
506 }
507
508 static void
509 _cairo_svg_source_surface_pluck (void *entry, void *closure)
510 {
511 cairo_svg_source_surface_t *surface_entry = entry;
512 cairo_hash_table_t *patterns = closure;
513
514 _cairo_hash_table_remove (patterns, &surface_entry->base);
515 free (surface_entry->unique_id);
516 free (surface_entry);
517 }
518
519 static cairo_status_t
520 _cairo_svg_surface_add_source_surface (cairo_svg_surface_t *surface,
521 cairo_surface_t *source_surface,
522 int *source_id,
523 cairo_bool_t *is_new)
524 {
525 cairo_svg_source_surface_t source_key;
526 cairo_svg_source_surface_t *source_entry;
527 unsigned char *unique_id = NULL;
528 unsigned long unique_id_length = 0;
529 cairo_status_t status;
530
531 source_key.id = source_surface->unique_id;
532 cairo_surface_get_mime_data (source_surface, CAIRO_MIME_TYPE_UNIQUE_ID,
533 (const unsigned char **) &source_key.unique_id,
534 &source_key.unique_id_length);
535 _cairo_svg_source_surface_init_key (&source_key);
536 source_entry = _cairo_hash_table_lookup (surface->source_surfaces, &source_key.base);
537 if (source_entry) {
538 *source_id = source_entry->id;
539 *is_new = FALSE;
540 return CAIRO_STATUS_SUCCESS;
541 }
542
543 if (source_key.unique_id && source_key.unique_id_length > 0) {
544 unique_id = _cairo_malloc (source_key.unique_id_length);
545 if (unique_id == NULL) {
546 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
547 }
548
549 unique_id_length = source_key.unique_id_length;
550 memcpy (unique_id, source_key.unique_id, unique_id_length);
551 } else {
552 unique_id = NULL;
553 unique_id_length = 0;
554 }
555
556 source_entry = malloc (sizeof (cairo_svg_source_surface_t));
557 if (source_entry == NULL) {
558 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
559 goto fail;
560 }
561
562 source_entry->id = source_key.id;
563 source_entry->unique_id_length = unique_id_length;
564 source_entry->unique_id = unique_id;
565 _cairo_svg_source_surface_init_key (source_entry);
566 status = _cairo_hash_table_insert (surface->source_surfaces, &source_entry->base);
567 if (unlikely(status))
568 goto fail;
569
570 *is_new = TRUE;
571 *source_id = source_entry->id;
572 return CAIRO_STATUS_SUCCESS;
573
574 fail:
575 free (unique_id);
576 free (source_entry);
577 return status;
399578 }
400579
401580 static cairo_bool_t
469648 _cairo_svg_surface_create_for_document (cairo_svg_document_t *document,
470649 cairo_content_t content,
471650 double width,
472 double height)
651 double height,
652 cairo_bool_t bounded)
473653 {
474654 cairo_svg_surface_t *surface;
475655 cairo_surface_t *paginated;
487667
488668 surface->width = width;
489669 surface->height = height;
670 surface->surface_bounded = bounded;
490671
491672 surface->document = _cairo_svg_document_reference (document);
492673
519700 surface->force_fallbacks = FALSE;
520701 surface->content = content;
521702
703 surface->source_surfaces = _cairo_hash_table_create (_cairo_svg_source_surface_equal);
704 if (unlikely (surface->source_surfaces == NULL)) {
705 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
706 goto CLEANUP;
707 }
708
522709 paginated = _cairo_paginated_surface_create (&surface->base,
523710 surface->content,
524711 &cairo_svg_surface_paginated_backend);
560747 }
561748
562749 surface = _cairo_svg_surface_create_for_document (document, CAIRO_CONTENT_COLOR_ALPHA,
563 width, height);
750 width, height, TRUE);
564751 if (surface->status) {
565752 status = _cairo_svg_document_destroy (document);
566753 return surface;
10091196 _cairo_array_fini (&surface->page_set);
10101197
10111198 _cairo_surface_clipper_reset (&surface->clipper);
1199
1200 _cairo_hash_table_foreach (surface->source_surfaces,
1201 _cairo_svg_source_surface_pluck,
1202 surface->source_surfaces);
1203 _cairo_hash_table_destroy (surface->source_surfaces);
10121204
10131205 status2 = _cairo_svg_document_destroy (document);
10141206 if (status == CAIRO_STATUS_SUCCESS)
12811473
12821474 static cairo_status_t
12831475 _cairo_svg_surface_emit_surface (cairo_svg_document_t *document,
1284 cairo_surface_t *surface)
1476 cairo_surface_t *surface,
1477 int source_id)
12851478 {
12861479 cairo_rectangle_int_t extents;
12871480 cairo_bool_t is_bounded;
12891482 const unsigned char *uri;
12901483 unsigned long uri_len;
12911484
1292 if (_cairo_user_data_array_get_data (&surface->user_data,
1293 (cairo_user_data_key_t *) document))
1294 {
1295 return CAIRO_STATUS_SUCCESS;
1296 }
1297
12981485 is_bounded = _cairo_surface_get_extents (surface, &extents);
12991486 assert (is_bounded);
13001487
13011488 _cairo_output_stream_printf (document->xml_node_defs,
13021489 "<image id=\"image%d\" width=\"%d\" height=\"%d\"",
1303 surface->unique_id,
1490 source_id,
13041491 extents.width, extents.height);
13051492
13061493 _cairo_output_stream_printf (document->xml_node_defs, " xlink:href=\"");
13191506
13201507 _cairo_output_stream_printf (document->xml_node_defs, "\"/>\n");
13211508
1322 /* and tag it */
1323 return _cairo_user_data_array_set_data (&surface->user_data,
1324 (cairo_user_data_key_t *) document,
1325 document, NULL);
1509 return CAIRO_STATUS_SUCCESS;
13261510 }
13271511
13281512 static cairo_status_t
13361520 {
13371521 cairo_status_t status;
13381522 cairo_matrix_t p2u;
1523 int source_id;
1524 cairo_bool_t is_new;
13391525
13401526 p2u = pattern->base.matrix;
13411527 status = cairo_matrix_invert (&p2u);
13421528 /* cairo_pattern_set_matrix ensures the matrix is invertible */
13431529 assert (status == CAIRO_STATUS_SUCCESS);
13441530
1345 status = _cairo_svg_surface_emit_surface (svg_surface->document,
1346 pattern->surface);
1531 status = _cairo_svg_surface_add_source_surface (svg_surface,
1532 pattern->surface,
1533 &source_id,
1534 &is_new);
13471535 if (unlikely (status))
13481536 return status;
1537
1538 if (is_new) {
1539 status = _cairo_svg_surface_emit_surface (svg_surface->document,
1540 pattern->surface,
1541 source_id);
1542 if (unlikely (status))
1543 return status;
1544 }
13491545
13501546 if (pattern_id != invalid_pattern_id) {
13511547 cairo_rectangle_int_t extents;
13681564
13691565 _cairo_output_stream_printf (output,
13701566 "<use xlink:href=\"#image%d\"",
1371 pattern->surface->unique_id);
1567 source_id);
13721568 if (extra_attributes)
13731569 _cairo_output_stream_printf (output, " %s", extra_attributes);
13741570
13891585
13901586 static cairo_status_t
13911587 _cairo_svg_surface_emit_recording_surface (cairo_svg_document_t *document,
1392 cairo_recording_surface_t *source)
1588 cairo_recording_surface_t *source,
1589 int source_id)
13931590 {
13941591 cairo_status_t status;
13951592 cairo_surface_t *paginated_surface;
13961593 cairo_svg_surface_t *svg_surface;
13971594 cairo_array_t *page_set;
1398
1595 cairo_rectangle_int_t extents;
1596 cairo_bool_t bounded;
13991597 cairo_output_stream_t *contents;
14001598
1401 if (_cairo_user_data_array_get_data (&source->base.user_data,
1402 (cairo_user_data_key_t *) document))
1403 {
1404 return CAIRO_STATUS_SUCCESS;
1405 }
1406
1599 bounded = _cairo_surface_get_extents (&source->base, &extents);
14071600 paginated_surface = _cairo_svg_surface_create_for_document (document,
14081601 source->base.content,
1409 source->extents_pixels.width,
1410 source->extents_pixels.height);
1602 extents.width,
1603 extents.height,
1604 bounded);
14111605 if (unlikely (paginated_surface->status))
14121606 return paginated_surface->status;
14131607
14351629
14361630 if (! svg_surface->is_base_clip_emitted) {
14371631 svg_surface->is_base_clip_emitted = TRUE;
1438 _cairo_output_stream_printf (document->xml_node_defs,
1439 "<clipPath id=\"clip%d\">\n"
1440 " <rect width=\"%f\" height=\"%f\"/>\n"
1441 "</clipPath>\n",
1442 svg_surface->base_clip,
1443 svg_surface->width,
1444 svg_surface->height);
1632 if (_cairo_surface_get_extents (&svg_surface->base, &extents)) {
1633 _cairo_output_stream_printf (document->xml_node_defs,
1634 "<clipPath id=\"clip%d\">\n"
1635 " <rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\"/>\n"
1636 "</clipPath>\n",
1637 svg_surface->base_clip,
1638 extents.x,
1639 extents.y,
1640 extents.width,
1641 extents.height);
1642 }
14451643 }
14461644
14471645 if (source->base.content == CAIRO_CONTENT_ALPHA) {
14501648 "<g id=\"surface%d\" "
14511649 "clip-path=\"url(#clip%d)\" "
14521650 "filter=\"url(#alpha)\">\n",
1453 source->base.unique_id,
1651 source_id,
14541652 svg_surface->base_clip);
14551653 } else {
14561654 _cairo_output_stream_printf (document->xml_node_defs,
14571655 "<g id=\"surface%d\" "
14581656 "clip-path=\"url(#clip%d)\">\n",
1459 source->base.unique_id,
1657 source_id,
14601658 svg_surface->base_clip);
14611659 }
14621660
14821680 status = cairo_surface_status (paginated_surface);
14831681 cairo_surface_destroy (paginated_surface);
14841682
1485 if (unlikely (status))
1486 return status;
1487
1488 /* and tag it */
1489 return _cairo_user_data_array_set_data (&source->base.user_data,
1490 (cairo_user_data_key_t *) document,
1491 document, NULL);
1683 return status;
14921684 }
14931685
14941686 static cairo_recording_surface_t *
15151707 cairo_recording_surface_t *recording_surface;
15161708 cairo_matrix_t p2u;
15171709 cairo_status_t status;
1710 int source_id;
1711 cairo_bool_t is_new;
15181712
15191713 p2u = pattern->base.matrix;
15201714 status = cairo_matrix_invert (&p2u);
15211715 /* cairo_pattern_set_matrix ensures the matrix is invertible */
15221716 assert (status == CAIRO_STATUS_SUCCESS);
15231717
1718 status = _cairo_svg_surface_add_source_surface (surface,
1719 pattern->surface,
1720 &source_id,
1721 &is_new);
1722 if (unlikely (status))
1723 return status;
1724
15241725 recording_surface = to_recording_surface (pattern);
1525 status = _cairo_svg_surface_emit_recording_surface (document, recording_surface);
1526 if (unlikely (status))
1527 return status;
1726 if (is_new) {
1727 status = _cairo_svg_surface_emit_recording_surface (document, recording_surface, source_id);
1728 if (unlikely (status))
1729 return status;
1730 }
15281731
15291732 if (pattern_id != invalid_pattern_id) {
15301733 _cairo_output_stream_printf (output,
15401743
15411744 _cairo_output_stream_printf (output,
15421745 "<use xlink:href=\"#surface%d\"",
1543 recording_surface->base.unique_id);
1746 source_id);
15441747
15451748 if (pattern_id == invalid_pattern_id) {
15461749 _cairo_svg_surface_emit_operator (output, surface, op);
22572460 rectangle->width = ceil (surface->width);
22582461 rectangle->height = ceil (surface->height);
22592462
2260 return TRUE;
2463 return surface->surface_bounded;
22612464 }
22622465
22632466 static cairo_status_t
26752878 document->finished = FALSE;
26762879 document->width = width;
26772880 document->height = height;
2881 document->unit = CAIRO_SVG_UNIT_PT;
26782882
26792883 document->linear_pattern_id = 0;
26802884 document->radial_pattern_id = 0;
27772981 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
27782982 "<svg xmlns=\"http://www.w3.org/2000/svg\" "
27792983 "xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
2780 "width=\"%fpt\" height=\"%fpt\" "
2984 "width=\"%f%s\" height=\"%f%s\" "
27812985 "viewBox=\"0 0 %f %f\" version=\"%s\">\n",
2782 document->width, document->height,
2986 document->width, _cairo_svg_unit_strings [document->unit],
2987 document->height, _cairo_svg_unit_strings [document->unit],
27832988 document->width, document->height,
27842989 _cairo_svg_internal_version_strings [document->svg_version]);
27852990
5252 CAIRO_SVG_VERSION_1_2
5353 } cairo_svg_version_t;
5454
55 /**
56 * cairo_svg_version_t:
57 *
58 * @CAIRO_SVG_UNIT_USER: User unit, a value in the current coordinate system.
59 * If used in the root element for the initial coordinate systems it
60 * corresponds to pixels. (Since 1.16)
61 * @CAIRO_SVG_UNIT_EM: The size of the element's font. (Since 1.16)
62 * @CAIRO_SVG_UNIT_EX: The x-height of the element’s font. (Since 1.16)
63 * @CAIRO_SVG_UNIT_PX: Pixels (1px = 1/96th of 1in). (Since 1.16)
64 * @CAIRO_SVG_UNIT_IN: Inches (1in = 2.54cm = 96px). (Since 1.16)
65 * @CAIRO_SVG_UNIT_CM: Centimeters (1cm = 96px/2.54). (Since 1.16)
66 * @CAIRO_SVG_UNIT_MM: Millimeters (1mm = 1/10th of 1cm). (Since 1.16)
67 * @CAIRO_SVG_UNIT_PT: Points (1pt = 1/72th of 1in). (Since 1.16)
68 * @CAIRO_SVG_UNIT_PC: Picas (1pc = 1/6th of 1in). (Since 1.16)
69 * @CAIRO_SVG_UNIT_PERCENT: Percent, a value that is some fraction of another
70 * reference value. (Since 1.16)
71 *
72 * #cairo_svg_unit_t is used to describe the units valid for coordinates and
73 * lengths in the SVG specification.
74 *
75 * See also:
76 * https://www.w3.org/TR/SVG/coords.html#Units
77 * https://www.w3.org/TR/SVG/types.html#DataTypeLength
78 * https://www.w3.org/TR/css-values-3/#lengths
79 *
80 * Since: 1.16
81 **/
82 typedef enum _cairo_svg_unit {
83 CAIRO_SVG_UNIT_USER = 0,
84 CAIRO_SVG_UNIT_EM,
85 CAIRO_SVG_UNIT_EX,
86 CAIRO_SVG_UNIT_PX,
87 CAIRO_SVG_UNIT_IN,
88 CAIRO_SVG_UNIT_CM,
89 CAIRO_SVG_UNIT_MM,
90 CAIRO_SVG_UNIT_PT,
91 CAIRO_SVG_UNIT_PC,
92 CAIRO_SVG_UNIT_PERCENT
93 } cairo_svg_unit_t;
94
5595 cairo_public cairo_surface_t *
5696 cairo_svg_surface_create (const char *filename,
5797 double width_in_points,
74114 cairo_public const char *
75115 cairo_svg_version_to_string (cairo_svg_version_t version);
76116
117 cairo_public void
118 cairo_svg_surface_set_document_unit (cairo_surface_t *surface,
119 cairo_svg_unit_t unit);
120
121 cairo_public cairo_svg_unit_t
122 cairo_svg_surface_get_document_unit (cairo_surface_t *surface);
123
77124 CAIRO_END_DECLS
78125
79126 #else /* CAIRO_HAS_SVG_SURFACE */
3838
3939 #include "cairo-array-private.h"
4040 #include "cairo-error-private.h"
41 #include "cairo-types-private.h"
4142
4243 typedef enum {
4344 TAG_LINK_INVALID = 0,
6768 cairo_bool_t internal;
6869 } cairo_dest_attrs_t;
6970
71 typedef struct _cairo_ccitt_params {
72 int columns;
73 int rows;
74 int k;
75 cairo_bool_t end_of_line;
76 cairo_bool_t encoded_byte_align;
77 cairo_bool_t end_of_block;
78 cairo_bool_t black_is_1;
79 int damaged_rows_before_error;
80 } cairo_ccitt_params_t;
81
82 typedef struct _cairo_eps_params {
83 cairo_box_double_t bbox;
84 } cairo_eps_params_t;
85
7086 cairo_private cairo_int_status_t
7187 _cairo_tag_parse_link_attributes (const char *attributes, cairo_link_attrs_t *link_attrs);
7288
7389 cairo_private cairo_int_status_t
7490 _cairo_tag_parse_dest_attributes (const char *attributes, cairo_dest_attrs_t *dest_attrs);
7591
92 cairo_private cairo_int_status_t
93 _cairo_tag_parse_ccitt_params (const char *attributes, cairo_ccitt_params_t *dest_attrs);
94
95 cairo_private cairo_int_status_t
96 _cairo_tag_parse_eps_params (const char *attributes, cairo_eps_params_t *dest_attrs);
97
7698 #endif /* CAIRO_TAG_ATTRIBUTES_PRIVATE_H */
112112 { NULL }
113113 };
114114
115 /*
116 * Required:
117 * Columns - width of the image in pixels.
118 * Rows - height of the image in scan lines.
119 *
120 * Optional:
121 * K - An integer identifying the encoding scheme used. < 0 is 2 dimensional
122 * Group 4, = 0 is Group3 1 dimensional, > 0 is mixed 1 and 2 dimensional
123 * encoding. Default: 0.
124 * EndOfLine - If true end-of-line bit patterns are present. Default: false.
125 * EncodedByteAlign - If true the end of line is padded with 0 bits so the next
126 * line begins on a byte boundary. Default: false.
127 * EndOfBlock - If true the data contains an end-of-block pattern. Default: true.
128 * BlackIs1 - If true 1 bits are black pixels. Default: false.
129 * DamagedRowsBeforeError - Number of damages rows tolerated before an error
130 * occurs. Default: 0.
131 */
132 static attribute_spec_t _ccitt_params_spec[] =
133 {
134 { "Columns", ATTRIBUTE_INT },
135 { "Rows", ATTRIBUTE_INT },
136 { "K", ATTRIBUTE_INT },
137 { "EndOfLine", ATTRIBUTE_BOOL },
138 { "EncodedByteAlign", ATTRIBUTE_BOOL },
139 { "EndOfBlock", ATTRIBUTE_BOOL },
140 { "BlackIs1", ATTRIBUTE_BOOL },
141 { "DamagedRowsBeforeError", ATTRIBUTE_INT },
142 { NULL }
143 };
144
145 /*
146 * bbox - Bounding box of EPS file. The format is [ llx lly urx ury ]
147 * llx - lower left x xoordinate
148 * lly - lower left y xoordinate
149 * urx - upper right x xoordinate
150 * ury - upper right y xoordinate
151 * all cordinates are in PostScript coordinates.
152 */
153 static attribute_spec_t _eps_params_spec[] =
154 {
155 { "bbox", ATTRIBUTE_FLOAT, 4 },
156 { NULL }
157 };
158
115159 typedef union {
116160 cairo_bool_t b;
117161 int i;
387431
388432 fail2:
389433 _cairo_array_fini (&attrib->array);
434 if (attrib->type == ATTRIBUTE_STRING)
435 free (attrib->scalar.s);
390436 free (attrib);
391437 fail1:
392438 free (name);
404450 cairo_list_del (&attr->link);
405451 free (attr->name);
406452 _cairo_array_fini (&attr->array);
453 if (attr->type == ATTRIBUTE_STRING)
454 free (attr->scalar.s);
407455 free (attr);
408456 }
409457 }
568616
569617 return status;
570618 }
619
620 cairo_int_status_t
621 _cairo_tag_parse_ccitt_params (const char *attributes, cairo_ccitt_params_t *ccitt_params)
622 {
623 cairo_list_t list;
624 cairo_int_status_t status;
625 attribute_t *attr;
626
627 ccitt_params->columns = -1;
628 ccitt_params->rows = -1;
629
630 /* set defaults */
631 ccitt_params->k = 0;
632 ccitt_params->end_of_line = FALSE;
633 ccitt_params->encoded_byte_align = FALSE;
634 ccitt_params->end_of_block = TRUE;
635 ccitt_params->black_is_1 = FALSE;
636 ccitt_params->damaged_rows_before_error = 0;
637
638 cairo_list_init (&list);
639 status = parse_attributes (attributes, _ccitt_params_spec, &list);
640 if (unlikely (status))
641 goto cleanup;
642
643 cairo_list_foreach_entry (attr, attribute_t, &list, link)
644 {
645 if (strcmp (attr->name, "Columns") == 0) {
646 ccitt_params->columns = attr->scalar.i;
647 } else if (strcmp (attr->name, "Rows") == 0) {
648 ccitt_params->rows = attr->scalar.i;
649 } else if (strcmp (attr->name, "K") == 0) {
650 ccitt_params->k = attr->scalar.i;
651 } else if (strcmp (attr->name, "EndOfLine") == 0) {
652 ccitt_params->end_of_line = attr->scalar.b;
653 } else if (strcmp (attr->name, "EncodedByteAlign") == 0) {
654 ccitt_params->encoded_byte_align = attr->scalar.b;
655 } else if (strcmp (attr->name, "EndOfBlock") == 0) {
656 ccitt_params->end_of_block = attr->scalar.b;
657 } else if (strcmp (attr->name, "BlackIs1") == 0) {
658 ccitt_params->black_is_1 = attr->scalar.b;
659 } else if (strcmp (attr->name, "DamagedRowsBeforeError") == 0) {
660 ccitt_params->damaged_rows_before_error = attr->scalar.b;
661 }
662 }
663
664 cleanup:
665 free_attributes_list (&list);
666
667 return status;
668 }
669
670 cairo_int_status_t
671 _cairo_tag_parse_eps_params (const char *attributes, cairo_eps_params_t *eps_params)
672 {
673 cairo_list_t list;
674 cairo_int_status_t status;
675 attribute_t *attr;
676 attrib_val_t val;
677
678 cairo_list_init (&list);
679 status = parse_attributes (attributes, _eps_params_spec, &list);
680 if (unlikely (status))
681 goto cleanup;
682
683 cairo_list_foreach_entry (attr, attribute_t, &list, link)
684 {
685 if (strcmp (attr->name, "bbox") == 0) {
686 _cairo_array_copy_element (&attr->array, 0, &val);
687 eps_params->bbox.p1.x = val.f;
688 _cairo_array_copy_element (&attr->array, 1, &val);
689 eps_params->bbox.p1.y = val.f;
690 _cairo_array_copy_element (&attr->array, 2, &val);
691 eps_params->bbox.p2.x = val.f;
692 _cairo_array_copy_element (&attr->array, 3, &val);
693 eps_params->bbox.p2.y = val.f;
694 }
695 }
696
697 cleanup:
698 free_attributes_list (&list);
699
700 return status;
701 }
3838 * Behdad Esfahbod <behdad@behdad.org>
3939 */
4040
41 #define _BSD_SOURCE /* for strdup() */
41 #define _DEFAULT_SOURCE /* for strdup() */
4242 #include "cairoint.h"
4343 #include "cairo-error-private.h"
4444
3939 * http://www.microsoft.com/typography/specs/default.htm
4040 */
4141
42 #define _BSD_SOURCE /* for snprintf(), strdup() */
42 #define _DEFAULT_SOURCE /* for snprintf(), strdup() */
4343 #include "cairoint.h"
4444
4545 #include "cairo-array-private.h"
7676 struct {
7777 char *font_name;
7878 char *ps_name;
79 unsigned int num_glyphs;
80 int *widths;
79 int num_glyphs_in_face; /* glyphs in font */
8180 long x_min, y_min, x_max, y_max;
8281 long ascent, descent;
8382 int units_per_em;
8483 } base;
8584
86 subset_glyph_t *glyphs;
85 subset_glyph_t *glyphs; /* array size: num_glyphs_in_face + 2 */
8786 const cairo_scaled_font_backend_t *backend;
88 int num_glyphs_in_face;
87 unsigned int num_glyphs; /* glyphs used */
88 int *widths; /* array size: num_glyphs_in_face + 1 */
8989 int checksum_index;
9090 cairo_array_t output;
9191 cairo_array_t string_offsets;
9292 unsigned long last_offset;
9393 unsigned long last_boundary;
94 int *parent_to_subset;
94 int *parent_to_subset; /* array size: num_glyphs_in_face + 1 */
9595 cairo_status_t status;
9696 cairo_bool_t is_pdf;
9797 };
197197 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
198198
199199 font->backend = backend;
200 font->num_glyphs_in_face = be16_to_cpu (maxp.num_glyphs);
200 font->base.num_glyphs_in_face = be16_to_cpu (maxp.num_glyphs);
201201 font->scaled_font_subset = scaled_font_subset;
202202
203203 font->last_offset = 0;
207207 if (unlikely (status))
208208 goto fail1;
209209
210 font->glyphs = calloc (font->num_glyphs_in_face + 1, sizeof (subset_glyph_t));
210 /* Add 2: +1 case font does not contain .notdef, and +1 because an extra
211 * entry is required to contain the end location of the last glyph.
212 */
213 font->glyphs = calloc (font->base.num_glyphs_in_face + 2, sizeof (subset_glyph_t));
211214 if (unlikely (font->glyphs == NULL)) {
212215 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
213216 goto fail1;
214217 }
215218
216 font->parent_to_subset = calloc (font->num_glyphs_in_face, sizeof (int));
219 /* Add 1 in case font does not contain .notdef */
220 font->parent_to_subset = calloc (font->base.num_glyphs_in_face + 1, sizeof (int));
217221 if (unlikely (font->parent_to_subset == NULL)) {
218222 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
219223 goto fail2;
220224 }
221225
222226 font->is_pdf = is_pdf;
223 font->base.num_glyphs = 0;
227 font->num_glyphs = 0;
224228 font->base.x_min = (int16_t) be16_to_cpu (head.x_min);
225229 font->base.y_min = (int16_t) be16_to_cpu (head.y_min);
226230 font->base.x_max = (int16_t) be16_to_cpu (head.x_max);
252256 scaled_font_subset->subset_id);
253257 }
254258
255 font->base.widths = calloc (font->num_glyphs_in_face, sizeof (int));
256 if (unlikely (font->base.widths == NULL)) {
259 /* Add 1 in case font does not contain .notdef */
260 font->widths = calloc (font->base.num_glyphs_in_face + 1, sizeof (int));
261 if (unlikely (font->widths == NULL)) {
257262 status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
258263 goto fail4;
259264 }
271276
272277 fail5:
273278 _cairo_array_fini (&font->string_offsets);
274 free (font->base.widths);
279 free (font->widths);
275280 fail4:
276281 free (font->base.ps_name);
277282 fail3:
290295 cairo_truetype_font_destroy (cairo_truetype_font_t *font)
291296 {
292297 _cairo_array_fini (&font->string_offsets);
293 free (font->base.widths);
298 free (font->widths);
294299 free (font->base.ps_name);
295300 free (font->base.font_name);
296301 free (font->parent_to_subset);
612617 return _cairo_truetype_font_set_error (font, status);
613618
614619 if (be16_to_cpu (header.index_to_loc_format) == 0)
615 size = sizeof (int16_t) * (font->num_glyphs_in_face + 1);
620 size = sizeof (int16_t) * (font->base.num_glyphs_in_face + 1);
616621 else
617 size = sizeof (int32_t) * (font->num_glyphs_in_face + 1);
622 size = sizeof (int32_t) * (font->base.num_glyphs_in_face + 1);
618623
619624 u.bytes = malloc (size);
620625 if (unlikely (u.bytes == NULL))
626631 return _cairo_truetype_font_set_error (font, status);
627632
628633 start_offset = _cairo_array_num_elements (&font->output);
629 for (i = 0; i < font->base.num_glyphs; i++) {
634 for (i = 0; i < font->num_glyphs; i++) {
630635 index = font->glyphs[i].parent_index;
631636 if (be16_to_cpu (header.index_to_loc_format) == 0) {
632637 begin = be16_to_cpu (u.short_offsets[index]) * 2;
754759 if (unlikely (status))
755760 return _cairo_truetype_font_set_error (font, status);
756761
757 hhea->num_hmetrics = cpu_to_be16 ((uint16_t)(font->base.num_glyphs));
762 hhea->num_hmetrics = cpu_to_be16 ((uint16_t)(font->num_glyphs));
758763
759764 return CAIRO_STATUS_SUCCESS;
760765 }
784789
785790 num_hmetrics = be16_to_cpu(hhea.num_hmetrics);
786791
787 for (i = 0; i < font->base.num_glyphs; i++) {
792 for (i = 0; i < font->num_glyphs; i++) {
788793 long_entry_size = 2 * sizeof (int16_t);
789794 short_entry_size = sizeof (int16_t);
790795 status = cairo_truetype_font_allocate_write_buffer (font,
818823 if (unlikely (status))
819824 return _cairo_truetype_font_set_error (font, status);
820825 }
821 font->base.widths[i] = be16_to_cpu (p[0]);
826 font->widths[i] = be16_to_cpu (p[0]);
822827 }
823828
824829 return CAIRO_STATUS_SUCCESS;
845850
846851 if (be16_to_cpu (header.index_to_loc_format) == 0)
847852 {
848 for (i = 0; i < font->base.num_glyphs + 1; i++)
853 for (i = 0; i < font->num_glyphs + 1; i++)
849854 cairo_truetype_font_write_be16 (font, font->glyphs[i].location / 2);
850855 } else {
851 for (i = 0; i < font->base.num_glyphs + 1; i++)
856 for (i = 0; i < font->num_glyphs + 1; i++)
852857 cairo_truetype_font_write_be32 (font, font->glyphs[i].location);
853858 }
854859
876881 if (unlikely (status))
877882 return _cairo_truetype_font_set_error (font, status);
878883
879 maxp->num_glyphs = cpu_to_be16 (font->base.num_glyphs);
884 maxp->num_glyphs = cpu_to_be16 (font->num_glyphs);
880885
881886 return CAIRO_STATUS_SUCCESS;
882887 }
10201025 unsigned short glyph,
10211026 unsigned short *out)
10221027 {
1023 if (glyph >= font->num_glyphs_in_face)
1028 if (glyph >= font->base.num_glyphs_in_face)
10241029 return CAIRO_INT_STATUS_UNSUPPORTED;
10251030
10261031 if (font->parent_to_subset[glyph] == 0) {
1027 font->parent_to_subset[glyph] = font->base.num_glyphs;
1028 font->glyphs[font->base.num_glyphs].parent_index = glyph;
1029 font->base.num_glyphs++;
1032 font->parent_to_subset[glyph] = font->num_glyphs;
1033 font->glyphs[font->num_glyphs].parent_index = glyph;
1034 font->num_glyphs++;
10301035 }
10311036
10321037 *out = font->parent_to_subset[glyph];
11791184 goto fail3;
11801185 }
11811186 for (i = 0; i < font->scaled_font_subset->num_glyphs; i++)
1182 truetype_subset->widths[i] = (double)font->base.widths[i]/font->base.units_per_em;
1187 truetype_subset->widths[i] = (double)font->widths[i]/font->base.units_per_em;
11831188
11841189 truetype_subset->x_min = (double)font->base.x_min/font->base.units_per_em;
11851190 truetype_subset->y_min = (double)font->base.y_min/font->base.units_per_em;
14251430 return status;
14261431 }
14271432
1433 /*
1434 * Sanity check on font name length as some broken fonts may return very long
1435 * strings of garbage. 127 is maximum length of a PS name.
1436 */
1437 #define MAX_FONT_NAME_LENGTH 127
1438
14281439 static cairo_status_t
14291440 find_name (tt_name_t *name, int name_id, int platform, int encoding, int language, char **str_out)
14301441 {
14431454 be16_to_cpu (record->encoding) == encoding &&
14441455 (language == -1 || be16_to_cpu (record->language) == language)) {
14451456
1446 str = malloc (be16_to_cpu (record->length) + 1);
1457 len = be16_to_cpu (record->length);
1458 if (platform == 3 && len > MAX_FONT_NAME_LENGTH*2) /* UTF-16 name */
1459 break;
1460
1461 if (len > MAX_FONT_NAME_LENGTH)
1462 break;
1463
1464 str = malloc (len + 1);
14471465 if (str == NULL)
14481466 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
14491467
1450 len = be16_to_cpu (record->length);
14511468 memcpy (str,
14521469 ((char*)name) + be16_to_cpu (name->strings_offset) + be16_to_cpu (record->offset),
14531470 len);
3232 * Adrian Johnson <ajohnson@redneon.com>
3333 */
3434
35 #define _BSD_SOURCE /* for snprintf(), strdup() */
35 #define _DEFAULT_SOURCE /* for snprintf(), strdup() */
3636 #include "cairoint.h"
3737
3838 #include "cairo-array-private.h"
3939 */
4040
4141
42 #define _BSD_SOURCE /* for snprintf(), strdup() */
42 #define _DEFAULT_SOURCE /* for snprintf(), strdup() */
4343 #include "cairoint.h"
4444
4545 #include "cairo-array-private.h"
310310 const char *decimal_point;
311311 int decimal_point_len;
312312
313 decimal_point = cairo_get_locale_decimal_point ();
313 decimal_point = _cairo_get_locale_decimal_point ();
314314 decimal_point_len = strlen (decimal_point);
315315
316316 assert (decimal_point_len != 0);
356356 _cairo_ucs4_to_utf16 (uint32_t unicode,
357357 uint16_t *utf16)
358358 {
359 int len;
360
361359 if (unicode < 0x10000) {
362360 if (utf16)
363361 utf16[0] = unicode;
631631 const cairo_compositor_t *
632632 _cairo_xlib_core_compositor_get (void)
633633 {
634 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
634635 static cairo_compositor_t compositor;
635636
636 if (compositor.delegate == NULL) {
637 if (_cairo_atomic_init_once_enter(&once)) {
637638 compositor.delegate = _cairo_xlib_fallback_compositor_get ();
638639
639640 compositor.paint = _cairo_xlib_core_compositor_paint;
641642 compositor.fill = _cairo_xlib_core_compositor_fill;
642643 compositor.stroke = _cairo_xlib_core_compositor_stroke;
643644 compositor.glyphs = NULL; /* XXX PolyGlyph? */
645
646 _cairo_atomic_init_once_leave(&once);
644647 }
645648
646649 return &compositor;
17241724 const cairo_compositor_t *
17251725 _cairo_xlib_mask_compositor_get (void)
17261726 {
1727 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
17271728 static cairo_mask_compositor_t compositor;
17281729
1729 if (compositor.base.delegate == NULL) {
1730 if (_cairo_atomic_init_once_enter(&once)) {
17301731 _cairo_mask_compositor_init (&compositor,
17311732 _cairo_xlib_fallback_compositor_get ());
17321733
17441745 compositor.composite_boxes = composite_boxes;
17451746 compositor.check_composite_glyphs = check_composite_glyphs;
17461747 compositor.composite_glyphs = composite_glyphs;
1748
1749 _cairo_atomic_init_once_leave(&once);
17471750 }
17481751
17491752 return &compositor.base;
19721975 const cairo_compositor_t *
19731976 _cairo_xlib_traps_compositor_get (void)
19741977 {
1978 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
19751979 static cairo_traps_compositor_t compositor;
19761980
1977 if (compositor.base.delegate == NULL) {
1981 if (_cairo_atomic_init_once_enter(&once)) {
19781982 _cairo_traps_compositor_init (&compositor,
19791983 _cairo_xlib_mask_compositor_get ());
19801984
19962000 compositor.composite_tristrip = composite_tristrip;
19972001 compositor.check_composite_glyphs = check_composite_glyphs;
19982002 compositor.composite_glyphs = composite_glyphs;
2003
2004 _cairo_atomic_init_once_leave(&once);
19992005 }
20002006
20012007 return &compositor.base;
236236 * </programlisting>
237237 *
238238 * # Destination Tags # {#dest}
239
239 *
240240 * A destination is specified by enclosing the destination drawing
241241 * operations with the %CAIRO_TAG_DEST tag.
242242 *
843843
844844
845845 #if 0
846 /**
846 /*
847847 * cairo_set_opacity:
848848 * @cr: a #cairo_t
849849 * @opacity: the level of opacity to use when compositing
853853 * using the alpha value.
854854 *
855855 * The default opacity is 1.
856 *
857 * Since: TBD
858 **/
856 */
859857 void
860858 cairo_set_opacity (cairo_t *cr, double opacity)
861859 {
24522452 #define CAIRO_MIME_TYPE_JBIG2 "application/x-cairo.jbig2"
24532453 #define CAIRO_MIME_TYPE_JBIG2_GLOBAL "application/x-cairo.jbig2-global"
24542454 #define CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID "application/x-cairo.jbig2-global-id"
2455 #define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax"
2456 #define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params"
2457 #define CAIRO_MIME_TYPE_EPS "application/postscript"
2458 #define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params"
24552459
24562460 cairo_public void
24572461 cairo_surface_get_mime_data (cairo_surface_t *surface,
106106 #undef MAX
107107 #define MAX(a, b) ((a) > (b) ? (a) : (b))
108108
109 #if _XOPEN_SOURCE >= 600 || defined (_ISOC99_SOURCE)
110 #define ISFINITE(x) isfinite (x)
111 #else
112 #define ISFINITE(x) ((x) * (x) >= 0.) /* check for NaNs */
113 #endif
114
109115 #ifndef FALSE
110116 #define FALSE 0
111117 #endif
912918 _cairo_intern_string_reset_static_data (void);
913919
914920 cairo_private const char *
915 cairo_get_locale_decimal_point (void);
921 _cairo_get_locale_decimal_point (void);
922
923 cairo_private double
924 _cairo_strtod (const char *nptr, char **endptr);
916925
917926 /* cairo-path-fixed.c */
918927 cairo_private cairo_path_fixed_t *
13251334
13261335
13271336 /* cairo-surface.c */
1337
1338 cairo_private cairo_bool_t
1339 _cairo_surface_has_mime_image (cairo_surface_t *surface);
13281340
13291341 cairo_private cairo_status_t
13301342 _cairo_surface_copy_mime_data (cairo_surface_t *dst,
19081920
19091921 cairo_private void
19101922 _cairo_observers_notify (cairo_list_t *observers, void *arg);
1923
1924 /* Open a file with a UTF-8 filename */
1925 cairo_private cairo_status_t
1926 _cairo_fopen (const char *filename, const char *mode, FILE **file_out);
19111927
19121928 /* Avoid unnecessary PLT entries. */
19131929 slim_hidden_proto (cairo_clip_preserve);
403403 static const cairo_compositor_t *
404404 no_traps_compositor_get (void)
405405 {
406 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
406407 static cairo_traps_compositor_t compositor;
407408
408 if (compositor.base.delegate == NULL) {
409 if (_cairo_atomic_init_once_enter(&once)) {
409410 _cairo_traps_compositor_init (&compositor,
410411 no_fallback_compositor_get ());
411412
425426 compositor.composite_traps = composite_traps;
426427 compositor.check_composite_glyphs = check_composite_glyphs;
427428 compositor.composite_glyphs = composite_glyphs;
429
430 _cairo_atomic_init_once_leave(&once);
428431 }
429432
430433 return &compositor.base;
433436 static const cairo_compositor_t *
434437 no_spans_compositor_get (void)
435438 {
439 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
436440 static cairo_spans_compositor_t compositor;
437441
438 if (compositor.base.delegate == NULL) {
442 if (_cairo_atomic_init_once_enter(&once)) {
439443 _cairo_spans_compositor_init (&compositor,
440444 no_traps_compositor_get());
441445
447451 //compositor.check_span_renderer = check_span_renderer;
448452 compositor.renderer_init = span_renderer_init;
449453 compositor.renderer_fini = span_renderer_fini;
454
455 _cairo_atomic_init_once_leave(&once);
450456 }
451457
452458 return &compositor.base;
935935 *
936936 * Return value: the newly created surface, NULL on failure
937937 *
938 * Since: 1.14.3
938 * Since: 1.14
939939 **/
940940 cairo_surface_t *
941941 cairo_win32_surface_create_with_format (HDC hdc, cairo_format_t format)
633633 const cairo_compositor_t *
634634 _cairo_win32_gdi_compositor_get (void)
635635 {
636 static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT;
636637 static cairo_compositor_t compositor;
637638
638 if (compositor.delegate == NULL) {
639 if (_cairo_atomic_init_once_enter(&once)) {
639640 compositor.delegate = &_cairo_fallback_compositor;
640641
641642 compositor.paint = _cairo_win32_gdi_compositor_paint;
643644 compositor.fill = _cairo_win32_gdi_compositor_fill;
644645 compositor.stroke = _cairo_win32_gdi_compositor_stroke;
645646 compositor.glyphs = _cairo_win32_gdi_compositor_glyphs;
647
648 _cairo_atomic_init_once_leave(&once);
646649 }
647650
648651 return &compositor;
124124 $(top_srcdir)/build/aclocal.compare.m4 \
125125 $(top_srcdir)/build/aclocal.enable.m4 \
126126 $(top_srcdir)/build/aclocal.float.m4 \
127 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
128127 $(top_srcdir)/build/aclocal.makefile.m4 \
129128 $(top_srcdir)/build/aclocal.pkg.m4 \
130 $(top_srcdir)/build/libtool.m4 \
129 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
131130 $(top_srcdir)/build/ltoptions.m4 \
132131 $(top_srcdir)/build/ltsugar.m4 \
133132 $(top_srcdir)/build/ltversion.m4 \
322321 ps-surface-source.c svg-surface.c svg-clip.c \
323322 svg-surface-source.c xcb-surface-source.c xlib-surface.c \
324323 xlib-surface-source.c get-xrender-format.c multi-page.c \
325 fallback-resolution.c cairo-test-constructors.c
324 mime-unique-id.c fallback-resolution.c \
325 cairo-test-constructors.c
326326 am__objects_1 = cairo_test_suite-buffer-diff.$(OBJEXT) \
327327 cairo_test_suite-cairo-test.$(OBJEXT) \
328328 cairo_test_suite-cairo-test-runner.$(OBJEXT)
369369 am__objects_23 = cairo_test_suite-get-xrender-format.$(OBJEXT)
370370 @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__objects_24 = \
371371 @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@ $(am__objects_23)
372 am__objects_25 = cairo_test_suite-multi-page.$(OBJEXT)
372 am__objects_25 = cairo_test_suite-multi-page.$(OBJEXT) \
373 cairo_test_suite-mime-unique-id.$(OBJEXT)
373374 @CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@am__objects_26 = \
374375 @CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@ $(am__objects_25)
375376 am__objects_27 = cairo_test_suite-fallback-resolution.$(OBJEXT)
11891190 GREP = @GREP@
11901191 GS = @GS@
11911192 GTKDOC_CHECK = @GTKDOC_CHECK@
1193 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
1194 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
1195 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
1196 GTKDOC_MKPDF = @GTKDOC_MKPDF@
1197 GTKDOC_REBASE = @GTKDOC_REBASE@
11921198 HTML_DIR = @HTML_DIR@
11931199 INSTALL = @INSTALL@
11941200 INSTALL_DATA = @INSTALL_DATA@
12871293 gl_LIBS = @gl_LIBS@
12881294 glesv2_CFLAGS = @glesv2_CFLAGS@
12891295 glesv2_LIBS = @glesv2_LIBS@
1296 glesv3_CFLAGS = @glesv3_CFLAGS@
1297 glesv3_LIBS = @glesv3_LIBS@
12901298 glib_CFLAGS = @glib_CFLAGS@
12911299 glib_LIBS = @glib_LIBS@
12921300 gtk_CFLAGS = @gtk_CFLAGS@
15541562 xlib-surface-source.c
15551563
15561564 xlib_xrender_surface_test_sources = get-xrender-format.c
1557 multi_page_surface_test_sources = multi-page.c
1565 multi_page_surface_test_sources = multi-page.c mime-unique-id.c
15581566 fallback_resolution_test_sources = fallback-resolution.c
15591567 cairo_test_suite_headers = \
15601568 buffer-diff.h \
20492057 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_test_suite-mesh-pattern.Po@am__quote@
20502058 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_test_suite-mime-data.Po@am__quote@
20512059 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_test_suite-mime-surface-api.Po@am__quote@
2060 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_test_suite-mime-unique-id.Po@am__quote@
20522061 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_test_suite-miter-precision.Po@am__quote@
20532062 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_test_suite-move-to-show-surface.Po@am__quote@
20542063 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_test_suite-multi-page.Po@am__quote@
82038212 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
82048213 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_test_suite_CFLAGS) $(CFLAGS) -c -o cairo_test_suite-multi-page.obj `if test -f 'multi-page.c'; then $(CYGPATH_W) 'multi-page.c'; else $(CYGPATH_W) '$(srcdir)/multi-page.c'; fi`
82058214
8215 cairo_test_suite-mime-unique-id.o: mime-unique-id.c
8216 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_test_suite_CFLAGS) $(CFLAGS) -MT cairo_test_suite-mime-unique-id.o -MD -MP -MF $(DEPDIR)/cairo_test_suite-mime-unique-id.Tpo -c -o cairo_test_suite-mime-unique-id.o `test -f 'mime-unique-id.c' || echo '$(srcdir)/'`mime-unique-id.c
8217 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_test_suite-mime-unique-id.Tpo $(DEPDIR)/cairo_test_suite-mime-unique-id.Po
8218 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mime-unique-id.c' object='cairo_test_suite-mime-unique-id.o' libtool=no @AMDEPBACKSLASH@
8219 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
8220 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_test_suite_CFLAGS) $(CFLAGS) -c -o cairo_test_suite-mime-unique-id.o `test -f 'mime-unique-id.c' || echo '$(srcdir)/'`mime-unique-id.c
8221
8222 cairo_test_suite-mime-unique-id.obj: mime-unique-id.c
8223 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_test_suite_CFLAGS) $(CFLAGS) -MT cairo_test_suite-mime-unique-id.obj -MD -MP -MF $(DEPDIR)/cairo_test_suite-mime-unique-id.Tpo -c -o cairo_test_suite-mime-unique-id.obj `if test -f 'mime-unique-id.c'; then $(CYGPATH_W) 'mime-unique-id.c'; else $(CYGPATH_W) '$(srcdir)/mime-unique-id.c'; fi`
8224 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_test_suite-mime-unique-id.Tpo $(DEPDIR)/cairo_test_suite-mime-unique-id.Po
8225 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mime-unique-id.c' object='cairo_test_suite-mime-unique-id.obj' libtool=no @AMDEPBACKSLASH@
8226 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
8227 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_test_suite_CFLAGS) $(CFLAGS) -c -o cairo_test_suite-mime-unique-id.obj `if test -f 'mime-unique-id.c'; then $(CYGPATH_W) 'mime-unique-id.c'; else $(CYGPATH_W) '$(srcdir)/mime-unique-id.c'; fi`
8228
82068229 cairo_test_suite-fallback-resolution.o: fallback-resolution.c
82078230 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_test_suite_CFLAGS) $(CFLAGS) -MT cairo_test_suite-fallback-resolution.o -MD -MP -MF $(DEPDIR)/cairo_test_suite-fallback-resolution.Tpo -c -o cairo_test_suite-fallback-resolution.o `test -f 'fallback-resolution.c' || echo '$(srcdir)/'`fallback-resolution.c
82088231 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_test_suite-fallback-resolution.Tpo $(DEPDIR)/cairo_test_suite-fallback-resolution.Po
439439
440440 xlib_xrender_surface_test_sources = get-xrender-format.c
441441
442 multi_page_surface_test_sources = multi-page.c
442 multi_page_surface_test_sources = multi-page.c mime-unique-id.c
443443
444444 fallback_resolution_test_sources = fallback-resolution.c
445445
243243 return NULL;
244244 }
245245
246 #if CAIRO_HAS_INTERPRETER
246247 static cairo_surface_t *
247248 _create_image (void *closure,
248249 cairo_content_t content,
267268 return cairo_surface_reference (*out);
268269 }
269270
270 #if CAIRO_HAS_INTERPRETER
271271 static const char *
272272 _cairo_script_render_page (const char *filename,
273273 cairo_surface_t **surface_out)
562562 extern void _register_ft_text_vertical_layout_type1 (void);
563563 extern void _register_ft_text_vertical_layout_type3 (void);
564564 extern void _register_ft_text_antialias_none (void);
565 extern void _register_pdf_features (void);
566 extern void _register_pdf_mime_data (void);
567 extern void _register_pdf_surface_source (void);
568 extern void _register_pdf_tagged_text (void);
565569 extern void _register_ps_eps (void);
566570 extern void _register_ps_features (void);
567571 extern void _register_ps_surface_source (void);
568572 extern void _register_svg_surface (void);
569573 extern void _register_svg_clip (void);
570574 extern void _register_svg_surface_source (void);
575 extern void _register_xcb_surface_source (void);
576 extern void _register_xlib_surface (void);
577 extern void _register_xlib_surface_source (void);
578 extern void _register_get_xrender_format (void);
571579 extern void _register_multi_page (void);
580 extern void _register_mime_unique_id (void);
572581 extern void _register_fallback_resolution (void);
573582
574583 void
11331142 _register_ft_text_vertical_layout_type1 ();
11341143 _register_ft_text_vertical_layout_type3 ();
11351144 _register_ft_text_antialias_none ();
1145 _register_pdf_features ();
1146 _register_pdf_mime_data ();
1147 _register_pdf_surface_source ();
1148 _register_pdf_tagged_text ();
11361149 _register_ps_eps ();
11371150 _register_ps_features ();
11381151 _register_ps_surface_source ();
11391152 _register_svg_surface ();
11401153 _register_svg_clip ();
11411154 _register_svg_surface_source ();
1155 _register_xcb_surface_source ();
1156 _register_xlib_surface ();
1157 _register_xlib_surface_source ();
1158 _register_get_xrender_format ();
11421159 _register_multi_page ();
1160 _register_mime_unique_id ();
11431161 _register_fallback_resolution ();
11441162 }
16671667 {
16681668 cairo_surface_t *image;
16691669 cairo_status_t status;
1670 char *unique_id;
16701671
16711672 image = cairo_image_surface_create_from_png (filename);
16721673 status = cairo_surface_status (image);
16821683 free (srcdir_filename);
16831684 }
16841685 }
1686 unique_id = strdup(filename);
1687 cairo_surface_set_mime_data (image, CAIRO_MIME_TYPE_UNIQUE_ID,
1688 (unsigned char *)unique_id, strlen(unique_id),
1689 free, unique_id);
16851690
16861691 return image;
16871692 }
206206 }
207207
208208 static cairo_test_status_t
209 paint_ccitt_file (cairo_t *cr, int x, int y)
210 {
211 const cairo_test_context_t *ctx = cairo_test_get_context (cr);
212 cairo_surface_t *image;
213 unsigned char *mime_data;
214 unsigned int mime_length;
215 cairo_status_t status;
216 const char *ccitt_image_filename = "ccitt.g3";
217 const char *ccitt_image_params = "Columns=200 Rows=50 K=-1";
218
219 /* Deliberately use a non-matching MIME images, so that we can identify
220 * when the MIME representation is used in preference to the plain image
221 * surface.
222 */
223
224 status = read_file (ctx, ccitt_image_filename, &mime_data, &mime_length);
225 if (status)
226 return cairo_test_status_from_status (ctx, status);
227
228 image = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 200, 50);
229
230 /* Set the CCITT image data */
231 status = cairo_surface_set_mime_data (image, CAIRO_MIME_TYPE_CCITT_FAX,
232 mime_data, mime_length,
233 free, mime_data);
234 if (status) {
235 cairo_surface_destroy (image);
236 free (mime_data);
237 return cairo_test_status_from_status (ctx, status);
238 }
239
240 /* Set the CCITT image paramaters */
241 status = cairo_surface_set_mime_data (image, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
242 (unsigned char *)ccitt_image_params,
243 strlen (ccitt_image_params),
244 NULL, NULL);
245 if (status) {
246 cairo_surface_destroy (image);
247 return cairo_test_status_from_status (ctx, status);
248 }
249
250 cairo_set_source_surface (cr, image, x, y);
251 cairo_surface_destroy (image);
252
253 cairo_paint (cr);
254
255 return CAIRO_TEST_SUCCESS;
256 }
257
258 static cairo_test_status_t
209259 draw (cairo_t *cr, int width, int height)
210260 {
211261 const char jpg_filename[] = "jpeg.jpg";
229279 if (status)
230280 return status;
231281
282 status = paint_ccitt_file (cr, 0, 250);
283 if (status)
284 return status;
285
232286 return CAIRO_TEST_SUCCESS;
233287 }
234288
236290 "Check that the mime-data embedding works",
237291 "jpeg, api", /* keywords */
238292 NULL, /* requirements */
239 200, 250,
293 200, 300,
240294 NULL, draw)
0 /*
1 * Copyright © 2017 Adrian Johnson
2 *
3 * Permission is hereby granted, free of charge, to any person
4 * obtaining a copy of this software and associated documentation
5 * files (the "Software"), to deal in the Software without
6 * restriction, including without limitation the rights to use, copy,
7 * modify, merge, publish, distribute, sublicense, and/or sell copies
8 * of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be
12 * included in all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 * SOFTWARE.
22 *
23 * Author: Adrian Johnson <ajohnson@redneon.com>
24 */
25
26
27 /* Check that source surfaces with same CAIRO_MIME_TYPE_UNIQUE_ID are
28 * embedded only once in PDF/PS.
29 *
30 * To exercise all the surface embedding code in PS/PDF, four types of
31 * source surfaces are painted on each page, each with its own UNIQUE_ID:
32 * - an image surface
33 * - a recording surface with a jpeg mime attached
34 * - a bounded recording surface
35 * - an unbounded recording surface.
36 *
37 * Four pages are generated. Each source is clipped starting with the
38 * smallest area on the first page increasing to the unclipped size on
39 * the last page. This is to ensure the output does not embed the
40 * source clipped to a smaller size than used on subsequent pages.
41 *
42 * The test verifies the use of UNIQUE_ID by comparing the file size
43 * with the expected size.
44 */
45
46 #include "cairo-test.h"
47
48 #include <math.h>
49 #include <stdio.h>
50
51 #include <cairo.h>
52
53 #if CAIRO_HAS_PS_SURFACE
54 #include <cairo-ps.h>
55 #endif
56
57 #if CAIRO_HAS_PDF_SURFACE
58 #include <cairo-pdf.h>
59 #endif
60
61 #define NUM_PAGES 4
62
63 #define WIDTH 275
64 #define HEIGHT 275
65
66 #define BASENAME "mime-unique-id"
67
68
69 /* Expected file size to check that surfaces are embedded only once.
70 * SIZE_TOLERANCE should be large enough to allow some variation in
71 * file size due to changes to the PS/PDF surfaces while being small
72 * enough to catch any attempt to embed the surface more than
73 * once. The compressed size of each surface embedded in PDF is:
74 * - image: 108,774
75 * - jpeg: 11,400
76 * - recording: 17,518
77 *
78 * If the size check fails, manually check the output and if the
79 * surfaces are still embedded only once, update the expected sizes.
80 */
81 #define PS2_EXPECTED_SIZE 417510
82 #define PS3_EXPECTED_SIZE 381554
83 #define PDF_EXPECTED_SIZE 347182
84 #define SIZE_TOLERANCE 5000
85
86 static const char *png_filename = "romedalen.png";
87 static const char *jpeg_filename = "romedalen.jpg";
88
89 static cairo_test_status_t
90 create_image_surface (cairo_test_context_t *ctx, cairo_surface_t **surface)
91 {
92 cairo_status_t status;
93 const char *unique_id = "image";
94
95 *surface = cairo_test_create_surface_from_png (ctx, png_filename);
96 status = cairo_surface_set_mime_data (*surface, CAIRO_MIME_TYPE_UNIQUE_ID,
97 (unsigned char *)unique_id,
98 strlen (unique_id),
99 NULL, NULL);
100 if (status) {
101 cairo_surface_destroy (*surface);
102 return cairo_test_status_from_status (ctx, status);
103 }
104
105 return CAIRO_TEST_SUCCESS;
106 }
107
108 static cairo_test_status_t
109 create_recording_surface_with_mime_jpg (cairo_test_context_t *ctx, cairo_surface_t **surface)
110 {
111 cairo_status_t status;
112 FILE *f;
113 unsigned char *data;
114 long len;
115 const char *unique_id = "jpeg";
116 cairo_rectangle_t extents = { 0, 0, 1, 1 };
117
118 *surface = cairo_recording_surface_create (CAIRO_CONTENT_COLOR_ALPHA, &extents);
119 f = fopen (jpeg_filename, "rb");
120 if (f == NULL) {
121 cairo_test_log (ctx, "Unable to open file %s\n", jpeg_filename);
122 return CAIRO_TEST_FAILURE;
123 }
124
125 fseek (f, 0, SEEK_END);
126 len = ftell(f);
127 fseek (f, 0, SEEK_SET);
128 data = malloc (len);
129 if (fread(data, len, 1, f) != 1) {
130 cairo_test_log (ctx, "Unable to read file %s\n", jpeg_filename);
131 return CAIRO_TEST_FAILURE;
132 }
133
134 fclose(f);
135 status = cairo_surface_set_mime_data (*surface,
136 CAIRO_MIME_TYPE_JPEG,
137 data, len,
138 free, data);
139 if (status) {
140 cairo_surface_destroy (*surface);
141 return cairo_test_status_from_status (ctx, status);
142 }
143
144 status = cairo_surface_set_mime_data (*surface, CAIRO_MIME_TYPE_UNIQUE_ID,
145 (unsigned char *)unique_id,
146 strlen (unique_id),
147 NULL, NULL);
148 if (status) {
149 cairo_surface_destroy (*surface);
150 return cairo_test_status_from_status (ctx, status);
151 }
152
153 return CAIRO_TEST_SUCCESS;
154 }
155
156 static void
157 draw_tile (cairo_t *cr)
158 {
159 cairo_move_to (cr, 10 + 5, 10);
160 cairo_arc (cr, 10, 10, 5, 0, 2*M_PI);
161 cairo_close_path (cr);
162 cairo_set_source_rgb (cr, 1, 0, 0);
163 cairo_fill (cr);
164
165 cairo_move_to (cr, 30, 10-10*0.43);
166 cairo_line_to (cr, 25, 10+10*0.43);
167 cairo_line_to (cr, 35, 10+10*0.43);
168 cairo_close_path (cr);
169 cairo_set_source_rgb (cr, 0, 1, 0);
170 cairo_fill (cr);
171
172 cairo_rectangle (cr, 5, 25, 10, 10);
173 cairo_set_source_rgb (cr, 0, 0, 0);
174 cairo_fill (cr);
175
176 cairo_save (cr);
177 cairo_translate (cr, 30, 30);
178 cairo_rotate (cr, M_PI/4.0);
179 cairo_rectangle (cr, -5, -5, 10, 10);
180 cairo_set_source_rgb (cr, 1, 0, 1);
181 cairo_fill (cr);
182 cairo_restore (cr);
183 }
184
185 #define RECORDING_SIZE 800
186 #define TILE_SIZE 40
187
188 static cairo_test_status_t
189 create_recording_surface (cairo_test_context_t *ctx, cairo_surface_t **surface, cairo_bool_t bounded)
190 {
191 cairo_status_t status;
192 int x, y;
193 cairo_t *cr;
194 cairo_matrix_t ctm;
195 int start, size;
196 const char *bounded_id = "recording bounded";
197 const char *unbounded_id = "recording unbounded";
198 cairo_rectangle_t extents = { 0, 0, RECORDING_SIZE, RECORDING_SIZE };
199
200 if (bounded) {
201 *surface = cairo_recording_surface_create (CAIRO_CONTENT_COLOR_ALPHA, &extents);
202 start = 0;
203 size = RECORDING_SIZE;
204 } else {
205 *surface = cairo_recording_surface_create (CAIRO_CONTENT_COLOR_ALPHA, NULL);
206 start = RECORDING_SIZE / 2;
207 size = RECORDING_SIZE * 2;
208 }
209
210 /* Draw each tile instead of creating a cairo pattern to make size
211 * of the emitted recording as large as possible.
212 */
213 cr = cairo_create (*surface);
214 cairo_set_source_rgb (cr, 1, 1, 0);
215 cairo_paint (cr);
216 cairo_get_matrix (cr, &ctm);
217 for (y = start; y < size; y += TILE_SIZE) {
218 for (x = start; x < size; x += TILE_SIZE) {
219 draw_tile (cr);
220 cairo_translate (cr, TILE_SIZE, 0);
221 }
222 cairo_matrix_translate (&ctm, 0, TILE_SIZE);
223 cairo_set_matrix (cr, &ctm);
224 }
225 cairo_destroy (cr);
226
227 status = cairo_surface_set_mime_data (*surface, CAIRO_MIME_TYPE_UNIQUE_ID,
228 (unsigned char *)(bounded ? bounded_id : unbounded_id),
229 strlen (bounded ? bounded_id : unbounded_id),
230 NULL, NULL);
231 if (status) {
232 cairo_surface_destroy (*surface);
233 return cairo_test_status_from_status (ctx, status);
234 }
235
236 return CAIRO_TEST_SUCCESS;
237 }
238
239 /* Draw @source scaled to fit @rect and clipped to a rectangle
240 * @clip_margin units smaller on each side. @rect will be stroked
241 * with a solid line and the clip rect stroked with a dashed line.
242 */
243 static void
244 draw_surface (cairo_t *cr, cairo_surface_t *source, cairo_rectangle_int_t *rect, int clip_margin)
245 {
246 cairo_surface_type_t type;
247 int width, height;
248 cairo_rectangle_t extents;
249 const double dashes[2] = { 2, 2 };
250
251 type = cairo_surface_get_type (source);
252 if (type == CAIRO_SURFACE_TYPE_IMAGE) {
253 width = cairo_image_surface_get_width (source);
254 height = cairo_image_surface_get_height (source);
255 } else {
256 if (cairo_recording_surface_get_extents (source, &extents)) {
257 width = extents.width;
258 height = extents.height;
259 } else {
260 width = RECORDING_SIZE;
261 height = RECORDING_SIZE;
262 }
263 }
264
265 cairo_save (cr);
266 cairo_rectangle (cr, rect->x, rect->y, rect->width, rect->height);
267 cairo_stroke (cr);
268 cairo_rectangle (cr,
269 rect->x + clip_margin,
270 rect->y + clip_margin,
271 rect->width - clip_margin*2,
272 rect->height - clip_margin*2);
273 cairo_set_dash (cr, dashes, 2, 0);
274 cairo_stroke_preserve (cr);
275 cairo_clip (cr);
276
277 cairo_translate (cr, rect->x, rect->y);
278 cairo_scale (cr, (double)rect->width/width, (double)rect->height/height);
279 cairo_set_source_surface (cr, source, 0, 0);
280 cairo_paint (cr);
281
282 cairo_restore (cr);
283 }
284
285 static cairo_test_status_t
286 draw_pages (cairo_test_context_t *ctx, cairo_surface_t *surface)
287 {
288 cairo_t *cr;
289 int i;
290 cairo_rectangle_int_t img_rect;
291 cairo_rectangle_int_t jpg_rect;
292 cairo_rectangle_int_t bounded_rect;
293 cairo_rectangle_int_t unbounded_rect;
294 int clip_margin;
295 cairo_surface_t *source;
296 cairo_test_status_t status;
297
298 cr = cairo_create (surface);
299
300 /* target area to fill with the image source */
301 img_rect.x = 25;
302 img_rect.y = 25;
303 img_rect.width = 100;
304 img_rect.height = 100;
305
306 /* target area to fill with the recording with jpeg mime source */
307 jpg_rect.x = 150;
308 jpg_rect.y = 25;
309 jpg_rect.width = 100;
310 jpg_rect.height = 100;
311
312 /* target area to fill with the bounded recording source */
313 bounded_rect.x = 25;
314 bounded_rect.y = 150;
315 bounded_rect.width = 100;
316 bounded_rect.height = 100;
317
318 /* target area to fill with the unbounded recording source */
319 unbounded_rect.x = 150;
320 unbounded_rect.y = 150;
321 unbounded_rect.width = 100;
322 unbounded_rect.height = 100;
323
324 /* Draw the image and recording surface on each page. The sources
325 * are clipped starting with a small clip area on the first page
326 * and increasing to the source size on last page to ensure the
327 * embedded source is not clipped to the area used on the first
328 * page.
329 *
330 * The sources are created each time they are used to ensure
331 * CAIRO_MIME_TYPE_UNIQUE_ID is tested.
332 */
333 for (i = 0; i < NUM_PAGES; i++) {
334 clip_margin = (NUM_PAGES - i - 1) * 5;
335
336 status = create_image_surface (ctx, &source);
337 if (status)
338 return status;
339 draw_surface (cr, source, &img_rect, clip_margin);
340 cairo_surface_destroy (source);
341
342 status = create_recording_surface_with_mime_jpg (ctx, &source);
343 if (status)
344 return status;
345 draw_surface (cr, source, &jpg_rect, clip_margin);
346 cairo_surface_destroy (source);
347
348 status = create_recording_surface (ctx, &source, TRUE);
349 if (status)
350 return status;
351 draw_surface (cr, source, &bounded_rect, clip_margin);
352 cairo_surface_destroy (source);
353
354 status = create_recording_surface (ctx, &source, FALSE);
355 if (status)
356 return status;
357 draw_surface (cr, source, &unbounded_rect, clip_margin);
358 cairo_surface_destroy (source);
359
360 cairo_show_page (cr);
361 }
362
363 cairo_destroy (cr);
364
365 return CAIRO_TEST_SUCCESS;
366 }
367
368 static cairo_test_status_t
369 check_file_size (cairo_test_context_t *ctx, const char *filename, long expected_size)
370 {
371 FILE *f;
372 long size;
373
374 f = fopen (filename, "rb");
375 if (f == NULL) {
376 cairo_test_log (ctx, "Unable to open file %s\n", filename);
377 return CAIRO_TEST_FAILURE;
378 }
379
380 fseek (f, 0, SEEK_END);
381 size = ftell (f);
382 fclose(f);
383
384 if (labs(size - expected_size) > SIZE_TOLERANCE) {
385 cairo_test_log (ctx,
386 "mime-unique-id: File %s has size %ld. Expected size %ld +/- %ld."
387 " Check if surfaces are embedded once.\n",
388 filename, size, expected_size, (long)SIZE_TOLERANCE);
389 return CAIRO_TEST_FAILURE;
390 }
391
392 return CAIRO_TEST_SUCCESS;
393 }
394
395 static cairo_test_status_t
396 preamble (cairo_test_context_t *ctx)
397 {
398 cairo_surface_t *surface;
399 cairo_status_t status;
400 char *filename;
401 cairo_test_status_t result = CAIRO_TEST_UNTESTED;
402 cairo_test_status_t test_status;
403 const char *path = cairo_test_mkdir (CAIRO_TEST_OUTPUT_DIR) ? CAIRO_TEST_OUTPUT_DIR : ".";
404
405 #if CAIRO_HAS_PS_SURFACE
406 if (cairo_test_is_target_enabled (ctx, "ps2"))
407 {
408 xasprintf (&filename, "%s/%s.ps2.out.ps", path, BASENAME);
409 surface = cairo_ps_surface_create (filename, WIDTH, HEIGHT);
410 status = cairo_surface_status (surface);
411 if (status) {
412 cairo_test_log (ctx, "Failed to create ps surface for file %s: %s\n",
413 filename, cairo_status_to_string (status));
414 test_status = CAIRO_TEST_FAILURE;
415 goto ps2_finish;
416 }
417
418 cairo_ps_surface_restrict_to_level (surface, CAIRO_PS_LEVEL_2);
419
420 test_status = draw_pages (ctx, surface);
421 cairo_surface_destroy (surface);
422
423 if (test_status == CAIRO_TEST_SUCCESS)
424 test_status = check_file_size (ctx, filename, PS2_EXPECTED_SIZE);
425
426 ps2_finish:
427 cairo_test_log (ctx, "TEST: %s TARGET: %s RESULT: %s\n",
428 ctx->test->name,
429 "ps2",
430 test_status ? "FAIL" : "PASS");
431
432 if (result == CAIRO_TEST_UNTESTED || test_status == CAIRO_TEST_FAILURE)
433 result = test_status;
434
435 free (filename);
436 }
437
438 if (cairo_test_is_target_enabled (ctx, "ps3"))
439 {
440 xasprintf (&filename, "%s/%s.ps3.out.ps", path, BASENAME);
441 surface = cairo_ps_surface_create (filename, WIDTH, HEIGHT);
442 status = cairo_surface_status (surface);
443 if (status) {
444 cairo_test_log (ctx, "Failed to create ps surface for file %s: %s\n",
445 filename, cairo_status_to_string (status));
446 test_status = CAIRO_TEST_FAILURE;
447 goto ps3_finish;
448 }
449
450 test_status = draw_pages (ctx, surface);
451 cairo_surface_destroy (surface);
452
453 if (test_status == CAIRO_TEST_SUCCESS)
454 test_status = check_file_size (ctx, filename, PS3_EXPECTED_SIZE);
455
456 ps3_finish:
457 cairo_test_log (ctx, "TEST: %s TARGET: %s RESULT: %s\n",
458 ctx->test->name,
459 "ps3",
460 test_status ? "FAIL" : "PASS");
461
462 if (result == CAIRO_TEST_UNTESTED || test_status == CAIRO_TEST_FAILURE)
463 result = test_status;
464
465 free (filename);
466 }
467 #endif
468
469 #if CAIRO_HAS_PDF_SURFACE
470 if (cairo_test_is_target_enabled (ctx, "pdf"))
471 {
472 xasprintf (&filename, "%s/%s.pdf.out.pdf", path, BASENAME);
473 surface = cairo_pdf_surface_create (filename, WIDTH, HEIGHT);
474 status = cairo_surface_status (surface);
475 if (status) {
476 cairo_test_log (ctx, "Failed to create pdf surface for file %s: %s\n",
477 filename, cairo_status_to_string (status));
478 test_status = CAIRO_TEST_FAILURE;
479 goto pdf_finish;
480 }
481
482 test_status = draw_pages (ctx, surface);
483 cairo_surface_destroy (surface);
484
485 if (test_status == CAIRO_TEST_SUCCESS)
486 test_status = check_file_size (ctx, filename, PDF_EXPECTED_SIZE);
487
488
489 pdf_finish:
490 cairo_test_log (ctx, "TEST: %s TARGET: %s RESULT: %s\n",
491 ctx->test->name,
492 "pdf",
493 test_status ? "FAIL" : "PASS");
494
495 if (result == CAIRO_TEST_UNTESTED || test_status == CAIRO_TEST_FAILURE)
496 result = test_status;
497
498 free (filename);
499 }
500 #endif
501
502 return result;
503 }
504
505 CAIRO_TEST (mime_unique_id,
506 "Check that paginated surfaces embed only one copy of surfaces with the same CAIRO_MIME_TYPE_UNIQUE_ID.",
507 "paginated", /* keywords */
508 "target=vector", /* requirements */
509 0, 0,
510 preamble, NULL)
9696 $(top_srcdir)/build/aclocal.compare.m4 \
9797 $(top_srcdir)/build/aclocal.enable.m4 \
9898 $(top_srcdir)/build/aclocal.float.m4 \
99 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
10099 $(top_srcdir)/build/aclocal.makefile.m4 \
101100 $(top_srcdir)/build/aclocal.pkg.m4 \
102 $(top_srcdir)/build/libtool.m4 \
101 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
103102 $(top_srcdir)/build/ltoptions.m4 \
104103 $(top_srcdir)/build/ltsugar.m4 \
105104 $(top_srcdir)/build/ltversion.m4 \
457456 GREP = @GREP@
458457 GS = @GS@
459458 GTKDOC_CHECK = @GTKDOC_CHECK@
459 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
460 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
461 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
462 GTKDOC_MKPDF = @GTKDOC_MKPDF@
463 GTKDOC_REBASE = @GTKDOC_REBASE@
460464 HTML_DIR = @HTML_DIR@
461465 INSTALL = @INSTALL@
462466 INSTALL_DATA = @INSTALL_DATA@
555559 gl_LIBS = @gl_LIBS@
556560 glesv2_CFLAGS = @glesv2_CFLAGS@
557561 glesv2_LIBS = @glesv2_LIBS@
562 glesv3_CFLAGS = @glesv3_CFLAGS@
563 glesv3_LIBS = @glesv3_LIBS@
558564 glib_CFLAGS = @glib_CFLAGS@
559565 glib_LIBS = @glib_LIBS@
560566 gtk_CFLAGS = @gtk_CFLAGS@
4545 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xff0000ff
4646 };
4747
48 static const char *unique_id = "data";
49
4850 static const char *png_filename = "romedalen.png";
4951
5052 static cairo_t *
6971
7072 surface = cairo_image_surface_create_for_data ((unsigned char *) data,
7173 CAIRO_FORMAT_RGB24, 4, 4, 16);
74 cairo_surface_set_mime_data (surface, CAIRO_MIME_TYPE_UNIQUE_ID,
75 (unsigned char *)unique_id, strlen(unique_id),
76 NULL, NULL);
7277
7378 cairo_test_paint_checkered (cr);
7479
105110
106111 surface = cairo_image_surface_create_for_data ((unsigned char *) data,
107112 CAIRO_FORMAT_RGB24, 4, 4, 16);
113 cairo_surface_set_mime_data (surface, CAIRO_MIME_TYPE_UNIQUE_ID,
114 (unsigned char *)unique_id, strlen(unique_id),
115 NULL, NULL);
108116
109117 cairo_test_paint_checkered (cr);
110118
130138
131139 surface = cairo_image_surface_create_for_data ((unsigned char *) data,
132140 CAIRO_FORMAT_RGB24, 4, 4, 16);
141 cairo_surface_set_mime_data (surface, CAIRO_MIME_TYPE_UNIQUE_ID,
142 (unsigned char *)unique_id, strlen(unique_id),
143 NULL, NULL);
133144
134145 cairo_test_paint_checkered (cr);
135146
test/reference/record-extend-pad.ps.ref.png less more
Binary diff not shown
2626
2727 #include <stdlib.h>
2828 #include <stdio.h>
29 #include <gdk/gdk.h>
30 #include <gdk/gdkpixbuf.h>
3129 #include <librsvg/rsvg.h>
3230
3331 #define FAIL(msg) \
106106 $(top_srcdir)/build/aclocal.compare.m4 \
107107 $(top_srcdir)/build/aclocal.enable.m4 \
108108 $(top_srcdir)/build/aclocal.float.m4 \
109 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
110109 $(top_srcdir)/build/aclocal.makefile.m4 \
111110 $(top_srcdir)/build/aclocal.pkg.m4 \
112 $(top_srcdir)/build/libtool.m4 \
111 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
113112 $(top_srcdir)/build/ltoptions.m4 \
114113 $(top_srcdir)/build/ltsugar.m4 \
115114 $(top_srcdir)/build/ltversion.m4 \
562561 GREP = @GREP@
563562 GS = @GS@
564563 GTKDOC_CHECK = @GTKDOC_CHECK@
564 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
565 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
566 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
567 GTKDOC_MKPDF = @GTKDOC_MKPDF@
568 GTKDOC_REBASE = @GTKDOC_REBASE@
565569 HTML_DIR = @HTML_DIR@
566570 INSTALL = @INSTALL@
567571 INSTALL_DATA = @INSTALL_DATA@
660664 gl_LIBS = @gl_LIBS@
661665 glesv2_CFLAGS = @glesv2_CFLAGS@
662666 glesv2_LIBS = @glesv2_LIBS@
667 glesv3_CFLAGS = @glesv3_CFLAGS@
668 glesv3_LIBS = @glesv3_LIBS@
663669 glib_CFLAGS = @glib_CFLAGS@
664670 glib_LIBS = @glib_LIBS@
665671 gtk_CFLAGS = @gtk_CFLAGS@
9393 $(top_srcdir)/build/aclocal.compare.m4 \
9494 $(top_srcdir)/build/aclocal.enable.m4 \
9595 $(top_srcdir)/build/aclocal.float.m4 \
96 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
9796 $(top_srcdir)/build/aclocal.makefile.m4 \
9897 $(top_srcdir)/build/aclocal.pkg.m4 \
99 $(top_srcdir)/build/libtool.m4 \
98 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
10099 $(top_srcdir)/build/ltoptions.m4 \
101100 $(top_srcdir)/build/ltsugar.m4 \
102101 $(top_srcdir)/build/ltversion.m4 \
276275 GREP = @GREP@
277276 GS = @GS@
278277 GTKDOC_CHECK = @GTKDOC_CHECK@
278 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
279 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
280 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
281 GTKDOC_MKPDF = @GTKDOC_MKPDF@
282 GTKDOC_REBASE = @GTKDOC_REBASE@
279283 HTML_DIR = @HTML_DIR@
280284 INSTALL = @INSTALL@
281285 INSTALL_DATA = @INSTALL_DATA@
374378 gl_LIBS = @gl_LIBS@
375379 glesv2_CFLAGS = @glesv2_CFLAGS@
376380 glesv2_LIBS = @glesv2_LIBS@
381 glesv3_CFLAGS = @glesv3_CFLAGS@
382 glesv3_LIBS = @glesv3_LIBS@
377383 glib_CFLAGS = @glib_CFLAGS@
378384 glib_LIBS = @glib_LIBS@
379385 gtk_CFLAGS = @gtk_CFLAGS@
9494 $(top_srcdir)/build/aclocal.compare.m4 \
9595 $(top_srcdir)/build/aclocal.enable.m4 \
9696 $(top_srcdir)/build/aclocal.float.m4 \
97 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
9897 $(top_srcdir)/build/aclocal.makefile.m4 \
9998 $(top_srcdir)/build/aclocal.pkg.m4 \
100 $(top_srcdir)/build/libtool.m4 \
99 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
101100 $(top_srcdir)/build/ltoptions.m4 \
102101 $(top_srcdir)/build/ltsugar.m4 \
103102 $(top_srcdir)/build/ltversion.m4 \
284283 GREP = @GREP@
285284 GS = @GS@
286285 GTKDOC_CHECK = @GTKDOC_CHECK@
286 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
287 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
288 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
289 GTKDOC_MKPDF = @GTKDOC_MKPDF@
290 GTKDOC_REBASE = @GTKDOC_REBASE@
287291 HTML_DIR = @HTML_DIR@
288292 INSTALL = @INSTALL@
289293 INSTALL_DATA = @INSTALL_DATA@
382386 gl_LIBS = @gl_LIBS@
383387 glesv2_CFLAGS = @glesv2_CFLAGS@
384388 glesv2_LIBS = @glesv2_LIBS@
389 glesv3_CFLAGS = @glesv3_CFLAGS@
390 glesv3_LIBS = @glesv3_LIBS@
385391 glib_CFLAGS = @glib_CFLAGS@
386392 glib_LIBS = @glib_LIBS@
387393 gtk_CFLAGS = @gtk_CFLAGS@
9393 $(top_srcdir)/build/aclocal.compare.m4 \
9494 $(top_srcdir)/build/aclocal.enable.m4 \
9595 $(top_srcdir)/build/aclocal.float.m4 \
96 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
9796 $(top_srcdir)/build/aclocal.makefile.m4 \
9897 $(top_srcdir)/build/aclocal.pkg.m4 \
99 $(top_srcdir)/build/libtool.m4 \
98 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
10099 $(top_srcdir)/build/ltoptions.m4 \
101100 $(top_srcdir)/build/ltsugar.m4 \
102101 $(top_srcdir)/build/ltversion.m4 \
248247 GREP = @GREP@
249248 GS = @GS@
250249 GTKDOC_CHECK = @GTKDOC_CHECK@
250 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
251 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
252 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
253 GTKDOC_MKPDF = @GTKDOC_MKPDF@
254 GTKDOC_REBASE = @GTKDOC_REBASE@
251255 HTML_DIR = @HTML_DIR@
252256 INSTALL = @INSTALL@
253257 INSTALL_DATA = @INSTALL_DATA@
346350 gl_LIBS = @gl_LIBS@
347351 glesv2_CFLAGS = @glesv2_CFLAGS@
348352 glesv2_LIBS = @glesv2_LIBS@
353 glesv3_CFLAGS = @glesv3_CFLAGS@
354 glesv3_LIBS = @glesv3_LIBS@
349355 glib_CFLAGS = @glib_CFLAGS@
350356 glib_LIBS = @glib_LIBS@
351357 gtk_CFLAGS = @gtk_CFLAGS@
9797 $(top_srcdir)/build/aclocal.compare.m4 \
9898 $(top_srcdir)/build/aclocal.enable.m4 \
9999 $(top_srcdir)/build/aclocal.float.m4 \
100 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
101100 $(top_srcdir)/build/aclocal.makefile.m4 \
102101 $(top_srcdir)/build/aclocal.pkg.m4 \
103 $(top_srcdir)/build/libtool.m4 \
102 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
104103 $(top_srcdir)/build/ltoptions.m4 \
105104 $(top_srcdir)/build/ltsugar.m4 \
106105 $(top_srcdir)/build/ltversion.m4 \
365364 GREP = @GREP@
366365 GS = @GS@
367366 GTKDOC_CHECK = @GTKDOC_CHECK@
367 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
368 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
369 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
370 GTKDOC_MKPDF = @GTKDOC_MKPDF@
371 GTKDOC_REBASE = @GTKDOC_REBASE@
368372 HTML_DIR = @HTML_DIR@
369373 INSTALL = @INSTALL@
370374 INSTALL_DATA = @INSTALL_DATA@
463467 gl_LIBS = @gl_LIBS@
464468 glesv2_CFLAGS = @glesv2_CFLAGS@
465469 glesv2_LIBS = @glesv2_LIBS@
470 glesv3_CFLAGS = @glesv3_CFLAGS@
471 glesv3_LIBS = @glesv3_LIBS@
466472 glib_CFLAGS = @glib_CFLAGS@
467473 glib_LIBS = @glib_LIBS@
468474 gtk_CFLAGS = @gtk_CFLAGS@
178178 #endif
179179 }
180180
181 csi_status_t
182 _csi_stack_push (csi_t *ctx, csi_stack_t *stack,
183 const csi_object_t *obj)
184 {
185 if (_csi_unlikely (stack->len == stack->size))
186 return _csi_stack_push_internal (ctx, stack, obj);
187
188 stack->objects[stack->len++] = *obj;
189 return CSI_STATUS_SUCCESS;
190 }
191
181192 static void
182193 _csi_perm_fini (csi_t *ctx)
183194 {
915915 }
916916 }
917917
918 static inline csi_status_t
918 csi_status_t
919919 _csi_stack_push (csi_t *ctx, csi_stack_t *stack,
920 const csi_object_t *obj)
921 {
922 if (_csi_unlikely (stack->len == stack->size))
923 return _csi_stack_push_internal (ctx, stack, obj);
924
925 stack->objects[stack->len++] = *obj;
926 return CSI_STATUS_SUCCESS;
927 }
920 const csi_object_t *obj);
928921
929922 static inline csi_boolean_t
930923 _csi_check_ostack (csi_t *ctx, csi_integer_t count)
9292 $(top_srcdir)/build/aclocal.compare.m4 \
9393 $(top_srcdir)/build/aclocal.enable.m4 \
9494 $(top_srcdir)/build/aclocal.float.m4 \
95 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
9695 $(top_srcdir)/build/aclocal.makefile.m4 \
9796 $(top_srcdir)/build/aclocal.pkg.m4 \
98 $(top_srcdir)/build/libtool.m4 \
97 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
9998 $(top_srcdir)/build/ltoptions.m4 \
10099 $(top_srcdir)/build/ltsugar.m4 \
101100 $(top_srcdir)/build/ltversion.m4 \
196195 GREP = @GREP@
197196 GS = @GS@
198197 GTKDOC_CHECK = @GTKDOC_CHECK@
198 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
199 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
200 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
201 GTKDOC_MKPDF = @GTKDOC_MKPDF@
202 GTKDOC_REBASE = @GTKDOC_REBASE@
199203 HTML_DIR = @HTML_DIR@
200204 INSTALL = @INSTALL@
201205 INSTALL_DATA = @INSTALL_DATA@
294298 gl_LIBS = @gl_LIBS@
295299 glesv2_CFLAGS = @glesv2_CFLAGS@
296300 glesv2_LIBS = @glesv2_LIBS@
301 glesv3_CFLAGS = @glesv3_CFLAGS@
302 glesv3_LIBS = @glesv3_LIBS@
297303 glib_CFLAGS = @glib_CFLAGS@
298304 glib_LIBS = @glib_LIBS@
299305 gtk_CFLAGS = @gtk_CFLAGS@
9595 $(top_srcdir)/build/aclocal.compare.m4 \
9696 $(top_srcdir)/build/aclocal.enable.m4 \
9797 $(top_srcdir)/build/aclocal.float.m4 \
98 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
9998 $(top_srcdir)/build/aclocal.makefile.m4 \
10099 $(top_srcdir)/build/aclocal.pkg.m4 \
101 $(top_srcdir)/build/libtool.m4 \
100 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
102101 $(top_srcdir)/build/ltoptions.m4 \
103102 $(top_srcdir)/build/ltsugar.m4 \
104103 $(top_srcdir)/build/ltversion.m4 \
286285 GREP = @GREP@
287286 GS = @GS@
288287 GTKDOC_CHECK = @GTKDOC_CHECK@
288 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
289 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
290 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
291 GTKDOC_MKPDF = @GTKDOC_MKPDF@
292 GTKDOC_REBASE = @GTKDOC_REBASE@
289293 HTML_DIR = @HTML_DIR@
290294 INSTALL = @INSTALL@
291295 INSTALL_DATA = @INSTALL_DATA@
384388 gl_LIBS = @gl_LIBS@
385389 glesv2_CFLAGS = @glesv2_CFLAGS@
386390 glesv2_LIBS = @glesv2_LIBS@
391 glesv3_CFLAGS = @glesv3_CFLAGS@
392 glesv3_LIBS = @glesv3_LIBS@
387393 glib_CFLAGS = @glib_CFLAGS@
388394 glib_LIBS = @glib_LIBS@
389395 gtk_CFLAGS = @gtk_CFLAGS@
100100 $(top_srcdir)/build/aclocal.compare.m4 \
101101 $(top_srcdir)/build/aclocal.enable.m4 \
102102 $(top_srcdir)/build/aclocal.float.m4 \
103 $(top_srcdir)/build/aclocal.gtk-doc.m4 \
104103 $(top_srcdir)/build/aclocal.makefile.m4 \
105104 $(top_srcdir)/build/aclocal.pkg.m4 \
106 $(top_srcdir)/build/libtool.m4 \
105 $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \
107106 $(top_srcdir)/build/ltoptions.m4 \
108107 $(top_srcdir)/build/ltsugar.m4 \
109108 $(top_srcdir)/build/ltversion.m4 \
294293 GREP = @GREP@
295294 GS = @GS@
296295 GTKDOC_CHECK = @GTKDOC_CHECK@
296 GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
297 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
298 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
299 GTKDOC_MKPDF = @GTKDOC_MKPDF@
300 GTKDOC_REBASE = @GTKDOC_REBASE@
297301 HTML_DIR = @HTML_DIR@
298302 INSTALL = @INSTALL@
299303 INSTALL_DATA = @INSTALL_DATA@
392396 gl_LIBS = @gl_LIBS@
393397 glesv2_CFLAGS = @glesv2_CFLAGS@
394398 glesv2_LIBS = @glesv2_LIBS@
399 glesv3_CFLAGS = @glesv3_CFLAGS@
400 glesv3_LIBS = @glesv3_LIBS@
395401 glib_CFLAGS = @glib_CFLAGS@
396402 glib_LIBS = @glib_LIBS@
397403 gtk_CFLAGS = @gtk_CFLAGS@
2323 * Author: Chris Wilson <chris@chris-wilson.co.uk>
2424 */
2525
26 #include <stdlib.h>
27 #include <string.h>
2628 #include <gtk/gtk.h>
2729 #include <cairo.h>
2830