tizen 2.3.1 release
[framework/graphics/cairo.git] / src / cairo-surface-scale-translate-private.h
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  * Copyright © 2013 Henry Song
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it either under the terms of the GNU Lesser General Public
10  * License version 2.1 as published by the Free Software Foundation
11  * (the "LGPL") or, at your option, under the terms of the Mozilla
12  * Public License Version 1.1 (the "MPL"). If you do not alter this
13  * notice, a recipient may use your version of this file under either
14  * the MPL or the LGPL.
15  *
16  * You should have received a copy of the LGPL along with this library
17  * in the file COPYING-LGPL-2.1; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
19  * You should have received a copy of the MPL along with this library
20  * in the file COPYING-MPL-1.1
21  *
22  * The contents of this file are subject to the Mozilla Public License
23  * Version 1.1 (the "License"); you may not use this file except in
24  * compliance with the License. You may obtain a copy of the License at
25  * http://www.mozilla.org/MPL/
26  *
27  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
28  * OF ANY KIND, either express or implied. See the LGPL or the MPL for
29  * the specific language governing rights and limitations.
30  *
31  * The Original Code is the cairo graphics library.
32  *
33  * The Initial Developer of the Original Code is University of Southern
34  * California.
35  *
36  * Contributor(s):
37  *      Henry Song <henry.song@samsung.h>
38  */
39
40 #ifndef CAIRO_SURFACE_SCALE_TRANSLATE_PRIVATE_H
41 #define CAIRO_SURFACE_SCALE_TRANSLATE_PRIVATE_H
42
43 #include "cairo-types-private.h"
44
45 CAIRO_BEGIN_DECLS
46
47 cairo_private cairo_status_t
48 _cairo_surface_scale_translate_paint (cairo_surface_t *target,
49                                       const cairo_bool_t clear_bg,
50                                       const cairo_matrix_t *matrix,
51                                       cairo_operator_t   op,
52                                       cairo_pattern_t *source,
53                                       const cairo_clip_t   *clip);
54
55 cairo_private cairo_status_t
56 _cairo_surface_paint_get_offset_extents (cairo_surface_t *target,
57                                          double x_offset, double y_offset,
58                                          const cairo_pattern_t *source,
59                                          const cairo_clip_t *clip,
60                                          cairo_pattern_t *source_out,
61                                          cairo_rectangle_t *extents,
62                                          cairo_bool_t *bounded);
63
64 cairo_private cairo_status_t
65 _cairo_surface_scale_translate_mask (cairo_surface_t *target,
66                                      const cairo_bool_t clear_bg,
67                                      const cairo_matrix_t *matrix,
68                                      cairo_operator_t    op,
69                                      cairo_pattern_t *source,
70                                      cairo_pattern_t *mask,
71                                      const cairo_clip_t     *clip);
72
73 cairo_private cairo_status_t
74 _cairo_surface_mask_get_offset_extents (cairo_surface_t *target,
75                                         double x_offset, double y_offset,
76                                         const cairo_pattern_t *source,
77                                         const cairo_pattern_t *mask,
78                                          const cairo_clip_t *clip,
79                                          cairo_pattern_t *source_out,
80                                          cairo_pattern_t *mask_out,
81                                          cairo_rectangle_t *extents,
82                                          cairo_bool_t *bounded);
83
84 cairo_private cairo_status_t
85 _cairo_surface_scale_translate_stroke (cairo_surface_t *surface,
86                                        const cairo_color_t      *bg_color,
87                                        const cairo_matrix_t *matrix,
88                                        cairo_operator_t          op,
89                                        cairo_pattern_t  *source,
90                                        cairo_path_fixed_t       *path,
91                                        const cairo_stroke_style_t*stroke_style,
92                                        const cairo_matrix_t     *ctm,
93                                        const cairo_matrix_t     *ctm_inverse,
94                                        double                    tolerance,
95                                        cairo_antialias_t         antialias,
96                                        const cairo_clip_t       *clip);
97
98 cairo_private cairo_status_t
99 _cairo_surface_stroke_get_offset_extents (cairo_surface_t *target,
100                                           cairo_bool_t is_inset,
101                                           double x_offset, double y_offset,
102                                           const cairo_pattern_t *source,
103                                           const cairo_path_fixed_t *path,
104                                           const cairo_stroke_style_t *stroke_style,
105                                           const cairo_matrix_t *ctm,
106                                           const cairo_matrix_t *ctm_inverse,
107                                           double tolerance,
108                                           const cairo_clip_t *clip,
109                                           cairo_pattern_t *source_out,
110                                           cairo_path_fixed_t *path_out,
111                                           cairo_matrix_t *ctm_out,
112                                           cairo_matrix_t *ctm_inverse_out,
113                                           cairo_rectangle_t *extents);
114
115 cairo_private cairo_status_t
116 _cairo_surface_scale_translate_fill (cairo_surface_t    *surface,
117                                      const cairo_color_t      *bg_color,
118                                      const cairo_matrix_t *matrix,
119                                      cairo_operator_t    op,
120                                      cairo_pattern_t    *source,
121                                      cairo_path_fixed_t *path,
122                                      cairo_fill_rule_t   fill_rule,
123                                      double              tolerance,
124                                      cairo_antialias_t   antialias,
125                                      const cairo_clip_t  *clip);
126
127 cairo_private cairo_status_t
128 _cairo_surface_fill_get_offset_extents (cairo_surface_t *target,
129                                         cairo_bool_t    is_inset,
130                                         double x_offset, double y_offset,
131                                         const cairo_pattern_t *source,
132                                         const cairo_path_fixed_t *path,
133                                         const cairo_fill_rule_t fill_rule,
134                                         const cairo_clip_t *clip,
135                                         cairo_pattern_t *source_out,
136                                         cairo_path_fixed_t *path_out,
137                                         cairo_rectangle_t *extents);
138
139 cairo_private cairo_status_t
140 _cairo_surface_translate_glyphs (cairo_surface_t        *surface,
141                                  const cairo_color_t    *bg_color,
142                                  const cairo_matrix_t   *matrix,
143                                  cairo_operator_t        op,
144                                  cairo_pattern_t        *source,
145                                  cairo_scaled_font_t    *scaled_font,
146                                  cairo_glyph_t          *glyphs,
147                                  int                     num_glyphs,
148                                  const cairo_clip_t     *clip);
149
150 cairo_private cairo_status_t
151 _cairo_surface_glyphs_get_offset_extents (cairo_surface_t *target,
152                                           cairo_bool_t     is_inset,
153                                           double x_offset, double y_offset,
154                                           const cairo_pattern_t *source,
155                                           cairo_scaled_font_t *scaled_font,
156                                           const cairo_glyph_t *glyphs,
157                                           int                 num_glyphs,
158                                           const cairo_clip_t *clip,
159                                           cairo_pattern_t *source_out,
160                                           cairo_glyph_t *glyphs_out,
161                                           cairo_rectangle_t *extents);
162
163 #endif /* CAIRO_SURFACE_SCALE_TRANSLATE_PRIVATE_H */