Subversion Repositories Kolibri OS

Rev

Rev 1892 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1892 Rev 3959
Line 69... Line 69...
69
 
69
 
70
#include "cairo.h"
70
#include "cairo.h"
Line 71... Line 71...
71
#include 
71
#include 
-
 
72
 
-
 
73
#include "cairo-compiler-private.h"
-
 
74
#include "cairo-error-private.h"
-
 
75
 
-
 
76
#if CAIRO_HAS_PDF_SURFACE    || \
-
 
77
    CAIRO_HAS_PS_SURFACE     || \
-
 
78
    CAIRO_HAS_SCRIPT_SURFACE || \
-
 
79
    CAIRO_HAS_XML_SURFACE
Line 72... Line 80...
72
 
80
#define CAIRO_HAS_DEFLATE_STREAM 1
73
#include "cairo-compiler-private.h"
81
#endif
74
 
82
 
75
#if CAIRO_HAS_PS_SURFACE  || \
83
#if CAIRO_HAS_PS_SURFACE  || \
76
    CAIRO_HAS_PDF_SURFACE || \
84
    CAIRO_HAS_PDF_SURFACE || \
77
    CAIRO_HAS_SVG_SURFACE || \
85
    CAIRO_HAS_SVG_SURFACE || \
Line 78... Line 86...
78
    CAIRO_HAS_WIN32_SURFACE
86
    CAIRO_HAS_WIN32_SURFACE
-
 
87
#define CAIRO_HAS_FONT_SUBSET 1
-
 
88
#endif
79
#define CAIRO_HAS_FONT_SUBSET 1
89
 
80
#endif
90
#if CAIRO_HAS_PS_SURFACE  || \
Line 81... Line 91...
81
 
91
    CAIRO_HAS_PDF_SURFACE || \
Line 180... Line 190...
180
    y = mask - y - ((y >>1) & 033333333333);
190
    y = mask - y - ((y >>1) & 033333333333);
181
    return (((y + (y >> 3)) & 030707070707) % 077);
191
    return (((y + (y >> 3)) & 030707070707) % 077);
182
#endif
192
#endif
183
}
193
}
Line -... Line 194...
-
 
194
 
-
 
195
static cairo_always_inline cairo_bool_t
-
 
196
_cairo_is_little_endian (void)
-
 
197
{
-
 
198
    static const int i = 1;
-
 
199
    return *((char *) &i) == 0x01;
-
 
200
}
184
 
201
 
185
#ifdef WORDS_BIGENDIAN
202
#ifdef WORDS_BIGENDIAN
186
#define CAIRO_BITSWAP8_IF_LITTLE_ENDIAN(c) (c)
203
#define CAIRO_BITSWAP8_IF_LITTLE_ENDIAN(c) (c)
187
#else
204
#else
188
#define CAIRO_BITSWAP8_IF_LITTLE_ENDIAN(c) CAIRO_BITSWAP8(c)
205
#define CAIRO_BITSWAP8_IF_LITTLE_ENDIAN(c) CAIRO_BITSWAP8(c)
Line 241... Line 258...
241
 
258
 
242
#include "cairo-types-private.h"
259
#include "cairo-types-private.h"
243
#include "cairo-cache-private.h"
260
#include "cairo-cache-private.h"
244
#include "cairo-reference-count-private.h"
261
#include "cairo-reference-count-private.h"
-
 
262
#include "cairo-spans-private.h"
Line 245... Line 263...
245
#include "cairo-spans-private.h"
263
#include "cairo-surface-private.h"
246
 
264
 
247
cairo_private void
265
cairo_private void
248
_cairo_box_from_doubles (cairo_box_t *box,
266
_cairo_box_from_doubles (cairo_box_t *box,
Line 261... Line 279...
261
cairo_private void
279
cairo_private void
262
_cairo_box_round_to_rectangle (const cairo_box_t     *box,
280
_cairo_box_round_to_rectangle (const cairo_box_t     *box,
263
			       cairo_rectangle_int_t *rectangle);
281
			       cairo_rectangle_int_t *rectangle);
Line 264... Line 282...
264
 
282
 
-
 
283
cairo_private void
-
 
284
_cairo_box_add_curve_to (cairo_box_t         *extents,
-
 
285
			 const cairo_point_t *a,
-
 
286
			 const cairo_point_t *b,
-
 
287
			 const cairo_point_t *c,
-
 
288
			 const cairo_point_t *d);
-
 
289
 
265
cairo_private void
290
cairo_private void
266
_cairo_boxes_get_extents (const cairo_box_t *boxes,
291
_cairo_boxes_get_extents (const cairo_box_t *boxes,
267
			  int num_boxes,
292
			  int num_boxes,
Line -... Line 293...
-
 
293
			  cairo_box_t *extents);
-
 
294
 
-
 
295
cairo_private extern const cairo_rectangle_int_t _cairo_empty_rectangle;
268
			  cairo_box_t *extents);
296
cairo_private extern const cairo_rectangle_int_t _cairo_unbounded_rectangle;
269
 
297
 
270
static inline void
298
static inline void
271
_cairo_unbounded_rectangle_init (cairo_rectangle_int_t *rect)
-
 
272
{
299
_cairo_unbounded_rectangle_init (cairo_rectangle_int_t *rect)
273
    rect->x = CAIRO_RECT_INT_MIN;
-
 
274
    rect->y = CAIRO_RECT_INT_MIN;
-
 
275
    rect->width = CAIRO_RECT_INT_MAX - CAIRO_RECT_INT_MIN;
300
{
Line 276... Line 301...
276
    rect->height = CAIRO_RECT_INT_MAX - CAIRO_RECT_INT_MIN;
301
    *rect = _cairo_unbounded_rectangle;
277
}
302
}
278
 
303
 
Line 279... Line 304...
279
cairo_private cairo_bool_t
304
cairo_private_no_warn cairo_bool_t
280
_cairo_rectangle_intersect (cairo_rectangle_int_t *dst,
305
_cairo_rectangle_intersect (cairo_rectangle_int_t *dst,
281
			    const cairo_rectangle_int_t *src);
-
 
282
 
-
 
283
cairo_private cairo_bool_t
-
 
284
_cairo_box_intersects_line_segment (cairo_box_t *box,
-
 
285
	                            cairo_line_t *line) cairo_pure;
306
			    const cairo_rectangle_int_t *src);
286
 
307
 
287
cairo_private cairo_bool_t
308
static inline cairo_bool_t
288
_cairo_box_contains_point (cairo_box_t *box,
-
 
289
	                   const cairo_point_t *point) cairo_pure;
-
 
290
 
309
_cairo_rectangle_intersects (const cairo_rectangle_int_t *dst,
291
/* cairo-array.c structures and functions */
-
 
292
 
-
 
293
cairo_private void
310
			     const cairo_rectangle_int_t *src)
294
_cairo_array_init (cairo_array_t *array, int element_size);
311
{
295
 
312
    return !(src->x >= dst->x + (int) dst->width ||
296
cairo_private void
-
 
297
_cairo_array_init_snapshot (cairo_array_t	*array,
-
 
Line 298... Line 313...
298
			    const cairo_array_t *other);
313
	     src->x + (int) src->width <= dst->x ||
299
 
314
	     src->y >= dst->y + (int) dst->height ||
-
 
315
	     src->y + (int) src->height <= dst->y);
-
 
316
}
-
 
317
 
-
 
318
static inline cairo_bool_t
-
 
319
_cairo_rectangle_contains_rectangle (const cairo_rectangle_int_t *a,
-
 
320
				     const cairo_rectangle_int_t *b)
-
 
321
{
Line 300... Line 322...
300
cairo_private void
322
    return (a->x <= b->x &&
301
_cairo_array_fini (cairo_array_t *array);
-
 
302
 
-
 
303
cairo_private cairo_status_t
-
 
304
_cairo_array_grow_by (cairo_array_t *array, unsigned int additional);
-
 
305
 
-
 
306
cairo_private void
-
 
307
_cairo_array_truncate (cairo_array_t *array, unsigned int num_elements);
323
	    a->x + (int) a->width >= b->x + (int) b->width &&
308
 
324
	    a->y <= b->y &&
309
cairo_private cairo_status_t
-
 
310
_cairo_array_append (cairo_array_t *array, const void *element);
-
 
311
 
-
 
312
cairo_private cairo_status_t
-
 
313
_cairo_array_append_multiple (cairo_array_t	*array,
-
 
314
			      const void	*elements,
-
 
315
			      int		 num_elements);
-
 
316
 
-
 
317
cairo_private cairo_status_t
-
 
Line -... Line 325...
-
 
325
	    a->y + (int) a->height >= b->y + (int) b->height);
-
 
326
}
-
 
327
 
318
_cairo_array_allocate (cairo_array_t	 *array,
328
cairo_private void
319
		       unsigned int	  num_elements,
329
_cairo_rectangle_int_from_double (cairo_rectangle_int_t *recti,
-
 
330
				  const cairo_rectangle_t *rectf);
Line 320... Line 331...
320
		       void		**elements);
331
 
321
 
332
/* Extends the dst rectangle to also contain src.
-
 
333
 * If one of the rectangles is empty, the result is undefined
Line 322... Line 334...
322
cairo_private void *
334
 */
323
_cairo_array_index (cairo_array_t *array, unsigned int index);
335
cairo_private void
-
 
336
_cairo_rectangle_union (cairo_rectangle_int_t *dst,
-
 
337
			const cairo_rectangle_int_t *src);
-
 
338
 
-
 
339
cairo_private cairo_bool_t
Line 324... Line 340...
324
 
340
_cairo_box_intersects_line_segment (const cairo_box_t *box,
325
cairo_private void
341
	                            cairo_line_t *line) cairo_pure;
326
_cairo_array_copy_element (cairo_array_t *array, int index, void *dst);
342
 
327
 
343
cairo_private cairo_bool_t
Line 353... Line 369...
353
				 void			     *user_data,
369
				 void			     *user_data,
354
				 cairo_destroy_func_t	      destroy);
370
				 cairo_destroy_func_t	      destroy);
Line 355... Line 371...
355
 
371
 
356
cairo_private cairo_status_t
372
cairo_private cairo_status_t
357
_cairo_user_data_array_copy (cairo_user_data_array_t	*dst,
373
_cairo_user_data_array_copy (cairo_user_data_array_t		*dst,
Line 358... Line 374...
358
			     cairo_user_data_array_t	*src);
374
			     const cairo_user_data_array_t	*src);
359
 
375
 
360
cairo_private void
376
cairo_private void
361
_cairo_user_data_array_foreach (cairo_user_data_array_t     *array,
377
_cairo_user_data_array_foreach (cairo_user_data_array_t     *array,
Line 387... Line 403...
387
    cairo_user_data_array_t user_data;
403
    cairo_user_data_array_t user_data;
388
    const cairo_font_face_backend_t *backend;
404
    const cairo_font_face_backend_t *backend;
389
};
405
};
Line 390... Line 406...
390
 
406
 
391
cairo_private void
407
cairo_private void
Line 392... Line 408...
392
_cairo_reset_static_data (void);
408
_cairo_default_context_reset_static_data (void);
393
 
409
 
Line 394... Line 410...
394
cairo_private void
410
cairo_private void
395
_cairo_toy_font_face_reset_static_data (void);
411
_cairo_toy_font_face_reset_static_data (void);
Line -... Line 412...
-
 
412
 
-
 
413
cairo_private void
-
 
414
_cairo_ft_font_reset_static_data (void);
-
 
415
 
-
 
416
cairo_private void
-
 
417
_cairo_win32_font_reset_static_data (void);
-
 
418
 
-
 
419
#if CAIRO_HAS_COGL_SURFACE
396
 
420
void
Line 397... Line 421...
397
cairo_private void
421
_cairo_cogl_context_reset_static_data (void);
398
_cairo_ft_font_reset_static_data (void);
422
#endif
399
 
423
 
Line 431... Line 455...
431
 
455
 
432
    /* Index of glyphs array is subset_glyph_index.
456
    /* Index of glyphs array is subset_glyph_index.
433
     * Value of glyphs array is scaled_font_glyph_index.
457
     * Value of glyphs array is scaled_font_glyph_index.
434
     */
458
     */
435
    unsigned long *glyphs;
-
 
436
    unsigned long *to_unicode;
459
    unsigned long *glyphs;
437
    char          **utf8;
460
    char          **utf8;
-
 
461
    char          **glyph_names;
-
 
462
    int           *to_latin_char;
438
    char          **glyph_names;
463
    unsigned long *latin_to_subset_glyph_index;
439
    unsigned int num_glyphs;
464
    unsigned int num_glyphs;
440
    cairo_bool_t is_composite;
465
    cairo_bool_t is_composite;
-
 
466
    cairo_bool_t is_scaled;
441
    cairo_bool_t is_scaled;
467
    cairo_bool_t is_latin;
Line 442... Line 468...
442
} cairo_scaled_font_subset_t;
468
} cairo_scaled_font_subset_t;
443
 
469
 
Line 469... Line 495...
469
		       cairo_text_cluster_flags_t *cluster_flags);
495
		       cairo_text_cluster_flags_t *cluster_flags);
Line 470... Line 496...
470
 
496
 
471
    unsigned long
497
    unsigned long
472
    (*ucs4_to_index)		(void			     *scaled_font,
498
    (*ucs4_to_index)		(void			     *scaled_font,
473
				 uint32_t		      ucs4);
-
 
474
    cairo_warn cairo_int_status_t
-
 
475
    (*show_glyphs)	(void			*scaled_font,
-
 
476
			 cairo_operator_t	 op,
-
 
477
			 const cairo_pattern_t	*pattern,
-
 
478
			 cairo_surface_t	*surface,
-
 
479
			 int			 source_x,
-
 
480
			 int			 source_y,
-
 
481
			 int			 dest_x,
-
 
482
			 int			 dest_y,
-
 
483
			 unsigned int		 width,
-
 
484
			 unsigned int		 height,
-
 
485
			 cairo_glyph_t		*glyphs,
-
 
486
			 int			 num_glyphs,
-
 
487
			 cairo_region_t		*clip_region,
-
 
Line -... Line 499...
-
 
499
				 uint32_t		      ucs4);
-
 
500
 
-
 
501
    /* Read data from a sfnt font table.
-
 
502
     * @scaled_font: font
-
 
503
     * @tag: 4 byte table name specifying the table to read.
-
 
504
     * @offset: offset into the table
-
 
505
     * @buffer: buffer to write data into. Caller must ensure there is sufficient space.
-
 
506
     *          If NULL, return the size of the table in @length.
-
 
507
     * @length: If @buffer is NULL, the size of the table will be returned in @length.
-
 
508
     *          If @buffer is not null, @length specifies the number of bytes to read.
-
 
509
     *
-
 
510
     * If less than @length bytes are available to read this function
-
 
511
     * returns CAIRO_INT_STATUS_UNSUPPORTED. Note that requesting more
-
 
512
     * bytes than are available in the table may continue reading data
-
 
513
     * from the following table and return success. If this is
-
 
514
     * undesirable the caller should first query the table size. If an
-
 
515
     * error occurs the output value of @length is undefined.
-
 
516
     *
488
			 int			*remaining_glyphs);
517
     * Returns CAIRO_INT_STATUS_UNSUPPORTED if not a sfnt style font or table not found.
489
 
518
     */
490
    cairo_warn cairo_int_status_t
519
    cairo_warn cairo_int_status_t
491
    (*load_truetype_table)(void		        *scaled_font,
520
    (*load_truetype_table)(void		        *scaled_font,
492
                           unsigned long         tag,
521
                           unsigned long         tag,
Line 498... Line 527...
498
     * for the glyph */
527
     * for the glyph */
499
    cairo_warn cairo_int_status_t
528
    cairo_warn cairo_int_status_t
500
    (*index_to_ucs4)(void                       *scaled_font,
529
    (*index_to_ucs4)(void                       *scaled_font,
501
		     unsigned long               index,
530
		     unsigned long               index,
502
                     uint32_t                   *ucs4);
531
                     uint32_t                   *ucs4);
-
 
532
 
-
 
533
    cairo_warn cairo_bool_t
-
 
534
    (*is_synthetic)(void                       *scaled_font);
-
 
535
 
-
 
536
    /* For type 1 fonts, return the glyph name for a given glyph index.
-
 
537
     * A glyph index and list of glyph names in the Type 1 fonts is provided.
-
 
538
     * The function returns the index of the glyph in the list of glyph names.
-
 
539
     * @scaled_font: font
-
 
540
     * @glyph_names: the names of each glyph in the Type 1 font in the
-
 
541
     *   order they appear in the CharStrings array
-
 
542
     * @num_glyph_names: the number of names in the glyph_names array
-
 
543
     * @glyph_index: the given glyph index
-
 
544
     * @glyph_array_index: (index into glyph_names) the glyph name corresponding
-
 
545
     *  to the glyph_index
-
 
546
     */
-
 
547
 
-
 
548
    cairo_warn cairo_int_status_t
-
 
549
    (*index_to_glyph_name)(void                 *scaled_font,
-
 
550
			   char                **glyph_names,
-
 
551
			   int                   num_glyph_names,
-
 
552
			   unsigned long         glyph_index,
-
 
553
			   unsigned long        *glyph_array_index);
-
 
554
 
-
 
555
    /* Read data from a PostScript font.
-
 
556
     * @scaled_font: font
-
 
557
     * @offset: offset into the table
-
 
558
     * @buffer: buffer to write data into. Caller must ensure there is sufficient space.
-
 
559
     *          If NULL, return the size of the table in @length.
-
 
560
     * @length: If @buffer is NULL, the size of the table will be returned in @length.
-
 
561
     *          If @buffer is not null, @length specifies the number of bytes to read.
-
 
562
     *
-
 
563
     * If less than @length bytes are available to read this function
-
 
564
     * returns CAIRO_INT_STATUS_UNSUPPORTED. If an error occurs the
-
 
565
     * output value of @length is undefined.
-
 
566
     *
-
 
567
     * Returns CAIRO_INT_STATUS_UNSUPPORTED if not a Type 1 font.
-
 
568
     */
-
 
569
    cairo_warn cairo_int_status_t
-
 
570
    (*load_type1_data)    (void		        *scaled_font,
-
 
571
                           long                  offset,
-
 
572
                           unsigned char        *buffer,
-
 
573
                           unsigned long        *length);
503
};
574
};
Line 504... Line 575...
504
 
575
 
505
struct _cairo_font_face_backend {
576
struct _cairo_font_face_backend {
Line 548... Line 619...
548
 
619
 
Line 549... Line 620...
549
extern const cairo_private struct _cairo_font_face_backend _cairo_quartz_font_face_backend;
620
extern const cairo_private struct _cairo_font_face_backend _cairo_quartz_font_face_backend;
Line 550... Line -...
550
 
-
 
551
#endif
-
 
552
 
-
 
553
struct _cairo_surface_backend {
-
 
554
    cairo_surface_type_t type;
-
 
555
 
-
 
556
    cairo_surface_t *
-
 
557
    (*create_similar)		(void			*surface,
-
 
558
				 cairo_content_t	 content,
-
 
559
				 int			 width,
-
 
560
				 int			 height);
-
 
561
 
-
 
562
    cairo_warn cairo_status_t
-
 
563
    (*finish)			(void			*surface);
-
 
564
 
-
 
565
    cairo_warn cairo_status_t
-
 
566
    (*acquire_source_image)	(void                    *abstract_surface,
-
 
567
				 cairo_image_surface_t  **image_out,
-
 
568
				 void                   **image_extra);
-
 
569
 
-
 
570
    void
-
 
571
    (*release_source_image)	(void                   *abstract_surface,
-
 
572
				 cairo_image_surface_t  *image,
-
 
573
				 void                   *image_extra);
-
 
574
 
-
 
575
    cairo_warn cairo_status_t
-
 
576
    (*acquire_dest_image)       (void                    *abstract_surface,
-
 
577
				 cairo_rectangle_int_t   *interest_rect,
-
 
578
				 cairo_image_surface_t  **image_out,
-
 
579
				 cairo_rectangle_int_t   *image_rect,
-
 
580
				 void                   **image_extra);
-
 
581
 
-
 
582
    void
-
 
583
    (*release_dest_image)       (void                    *abstract_surface,
-
 
584
				 cairo_rectangle_int_t   *interest_rect,
-
 
585
				 cairo_image_surface_t   *image,
-
 
586
				 cairo_rectangle_int_t   *image_rect,
-
 
587
				 void                    *image_extra);
-
 
588
 
-
 
589
    /* Create a new surface (@clone_out) with the following
-
 
590
     * characteristics:
-
 
591
     *
-
 
592
     * 1. It is as compatible as possible with @surface (in terms of
-
 
593
     *    efficiency)
-
 
594
     *
-
 
595
     * 2. It has the same contents as @src within the given rectangle.
-
 
596
     *
-
 
597
     * 3. The offset of the similar surface with respect to the original
-
 
598
     *    surface is returned in the clone_offset vector.
-
 
599
     *    - if you clone the entire surface, this vector is zero.
-
 
600
     *    - if you clone (src_x, src_y)x(w, h) the vector is (src_x, src_y);
-
 
601
     */
-
 
602
    cairo_warn cairo_status_t
-
 
603
    (*clone_similar)            (void                   *surface,
-
 
604
				 cairo_surface_t        *src,
-
 
605
				 int                     src_x,
-
 
606
				 int                     src_y,
-
 
607
				 int                     width,
-
 
608
				 int                     height,
-
 
609
				 int                    *clone_offset_x,
-
 
610
				 int                    *clone_offset_y,
-
 
611
				 cairo_surface_t       **clone_out);
-
 
612
 
-
 
613
    /* XXX remove to a separate cairo_surface_compositor_t */
-
 
614
    /* XXX: dst should be the first argument for consistency */
-
 
615
    cairo_warn cairo_int_status_t
-
 
616
    (*composite)		(cairo_operator_t	 op,
-
 
617
				 const cairo_pattern_t	*src,
-
 
618
				 const cairo_pattern_t	*mask,
-
 
619
				 void			*dst,
-
 
620
				 int			 src_x,
-
 
621
				 int			 src_y,
-
 
622
				 int			 mask_x,
-
 
623
				 int			 mask_y,
-
 
624
				 int			 dst_x,
-
 
625
				 int			 dst_y,
-
 
626
				 unsigned int		 width,
-
 
627
				 unsigned int		 height,
-
 
628
				 cairo_region_t		*clip_region);
-
 
629
 
-
 
630
    cairo_warn cairo_int_status_t
-
 
631
    (*fill_rectangles)		(void			 *surface,
-
 
632
				 cairo_operator_t	  op,
-
 
633
				 const cairo_color_t     *color,
-
 
634
				 cairo_rectangle_int_t   *rects,
-
 
635
				 int			  num_rects);
-
 
636
 
-
 
637
    /* XXX: dst should be the first argument for consistency */
-
 
638
    cairo_warn cairo_int_status_t
-
 
639
    (*composite_trapezoids)	(cairo_operator_t	 op,
-
 
640
				 const cairo_pattern_t	*pattern,
-
 
641
				 void			*dst,
-
 
642
				 cairo_antialias_t	 antialias,
-
 
643
				 int			 src_x,
-
 
644
				 int			 src_y,
-
 
645
				 int			 dst_x,
-
 
646
				 int			 dst_y,
-
 
647
				 unsigned int		 width,
-
 
648
				 unsigned int		 height,
-
 
649
				 cairo_trapezoid_t	*traps,
-
 
650
				 int			 num_traps,
-
 
651
				 cairo_region_t		*region);
-
 
652
 
-
 
653
    cairo_warn cairo_span_renderer_t *
-
 
654
    (*create_span_renderer)	(cairo_operator_t			 op,
-
 
655
				 const cairo_pattern_t			*pattern,
-
 
656
                                 void					*dst,
-
 
657
                                 cairo_antialias_t			 antialias,
-
 
658
                                 const cairo_composite_rectangles_t *rects,
-
 
659
				 cairo_region_t *clip_region);
-
 
660
 
-
 
661
    cairo_warn cairo_bool_t
-
 
662
    (*check_span_renderer)	(cairo_operator_t			 op,
-
 
663
				 const cairo_pattern_t			*pattern,
-
 
664
                                 void					*dst,
-
 
665
                                 cairo_antialias_t			 antialias);
-
 
666
 
-
 
667
    cairo_warn cairo_int_status_t
-
 
668
    (*copy_page)		(void			*surface);
-
 
669
 
-
 
670
    cairo_warn cairo_int_status_t
-
 
671
    (*show_page)		(void			*surface);
-
 
672
 
-
 
673
    /* Get the extents of the current surface. For many surface types
-
 
674
     * this will be as simple as { x=0, y=0, width=surface->width,
-
 
675
     * height=surface->height}.
-
 
676
     *
-
 
677
     * If this function is not implemented, or if it returns
-
 
678
     * FALSE the surface is considered to be
-
 
679
     * boundless and infinite bounds are used for it.
-
 
680
     */
-
 
681
    cairo_warn cairo_bool_t
-
 
682
    (*get_extents)		(void			 *surface,
-
 
683
				 cairo_rectangle_int_t   *extents);
-
 
684
 
-
 
685
    /*
-
 
686
     * This is an optional entry to let the surface manage its own glyph
-
 
687
     * resources. If null, render against this surface, using image
-
 
688
     * surfaces as glyphs.
-
 
689
     */
-
 
690
    cairo_warn cairo_int_status_t
-
 
691
    (*old_show_glyphs)		(cairo_scaled_font_t	        *font,
-
 
692
				 cairo_operator_t		 op,
-
 
693
				 const cairo_pattern_t		*pattern,
-
 
694
				 void				*surface,
-
 
695
				 int				 source_x,
-
 
696
				 int				 source_y,
-
 
697
				 int				 dest_x,
-
 
698
				 int				 dest_y,
-
 
699
				 unsigned int			 width,
-
 
700
				 unsigned int			 height,
-
 
701
				 cairo_glyph_t			*glyphs,
-
 
702
				 int				 num_glyphs,
-
 
703
				 cairo_region_t			*clip_region);
-
 
704
 
-
 
705
    void
-
 
706
    (*get_font_options)         (void                  *surface,
-
 
707
				 cairo_font_options_t  *options);
-
 
708
 
-
 
709
    cairo_warn cairo_status_t
-
 
710
    (*flush)                    (void                  *surface);
-
 
711
 
-
 
712
    cairo_warn cairo_status_t
-
 
713
    (*mark_dirty_rectangle)     (void                  *surface,
-
 
714
				 int                    x,
-
 
715
				 int                    y,
-
 
716
				 int                    width,
-
 
717
				 int                    height);
-
 
718
 
-
 
719
    void
-
 
720
    (*scaled_font_fini)		(cairo_scaled_font_t   *scaled_font);
-
 
721
 
-
 
722
    void
-
 
723
    (*scaled_glyph_fini)	(cairo_scaled_glyph_t	*scaled_glyph,
-
 
724
				 cairo_scaled_font_t	*scaled_font);
-
 
725
 
-
 
726
    /* OK, I'm starting over somewhat by defining the 5 top-level
-
 
727
     * drawing operators for the surface backend here with consistent
-
 
728
     * naming and argument-order conventions. */
-
 
729
    cairo_warn cairo_int_status_t
-
 
730
    (*paint)			(void			*surface,
-
 
731
				 cairo_operator_t	 op,
-
 
732
				 const cairo_pattern_t	*source,
-
 
733
				 cairo_clip_t		*clip);
-
 
734
 
-
 
735
    cairo_warn cairo_int_status_t
-
 
736
    (*mask)			(void			*surface,
-
 
737
				 cairo_operator_t	 op,
-
 
738
				 const cairo_pattern_t	*source,
-
 
739
				 const cairo_pattern_t	*mask,
-
 
740
				 cairo_clip_t		*clip);
-
 
741
 
-
 
742
    cairo_warn cairo_int_status_t
-
 
743
    (*stroke)			(void			*surface,
-
 
744
				 cairo_operator_t	 op,
-
 
745
				 const cairo_pattern_t	*source,
-
 
746
				 cairo_path_fixed_t	*path,
-
 
747
				 const cairo_stroke_style_t	*style,
-
 
748
				 const cairo_matrix_t	*ctm,
-
 
749
				 const cairo_matrix_t	*ctm_inverse,
-
 
750
				 double			 tolerance,
-
 
751
				 cairo_antialias_t	 antialias,
-
 
752
				 cairo_clip_t		*clip);
-
 
753
 
-
 
754
    cairo_warn cairo_int_status_t
-
 
755
    (*fill)			(void			*surface,
-
 
756
				 cairo_operator_t	 op,
-
 
757
				 const cairo_pattern_t	*source,
-
 
758
				 cairo_path_fixed_t	*path,
-
 
759
				 cairo_fill_rule_t	 fill_rule,
-
 
760
				 double			 tolerance,
-
 
761
				 cairo_antialias_t	 antialias,
-
 
762
				 cairo_clip_t           *clip);
-
 
763
 
-
 
764
    cairo_warn cairo_int_status_t
-
 
765
    (*show_glyphs)		(void			*surface,
-
 
766
				 cairo_operator_t	 op,
-
 
767
				 const cairo_pattern_t	*source,
-
 
768
				 cairo_glyph_t		*glyphs,
-
 
769
				 int			 num_glyphs,
-
 
770
				 cairo_scaled_font_t	*scaled_font,
-
 
771
				 cairo_clip_t           *clip,
-
 
772
				 int			*remaining_glyphs);
-
 
773
 
-
 
774
    cairo_surface_t *
-
 
775
    (*snapshot)			(void			*surface);
-
 
776
 
-
 
777
    cairo_bool_t
-
 
778
    (*is_similar)		(void			*surface_a,
-
 
779
	                         void			*surface_b);
-
 
780
 
-
 
781
    cairo_warn cairo_int_status_t
-
 
782
    (*fill_stroke)		(void			*surface,
-
 
783
				 cairo_operator_t	 fill_op,
-
 
784
				 const cairo_pattern_t	*fill_source,
-
 
785
				 cairo_fill_rule_t	 fill_rule,
-
 
786
				 double			 fill_tolerance,
-
 
787
				 cairo_antialias_t	 fill_antialias,
-
 
788
				 cairo_path_fixed_t	*path,
-
 
789
				 cairo_operator_t	 stroke_op,
-
 
790
				 const cairo_pattern_t	*stroke_source,
-
 
791
				 const cairo_stroke_style_t	*stroke_style,
-
 
792
				 const cairo_matrix_t	*stroke_ctm,
-
 
793
				 const cairo_matrix_t	*stroke_ctm_inverse,
-
 
794
				 double			 stroke_tolerance,
-
 
795
				 cairo_antialias_t	 stroke_antialias,
-
 
796
				 cairo_clip_t		*clip);
-
 
797
 
-
 
798
    cairo_surface_t *
-
 
799
    (*create_solid_pattern_surface)
-
 
800
			        (void			      *surface,
-
 
801
				 const cairo_solid_pattern_t  *solid_pattern);
-
 
802
 
-
 
803
    cairo_bool_t
-
 
804
    (*can_repaint_solid_pattern_surface)
-
 
805
			        (void			      *surface,
-
 
806
				 const cairo_solid_pattern_t  *solid_pattern);
-
 
807
 
-
 
808
    cairo_bool_t
-
 
809
    (*has_show_text_glyphs)	(void			    *surface);
-
 
810
 
-
 
811
    cairo_warn cairo_int_status_t
-
 
812
    (*show_text_glyphs)		(void			    *surface,
-
 
813
				 cairo_operator_t	     op,
-
 
814
				 const cairo_pattern_t	    *source,
-
 
815
				 const char		    *utf8,
-
 
816
				 int			     utf8_len,
-
 
817
				 cairo_glyph_t		    *glyphs,
-
 
818
				 int			     num_glyphs,
-
 
819
				 const cairo_text_cluster_t *clusters,
-
 
820
				 int			     num_clusters,
-
 
821
				 cairo_text_cluster_flags_t  cluster_flags,
-
 
822
				 cairo_scaled_font_t	    *scaled_font,
-
 
823
				 cairo_clip_t               *clip);
-
 
824
};
-
 
825
 
-
 
826
#include "cairo-surface-private.h"
-
 
827
 
-
 
828
struct _cairo_image_surface {
-
 
829
    cairo_surface_t base;
-
 
830
 
-
 
831
    pixman_format_code_t pixman_format;
-
 
832
    cairo_format_t format;
-
 
833
    unsigned char *data;
-
 
834
 
-
 
835
    int width;
-
 
836
    int height;
-
 
837
    int stride;
-
 
838
    int depth;
-
 
839
 
-
 
840
    pixman_image_t *pixman_image;
-
 
841
 
-
 
842
    unsigned owns_data : 1;
-
 
843
    unsigned transparency : 2;
-
 
844
};
-
 
845
 
621
 
846
extern const cairo_private cairo_surface_backend_t _cairo_image_surface_backend;
622
#endif
847
 
623
 
Line 848... Line 624...
848
#define CAIRO_EXTEND_SURFACE_DEFAULT CAIRO_EXTEND_NONE
624
#define CAIRO_EXTEND_SURFACE_DEFAULT CAIRO_EXTEND_NONE
849
#define CAIRO_EXTEND_GRADIENT_DEFAULT CAIRO_EXTEND_PAD
625
#define CAIRO_EXTEND_GRADIENT_DEFAULT CAIRO_EXTEND_PAD
850
#define CAIRO_FILTER_DEFAULT CAIRO_FILTER_GOOD
626
#define CAIRO_FILTER_DEFAULT CAIRO_FILTER_GOOD
Line 851... Line 627...
851
 
627
 
852
extern const cairo_private cairo_solid_pattern_t _cairo_pattern_clear;
628
extern const cairo_private cairo_solid_pattern_t _cairo_pattern_clear;
853
extern const cairo_private cairo_solid_pattern_t _cairo_pattern_black;
629
extern const cairo_private cairo_solid_pattern_t _cairo_pattern_black;
854
extern const cairo_private cairo_solid_pattern_t _cairo_pattern_white;
630
extern const cairo_private cairo_solid_pattern_t _cairo_pattern_white;
855
 
631
 
856
typedef struct _cairo_surface_attributes {
632
struct _cairo_surface_attributes {
857
    cairo_matrix_t matrix;
633
    cairo_matrix_t matrix;
858
    cairo_extend_t extend;
634
    cairo_extend_t extend;
859
    cairo_filter_t filter;
-
 
860
    cairo_bool_t has_component_alpha;
-
 
861
    int		   x_offset;
-
 
862
    int		   y_offset;
-
 
863
    void	   *extra;
635
    cairo_filter_t filter;
864
} cairo_surface_attributes_t;
-
 
865
 
-
 
866
typedef struct _cairo_traps {
-
 
867
    cairo_status_t status;
-
 
868
 
-
 
869
    const cairo_box_t *limits;
-
 
870
    int num_limits;
-
 
871
 
-
 
872
    unsigned int maybe_region : 1; /* hint: 0 implies that it cannot be */
-
 
873
    unsigned int has_intersections : 1;
-
 
874
    unsigned int is_rectilinear : 1;
-
 
875
    unsigned int is_rectangular : 1;
-
 
876
 
-
 
Line 877... Line 636...
877
    int num_traps;
636
    cairo_bool_t has_component_alpha;
878
    int traps_size;
637
    int		   x_offset;
Line 879... Line 638...
879
    cairo_trapezoid_t *traps;
638
    int		   y_offset;
Line 925... Line 684...
925
typedef struct _cairo_stroke_face {
684
typedef struct _cairo_stroke_face {
926
    cairo_point_t ccw;
685
    cairo_point_t ccw;
927
    cairo_point_t point;
686
    cairo_point_t point;
928
    cairo_point_t cw;
687
    cairo_point_t cw;
929
    cairo_slope_t dev_vector;
688
    cairo_slope_t dev_vector;
-
 
689
    cairo_point_double_t dev_slope;
930
    cairo_point_double_t usr_vector;
690
    cairo_point_double_t usr_vector;
-
 
691
    double length;
931
} cairo_stroke_face_t;
692
} cairo_stroke_face_t;
Line 932... Line 693...
932
 
693
 
Line 933... Line 694...
933
/* cairo.c */
694
/* cairo.c */
Line 942... Line 703...
942
    else
703
    else
943
	return value;
704
	return value;
944
}
705
}
Line 945... Line 706...
945
 
706
 
946
/* C99 round() rounds to the nearest integral value with halfway cases rounded
707
/* C99 round() rounds to the nearest integral value with halfway cases rounded
947
 * away from 0. _cairo_round rounds halfway cases toward negative infinity.
708
 * away from 0. _cairo_round rounds halfway cases toward positive infinity.
948
 * This matches the rounding behaviour of _cairo_lround. */
709
 * This matches the rounding behaviour of _cairo_lround. */
949
static inline double cairo_const
710
static inline double cairo_const
950
_cairo_round (double r)
711
_cairo_round (double r)
951
{
712
{
Line 954... Line 715...
954
 
715
 
955
#if DISABLE_SOME_FLOATING_POINT
716
#if DISABLE_SOME_FLOATING_POINT
956
cairo_private int
717
cairo_private int
957
_cairo_lround (double d) cairo_const;
718
_cairo_lround (double d) cairo_const;
-
 
719
#else
-
 
720
static inline int cairo_const
-
 
721
_cairo_lround (double r)
958
#else
722
{
-
 
723
    return _cairo_round (r);
959
#define _cairo_lround lround
724
}
Line 960... Line 725...
960
#endif
725
#endif
961
 
726
 
Line 985... Line 750...
985
 
750
 
986
cairo_private uint16_t
751
cairo_private uint16_t
Line 987... Line 752...
987
_cairo_color_double_to_short (double d) cairo_const;
752
_cairo_color_double_to_short (double d) cairo_const;
988
 
-
 
989
cairo_private void
-
 
990
_cairo_color_init (cairo_color_t *color);
-
 
991
 
-
 
992
cairo_private void
-
 
993
_cairo_color_init_rgb (cairo_color_t *color,
-
 
994
		       double red, double green, double blue);
-
 
995
 
753
 
996
cairo_private void
754
cairo_private void
997
_cairo_color_init_rgba (cairo_color_t *color,
755
_cairo_color_init_rgba (cairo_color_t *color,
Line 998... Line 756...
998
			double red, double green, double blue,
756
			double red, double green, double blue,
Line 1077... Line 835...
1077
				   cairo_lcd_filter_t  lcd_filter);
835
				   cairo_lcd_filter_t  lcd_filter);
Line 1078... Line 836...
1078
 
836
 
1079
cairo_private cairo_lcd_filter_t
837
cairo_private cairo_lcd_filter_t
Line -... Line 838...
-
 
838
_cairo_font_options_get_lcd_filter (const cairo_font_options_t *options);
-
 
839
 
-
 
840
cairo_private void
-
 
841
_cairo_font_options_set_round_glyph_positions (cairo_font_options_t   *options,
-
 
842
					       cairo_round_glyph_positions_t  round);
-
 
843
 
-
 
844
cairo_private cairo_round_glyph_positions_t
1080
_cairo_font_options_get_lcd_filter (const cairo_font_options_t *options);
845
_cairo_font_options_get_round_glyph_positions (const cairo_font_options_t *options);
1081
 
846
 
1082
/* cairo-hull.c */
847
/* cairo-hull.c */
Line 1083... Line 848...
1083
cairo_private cairo_status_t
848
cairo_private cairo_status_t
Line 1112... Line 877...
1112
 
877
 
1113
cairo_private cairo_status_t
878
cairo_private cairo_status_t
1114
_cairo_path_fixed_init_copy (cairo_path_fixed_t *path,
879
_cairo_path_fixed_init_copy (cairo_path_fixed_t *path,
Line 1115... Line -...
1115
			     const cairo_path_fixed_t *other);
-
 
1116
 
-
 
1117
cairo_private cairo_bool_t
-
 
1118
_cairo_path_fixed_is_equal (const cairo_path_fixed_t *path,
-
 
1119
			    const cairo_path_fixed_t *other);
880
			     const cairo_path_fixed_t *other);
1120
 
881
 
Line 1121... Line 882...
1121
cairo_private void
882
cairo_private void
1122
_cairo_path_fixed_fini (cairo_path_fixed_t *path);
883
_cairo_path_fixed_fini (cairo_path_fixed_t *path);
Line 1184... Line 945...
1184
typedef cairo_status_t
945
typedef cairo_status_t
1185
(cairo_path_fixed_close_path_func_t) (void *closure);
946
(cairo_path_fixed_close_path_func_t) (void *closure);
Line 1186... Line 947...
1186
 
947
 
1187
cairo_private cairo_status_t
948
cairo_private cairo_status_t
1188
_cairo_path_fixed_interpret (const cairo_path_fixed_t	  *path,
-
 
1189
		       cairo_direction_t		   dir,
949
_cairo_path_fixed_interpret (const cairo_path_fixed_t	  *path,
1190
		       cairo_path_fixed_move_to_func_t	  *move_to,
950
		       cairo_path_fixed_move_to_func_t	  *move_to,
1191
		       cairo_path_fixed_line_to_func_t	  *line_to,
951
		       cairo_path_fixed_line_to_func_t	  *line_to,
1192
		       cairo_path_fixed_curve_to_func_t	  *curve_to,
952
		       cairo_path_fixed_curve_to_func_t	  *curve_to,
1193
		       cairo_path_fixed_close_path_func_t *close_path,
953
		       cairo_path_fixed_close_path_func_t *close_path,
Line 1194... Line 954...
1194
		       void				  *closure);
954
		       void				  *closure);
1195
 
955
 
1196
cairo_private cairo_status_t
-
 
1197
_cairo_path_fixed_interpret_flat (const cairo_path_fixed_t *path,
956
cairo_private cairo_status_t
1198
		       cairo_direction_t		   dir,
957
_cairo_path_fixed_interpret_flat (const cairo_path_fixed_t *path,
1199
		       cairo_path_fixed_move_to_func_t	  *move_to,
958
		       cairo_path_fixed_move_to_func_t	  *move_to,
1200
		       cairo_path_fixed_line_to_func_t	  *line_to,
959
		       cairo_path_fixed_line_to_func_t	  *line_to,
1201
		       cairo_path_fixed_close_path_func_t *close_path,
960
		       cairo_path_fixed_close_path_func_t *close_path,
Line -... Line 961...
-
 
961
		       void				  *closure,
-
 
962
		       double				  tolerance);
-
 
963
 
-
 
964
 
-
 
965
cairo_private cairo_bool_t
1202
		       void				  *closure,
966
_cairo_path_bounder_extents (const cairo_path_fixed_t *path,
1203
		       double				  tolerance);
967
			     cairo_box_t *box);
1204
 
968
 
Line 1205... Line 969...
1205
cairo_private cairo_bool_t
969
cairo_private cairo_bool_t
Line 1258... Line 1022...
1258
cairo_private cairo_status_t
1022
cairo_private cairo_status_t
1259
_cairo_path_fixed_fill_to_polygon (const cairo_path_fixed_t *path,
1023
_cairo_path_fixed_fill_to_polygon (const cairo_path_fixed_t *path,
1260
				   double              tolerance,
1024
				   double              tolerance,
1261
				   cairo_polygon_t      *polygon);
1025
				   cairo_polygon_t      *polygon);
Line 1262... Line 1026...
1262
 
1026
 
1263
cairo_private cairo_int_status_t
1027
cairo_private cairo_status_t
1264
_cairo_path_fixed_fill_rectilinear_to_traps (const cairo_path_fixed_t *path,
1028
_cairo_path_fixed_fill_rectilinear_to_polygon (const cairo_path_fixed_t *path,
1265
					     cairo_fill_rule_t fill_rule,
1029
					       cairo_antialias_t antialias,
Line 1266... Line 1030...
1266
					     cairo_traps_t *traps);
1030
					       cairo_polygon_t *polygon);
1267
 
1031
 
1268
cairo_private cairo_status_t
1032
cairo_private cairo_status_t
-
 
1033
_cairo_path_fixed_fill_rectilinear_to_boxes (const cairo_path_fixed_t *path,
1269
_cairo_path_fixed_fill_rectilinear_to_boxes (const cairo_path_fixed_t *path,
1034
					     cairo_fill_rule_t fill_rule,
Line 1270... Line 1035...
1270
					     cairo_fill_rule_t fill_rule,
1035
					     cairo_antialias_t antialias,
1271
					     cairo_boxes_t *boxes);
1036
					     cairo_boxes_t *boxes);
1272
 
1037
 
Line 1289... Line 1054...
1289
				     const cairo_matrix_t	*ctm_inverse,
1054
				     const cairo_matrix_t	*ctm_inverse,
1290
				     double		 tolerance,
1055
				     double		 tolerance,
1291
				     cairo_polygon_t	*polygon);
1056
				     cairo_polygon_t	*polygon);
Line 1292... Line 1057...
1292
 
1057
 
1293
cairo_private cairo_int_status_t
1058
cairo_private cairo_int_status_t
-
 
1059
_cairo_path_fixed_stroke_to_tristrip (const cairo_path_fixed_t	*path,
-
 
1060
				      const cairo_stroke_style_t*style,
-
 
1061
				      const cairo_matrix_t	*ctm,
-
 
1062
				      const cairo_matrix_t	*ctm_inverse,
-
 
1063
				      double			 tolerance,
-
 
1064
				      cairo_tristrip_t		 *strip);
-
 
1065
 
-
 
1066
cairo_private cairo_status_t
1294
_cairo_path_fixed_stroke_rectilinear_to_traps (const cairo_path_fixed_t	*path,
1067
_cairo_path_fixed_stroke_dashed_to_polygon (const cairo_path_fixed_t	*path,
1295
					       const cairo_stroke_style_t	*stroke_style,
1068
					    const cairo_stroke_style_t	*stroke_style,
-
 
1069
					    const cairo_matrix_t	*ctm,
-
 
1070
					    const cairo_matrix_t	*ctm_inverse,
1296
					       const cairo_matrix_t	*ctm,
1071
					    double		 tolerance,
Line 1297... Line 1072...
1297
					       cairo_traps_t		*traps);
1072
					    cairo_polygon_t	*polygon);
1298
 
1073
 
1299
cairo_private cairo_int_status_t
1074
cairo_private cairo_int_status_t
1300
_cairo_path_fixed_stroke_rectilinear_to_boxes (const cairo_path_fixed_t	*path,
1075
_cairo_path_fixed_stroke_rectilinear_to_boxes (const cairo_path_fixed_t	*path,
-
 
1076
					       const cairo_stroke_style_t	*stroke_style,
1301
					       const cairo_stroke_style_t	*stroke_style,
1077
					       const cairo_matrix_t	*ctm,
Line 1302... Line 1078...
1302
					       const cairo_matrix_t	*ctm,
1078
					       cairo_antialias_t	 antialias,
1303
					       cairo_boxes_t		*boxes);
1079
					       cairo_boxes_t		*boxes);
1304
 
1080
 
1305
cairo_private cairo_status_t
1081
cairo_private cairo_int_status_t
1306
_cairo_path_fixed_stroke_to_traps (const cairo_path_fixed_t	*path,
1082
_cairo_path_fixed_stroke_to_traps (const cairo_path_fixed_t	*path,
1307
				   const cairo_stroke_style_t	*stroke_style,
1083
				   const cairo_stroke_style_t	*stroke_style,
1308
				   const cairo_matrix_t	*ctm,
1084
				   const cairo_matrix_t	*ctm,
Line -... Line 1085...
-
 
1085
				   const cairo_matrix_t	*ctm_inverse,
-
 
1086
				   double		 tolerance,
-
 
1087
				   cairo_traps_t	*traps);
-
 
1088
 
-
 
1089
cairo_private cairo_int_status_t
-
 
1090
_cairo_path_fixed_stroke_polygon_to_traps (const cairo_path_fixed_t	*path,
-
 
1091
					   const cairo_stroke_style_t	*stroke_style,
-
 
1092
					   const cairo_matrix_t	*ctm,
1309
				   const cairo_matrix_t	*ctm_inverse,
1093
					   const cairo_matrix_t	*ctm_inverse,
1310
				   double		 tolerance,
1094
					   double		 tolerance,
1311
				   cairo_traps_t	*traps);
1095
					   cairo_traps_t	*traps);
1312
 
1096
 
1313
cairo_private cairo_status_t
1097
cairo_private cairo_status_t
Line 1378... Line 1162...
1378
					 const cairo_glyph_t	 *glyphs,
1162
					 const cairo_glyph_t	 *glyphs,
1379
					 int                      num_glyphs,
1163
					 int                      num_glyphs,
1380
					 cairo_rectangle_int_t   *extents,
1164
					 cairo_rectangle_int_t   *extents,
1381
					 cairo_bool_t		 *overlap);
1165
					 cairo_bool_t		 *overlap);
Line 1382... Line 1166...
1382
 
1166
 
1383
cairo_private void
1167
cairo_private cairo_bool_t
1384
_cairo_scaled_font_glyph_approximate_extents (cairo_scaled_font_t	 *scaled_font,
1168
_cairo_scaled_font_glyph_approximate_extents (cairo_scaled_font_t	 *scaled_font,
1385
					      const cairo_glyph_t	 *glyphs,
1169
					      const cairo_glyph_t	 *glyphs,
1386
					      int                      num_glyphs,
1170
					      int                      num_glyphs,
Line 1451... Line 1235...
1451
cairo_private void
1235
cairo_private void
1452
_cairo_stroke_style_fini (cairo_stroke_style_t *style);
1236
_cairo_stroke_style_fini (cairo_stroke_style_t *style);
Line 1453... Line 1237...
1453
 
1237
 
1454
cairo_private void
1238
cairo_private void
-
 
1239
_cairo_stroke_style_max_distance_from_path (const cairo_stroke_style_t *style,
-
 
1240
					    const cairo_path_fixed_t *path,
-
 
1241
                                            const cairo_matrix_t *ctm,
-
 
1242
                                            double *dx, double *dy);
-
 
1243
cairo_private void
-
 
1244
_cairo_stroke_style_max_line_distance_from_path (const cairo_stroke_style_t *style,
-
 
1245
						 const cairo_path_fixed_t *path,
-
 
1246
						 const cairo_matrix_t *ctm,
-
 
1247
						 double *dx, double *dy);
-
 
1248
 
-
 
1249
cairo_private void
-
 
1250
_cairo_stroke_style_max_join_distance_from_path (const cairo_stroke_style_t *style,
1455
_cairo_stroke_style_max_distance_from_path (const cairo_stroke_style_t *style,
1251
						 const cairo_path_fixed_t *path,
1456
                                            const cairo_matrix_t *ctm,
1252
						 const cairo_matrix_t *ctm,
Line 1457... Line 1253...
1457
                                            double *dx, double *dy);
1253
						 double *dx, double *dy);
1458
 
1254
 
Line 1476... Line 1272...
1476
				      unsigned int *num_dashes);
1272
				      unsigned int *num_dashes);
Line 1477... Line 1273...
1477
 
1273
 
Line 1478... Line -...
1478
 
-
 
1479
/* cairo-surface.c */
-
 
1480
 
-
 
1481
cairo_private cairo_surface_t *
1274
 
1482
_cairo_surface_create_in_error (cairo_status_t status);
1275
/* cairo-surface.c */
1483
 
1276
 
Line 1484... Line 1277...
1484
cairo_private cairo_status_t
1277
cairo_private cairo_status_t
1485
_cairo_surface_copy_mime_data (cairo_surface_t *dst,
1278
_cairo_surface_copy_mime_data (cairo_surface_t *dst,
1486
			       cairo_surface_t *src);
1279
			       cairo_surface_t *src);
Line 1487... Line 1280...
1487
 
1280
 
1488
cairo_private cairo_status_t
1281
cairo_private_no_warn cairo_int_status_t
1489
_cairo_surface_set_error (cairo_surface_t	*surface,
1282
_cairo_surface_set_error (cairo_surface_t	*surface,
1490
			  cairo_status_t	 status);
1283
			  cairo_int_status_t	 status);
Line 1499... Line 1292...
1499
				       cairo_content_t	content,
1292
				       cairo_content_t	content,
1500
				       int		width,
1293
				       int		width,
1501
				       int		height);
1294
				       int		height);
Line 1502... Line 1295...
1502
 
1295
 
-
 
1296
cairo_private cairo_surface_t *
-
 
1297
_cairo_surface_create_for_rectangle_int (cairo_surface_t *target,
-
 
1298
					 const cairo_rectangle_int_t *extents);
-
 
1299
 
1503
cairo_private cairo_surface_t *
1300
cairo_private cairo_surface_t *
1504
_cairo_surface_create_similar_solid (cairo_surface_t	    *other,
1301
_cairo_surface_create_similar_solid (cairo_surface_t	    *other,
1505
				     cairo_content_t	     content,
1302
				     cairo_content_t	     content,
1506
				     int		     width,
1303
				     int		     width,
1507
				     int		     height,
1304
				     int		     height,
1508
				     const cairo_color_t    *color,
-
 
1509
				     cairo_bool_t	     allow_fallback);
-
 
1510
 
-
 
1511
cairo_private cairo_surface_t *
-
 
1512
_cairo_surface_create_solid_pattern_surface (cairo_surface_t	   *other,
-
 
1513
					     const cairo_solid_pattern_t *solid_pattern);
-
 
1514
 
-
 
1515
cairo_private cairo_int_status_t
-
 
1516
_cairo_surface_repaint_solid_pattern_surface (cairo_surface_t	    *other,
-
 
1517
					      cairo_surface_t       *solid_surface,
-
 
Line 1518... Line 1305...
1518
					      const cairo_solid_pattern_t *solid_pattern);
1305
				     const cairo_color_t    *color);
1519
 
1306
 
1520
cairo_private void
1307
cairo_private void
1521
_cairo_surface_init (cairo_surface_t			*surface,
1308
_cairo_surface_init (cairo_surface_t			*surface,
Line 1526... Line 1313...
1526
cairo_private void
1313
cairo_private void
1527
_cairo_surface_set_font_options (cairo_surface_t       *surface,
1314
_cairo_surface_set_font_options (cairo_surface_t       *surface,
1528
				 cairo_font_options_t  *options);
1315
				 cairo_font_options_t  *options);
Line 1529... Line 1316...
1529
 
1316
 
1530
cairo_private cairo_status_t
-
 
1531
_cairo_surface_composite (cairo_operator_t	op,
-
 
1532
			  const cairo_pattern_t	*src,
-
 
1533
			  const cairo_pattern_t	*mask,
-
 
1534
			  cairo_surface_t	*dst,
-
 
1535
			  int			 src_x,
-
 
1536
			  int			 src_y,
-
 
1537
			  int			 mask_x,
-
 
1538
			  int			 mask_y,
-
 
1539
			  int			 dst_x,
-
 
1540
			  int			 dst_y,
-
 
1541
			  unsigned int		 width,
-
 
1542
			  unsigned int		 height,
-
 
1543
			  cairo_region_t	*clip_region);
-
 
1544
 
-
 
1545
cairo_private cairo_status_t
-
 
1546
_cairo_surface_fill_rectangle (cairo_surface_t	   *surface,
-
 
1547
			       cairo_operator_t	    op,
-
 
1548
			       const cairo_color_t *color,
-
 
1549
			       int		    x,
-
 
1550
			       int		    y,
-
 
1551
			       int		    width,
-
 
1552
			       int		    height);
-
 
1553
 
-
 
1554
cairo_private cairo_status_t
-
 
1555
_cairo_surface_fill_region (cairo_surface_t	   *surface,
-
 
1556
			    cairo_operator_t	    op,
-
 
1557
			    const cairo_color_t    *color,
-
 
1558
			    cairo_region_t         *region);
-
 
1559
 
-
 
1560
cairo_private cairo_status_t
-
 
1561
_cairo_surface_fill_rectangles (cairo_surface_t		*surface,
-
 
1562
				cairo_operator_t         op,
-
 
1563
				const cairo_color_t	*color,
-
 
1564
				cairo_rectangle_int_t	*rects,
-
 
1565
				int			 num_rects);
-
 
1566
 
-
 
1567
cairo_private cairo_status_t
1317
cairo_private cairo_status_t
1568
_cairo_surface_paint (cairo_surface_t	*surface,
1318
_cairo_surface_paint (cairo_surface_t	*surface,
1569
		      cairo_operator_t	 op,
1319
		      cairo_operator_t	 op,
1570
		      const cairo_pattern_t *source,
1320
		      const cairo_pattern_t *source,
-
 
1321
		      const cairo_clip_t	    *clip);
-
 
1322
 
-
 
1323
cairo_private cairo_image_surface_t *
-
 
1324
_cairo_surface_map_to_image (cairo_surface_t  *surface,
-
 
1325
			     const cairo_rectangle_int_t *extents);
-
 
1326
 
-
 
1327
cairo_private cairo_int_status_t
-
 
1328
_cairo_surface_unmap_image (cairo_surface_t       *surface,
Line 1571... Line 1329...
1571
		      cairo_clip_t	    *clip);
1329
			    cairo_image_surface_t *image);
1572
 
1330
 
1573
cairo_private cairo_status_t
1331
cairo_private cairo_status_t
1574
_cairo_surface_mask (cairo_surface_t	*surface,
1332
_cairo_surface_mask (cairo_surface_t	*surface,
1575
		     cairo_operator_t	 op,
1333
		     cairo_operator_t	 op,
1576
		     const cairo_pattern_t	*source,
1334
		     const cairo_pattern_t	*source,
Line 1577... Line 1335...
1577
		     const cairo_pattern_t	*mask,
1335
		     const cairo_pattern_t	*mask,
1578
		     cairo_clip_t		*clip);
1336
		     const cairo_clip_t		*clip);
1579
 
1337
 
1580
cairo_private cairo_status_t
1338
cairo_private cairo_status_t
Line 1590... Line 1348...
1590
			    const cairo_stroke_style_t    *stroke_style,
1348
			    const cairo_stroke_style_t    *stroke_style,
1591
			    const cairo_matrix_t	    *stroke_ctm,
1349
			    const cairo_matrix_t	    *stroke_ctm,
1592
			    const cairo_matrix_t	    *stroke_ctm_inverse,
1350
			    const cairo_matrix_t	    *stroke_ctm_inverse,
1593
			    double		     stroke_tolerance,
1351
			    double		     stroke_tolerance,
1594
			    cairo_antialias_t	     stroke_antialias,
1352
			    cairo_antialias_t	     stroke_antialias,
1595
			    cairo_clip_t	    *clip);
1353
			    const cairo_clip_t	    *clip);
Line 1596... Line 1354...
1596
 
1354
 
1597
cairo_private cairo_status_t
1355
cairo_private cairo_status_t
1598
_cairo_surface_stroke (cairo_surface_t		*surface,
1356
_cairo_surface_stroke (cairo_surface_t		*surface,
1599
		       cairo_operator_t		 op,
1357
		       cairo_operator_t		 op,
1600
		       const cairo_pattern_t	*source,
1358
		       const cairo_pattern_t	*source,
1601
		       cairo_path_fixed_t	*path,
1359
		       const cairo_path_fixed_t	*path,
1602
		       const cairo_stroke_style_t	*style,
1360
		       const cairo_stroke_style_t	*style,
1603
		       const cairo_matrix_t		*ctm,
1361
		       const cairo_matrix_t		*ctm,
1604
		       const cairo_matrix_t		*ctm_inverse,
1362
		       const cairo_matrix_t		*ctm_inverse,
1605
		       double			 tolerance,
1363
		       double			 tolerance,
1606
		       cairo_antialias_t	 antialias,
1364
		       cairo_antialias_t	 antialias,
Line 1607... Line 1365...
1607
		       cairo_clip_t		*clip);
1365
		       const cairo_clip_t		*clip);
1608
 
1366
 
1609
cairo_private cairo_status_t
1367
cairo_private cairo_status_t
1610
_cairo_surface_fill (cairo_surface_t	*surface,
1368
_cairo_surface_fill (cairo_surface_t	*surface,
1611
		     cairo_operator_t	 op,
1369
		     cairo_operator_t	 op,
1612
		     const cairo_pattern_t *source,
1370
		     const cairo_pattern_t *source,
1613
		     cairo_path_fixed_t	*path,
1371
		     const cairo_path_fixed_t	*path,
1614
		     cairo_fill_rule_t	 fill_rule,
1372
		     cairo_fill_rule_t	 fill_rule,
1615
		     double		 tolerance,
1373
		     double		 tolerance,
Line 1616... Line 1374...
1616
		     cairo_antialias_t	 antialias,
1374
		     cairo_antialias_t	 antialias,
1617
		     cairo_clip_t	*clip);
1375
		     const cairo_clip_t	*clip);
1618
 
1376
 
1619
cairo_private cairo_status_t
1377
cairo_private cairo_status_t
Line 1626... Line 1384...
1626
				 int			     num_glyphs,
1384
				 int			     num_glyphs,
1627
				 const cairo_text_cluster_t *clusters,
1385
				 const cairo_text_cluster_t *clusters,
1628
				 int			     num_clusters,
1386
				 int			     num_clusters,
1629
				 cairo_text_cluster_flags_t  cluster_flags,
1387
				 cairo_text_cluster_flags_t  cluster_flags,
1630
				 cairo_scaled_font_t	    *scaled_font,
1388
				 cairo_scaled_font_t	    *scaled_font,
1631
				 cairo_clip_t		    *clip);
1389
				 const cairo_clip_t		    *clip);
1632
 
-
 
1633
cairo_private cairo_status_t
-
 
1634
_cairo_surface_paint_extents (cairo_surface_t *surface,
-
 
1635
			      cairo_operator_t		op,
-
 
1636
			      const cairo_pattern_t	*source,
-
 
1637
			      cairo_clip_t		*clip,
-
 
1638
			      cairo_rectangle_int_t	*extents);
-
 
1639
 
-
 
1640
cairo_private cairo_status_t
-
 
1641
_cairo_surface_mask_extents (cairo_surface_t *surface,
-
 
1642
			     cairo_operator_t		 op,
-
 
1643
			     const cairo_pattern_t	*source,
-
 
1644
			     const cairo_pattern_t	*mask,
-
 
1645
			     cairo_clip_t		*clip,
-
 
1646
			     cairo_rectangle_int_t	*extents);
-
 
1647
 
-
 
1648
cairo_private cairo_status_t
-
 
1649
_cairo_surface_stroke_extents (cairo_surface_t *surface,
-
 
1650
			       cairo_operator_t op,
-
 
1651
			       const cairo_pattern_t *source,
-
 
1652
			       cairo_path_fixed_t	*path,
-
 
1653
			       const cairo_stroke_style_t *style,
-
 
1654
			       const cairo_matrix_t *ctm,
-
 
1655
			       const cairo_matrix_t *ctm_inverse,
-
 
1656
			       double tolerance,
-
 
1657
			       cairo_antialias_t	 antialias,
-
 
1658
			       cairo_clip_t *clip,
-
 
1659
			       cairo_rectangle_int_t *extents);
-
 
1660
 
-
 
1661
cairo_private cairo_status_t
-
 
1662
_cairo_surface_fill_extents (cairo_surface_t		*surface,
-
 
1663
			     cairo_operator_t		 op,
-
 
1664
			     const cairo_pattern_t	*source,
-
 
1665
			     cairo_path_fixed_t		*path,
-
 
1666
			     cairo_fill_rule_t		 fill_rule,
-
 
1667
			     double			 tolerance,
-
 
1668
			     cairo_antialias_t		 antialias,
-
 
1669
			     cairo_clip_t		*clip,
-
 
1670
			     cairo_rectangle_int_t	*extents);
-
 
1671
 
-
 
1672
cairo_private cairo_status_t
-
 
1673
_cairo_surface_glyphs_extents (cairo_surface_t *surface,
-
 
1674
			       cairo_operator_t	   op,
-
 
1675
			       const cairo_pattern_t *source,
-
 
1676
			       cairo_glyph_t	  *glyphs,
-
 
1677
			       int		   num_glyphs,
-
 
1678
			       cairo_scaled_font_t  *scaled_font,
-
 
1679
			       cairo_clip_t         *clip,
-
 
1680
			       cairo_rectangle_int_t *extents);
-
 
1681
 
-
 
1682
cairo_private cairo_status_t
-
 
1683
_cairo_surface_composite_trapezoids (cairo_operator_t	op,
-
 
1684
				     const cairo_pattern_t *pattern,
-
 
1685
				     cairo_surface_t	*dst,
-
 
1686
				     cairo_antialias_t	antialias,
-
 
1687
				     int		src_x,
-
 
1688
				     int		src_y,
-
 
1689
				     int		dst_x,
-
 
1690
				     int		dst_y,
-
 
1691
				     unsigned int	width,
-
 
1692
				     unsigned int	height,
-
 
1693
				     cairo_trapezoid_t	*traps,
-
 
1694
				     int		ntraps,
-
 
1695
				     cairo_region_t	*clip_region);
-
 
1696
 
-
 
1697
cairo_private cairo_span_renderer_t *
-
 
1698
_cairo_surface_create_span_renderer (cairo_operator_t			 op,
-
 
1699
				     const cairo_pattern_t		*pattern,
-
 
1700
				     cairo_surface_t			*dst,
-
 
1701
				     cairo_antialias_t			 antialias,
-
 
1702
				     const cairo_composite_rectangles_t *rects,
-
 
1703
				     cairo_region_t			*clip_region);
-
 
1704
 
-
 
1705
cairo_private cairo_bool_t
-
 
1706
_cairo_surface_check_span_renderer (cairo_operator_t			 op,
-
 
1707
				    const cairo_pattern_t		*pattern,
-
 
1708
				    cairo_surface_t			*dst,
-
 
1709
				    cairo_antialias_t			 antialias);
-
 
Line 1710... Line 1390...
1710
 
1390
 
1711
cairo_private cairo_status_t
1391
cairo_private cairo_status_t
1712
_cairo_surface_acquire_source_image (cairo_surface_t         *surface,
1392
_cairo_surface_acquire_source_image (cairo_surface_t         *surface,
1713
				     cairo_image_surface_t  **image_out,
1393
				     cairo_image_surface_t  **image_out,
Line 1716... Line 1396...
1716
cairo_private void
1396
cairo_private void
1717
_cairo_surface_release_source_image (cairo_surface_t        *surface,
1397
_cairo_surface_release_source_image (cairo_surface_t        *surface,
1718
				     cairo_image_surface_t  *image,
1398
				     cairo_image_surface_t  *image,
1719
				     void                   *image_extra);
1399
				     void                   *image_extra);
Line 1720... Line -...
1720
 
-
 
1721
cairo_private cairo_status_t
-
 
1722
_cairo_surface_acquire_dest_image (cairo_surface_t         *surface,
-
 
1723
				   cairo_rectangle_int_t   *interest_rect,
-
 
1724
				   cairo_image_surface_t  **image_out,
-
 
1725
				   cairo_rectangle_int_t   *image_rect,
-
 
1726
				   void                   **image_extra);
-
 
1727
 
-
 
1728
cairo_private void
-
 
1729
_cairo_surface_release_dest_image (cairo_surface_t        *surface,
-
 
1730
				   cairo_rectangle_int_t  *interest_rect,
-
 
1731
				   cairo_image_surface_t  *image,
-
 
1732
				   cairo_rectangle_int_t  *image_rect,
-
 
1733
				   void                   *image_extra);
-
 
1734
 
-
 
1735
cairo_private cairo_status_t
-
 
1736
_cairo_surface_clone_similar (cairo_surface_t  *surface,
-
 
1737
			      cairo_surface_t  *src,
-
 
1738
			      int               src_x,
-
 
1739
			      int               src_y,
-
 
1740
			      int               width,
-
 
1741
			      int               height,
-
 
1742
			      int              *clone_offset_x,
-
 
1743
			      int              *clone_offset_y,
-
 
1744
			      cairo_surface_t **clone_out);
-
 
1745
 
1400
 
1746
cairo_private cairo_surface_t *
1401
cairo_private cairo_surface_t *
Line 1747... Line 1402...
1747
_cairo_surface_snapshot (cairo_surface_t *surface);
1402
_cairo_surface_snapshot (cairo_surface_t *surface);
1748
 
1403
 
Line 1756... Line 1411...
1756
			     const cairo_surface_backend_t *backend);
1411
			     const cairo_surface_backend_t *backend);
Line 1757... Line 1412...
1757
 
1412
 
1758
cairo_private void
1413
cairo_private void
Line 1759... Line 1414...
1759
_cairo_surface_detach_snapshot (cairo_surface_t *snapshot);
1414
_cairo_surface_detach_snapshot (cairo_surface_t *snapshot);
1760
 
1415
 
1761
cairo_private cairo_bool_t
-
 
Line 1762... Line 1416...
1762
_cairo_surface_is_similar (cairo_surface_t *surface_a,
1416
cairo_private cairo_status_t
1763
	                   cairo_surface_t *surface_b);
1417
_cairo_surface_begin_modification (cairo_surface_t *surface);
1764
 
1418
 
Line 1765... Line -...
1765
cairo_private cairo_bool_t
-
 
1766
_cairo_surface_get_extents (cairo_surface_t         *surface,
-
 
1767
			    cairo_rectangle_int_t   *extents);
-
 
1768
 
-
 
1769
cairo_private cairo_status_t
-
 
1770
_cairo_surface_old_show_glyphs (cairo_scaled_font_t	*scaled_font,
-
 
1771
				cairo_operator_t	 op,
-
 
1772
				const cairo_pattern_t	*pattern,
-
 
1773
				cairo_surface_t		*surface,
-
 
1774
				int			 source_x,
-
 
1775
				int			 source_y,
-
 
1776
				int			 dest_x,
-
 
1777
				int			 dest_y,
-
 
1778
				unsigned int		 width,
-
 
1779
				unsigned int		 height,
-
 
1780
				cairo_glyph_t		*glyphs,
-
 
1781
				int			 num_glyphs,
-
 
1782
				cairo_region_t		*clip_region);
-
 
1783
 
-
 
1784
cairo_private cairo_status_t
-
 
1785
_cairo_surface_composite_fixup_unbounded (cairo_surface_t            *dst,
-
 
1786
					  cairo_surface_attributes_t *src_attr,
-
 
1787
					  int                         src_width,
-
 
1788
					  int                         src_height,
-
 
1789
					  cairo_surface_attributes_t *mask_attr,
-
 
1790
					  int                         mask_width,
-
 
1791
					  int                         mask_height,
-
 
1792
					  int			      src_x,
-
 
1793
					  int			      src_y,
-
 
1794
					  int			      mask_x,
-
 
1795
					  int			      mask_y,
-
 
1796
					  int			      dst_x,
-
 
1797
					  int			      dst_y,
-
 
1798
					  unsigned int		      width,
-
 
1799
					  unsigned int		      height,
-
 
1800
					  cairo_region_t	    *clip_region);
-
 
1801
 
-
 
1802
cairo_private cairo_status_t
-
 
1803
_cairo_surface_composite_shape_fixup_unbounded (cairo_surface_t            *dst,
-
 
1804
						cairo_surface_attributes_t *src_attr,
-
 
1805
						int                         src_width,
-
 
1806
						int                         src_height,
-
 
1807
						int                         mask_width,
-
 
1808
						int                         mask_height,
-
 
1809
						int			    src_x,
-
 
1810
						int			    src_y,
-
 
1811
						int			    mask_x,
-
 
1812
						int			    mask_y,
-
 
1813
						int			    dst_x,
-
 
1814
						int			    dst_y,
-
 
1815
						unsigned int		    width,
-
 
1816
						unsigned int		    height,
-
 
1817
						cairo_region_t		    *clip_region);
-
 
1818
 
1419
cairo_private_no_warn cairo_bool_t
1819
cairo_private cairo_bool_t
1420
_cairo_surface_get_extents (cairo_surface_t         *surface,
1820
_cairo_surface_is_opaque (const cairo_surface_t *surface);
1421
			    cairo_rectangle_int_t   *extents);
1821
 
1422
 
Line 1861... Line 1462...
1861
 * it. But that should not happen before all necessary code is fixed
1462
 * it. But that should not happen before all necessary code is fixed
1862
 * to support it (at least cairo_surface_write_to_png() and a few spots
1463
 * to support it (at least cairo_surface_write_to_png() and a few spots
1863
 * in cairo-xlib-surface.c--again see -Wswitch-enum).
1464
 * in cairo-xlib-surface.c--again see -Wswitch-enum).
1864
 */
1465
 */
1865
#define CAIRO_FORMAT_VALID(format) ((format) >= CAIRO_FORMAT_ARGB32 &&		\
1466
#define CAIRO_FORMAT_VALID(format) ((format) >= CAIRO_FORMAT_ARGB32 &&		\
1866
                                    (format) <= CAIRO_FORMAT_RGB16_565)
1467
                                    (format) <= CAIRO_FORMAT_RGB30)
Line 1867... Line 1468...
1867
 
1468
 
1868
/* pixman-required stride alignment in bytes. */
1469
/* pixman-required stride alignment in bytes. */
1869
#define CAIRO_STRIDE_ALIGNMENT (sizeof (uint32_t))
1470
#define CAIRO_STRIDE_ALIGNMENT (sizeof (uint32_t))
1870
#define CAIRO_STRIDE_FOR_WIDTH_BPP(w,bpp) \
1471
#define CAIRO_STRIDE_FOR_WIDTH_BPP(w,bpp) \
Line 1905... Line 1506...
1905
cairo_private cairo_bool_t
1506
cairo_private cairo_bool_t
1906
_pixman_format_to_masks (pixman_format_code_t	 pixman_format,
1507
_pixman_format_to_masks (pixman_format_code_t	 pixman_format,
1907
			 cairo_format_masks_t	*masks);
1508
			 cairo_format_masks_t	*masks);
Line 1908... Line 1509...
1908
 
1509
 
-
 
1510
cairo_private void
-
 
1511
_cairo_image_scaled_glyph_fini (cairo_scaled_font_t *scaled_font,
-
 
1512
				cairo_scaled_glyph_t *scaled_glyph);
-
 
1513
 
1909
cairo_private void
1514
cairo_private void
Line 1910... Line 1515...
1910
_cairo_image_reset_static_data (void);
1515
_cairo_image_reset_static_data (void);
1911
 
1516
 
1912
cairo_private cairo_surface_t *
1517
cairo_private cairo_surface_t *
Line 1929... Line 1534...
1929
 
1534
 
1930
cairo_private cairo_image_surface_t *
1535
cairo_private cairo_image_surface_t *
1931
_cairo_image_surface_coerce_to_format (cairo_image_surface_t	*surface,
1536
_cairo_image_surface_coerce_to_format (cairo_image_surface_t	*surface,
Line 1932... Line -...
1932
			               cairo_format_t		 format);
-
 
1933
 
-
 
1934
cairo_private void
-
 
1935
_cairo_image_surface_span_render_row (int				 y,
-
 
1936
				      const cairo_half_open_span_t	 *spans,
-
 
1937
				      unsigned				 num_spans,
-
 
1938
				      uint8_t				*data,
-
 
1939
				      uint32_t				 stride);
1537
			               cairo_format_t		 format);
1940
 
1538
 
Line 1941... Line 1539...
1941
cairo_private cairo_image_transparency_t
1539
cairo_private cairo_image_transparency_t
1942
_cairo_image_analyze_transparency (cairo_image_surface_t      *image);
1540
_cairo_image_analyze_transparency (cairo_image_surface_t      *image);
1943
 
-
 
1944
cairo_private cairo_bool_t
-
 
1945
_cairo_surface_is_image (const cairo_surface_t *surface) cairo_pure;
-
 
Line 1946... Line 1541...
1946
 
1541
 
-
 
1542
cairo_private cairo_image_color_t
-
 
1543
_cairo_image_analyze_color (cairo_image_surface_t      *image);
-
 
1544
 
-
 
1545
/* cairo-pen.c */
-
 
1546
cairo_private int
1947
cairo_private cairo_bool_t
1547
_cairo_pen_vertices_needed (double	    tolerance,
1948
_cairo_surface_is_recording (const cairo_surface_t *surface) cairo_pure;
1548
			    double	    radius,
1949
 
1549
			    const cairo_matrix_t  *matrix);
1950
/* cairo-pen.c */
1550
 
1951
cairo_private cairo_status_t
1551
cairo_private cairo_status_t
Line 1964... Line 1564...
1964
_cairo_pen_fini (cairo_pen_t *pen);
1564
_cairo_pen_fini (cairo_pen_t *pen);
Line 1965... Line 1565...
1965
 
1565
 
1966
cairo_private cairo_status_t
1566
cairo_private cairo_status_t
Line 1967... Line -...
1967
_cairo_pen_add_points (cairo_pen_t *pen, cairo_point_t *point, int num_points);
-
 
1968
 
-
 
1969
cairo_private cairo_status_t
-
 
1970
_cairo_pen_add_points_for_slopes (cairo_pen_t *pen,
-
 
1971
				  cairo_point_t *a,
-
 
1972
				  cairo_point_t *b,
-
 
1973
				  cairo_point_t *c,
-
 
1974
				  cairo_point_t *d);
1567
_cairo_pen_add_points (cairo_pen_t *pen, cairo_point_t *point, int num_points);
1975
 
1568
 
1976
cairo_private int
1569
cairo_private int
Line 1977... Line 1570...
1977
_cairo_pen_find_active_cw_vertex_index (const cairo_pen_t *pen,
1570
_cairo_pen_find_active_cw_vertex_index (const cairo_pen_t *pen,
1978
					const cairo_slope_t *slope);
1571
					const cairo_slope_t *slope);
1979
 
1572
 
Line 1980... Line -...
1980
cairo_private int
-
 
1981
_cairo_pen_find_active_ccw_vertex_index (const cairo_pen_t *pen,
1573
cairo_private int
1982
					 const cairo_slope_t *slope);
1574
_cairo_pen_find_active_ccw_vertex_index (const cairo_pen_t *pen,
-
 
1575
					 const cairo_slope_t *slope);
-
 
1576
 
-
 
1577
cairo_private void
Line 1983... Line 1578...
1983
 
1578
_cairo_pen_find_active_cw_vertices (const cairo_pen_t *pen,
-
 
1579
				     const cairo_slope_t *in,
-
 
1580
				     const cairo_slope_t *out,
-
 
1581
				     int *start, int *stop);
-
 
1582
 
-
 
1583
cairo_private void
-
 
1584
_cairo_pen_find_active_ccw_vertices (const cairo_pen_t *pen,
-
 
1585
				     const cairo_slope_t *in,
1984
/* cairo-polygon.c */
1586
				     const cairo_slope_t *out,
1985
cairo_private void
1587
				     int *start, int *stop);
1986
_cairo_polygon_init (cairo_polygon_t *polygon);
1588
 
Line 1987... Line 1589...
1987
 
1589
/* cairo-polygon.c */
-
 
1590
cairo_private void
-
 
1591
_cairo_polygon_init (cairo_polygon_t   *polygon,
-
 
1592
		     const cairo_box_t *boxes,
-
 
1593
		     int		num_boxes);
-
 
1594
 
-
 
1595
cairo_private void
-
 
1596
_cairo_polygon_init_with_clip (cairo_polygon_t *polygon,
-
 
1597
			       const cairo_clip_t *clip);
-
 
1598
 
-
 
1599
cairo_private cairo_status_t
-
 
1600
_cairo_polygon_init_boxes (cairo_polygon_t *polygon,
-
 
1601
			   const cairo_boxes_t *boxes);
-
 
1602
 
-
 
1603
cairo_private cairo_status_t
-
 
1604
_cairo_polygon_init_box_array (cairo_polygon_t *polygon,
-
 
1605
			       cairo_box_t *boxes,
-
 
1606
			       int num_boxes);
-
 
1607
 
-
 
1608
cairo_private void
-
 
1609
_cairo_polygon_limit (cairo_polygon_t *polygon,
-
 
1610
		     const cairo_box_t *limits,
-
 
1611
		     int num_limits);
1988
cairo_private void
1612
 
Line 1989... Line 1613...
1989
_cairo_polygon_limit (cairo_polygon_t	*polygon,
1613
cairo_private void
1990
		      const cairo_box_t *boxes,
1614
_cairo_polygon_limit_to_clip (cairo_polygon_t *polygon,
1991
		      int		 num_boxes);
1615
			      const cairo_clip_t *clip);
Line 2003... Line 1627...
2003
_cairo_polygon_add_external_edge (void *polygon,
1627
_cairo_polygon_add_external_edge (void *polygon,
2004
				  const cairo_point_t *p1,
1628
				  const cairo_point_t *p1,
2005
				  const cairo_point_t *p2);
1629
				  const cairo_point_t *p2);
Line 2006... Line 1630...
2006
 
1630
 
2007
cairo_private cairo_status_t
1631
cairo_private cairo_status_t
2008
_cairo_polygon_move_to (cairo_polygon_t *polygon,
1632
_cairo_polygon_add_contour (cairo_polygon_t *polygon,
-
 
1633
			    const cairo_contour_t *contour);
-
 
1634
 
-
 
1635
cairo_private void
Line 2009... Line 1636...
2009
			const cairo_point_t *point);
1636
_cairo_polygon_translate (cairo_polygon_t *polygon, int dx, int dy);
2010
 
1637
 
-
 
1638
cairo_private cairo_status_t
-
 
1639
_cairo_polygon_reduce (cairo_polygon_t *polygon,
-
 
1640
		       cairo_fill_rule_t fill_rule);
-
 
1641
 
2011
cairo_private cairo_status_t
1642
cairo_private cairo_status_t
Line 2012... Line 1643...
2012
_cairo_polygon_line_to (cairo_polygon_t *polygon,
1643
_cairo_polygon_intersect (cairo_polygon_t *a, int winding_a,
-
 
1644
			  cairo_polygon_t *b, int winding_b);
-
 
1645
 
-
 
1646
cairo_private cairo_status_t
-
 
1647
_cairo_polygon_intersect_with_boxes (cairo_polygon_t *polygon,
-
 
1648
				     cairo_fill_rule_t *winding,
-
 
1649
				     cairo_box_t *boxes,
2013
			const cairo_point_t *point);
1650
				     int num_boxes);
-
 
1651
 
-
 
1652
static inline cairo_bool_t
-
 
1653
_cairo_polygon_is_empty (const cairo_polygon_t *polygon)
-
 
1654
{
-
 
1655
    return
Line 2014... Line 1656...
2014
 
1656
	polygon->num_edges == 0 ||
Line 2015... Line 1657...
2015
cairo_private cairo_status_t
1657
	polygon->extents.p2.x <= polygon->extents.p1.x;
2016
_cairo_polygon_close (cairo_polygon_t *polygon);
1658
}
Line 2063... Line 1705...
2063
 
1705
 
2064
cairo_private cairo_status_t
1706
cairo_private cairo_status_t
2065
_cairo_matrix_compute_basis_scale_factors (const cairo_matrix_t *matrix,
1707
_cairo_matrix_compute_basis_scale_factors (const cairo_matrix_t *matrix,
Line 2066... Line 1708...
2066
					   double *sx, double *sy, int x_major);
1708
					   double *sx, double *sy, int x_major);
2067
 
1709
 
-
 
1710
static inline cairo_bool_t
-
 
1711
_cairo_matrix_is_identity (const cairo_matrix_t *matrix)
-
 
1712
{
-
 
1713
    return (matrix->xx == 1.0 && matrix->yx == 0.0 &&
-
 
1714
	    matrix->xy == 0.0 && matrix->yy == 1.0 &&
Line 2068... Line 1715...
2068
cairo_private cairo_bool_t
1715
	    matrix->x0 == 0.0 && matrix->y0 == 0.0);
2069
_cairo_matrix_is_identity (const cairo_matrix_t *matrix) cairo_pure;
1716
}
-
 
1717
 
-
 
1718
static inline cairo_bool_t
-
 
1719
_cairo_matrix_is_translation (const cairo_matrix_t *matrix)
-
 
1720
{
-
 
1721
    return (matrix->xx == 1.0 && matrix->yx == 0.0 &&
-
 
1722
	    matrix->xy == 0.0 && matrix->yy == 1.0);
-
 
1723
}
-
 
1724
 
-
 
1725
static inline cairo_bool_t
-
 
1726
_cairo_matrix_is_scale (const cairo_matrix_t *matrix)
Line 2070... Line 1727...
2070
 
1727
{
2071
cairo_private cairo_bool_t
1728
    return matrix->yx == 0.0 && matrix->xy == 0.0;
2072
_cairo_matrix_is_translation (const cairo_matrix_t *matrix) cairo_pure;
1729
}
Line 2083... Line 1740...
2083
 
1740
 
2084
cairo_private double
1741
cairo_private double
2085
_cairo_matrix_transformed_circle_major_axis (const cairo_matrix_t *matrix,
1742
_cairo_matrix_transformed_circle_major_axis (const cairo_matrix_t *matrix,
Line 2086... Line 1743...
2086
					     double radius) cairo_pure;
1743
					     double radius) cairo_pure;
2087
 
1744
 
2088
cairo_private void
-
 
2089
_cairo_matrix_to_pixman_matrix (const cairo_matrix_t	*matrix,
1745
cairo_private cairo_bool_t
2090
				pixman_transform_t	*pixman_transform,
1746
_cairo_matrix_is_pixman_translation (const cairo_matrix_t     *matrix,
2091
				double                   xc,
-
 
2092
				double                   yc);
-
 
2093
 
-
 
2094
/* cairo-traps.c */
-
 
2095
cairo_private void
-
 
2096
_cairo_traps_init (cairo_traps_t *traps);
-
 
2097
 
-
 
2098
cairo_private void
-
 
2099
_cairo_traps_limit (cairo_traps_t	*traps,
-
 
2100
		    const cairo_box_t	*boxes,
-
 
2101
		    int			 num_boxes);
-
 
2102
 
-
 
2103
cairo_private cairo_status_t
1747
				     cairo_filter_t            filter,
2104
_cairo_traps_init_boxes (cairo_traps_t	    *traps,
-
 
2105
		         const cairo_boxes_t *boxes);
-
 
2106
 
-
 
2107
cairo_private void
-
 
2108
_cairo_traps_clear (cairo_traps_t *traps);
-
 
2109
 
-
 
2110
cairo_private void
-
 
2111
_cairo_traps_fini (cairo_traps_t *traps);
-
 
2112
 
-
 
2113
#define _cairo_traps_status(T) (T)->status
-
 
2114
 
-
 
Line 2115... Line 1748...
2115
cairo_private void
1748
				     int                      *out_x_offset,
2116
_cairo_traps_translate (cairo_traps_t *traps, int x, int y);
1749
				     int                      *out_y_offset);
2117
 
1750
 
2118
cairo_private cairo_status_t
1751
cairo_private cairo_status_t
2119
_cairo_traps_tessellate_rectangle (cairo_traps_t *traps,
-
 
2120
				   const cairo_point_t *top_left,
1752
_cairo_matrix_to_pixman_matrix_offset (const cairo_matrix_t	*matrix,
2121
				   const cairo_point_t *bottom_right);
1753
				       cairo_filter_t            filter,
2122
 
1754
				       double                    xc,
2123
cairo_private void
1755
				       double                    yc,
Line 2124... Line 1756...
2124
_cairo_traps_add_trap (cairo_traps_t *traps,
1756
				       pixman_transform_t	*out_transform,
2125
		       cairo_fixed_t top, cairo_fixed_t bottom,
1757
				       int                      *out_x_offset,
2126
		       cairo_line_t *left, cairo_line_t *right);
1758
				       int                      *out_y_offset);
2127
 
1759
 
Line 2155... Line 1787...
2155
cairo_private cairo_status_t
1787
cairo_private cairo_status_t
2156
_cairo_bentley_ottmann_tessellate_rectilinear_polygon_to_boxes (const cairo_polygon_t *polygon,
1788
_cairo_bentley_ottmann_tessellate_rectilinear_polygon_to_boxes (const cairo_polygon_t *polygon,
2157
								cairo_fill_rule_t fill_rule,
1789
								cairo_fill_rule_t fill_rule,
2158
								cairo_boxes_t *boxes);
1790
								cairo_boxes_t *boxes);
Line 2159... Line -...
2159
 
-
 
2160
cairo_private int
-
 
2161
_cairo_traps_contain (const cairo_traps_t *traps,
-
 
2162
		      double x, double y);
-
 
2163
 
-
 
2164
cairo_private void
-
 
2165
_cairo_traps_extents (const cairo_traps_t *traps,
-
 
2166
		      cairo_box_t         *extents);
-
 
2167
 
-
 
2168
cairo_private cairo_int_status_t
-
 
2169
_cairo_traps_extract_region (cairo_traps_t  *traps,
-
 
2170
			     cairo_region_t **region);
-
 
2171
 
-
 
2172
cairo_private cairo_status_t
-
 
2173
_cairo_traps_path (const cairo_traps_t *traps,
-
 
2174
		   cairo_path_fixed_t  *path);
-
 
2175
 
1791
 
2176
cairo_private void
1792
cairo_private void
2177
_cairo_trapezoid_array_translate_and_scale (cairo_trapezoid_t *offset_traps,
1793
_cairo_trapezoid_array_translate_and_scale (cairo_trapezoid_t *offset_traps,
2178
					    cairo_trapezoid_t *src_traps,
1794
					    cairo_trapezoid_t *src_traps,
2179
					    int num_traps,
1795
					    int num_traps,
2180
					    double tx, double ty,
1796
					    double tx, double ty,
Line 2181... Line -...
2181
					    double sx, double sy);
-
 
2182
 
-
 
2183
/* cairo-pattern.c */
-
 
2184
 
-
 
2185
cairo_private cairo_pattern_t *
-
 
2186
_cairo_pattern_create_in_error (cairo_status_t status);
-
 
2187
 
-
 
2188
cairo_private cairo_status_t
-
 
2189
_cairo_pattern_create_copy (cairo_pattern_t	  **pattern,
-
 
2190
			    const cairo_pattern_t  *other);
-
 
2191
 
-
 
2192
cairo_private cairo_status_t
-
 
2193
_cairo_pattern_init_copy (cairo_pattern_t	*pattern,
-
 
2194
			  const cairo_pattern_t *other);
-
 
2195
 
-
 
2196
cairo_private void
-
 
2197
_cairo_pattern_init_static_copy (cairo_pattern_t	*pattern,
-
 
2198
				 const cairo_pattern_t *other);
-
 
2199
 
-
 
2200
cairo_private cairo_status_t
-
 
2201
_cairo_pattern_init_snapshot (cairo_pattern_t       *pattern,
-
 
2202
			      const cairo_pattern_t *other);
-
 
2203
 
-
 
2204
cairo_private void
-
 
2205
_cairo_pattern_init_solid (cairo_solid_pattern_t	*pattern,
-
 
2206
			   const cairo_color_t		*color);
-
 
2207
 
-
 
2208
cairo_private void
-
 
2209
_cairo_pattern_init_for_surface (cairo_surface_pattern_t *pattern,
-
 
2210
				 cairo_surface_t *surface);
-
 
2211
 
-
 
2212
cairo_private void
-
 
2213
_cairo_pattern_init_linear (cairo_linear_pattern_t *pattern,
-
 
2214
			    double x0, double y0, double x1, double y1);
-
 
2215
 
-
 
2216
cairo_private void
-
 
2217
_cairo_pattern_init_radial (cairo_radial_pattern_t *pattern,
-
 
2218
			    double cx0, double cy0, double radius0,
-
 
2219
			    double cx1, double cy1, double radius1);
-
 
2220
 
-
 
2221
cairo_private void
-
 
2222
_cairo_pattern_fini (cairo_pattern_t *pattern);
-
 
2223
 
-
 
2224
cairo_private cairo_pattern_t *
-
 
2225
_cairo_pattern_create_solid (const cairo_color_t	*color);
-
 
2226
 
-
 
2227
cairo_private void
-
 
2228
_cairo_pattern_transform (cairo_pattern_t      *pattern,
-
 
2229
			  const cairo_matrix_t *ctm_inverse);
-
 
2230
 
-
 
2231
cairo_private cairo_bool_t
-
 
2232
_cairo_gradient_pattern_is_solid (const cairo_gradient_pattern_t *gradient,
-
 
2233
				  const cairo_rectangle_int_t *extents,
-
 
2234
				  cairo_color_t *color);
-
 
2235
 
-
 
2236
cairo_private cairo_bool_t
-
 
2237
_cairo_pattern_is_opaque_solid (const cairo_pattern_t *pattern);
-
 
2238
 
-
 
2239
cairo_private cairo_bool_t
-
 
2240
_cairo_pattern_is_opaque (const cairo_pattern_t *pattern,
-
 
2241
			  const cairo_rectangle_int_t *extents);
-
 
2242
 
-
 
2243
cairo_private cairo_bool_t
-
 
2244
_cairo_pattern_is_clear (const cairo_pattern_t *pattern);
-
 
2245
 
-
 
2246
cairo_private_no_warn cairo_filter_t
-
 
2247
_cairo_pattern_analyze_filter (const cairo_pattern_t	*pattern,
-
 
2248
			       double			*pad_out);
-
 
2249
 
-
 
2250
enum {
-
 
2251
    CAIRO_PATTERN_ACQUIRE_NONE = 0x0,
-
 
2252
    CAIRO_PATTERN_ACQUIRE_NO_REFLECT = 0x1
-
 
2253
};
-
 
2254
cairo_private cairo_int_status_t
-
 
2255
_cairo_pattern_acquire_surface (const cairo_pattern_t	   *pattern,
-
 
2256
				cairo_surface_t		   *dst,
-
 
2257
				int			   x,
-
 
2258
				int			   y,
-
 
2259
				unsigned int		   width,
-
 
2260
				unsigned int		   height,
-
 
2261
				unsigned int		   flags,
-
 
2262
				cairo_surface_t		   **surface_out,
-
 
2263
				cairo_surface_attributes_t *attributes);
-
 
2264
 
-
 
2265
cairo_private void
-
 
2266
_cairo_pattern_release_surface (const cairo_pattern_t	   *pattern,
-
 
2267
				cairo_surface_t		   *surface,
-
 
2268
				cairo_surface_attributes_t *attributes);
-
 
2269
 
-
 
2270
cairo_private cairo_int_status_t
-
 
2271
_cairo_pattern_acquire_surfaces (const cairo_pattern_t	    *src,
-
 
2272
				 const cairo_pattern_t	    *mask,
-
 
2273
				 cairo_surface_t	    *dst,
-
 
2274
				 int			    src_x,
-
 
2275
				 int			    src_y,
-
 
2276
				 int			    mask_x,
-
 
2277
				 int			    mask_y,
-
 
2278
				 unsigned int		    width,
-
 
2279
				 unsigned int		    height,
-
 
2280
				 unsigned int		    flags,
-
 
2281
				 cairo_surface_t	    **src_out,
-
 
2282
				 cairo_surface_t	    **mask_out,
-
 
2283
				 cairo_surface_attributes_t *src_attributes,
-
 
2284
				 cairo_surface_attributes_t *mask_attributes);
-
 
2285
 
-
 
2286
cairo_private void
-
 
2287
_cairo_pattern_get_extents (const cairo_pattern_t	    *pattern,
-
 
2288
			    cairo_rectangle_int_t           *extents);
-
 
2289
 
-
 
2290
cairo_private unsigned long
-
 
2291
_cairo_pattern_hash (const cairo_pattern_t *pattern);
-
 
2292
 
-
 
2293
cairo_private unsigned long
-
 
2294
_cairo_linear_pattern_hash (unsigned long hash,
-
 
2295
			    const cairo_linear_pattern_t *linear);
-
 
2296
 
-
 
2297
cairo_private unsigned long
-
 
2298
_cairo_radial_pattern_hash (unsigned long hash,
-
 
2299
			    const cairo_radial_pattern_t *radial);
-
 
2300
 
-
 
2301
cairo_private cairo_bool_t
-
 
2302
_cairo_linear_pattern_equal (const cairo_linear_pattern_t *a,
-
 
2303
			     const cairo_linear_pattern_t *b);
-
 
2304
 
-
 
2305
cairo_private unsigned long
-
 
2306
_cairo_pattern_size (const cairo_pattern_t *pattern);
-
 
2307
 
-
 
2308
cairo_private cairo_bool_t
-
 
2309
_cairo_radial_pattern_equal (const cairo_radial_pattern_t *a,
-
 
2310
			     const cairo_radial_pattern_t *b);
-
 
2311
 
-
 
2312
cairo_private cairo_bool_t
-
 
2313
_cairo_pattern_equal (const cairo_pattern_t *a,
-
 
2314
		      const cairo_pattern_t *b);
-
 
2315
 
-
 
2316
cairo_private void
-
 
2317
_cairo_pattern_reset_static_data (void);
1797
					    double sx, double sy);
Line 2318... Line 1798...
2318
 
1798
 
2319
#if CAIRO_HAS_DRM_SURFACE
1799
#if CAIRO_HAS_DRM_SURFACE
Line 2320... Line 1800...
2320
 
1800
 
Line 2321... Line 1801...
2321
cairo_private void
1801
cairo_private void
2322
_cairo_drm_device_reset_static_data (void);
1802
_cairo_drm_device_reset_static_data (void);
Line -... Line 1803...
-
 
1803
 
-
 
1804
#endif
-
 
1805
 
2323
 
1806
cairo_private void
Line 2324... Line 1807...
2324
#endif
1807
_cairo_clip_reset_static_data (void);
2325
 
1808
 
2326
cairo_private void
1809
cairo_private void
Line 2351... Line 1834...
2351
		      int	  len,
1834
		      int	  len,
2352
		      uint16_t  **result,
1835
		      uint16_t  **result,
2353
		      int	 *items_written);
1836
		      int	 *items_written);
2354
#endif
1837
#endif
Line -... Line 1838...
-
 
1838
 
-
 
1839
cairo_private void
-
 
1840
_cairo_matrix_multiply (cairo_matrix_t *r,
-
 
1841
			const cairo_matrix_t *a,
-
 
1842
			const cairo_matrix_t *b);
2355
 
1843
 
Line 2356... Line 1844...
2356
/* cairo-observer.c */
1844
/* cairo-observer.c */
2357
 
1845
 
Line 2379... Line 1867...
2379
slim_hidden_proto (cairo_font_options_status);
1867
slim_hidden_proto (cairo_font_options_status);
2380
slim_hidden_proto (cairo_format_stride_for_width);
1868
slim_hidden_proto (cairo_format_stride_for_width);
2381
slim_hidden_proto (cairo_get_current_point);
1869
slim_hidden_proto (cairo_get_current_point);
2382
slim_hidden_proto (cairo_get_line_width);
1870
slim_hidden_proto (cairo_get_line_width);
2383
slim_hidden_proto (cairo_get_matrix);
1871
slim_hidden_proto (cairo_get_matrix);
-
 
1872
slim_hidden_proto (cairo_get_scaled_font);
2384
slim_hidden_proto (cairo_get_target);
1873
slim_hidden_proto (cairo_get_target);
2385
slim_hidden_proto (cairo_get_tolerance);
1874
slim_hidden_proto (cairo_get_tolerance);
2386
slim_hidden_proto (cairo_glyph_allocate);
1875
slim_hidden_proto (cairo_glyph_allocate);
2387
slim_hidden_proto (cairo_glyph_free);
1876
slim_hidden_proto (cairo_glyph_free);
2388
slim_hidden_proto (cairo_image_surface_create);
1877
slim_hidden_proto (cairo_image_surface_create);
Line 2406... Line 1895...
2406
slim_hidden_proto (cairo_matrix_transform_point);
1895
slim_hidden_proto (cairo_matrix_transform_point);
2407
slim_hidden_proto (cairo_matrix_translate);
1896
slim_hidden_proto (cairo_matrix_translate);
2408
slim_hidden_proto (cairo_move_to);
1897
slim_hidden_proto (cairo_move_to);
2409
slim_hidden_proto (cairo_new_path);
1898
slim_hidden_proto (cairo_new_path);
2410
slim_hidden_proto (cairo_paint);
1899
slim_hidden_proto (cairo_paint);
-
 
1900
slim_hidden_proto (cairo_pattern_add_color_stop_rgba);
2411
slim_hidden_proto (cairo_pattern_create_for_surface);
1901
slim_hidden_proto (cairo_pattern_create_for_surface);
2412
slim_hidden_proto (cairo_pattern_create_rgb);
1902
slim_hidden_proto (cairo_pattern_create_rgb);
2413
slim_hidden_proto (cairo_pattern_create_rgba);
1903
slim_hidden_proto (cairo_pattern_create_rgba);
2414
slim_hidden_proto (cairo_pattern_destroy);
1904
slim_hidden_proto (cairo_pattern_destroy);
2415
slim_hidden_proto (cairo_pattern_get_extend);
1905
slim_hidden_proto (cairo_pattern_get_extend);
-
 
1906
slim_hidden_proto (cairo_mesh_pattern_curve_to);
-
 
1907
slim_hidden_proto (cairo_mesh_pattern_get_control_point);
-
 
1908
slim_hidden_proto (cairo_mesh_pattern_get_corner_color_rgba);
-
 
1909
slim_hidden_proto (cairo_mesh_pattern_get_patch_count);
-
 
1910
slim_hidden_proto (cairo_mesh_pattern_get_path);
-
 
1911
slim_hidden_proto (cairo_mesh_pattern_line_to);
-
 
1912
slim_hidden_proto (cairo_mesh_pattern_move_to);
-
 
1913
slim_hidden_proto (cairo_mesh_pattern_set_corner_color_rgba);
2416
slim_hidden_proto_no_warn (cairo_pattern_reference);
1914
slim_hidden_proto_no_warn (cairo_pattern_reference);
2417
slim_hidden_proto (cairo_pattern_set_matrix);
1915
slim_hidden_proto (cairo_pattern_set_matrix);
2418
slim_hidden_proto (cairo_pop_group);
1916
slim_hidden_proto (cairo_pop_group);
2419
slim_hidden_proto (cairo_push_group_with_content);
1917
slim_hidden_proto (cairo_push_group_with_content);
-
 
1918
slim_hidden_proto_no_warn (cairo_path_destroy);
-
 
1919
slim_hidden_proto (cairo_recording_surface_create);
2420
slim_hidden_proto (cairo_rel_line_to);
1920
slim_hidden_proto (cairo_rel_line_to);
2421
slim_hidden_proto (cairo_restore);
1921
slim_hidden_proto (cairo_restore);
2422
slim_hidden_proto (cairo_save);
1922
slim_hidden_proto (cairo_save);
2423
slim_hidden_proto (cairo_scale);
1923
slim_hidden_proto (cairo_scale);
2424
slim_hidden_proto (cairo_scaled_font_create);
1924
slim_hidden_proto (cairo_scaled_font_create);
Line 2432... Line 1932...
2432
slim_hidden_proto_no_warn (cairo_scaled_font_reference);
1932
slim_hidden_proto_no_warn (cairo_scaled_font_reference);
2433
slim_hidden_proto (cairo_scaled_font_status);
1933
slim_hidden_proto (cairo_scaled_font_status);
2434
slim_hidden_proto (cairo_scaled_font_get_user_data);
1934
slim_hidden_proto (cairo_scaled_font_get_user_data);
2435
slim_hidden_proto (cairo_scaled_font_set_user_data);
1935
slim_hidden_proto (cairo_scaled_font_set_user_data);
2436
slim_hidden_proto (cairo_scaled_font_text_to_glyphs);
1936
slim_hidden_proto (cairo_scaled_font_text_to_glyphs);
-
 
1937
slim_hidden_proto (cairo_set_font_matrix);
2437
slim_hidden_proto (cairo_set_font_options);
1938
slim_hidden_proto (cairo_set_font_options);
2438
slim_hidden_proto (cairo_set_font_size);
1939
slim_hidden_proto (cairo_set_font_size);
2439
slim_hidden_proto (cairo_set_line_cap);
1940
slim_hidden_proto (cairo_set_line_cap);
2440
slim_hidden_proto (cairo_set_line_join);
1941
slim_hidden_proto (cairo_set_line_join);
2441
slim_hidden_proto (cairo_set_line_width);
1942
slim_hidden_proto (cairo_set_line_width);
Line 2447... Line 1948...
2447
slim_hidden_proto (cairo_set_tolerance);
1948
slim_hidden_proto (cairo_set_tolerance);
2448
slim_hidden_proto (cairo_status);
1949
slim_hidden_proto (cairo_status);
2449
slim_hidden_proto (cairo_stroke);
1950
slim_hidden_proto (cairo_stroke);
2450
slim_hidden_proto (cairo_stroke_preserve);
1951
slim_hidden_proto (cairo_stroke_preserve);
2451
slim_hidden_proto (cairo_surface_copy_page);
1952
slim_hidden_proto (cairo_surface_copy_page);
-
 
1953
slim_hidden_proto (cairo_surface_create_similar_image);
2452
slim_hidden_proto (cairo_surface_destroy);
1954
slim_hidden_proto (cairo_surface_destroy);
2453
slim_hidden_proto (cairo_surface_finish);
1955
slim_hidden_proto (cairo_surface_finish);
2454
slim_hidden_proto (cairo_surface_flush);
1956
slim_hidden_proto (cairo_surface_flush);
2455
slim_hidden_proto (cairo_surface_get_content);
-
 
2456
slim_hidden_proto (cairo_surface_get_device_offset);
1957
slim_hidden_proto (cairo_surface_get_device_offset);
2457
slim_hidden_proto (cairo_surface_get_font_options);
1958
slim_hidden_proto (cairo_surface_get_font_options);
2458
slim_hidden_proto (cairo_surface_get_mime_data);
1959
slim_hidden_proto (cairo_surface_get_mime_data);
2459
slim_hidden_proto (cairo_surface_get_type);
-
 
2460
slim_hidden_proto (cairo_surface_has_show_text_glyphs);
1960
slim_hidden_proto (cairo_surface_has_show_text_glyphs);
2461
slim_hidden_proto (cairo_surface_mark_dirty);
1961
slim_hidden_proto (cairo_surface_mark_dirty);
2462
slim_hidden_proto (cairo_surface_mark_dirty_rectangle);
1962
slim_hidden_proto (cairo_surface_mark_dirty_rectangle);
2463
slim_hidden_proto_no_warn (cairo_surface_reference);
1963
slim_hidden_proto_no_warn (cairo_surface_reference);
2464
slim_hidden_proto (cairo_surface_set_device_offset);
1964
slim_hidden_proto (cairo_surface_set_device_offset);
2465
slim_hidden_proto (cairo_surface_set_fallback_resolution);
1965
slim_hidden_proto (cairo_surface_set_fallback_resolution);
2466
slim_hidden_proto (cairo_surface_set_mime_data);
1966
slim_hidden_proto (cairo_surface_set_mime_data);
2467
slim_hidden_proto (cairo_surface_show_page);
1967
slim_hidden_proto (cairo_surface_show_page);
2468
slim_hidden_proto (cairo_surface_status);
1968
slim_hidden_proto (cairo_surface_status);
-
 
1969
slim_hidden_proto (cairo_surface_supports_mime_type);
2469
slim_hidden_proto (cairo_text_cluster_allocate);
1970
slim_hidden_proto (cairo_text_cluster_allocate);
2470
slim_hidden_proto (cairo_text_cluster_free);
1971
slim_hidden_proto (cairo_text_cluster_free);
2471
slim_hidden_proto (cairo_toy_font_face_create);
1972
slim_hidden_proto (cairo_toy_font_face_create);
2472
slim_hidden_proto (cairo_toy_font_face_get_slant);
1973
slim_hidden_proto (cairo_toy_font_face_get_slant);
2473
slim_hidden_proto (cairo_toy_font_face_get_weight);
1974
slim_hidden_proto (cairo_toy_font_face_get_weight);
Line 2475... Line 1976...
2475
slim_hidden_proto (cairo_transform);
1976
slim_hidden_proto (cairo_transform);
2476
slim_hidden_proto (cairo_user_font_face_create);
1977
slim_hidden_proto (cairo_user_font_face_create);
2477
slim_hidden_proto (cairo_user_font_face_set_init_func);
1978
slim_hidden_proto (cairo_user_font_face_set_init_func);
2478
slim_hidden_proto (cairo_user_font_face_set_render_glyph_func);
1979
slim_hidden_proto (cairo_user_font_face_set_render_glyph_func);
2479
slim_hidden_proto (cairo_user_font_face_set_unicode_to_glyph_func);
1980
slim_hidden_proto (cairo_user_font_face_set_unicode_to_glyph_func);
-
 
1981
slim_hidden_proto (cairo_device_to_user);
2480
slim_hidden_proto (cairo_user_to_device);
1982
slim_hidden_proto (cairo_user_to_device);
2481
slim_hidden_proto (cairo_user_to_device_distance);
1983
slim_hidden_proto (cairo_user_to_device_distance);
2482
slim_hidden_proto (cairo_version_string);
1984
slim_hidden_proto (cairo_version_string);
2483
slim_hidden_proto (cairo_region_create);
1985
slim_hidden_proto (cairo_region_create);
2484
slim_hidden_proto (cairo_region_create_rectangle);
1986
slim_hidden_proto (cairo_region_create_rectangle);
Line 2539... Line 2041...
2539
 
2041
 
2540
cairo_private void
2042
cairo_private void
Line 2541... Line 2043...
2541
_cairo_debug_print_path (FILE *stream, cairo_path_fixed_t *path);
2043
_cairo_debug_print_path (FILE *stream, cairo_path_fixed_t *path);
-
 
2044
 
-
 
2045
cairo_private void
-
 
2046
_cairo_debug_print_polygon (FILE *stream, cairo_polygon_t *polygon);
-
 
2047
 
-
 
2048
cairo_private void
-
 
2049
_cairo_debug_print_traps (FILE *file, const cairo_traps_t *traps);
2542
 
2050
 
-
 
2051
cairo_private void
-
 
2052
_cairo_debug_print_clip (FILE *stream, const cairo_clip_t *clip);
-
 
2053
 
-
 
2054
#if 0
-
 
2055
#define TRACE(x) fprintf (stderr, "%s: ", __FILE__), fprintf x
-
 
2056
#define TRACE_(x) x
-
 
2057
#else
-
 
2058
#define TRACE(x)
Line 2543... Line 2059...
2543
cairo_private void
2059
#define TRACE_(x)