blob: ed2d862e226d6a5e0e3b66955352bdcfab014d63 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26
27#ifndef __MLIB_C_IMAGECONV_H
28#define __MLIB_C_IMAGECONV_H
29
30#ifdef __cplusplus
31extern "C" {
32#endif /* __cplusplus */
33
34mlib_status mlib_c_conv2x2ext_s16(mlib_image *dst,
35 const mlib_image *src,
36 mlib_s32 dx_l,
37 mlib_s32 dx_r,
38 mlib_s32 dy_t,
39 mlib_s32 dy_b,
40 const mlib_s32 *kern,
41 mlib_s32 scale,
42 mlib_s32 cmask);
43
44mlib_status mlib_c_conv2x2ext_u16(mlib_image *dst,
45 const mlib_image *src,
46 mlib_s32 dx_l,
47 mlib_s32 dx_r,
48 mlib_s32 dy_t,
49 mlib_s32 dy_b,
50 const mlib_s32 *kern,
51 mlib_s32 scale,
52 mlib_s32 cmask);
53
54mlib_status mlib_c_conv2x2ext_u8(mlib_image *dst,
55 const mlib_image *src,
56 mlib_s32 dx_l,
57 mlib_s32 dx_r,
58 mlib_s32 dy_t,
59 mlib_s32 dy_b,
60 const mlib_s32 *kern,
61 mlib_s32 scale,
62 mlib_s32 cmask);
63
64mlib_status mlib_c_conv2x2nw_s16(mlib_image *dst,
65 const mlib_image *src,
66 const mlib_s32 *kern,
67 mlib_s32 scale,
68 mlib_s32 cmask);
69
70mlib_status mlib_c_conv2x2nw_u16(mlib_image *dst,
71 const mlib_image *src,
72 const mlib_s32 *kern,
73 mlib_s32 scale,
74 mlib_s32 cmask);
75
76mlib_status mlib_c_conv2x2nw_u8(mlib_image *dst,
77 const mlib_image *src,
78 const mlib_s32 *kern,
79 mlib_s32 scale,
80 mlib_s32 cmask);
81
82mlib_status mlib_c_conv3x3ext_u8(mlib_image *dst,
83 const mlib_image *src,
84 mlib_s32 dx_l,
85 mlib_s32 dx_r,
86 mlib_s32 dy_t,
87 mlib_s32 dy_b,
88 const mlib_s32 *kern,
89 mlib_s32 scale,
90 mlib_s32 cmask);
91
92mlib_status mlib_c_conv3x3nw_u8(mlib_image *dst,
93 const mlib_image *src,
94 const mlib_s32 *kern,
95 mlib_s32 scale,
96 mlib_s32 cmask);
97
98mlib_status mlib_c_conv4x4ext_u8(mlib_image *dst,
99 const mlib_image *src,
100 mlib_s32 dx_l,
101 mlib_s32 dx_r,
102 mlib_s32 dy_t,
103 mlib_s32 dy_b,
104 const mlib_s32 *kern,
105 mlib_s32 scale,
106 mlib_s32 cmask);
107
108mlib_status mlib_c_conv4x4nw_u8(mlib_image *dst,
109 const mlib_image *src,
110 const mlib_s32 *kern,
111 mlib_s32 scale,
112 mlib_s32 cmask);
113
114mlib_status mlib_c_conv5x5ext_u8(mlib_image *dst,
115 const mlib_image *src,
116 mlib_s32 dx_l,
117 mlib_s32 dx_r,
118 mlib_s32 dy_t,
119 mlib_s32 dy_b,
120 const mlib_s32 *kern,
121 mlib_s32 scale,
122 mlib_s32 cmask);
123
124mlib_status mlib_c_conv5x5nw_u8(mlib_image *dst,
125 const mlib_image *src,
126 const mlib_s32 *kern,
127 mlib_s32 scale,
128 mlib_s32 cmask);
129
130mlib_status mlib_c_conv7x7ext_u8(mlib_image *dst,
131 const mlib_image *src,
132 mlib_s32 dx_l,
133 mlib_s32 dx_r,
134 mlib_s32 dy_t,
135 mlib_s32 dy_b,
136 const mlib_s32 *kern,
137 mlib_s32 scale,
138 mlib_s32 cmask);
139
140mlib_status mlib_c_conv7x7nw_u8(mlib_image *dst,
141 const mlib_image *src,
142 const mlib_s32 *kern,
143 mlib_s32 scale,
144 mlib_s32 cmask);
145
146mlib_status mlib_c_convMxNnw_u8(mlib_image *dst,
147 const mlib_image *src,
148 const mlib_s32 *kernel,
149 mlib_s32 m,
150 mlib_s32 n,
151 mlib_s32 dm,
152 mlib_s32 dn,
153 mlib_s32 scale,
154 mlib_s32 cmask);
155
156mlib_status mlib_c_convMxNext_u8(mlib_image *dst,
157 const mlib_image *src,
158 const mlib_s32 *kern,
159 mlib_s32 m,
160 mlib_s32 n,
161 mlib_s32 dx_l,
162 mlib_s32 dx_r,
163 mlib_s32 dy_t,
164 mlib_s32 dy_b,
165 mlib_s32 scale,
166 mlib_s32 cmask);
167
168#if ! defined ( __sparc ) /* for x86, using integer multiplies is faster */
169
170mlib_status mlib_i_conv3x3ext_s16(mlib_image *dst,
171 const mlib_image *src,
172 mlib_s32 dx_l,
173 mlib_s32 dx_r,
174 mlib_s32 dy_t,
175 mlib_s32 dy_b,
176 const mlib_s32 *kern,
177 mlib_s32 scale,
178 mlib_s32 cmask);
179
180mlib_status mlib_i_conv3x3ext_u16(mlib_image *dst,
181 const mlib_image *src,
182 mlib_s32 dx_l,
183 mlib_s32 dx_r,
184 mlib_s32 dy_t,
185 mlib_s32 dy_b,
186 const mlib_s32 *kern,
187 mlib_s32 scale,
188 mlib_s32 cmask);
189
190mlib_status mlib_i_conv3x3ext_u8(mlib_image *dst,
191 const mlib_image *src,
192 mlib_s32 dx_l,
193 mlib_s32 dx_r,
194 mlib_s32 dy_t,
195 mlib_s32 dy_b,
196 const mlib_s32 *kern,
197 mlib_s32 scale,
198 mlib_s32 cmask);
199
200mlib_status mlib_i_conv3x3nw_s16(mlib_image *dst,
201 const mlib_image *src,
202 const mlib_s32 *kern,
203 mlib_s32 scale,
204 mlib_s32 cmask);
205
206mlib_status mlib_i_conv3x3nw_u16(mlib_image *dst,
207 const mlib_image *src,
208 const mlib_s32 *kern,
209 mlib_s32 scale,
210 mlib_s32 cmask);
211
212mlib_status mlib_i_conv3x3nw_u8(mlib_image *dst,
213 const mlib_image *src,
214 const mlib_s32 *kern,
215 mlib_s32 scale,
216 mlib_s32 cmask);
217
218mlib_status mlib_i_conv5x5ext_s16(mlib_image *dst,
219 const mlib_image *src,
220 mlib_s32 dx_l,
221 mlib_s32 dx_r,
222 mlib_s32 dy_t,
223 mlib_s32 dy_b,
224 const mlib_s32 *kern,
225 mlib_s32 scale,
226 mlib_s32 cmask);
227
228mlib_status mlib_i_conv5x5ext_u16(mlib_image *dst,
229 const mlib_image *src,
230 mlib_s32 dx_l,
231 mlib_s32 dx_r,
232 mlib_s32 dy_t,
233 mlib_s32 dy_b,
234 const mlib_s32 *kern,
235 mlib_s32 scale,
236 mlib_s32 cmask);
237
238mlib_status mlib_i_conv5x5ext_u8(mlib_image *dst,
239 const mlib_image *src,
240 mlib_s32 dx_l,
241 mlib_s32 dx_r,
242 mlib_s32 dy_t,
243 mlib_s32 dy_b,
244 const mlib_s32 *kern,
245 mlib_s32 scale,
246 mlib_s32 cmask);
247
248mlib_status mlib_i_conv5x5nw_s16(mlib_image *dst,
249 const mlib_image *src,
250 const mlib_s32 *kern,
251 mlib_s32 scale,
252 mlib_s32 cmask);
253
254mlib_status mlib_i_conv5x5nw_u16(mlib_image *dst,
255 const mlib_image *src,
256 const mlib_s32 *kern,
257 mlib_s32 scale,
258 mlib_s32 cmask);
259
260mlib_status mlib_i_conv5x5nw_u8(mlib_image *dst,
261 const mlib_image *src,
262 const mlib_s32 *kern,
263 mlib_s32 scale,
264 mlib_s32 cmask);
265
266mlib_status mlib_i_convMxNnw_s16(mlib_image *dst,
267 const mlib_image *src,
268 const mlib_s32 *kernel,
269 mlib_s32 m,
270 mlib_s32 n,
271 mlib_s32 dm,
272 mlib_s32 dn,
273 mlib_s32 scale,
274 mlib_s32 cmask);
275
276mlib_status mlib_i_convMxNnw_u16(mlib_image *dst,
277 const mlib_image *src,
278 const mlib_s32 *kernel,
279 mlib_s32 m,
280 mlib_s32 n,
281 mlib_s32 dm,
282 mlib_s32 dn,
283 mlib_s32 scale,
284 mlib_s32 cmask);
285
286mlib_status mlib_i_convMxNnw_u8(mlib_image *dst,
287 const mlib_image *src,
288 const mlib_s32 *kernel,
289 mlib_s32 m,
290 mlib_s32 n,
291 mlib_s32 dm,
292 mlib_s32 dn,
293 mlib_s32 scale,
294 mlib_s32 cmask);
295
296mlib_status mlib_i_convMxNext_u8(mlib_image *dst,
297 const mlib_image *src,
298 const mlib_s32 *kern,
299 mlib_s32 m,
300 mlib_s32 n,
301 mlib_s32 dx_l,
302 mlib_s32 dx_r,
303 mlib_s32 dy_t,
304 mlib_s32 dy_b,
305 mlib_s32 scale,
306 mlib_s32 cmask);
307
308mlib_status mlib_i_convMxNext_s16(mlib_image *dst,
309 const mlib_image *src,
310 const mlib_s32 *kernel,
311 mlib_s32 m,
312 mlib_s32 n,
313 mlib_s32 dx_l,
314 mlib_s32 dx_r,
315 mlib_s32 dy_t,
316 mlib_s32 dy_b,
317 mlib_s32 scale,
318 mlib_s32 cmask);
319
320mlib_status mlib_i_convMxNext_u16(mlib_image *dst,
321 const mlib_image *src,
322 const mlib_s32 *kernel,
323 mlib_s32 m,
324 mlib_s32 n,
325 mlib_s32 dx_l,
326 mlib_s32 dx_r,
327 mlib_s32 dy_t,
328 mlib_s32 dy_b,
329 mlib_s32 scale,
330 mlib_s32 cmask);
331
332#endif /* ! defined ( __sparc ) ( for x86, using integer multiplies is faster ) */
333
334#ifdef __cplusplus
335}
336#endif /* __cplusplus */
337#endif /* __MLIB_C_IMAGECONV_H */