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 37... Line 37...
37
#ifndef CAIRO_RECORDING_SURFACE_H
37
#ifndef CAIRO_RECORDING_SURFACE_H
38
#define CAIRO_RECORDING_SURFACE_H
38
#define CAIRO_RECORDING_SURFACE_H
Line 39... Line 39...
39
 
39
 
40
#include "cairoint.h"
40
#include "cairoint.h"
41
#include "cairo-path-fixed-private.h"
41
#include "cairo-path-fixed-private.h"
-
 
42
#include "cairo-pattern-private.h"
Line 42... Line 43...
42
#include "cairo-clip-private.h"
43
#include "cairo-surface-backend-private.h"
43
 
44
 
44
typedef enum {
45
typedef enum {
45
    /* The 5 basic drawing operations. */
46
    /* The 5 basic drawing operations. */
Line 58... Line 59...
58
 
59
 
59
typedef struct _cairo_command_header {
60
typedef struct _cairo_command_header {
60
    cairo_command_type_t	 type;
61
    cairo_command_type_t	 type;
61
    cairo_recording_region_type_t     region;
62
    cairo_recording_region_type_t region;
-
 
63
    cairo_operator_t		 op;
62
    cairo_operator_t		 op;
64
    cairo_rectangle_int_t	 extents;
-
 
65
    cairo_clip_t		*clip;
-
 
66
 
-
 
67
    int index;
63
    cairo_clip_t		 clip;
68
    struct _cairo_command_header *chain;
Line 64... Line 69...
64
} cairo_command_header_t;
69
} cairo_command_header_t;
65
 
70
 
66
typedef struct _cairo_command_paint {
71
typedef struct _cairo_command_paint {
Line 118... Line 123...
118
} cairo_command_t;
123
} cairo_command_t;
Line 119... Line 124...
119
 
124
 
120
typedef struct _cairo_recording_surface {
125
typedef struct _cairo_recording_surface {
Line 121... Line -...
121
    cairo_surface_t base;
-
 
122
 
-
 
123
    cairo_content_t content;
126
    cairo_surface_t base;
124
 
127
 
125
    /* A recording-surface is logically unbounded, but when used as a
128
    /* A recording-surface is logically unbounded, but when used as a
126
     * source we need to render it to an image, so we need a size at
129
     * source we need to render it to an image, so we need a size at
127
     * which to create that image. */
130
     * which to create that image. */
128
    cairo_rectangle_t extents_pixels;
131
    cairo_rectangle_t extents_pixels;
Line 129... Line -...
129
    cairo_rectangle_int_t extents;
-
 
130
    cairo_bool_t unbounded;
-
 
131
 
132
    cairo_rectangle_int_t extents;
-
 
133
    cairo_bool_t unbounded;
-
 
134
 
-
 
135
    cairo_array_t commands;
132
    cairo_clip_t clip;
136
    unsigned int *indices;
133
 
137
    unsigned int num_indices;
-
 
138
    cairo_bool_t optimize_clears;
-
 
139
 
-
 
140
    struct bbtree {
-
 
141
	cairo_box_t extents;
134
    cairo_array_t commands;
142
	struct bbtree *left, *right;
Line 135... Line 143...
135
 
143
	cairo_command_header_t *chain;
Line 136... Line 144...
136
    int replay_start_idx;
144
    } bbtree;
137
} cairo_recording_surface_t;
145
} cairo_recording_surface_t;
138
 
146
 
Line 139... Line 147...
139
slim_hidden_proto (cairo_recording_surface_create);
147
slim_hidden_proto (cairo_recording_surface_create);
140
 
148
 
-
 
149
cairo_private cairo_int_status_t
141
cairo_private cairo_int_status_t
150
_cairo_recording_surface_get_path (cairo_surface_t	 *surface,
Line 142... Line -...
142
_cairo_recording_surface_get_path (cairo_surface_t	 *surface,
-
 
143
				   cairo_path_fixed_t *path);
151
				   cairo_path_fixed_t *path);
144
 
152
 
145
cairo_private cairo_status_t
153
cairo_private cairo_status_t
Line 146... Line 154...
146
_cairo_recording_surface_replay (cairo_surface_t *surface,
154
_cairo_recording_surface_replay_one (cairo_recording_surface_t	*surface,
-
 
155
				     long unsigned index,
-
 
156
				     cairo_surface_t *target);
-
 
157
 
-
 
158
cairo_private cairo_status_t
-
 
159
_cairo_recording_surface_replay (cairo_surface_t *surface,
-
 
160
				 cairo_surface_t *target);
147
				 cairo_surface_t *target);
161
 
148
 
162
cairo_private cairo_status_t
149
 
163
_cairo_recording_surface_replay_with_clip (cairo_surface_t *surface,
150
cairo_private cairo_status_t
164
					   const cairo_matrix_t *surface_transform,
151
_cairo_recording_surface_replay_analyze_recording_pattern (cairo_surface_t *surface,
165
					   cairo_surface_t *target,
Line 163... Line 177...
163
cairo_private cairo_status_t
177
cairo_private cairo_status_t
164
_cairo_recording_surface_get_bbox (cairo_recording_surface_t *recording,
178
_cairo_recording_surface_get_bbox (cairo_recording_surface_t *recording,
165
				   cairo_box_t *bbox,
179
				   cairo_box_t *bbox,
166
				   const cairo_matrix_t *transform);
180
				   const cairo_matrix_t *transform);
Line 167... Line 181...
167
 
181
 
168
cairo_private cairo_bool_t
182
cairo_private cairo_status_t
-
 
183
_cairo_recording_surface_get_ink_bbox (cairo_recording_surface_t *surface,
-
 
184
				       cairo_box_t *bbox,
Line 169... Line 185...
169
_cairo_surface_is_recording (const cairo_surface_t *surface);
185
				       const cairo_matrix_t *transform);