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 29... Line 29...
29
 *
29
 *
30
 * The Initial Developer of the Original Code is Red Hat, Inc.
30
 * The Initial Developer of the Original Code is Red Hat, Inc.
31
 *
31
 *
32
 * Contributor(s):
32
 * Contributor(s):
33
 *	Kristian Høgsberg 
33
 *	Kristian Høgsberg 
-
 
34
 *	Chris Wilson 
34
 */
35
 */
Line 35... Line 36...
35
 
36
 
36
#ifndef CAIRO_CLIP_PRIVATE_H
37
#ifndef CAIRO_CLIP_PRIVATE_H
Line 37... Line 38...
37
#define CAIRO_CLIP_PRIVATE_H
38
#define CAIRO_CLIP_PRIVATE_H
-
 
39
 
-
 
40
#include "cairo-types-private.h"
-
 
41
 
38
 
42
#include "cairo-boxes-private.h"
-
 
43
#include "cairo-error-private.h"
39
#include "cairo-types-private.h"
44
#include "cairo-compiler-private.h"
40
#include "cairo-compiler-private.h"
45
#include "cairo-error-private.h"
Line 41... Line 46...
41
#include "cairo-path-fixed-private.h"
46
#include "cairo-path-fixed-private.h"
Line 42... Line -...
42
#include "cairo-reference-count-private.h"
-
 
43
 
-
 
44
extern const cairo_private cairo_rectangle_list_t _cairo_rectangles_nil;
-
 
45
 
-
 
46
enum {
-
 
47
    CAIRO_CLIP_PATH_HAS_REGION = 0x1,
-
 
48
    CAIRO_CLIP_PATH_REGION_IS_UNSUPPORTED = 0x2,
47
#include "cairo-reference-count-private.h"
49
    CAIRO_CLIP_PATH_IS_BOX = 0x4
48
 
50
};
49
extern const cairo_private cairo_rectangle_list_t _cairo_rectangles_nil;
51
 
50
 
52
struct _cairo_clip_path {
51
struct _cairo_clip_path {
53
    cairo_reference_count_t	 ref_count;
52
    cairo_reference_count_t	 ref_count;
54
    cairo_path_fixed_t		 path;
53
    cairo_path_fixed_t		 path;
-
 
54
    cairo_fill_rule_t		 fill_rule;
Line -... Line 55...
-
 
55
    double			 tolerance;
55
    cairo_fill_rule_t		 fill_rule;
56
    cairo_antialias_t		 antialias;
-
 
57
    cairo_clip_path_t		*prev;
-
 
58
};
-
 
59
 
-
 
60
struct _cairo_clip {
Line 56... Line -...
56
    double			 tolerance;
-
 
57
    cairo_antialias_t		 antialias;
-
 
58
    cairo_clip_path_t		*prev;
61
    cairo_rectangle_int_t extents;
59
 
62
    cairo_clip_path_t *path;
-
 
63
 
-
 
64
    cairo_box_t *boxes;
60
    cairo_rectangle_int_t extents;
65
    int num_boxes;
Line 61... Line 66...
61
 
66
 
62
    /* partial caches */
-
 
63
    unsigned int flags;
67
    cairo_region_t *region;
Line 64... Line 68...
64
    cairo_region_t *region;
68
    cairo_bool_t is_region;
-
 
69
 
Line 65... Line 70...
65
    cairo_surface_t *surface;
70
    cairo_box_t embedded_box;
-
 
71
};
Line 66... Line 72...
66
};
72
 
67
 
73
cairo_private cairo_clip_t *
Line 68... Line -...
68
struct _cairo_clip {
-
 
69
    /* can be used as a cairo_hash_entry_t for live clips */
74
_cairo_clip_create (void);
Line 70... Line 75...
70
    cairo_clip_path_t *path;
75
 
71
 
76
cairo_private cairo_clip_path_t *
72
    cairo_bool_t all_clipped;
-
 
73
 
-
 
Line -... Line 77...
-
 
77
_cairo_clip_path_reference (cairo_clip_path_t *clip_path);
-
 
78
 
-
 
79
cairo_private void
74
};
80
_cairo_clip_path_destroy (cairo_clip_path_t *clip_path);
75
 
81
 
-
 
82
cairo_private void
-
 
83
_cairo_clip_destroy (cairo_clip_t *clip);
-
 
84
 
-
 
85
cairo_private extern const cairo_clip_t __cairo_clip_all;
-
 
86
 
-
 
87
cairo_private cairo_clip_t *
-
 
88
_cairo_clip_copy (const cairo_clip_t *clip);
-
 
89
 
-
 
90
cairo_private cairo_clip_t *
Line 76... Line 91...
76
cairo_private void
91
_cairo_clip_copy_region (const cairo_clip_t *clip);
77
_cairo_clip_init (cairo_clip_t *clip);
92
 
78
 
93
cairo_private cairo_clip_t *
Line 79... Line -...
79
cairo_private_no_warn cairo_clip_t *
-
 
80
_cairo_clip_init_copy (cairo_clip_t *clip, cairo_clip_t *other);
-
 
81
 
94
_cairo_clip_copy_path (const cairo_clip_t *clip);
82
cairo_private cairo_status_t
95
 
83
_cairo_clip_init_copy_transformed (cairo_clip_t    *clip,
96
cairo_private cairo_clip_t *
Line 84... Line 97...
84
				   cairo_clip_t    *other,
97
_cairo_clip_translate (cairo_clip_t *clip, int tx, int ty);
-
 
98
 
-
 
99
cairo_private cairo_clip_t *
-
 
100
_cairo_clip_transform (cairo_clip_t *clip, const cairo_matrix_t *m);
-
 
101
 
85
				   const cairo_matrix_t *matrix);
102
cairo_private cairo_clip_t *
-
 
103
_cairo_clip_copy_with_translation (const cairo_clip_t *clip, int tx, int ty);
-
 
104
 
-
 
105
cairo_private cairo_bool_t
-
 
106
_cairo_clip_equal (const cairo_clip_t *clip_a,
-
 
107
		   const cairo_clip_t *clip_b);
-
 
108
 
-
 
109
cairo_private cairo_clip_t *
-
 
110
_cairo_clip_intersect_rectangle (cairo_clip_t       *clip,
86
 
111
				 const cairo_rectangle_int_t *rectangle);
87
cairo_private void
112
 
88
_cairo_clip_reset (cairo_clip_t *clip);
-
 
89
 
113
cairo_private cairo_clip_t *
Line 90... Line 114...
90
cairo_private cairo_bool_t
114
_cairo_clip_intersect_clip (cairo_clip_t *clip,
91
_cairo_clip_equal (const cairo_clip_t *clip_a,
115
			    const cairo_clip_t *other);
92
		   const cairo_clip_t *clip_b);
116
 
-
 
117
cairo_private cairo_clip_t *
-
 
118
_cairo_clip_intersect_box (cairo_clip_t       *clip,
-
 
119
			   const cairo_box_t *box);
Line 93... Line 120...
93
 
120
 
94
#define _cairo_clip_fini(clip) _cairo_clip_reset (clip)
121
cairo_private cairo_clip_t *
Line 95... Line 122...
95
 
122
_cairo_clip_intersect_boxes (cairo_clip_t *clip,
96
cairo_private cairo_status_t
123
			     const cairo_boxes_t *boxes);
-
 
124
 
-
 
125
cairo_private cairo_clip_t *
-
 
126
_cairo_clip_intersect_rectilinear_path (cairo_clip_t       *clip,
-
 
127
					const cairo_path_fixed_t *path,
-
 
128
					cairo_fill_rule_t   fill_rule,
Line 97... Line 129...
97
_cairo_clip_rectangle (cairo_clip_t       *clip,
129
					cairo_antialias_t   antialias);
98
		       const cairo_rectangle_int_t *rectangle);
130
 
99
 
131
cairo_private cairo_clip_t *
100
cairo_private cairo_status_t
132
_cairo_clip_intersect_path (cairo_clip_t       *clip,
Line 101... Line 133...
101
_cairo_clip_clip (cairo_clip_t       *clip,
133
			    const cairo_path_fixed_t *path,
102
		  const cairo_path_fixed_t *path,
134
			    cairo_fill_rule_t   fill_rule,
103
		  cairo_fill_rule_t   fill_rule,
-
 
Line 104... Line 135...
104
		  double              tolerance,
135
			    double              tolerance,
105
		  cairo_antialias_t   antialias);
136
			    cairo_antialias_t   antialias);
106
 
-
 
107
cairo_private cairo_status_t
-
 
Line 108... Line 137...
108
_cairo_clip_apply_clip (cairo_clip_t *clip,
137
 
109
			const cairo_clip_t *other);
138
cairo_private const cairo_rectangle_int_t *
-
 
139
_cairo_clip_get_extents (const cairo_clip_t *clip);
-
 
140
 
-
 
141
cairo_private cairo_surface_t *
110
 
142
_cairo_clip_get_surface (const cairo_clip_t *clip, cairo_surface_t *dst, int *tx, int *ty);
-
 
143
 
111
cairo_private const cairo_rectangle_int_t *
144
cairo_private cairo_surface_t *
-
 
145
_cairo_clip_get_image (const cairo_clip_t *clip,
112
_cairo_clip_get_extents (const cairo_clip_t *clip);
146
		       cairo_surface_t *target,
Line 113... Line 147...
113
 
147
		       const cairo_rectangle_int_t *extents);
114
cairo_private cairo_surface_t *
148
 
115
_cairo_clip_get_surface (cairo_clip_t *clip, cairo_surface_t *dst, int *tx, int *ty);
149
cairo_private cairo_status_t
Line 116... Line 150...
116
 
150
_cairo_clip_combine_with_surface (const cairo_clip_t *clip,
117
cairo_private cairo_status_t
151
				  cairo_surface_t *dst,
118
_cairo_clip_combine_with_surface (cairo_clip_t *clip,
152
				  int dst_x, int dst_y);
Line 119... Line 153...
119
				  cairo_surface_t *dst,
153
 
120
				  int dst_x, int dst_y);
154
cairo_private cairo_clip_t *
-
 
155
_cairo_clip_from_boxes (const cairo_boxes_t *boxes);
Line 121... Line 156...
121
 
156
 
122
cairo_private cairo_int_status_t
157
cairo_private cairo_region_t *
Line -... Line 158...
-
 
158
_cairo_clip_get_region (const cairo_clip_t *clip);
-
 
159
 
-
 
160
cairo_private cairo_bool_t
-
 
161
_cairo_clip_is_region (const cairo_clip_t *clip);
-
 
162
 
-
 
163
cairo_private cairo_clip_t *
-
 
164
_cairo_clip_reduce_to_rectangle (const cairo_clip_t *clip,
-
 
165
				 const cairo_rectangle_int_t *r);
-
 
166
 
-
 
167
cairo_private cairo_clip_t *
-
 
168
_cairo_clip_reduce_for_composite (const cairo_clip_t *clip,
-
 
169
				  cairo_composite_rectangles_t *extents);
123
_cairo_clip_get_region (cairo_clip_t *clip,
170