Subversion Repositories Scribus

Rev

Rev 14952 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
14952 fschmid 1
/* cairo - a vector graphics library with display and print output
2
 *
3
 * Copyright © 2002 University of Southern California
4
 * Copyright © 2005 Red Hat, Inc.
5
 * Copyright © 2009 Chris Wilson
6
 *
7
 * This library is free software; you can redistribute it and/or
8
 * modify it either under the terms of the GNU Lesser General Public
9
 * License version 2.1 as published by the Free Software Foundation
10
 * (the "LGPL") or, at your option, under the terms of the Mozilla
11
 * Public License Version 1.1 (the "MPL"). If you do not alter this
12
 * notice, a recipient may use your version of this file under either
13
 * the MPL or the LGPL.
14
 *
15
 * You should have received a copy of the LGPL along with this library
16
 * in the file COPYING-LGPL-2.1; if not, write to the Free Software
18122 mrdocs 17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
14952 fschmid 18
 * You should have received a copy of the MPL along with this library
19
 * in the file COPYING-MPL-1.1
20
 *
21
 * The contents of this file are subject to the Mozilla Public License
22
 * Version 1.1 (the "License"); you may not use this file except in
23
 * compliance with the License. You may obtain a copy of the License at
24
 * http://www.mozilla.org/MPL/
25
 *
26
 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
27
 * OF ANY KIND, either express or implied. See the LGPL or the MPL for
28
 * the specific language governing rights and limitations.
29
 *
30
 * The Original Code is the cairo graphics library.
31
 *
32
 * The Initial Developer of the Original Code is University of Southern
33
 * California.
34
 *
35
 * Contributor(s):
36
 *      Chris Wilson <chris@chris-wilson.co.u>
37
 */
38
 
39
#ifndef CAIRO_SURFACE_WRAPPER_PRIVATE_H
40
#define CAIRO_SURFACE_WRAPPER_PRIVATE_H
41
 
42
#include "cairo-types-private.h"
43
 
44
CAIRO_BEGIN_DECLS
45
 
46
struct _cairo_surface_wrapper {
47
    cairo_surface_t *target;
48
 
49
    /* any other information? */
50
};
51
 
52
cairo_private void
53
_cairo_surface_wrapper_init (cairo_surface_wrapper_t *wrapper,
54
                             cairo_surface_t *target);
55
 
56
cairo_private void
57
_cairo_surface_wrapper_fini (cairo_surface_wrapper_t *wrapper);
58
 
59
cairo_private cairo_status_t
60
_cairo_surface_wrapper_acquire_source_image (cairo_surface_wrapper_t *wrapper,
61
                                             cairo_image_surface_t  **image_out,
62
                                             void                   **image_extra);
63
 
64
cairo_private void
65
_cairo_surface_wrapper_release_source_image (cairo_surface_wrapper_t *wrapper,
66
                                             cairo_image_surface_t  *image,
67
                                             void                   *image_extra);
68
 
69
 
70
cairo_private cairo_status_t
71
_cairo_surface_wrapper_paint (cairo_surface_wrapper_t *wrapper,
72
                              cairo_operator_t   op,
73
                              const cairo_pattern_t *source,
74
                              cairo_clip_t          *clip);
75
 
76
cairo_private cairo_status_t
77
_cairo_surface_wrapper_mask (cairo_surface_wrapper_t *wrapper,
78
                             cairo_operator_t    op,
79
                             const cairo_pattern_t *source,
80
                             const cairo_pattern_t *mask,
81
                             cairo_clip_t           *clip);
82
 
83
cairo_private cairo_status_t
84
_cairo_surface_wrapper_stroke (cairo_surface_wrapper_t *wrapper,
85
                               cairo_operator_t          op,
86
                               const cairo_pattern_t    *source,
87
                               cairo_path_fixed_t       *path,
88
                               cairo_stroke_style_t     *stroke_style,
89
                               cairo_matrix_t           *ctm,
90
                               cairo_matrix_t           *ctm_inverse,
91
                               double                    tolerance,
92
                               cairo_antialias_t         antialias,
93
                               cairo_clip_t             *clip);
94
 
95
cairo_private cairo_status_t
96
_cairo_surface_wrapper_fill_stroke (cairo_surface_wrapper_t *wrapper,
97
                                    cairo_operator_t         fill_op,
98
                                    const cairo_pattern_t   *fill_source,
99
                                    cairo_fill_rule_t        fill_rule,
100
                                    double                   fill_tolerance,
101
                                    cairo_antialias_t        fill_antialias,
102
                                    cairo_path_fixed_t      *path,
103
                                    cairo_operator_t         stroke_op,
104
                                    const cairo_pattern_t   *stroke_source,
105
                                    cairo_stroke_style_t    *stroke_style,
106
                                    cairo_matrix_t          *stroke_ctm,
107
                                    cairo_matrix_t          *stroke_ctm_inverse,
108
                                    double                   stroke_tolerance,
109
                                    cairo_antialias_t        stroke_antialias,
110
                                    cairo_clip_t            *clip);
111
 
112
cairo_private cairo_status_t
113
_cairo_surface_wrapper_fill (cairo_surface_wrapper_t *wrapper,
114
                             cairo_operator_t    op,
115
                             const cairo_pattern_t *source,
116
                             cairo_path_fixed_t *path,
117
                             cairo_fill_rule_t   fill_rule,
118
                             double              tolerance,
119
                             cairo_antialias_t   antialias,
120
                             cairo_clip_t       *clip);
121
 
122
cairo_private cairo_status_t
123
_cairo_surface_wrapper_show_text_glyphs (cairo_surface_wrapper_t *wrapper,
124
                                         cairo_operator_t            op,
125
                                         const cairo_pattern_t      *source,
126
                                         const char                 *utf8,
127
                                         int                         utf8_len,
128
                                         cairo_glyph_t              *glyphs,
129
                                         int                         num_glyphs,
130
                                         const cairo_text_cluster_t *clusters,
131
                                         int                         num_clusters,
132
                                         cairo_text_cluster_flags_t  cluster_flags,
133
                                         cairo_scaled_font_t        *scaled_font,
134
                                         cairo_clip_t               *clip);
135
 
136
cairo_private cairo_surface_t *
137
_cairo_surface_wrapper_create_similar (cairo_surface_wrapper_t *wrapper,
138
                                       cairo_content_t  content,
139
                                       int              width,
140
                                       int              height);
141
cairo_private cairo_bool_t
142
_cairo_surface_wrapper_get_extents (cairo_surface_wrapper_t *wrapper,
143
                                    cairo_rectangle_int_t   *extents);
144
 
145
cairo_private void
146
_cairo_surface_wrapper_get_font_options (cairo_surface_wrapper_t    *wrapper,
147
                                         cairo_font_options_t       *options);
148
 
149
cairo_private cairo_surface_t *
150
_cairo_surface_wrapper_snapshot (cairo_surface_wrapper_t *wrapper);
151
 
152
cairo_private cairo_bool_t
153
_cairo_surface_wrapper_has_show_text_glyphs (cairo_surface_wrapper_t *wrapper);
154
 
155
static inline cairo_bool_t
156
_cairo_surface_wrapper_is_active (cairo_surface_wrapper_t *wrapper)
157
{
158
    return wrapper->target != (cairo_surface_t *) 0;
159
}
160
 
161
CAIRO_END_DECLS
162
 
163
#endif /* CAIRO_SURFACE_WRAPPER_PRIVATE_H */