1/*
2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. 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. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26
27#ifndef __MLIB_IMAGECONV_H
28#define __MLIB_IMAGECONV_H
29
30#ifdef __cplusplus
31extern "C" {
32#endif /* __cplusplus */
33
34// Shared macro defined for cleanup of allocated memory.
35#ifndef FREE_AND_RETURN_STATUS
36#define FREE_AND_RETURN_STATUS \
37if (pbuff != buff) mlib_free(pbuff); \
38if (k != akernel) mlib_free(k); \
39return status
40#endif /* FREE_AND_RETURN_STATUS */
41
42mlib_status mlib_convMxNext_s32(mlib_image *dst,
43 const mlib_image *src,
44 const mlib_s32 *kernel,
45 mlib_s32 m,
46 mlib_s32 n,
47 mlib_s32 dx_l,
48 mlib_s32 dx_r,
49 mlib_s32 dy_t,
50 mlib_s32 dy_b,
51 mlib_s32 scale,
52 mlib_s32 cmask);
53
54mlib_status mlib_convMxNnw_d64(mlib_image *dst,
55 const mlib_image *src,
56 const mlib_d64 *ker,
57 mlib_s32 m,
58 mlib_s32 n,
59 mlib_s32 dm,
60 mlib_s32 dn,
61 mlib_s32 cmask);
62
63mlib_status mlib_convMxNnw_f32(mlib_image *dst,
64 const mlib_image *src,
65 const mlib_d64 *ker,
66 mlib_s32 m,
67 mlib_s32 n,
68 mlib_s32 dm,
69 mlib_s32 dn,
70 mlib_s32 cmask);
71
72mlib_status mlib_convMxNnw_s16(mlib_image *dst,
73 const mlib_image *src,
74 const mlib_s32 *kernel,
75 mlib_s32 m,
76 mlib_s32 n,
77 mlib_s32 dm,
78 mlib_s32 dn,
79 mlib_s32 scale,
80 mlib_s32 cmask);
81
82mlib_status mlib_convMxNnw_s32(mlib_image *dst,
83 const mlib_image *src,
84 const mlib_s32 *kernel,
85 mlib_s32 m,
86 mlib_s32 n,
87 mlib_s32 dm,
88 mlib_s32 dn,
89 mlib_s32 scale,
90 mlib_s32 cmask);
91
92mlib_status mlib_convMxNnw_u16(mlib_image *dst,
93 const mlib_image *src,
94 const mlib_s32 *kernel,
95 mlib_s32 m,
96 mlib_s32 n,
97 mlib_s32 dm,
98 mlib_s32 dn,
99 mlib_s32 scale,
100 mlib_s32 cmask);
101
102mlib_s32 mlib_ImageConvVersion(mlib_s32 m,
103 mlib_s32 n,
104 mlib_s32 scale,
105 mlib_type type);
106
107mlib_status mlib_ImageConvMxN_f(mlib_image *dst,
108 const mlib_image *src,
109 const void *kernel,
110 mlib_s32 m,
111 mlib_s32 n,
112 mlib_s32 dm,
113 mlib_s32 dn,
114 mlib_s32 scale,
115 mlib_s32 cmask,
116 mlib_edge edge);
117
118mlib_status mlib_convMxNnw_u8(mlib_image *dst,
119 const mlib_image *src,
120 const mlib_s32 *kern,
121 mlib_s32 m,
122 mlib_s32 n,
123 mlib_s32 dm,
124 mlib_s32 dn,
125 mlib_s32 scale,
126 mlib_s32 cmask);
127
128mlib_status mlib_convMxNext_u8(mlib_image *dst,
129 const mlib_image *src,
130 const mlib_s32 *kern,
131 mlib_s32 m,
132 mlib_s32 n,
133 mlib_s32 dx_l,
134 mlib_s32 dx_r,
135 mlib_s32 dy_t,
136 mlib_s32 dy_b,
137 mlib_s32 scale,
138 mlib_s32 cmask);
139
140mlib_status mlib_convMxNext_s16(mlib_image *dst,
141 const mlib_image *src,
142 const mlib_s32 *kernel,
143 mlib_s32 m,
144 mlib_s32 n,
145 mlib_s32 dx_l,
146 mlib_s32 dx_r,
147 mlib_s32 dy_t,
148 mlib_s32 dy_b,
149 mlib_s32 scale,
150 mlib_s32 cmask);
151
152mlib_status mlib_convMxNext_u16(mlib_image *dst,
153 const mlib_image *src,
154 const mlib_s32 *kernel,
155 mlib_s32 m,
156 mlib_s32 n,
157 mlib_s32 dx_l,
158 mlib_s32 dx_r,
159 mlib_s32 dy_t,
160 mlib_s32 dy_b,
161 mlib_s32 scale,
162 mlib_s32 cmask);
163
164mlib_status mlib_convMxNext_f32(mlib_image *dst,
165 const mlib_image *src,
166 const mlib_d64 *kernel,
167 mlib_s32 m,
168 mlib_s32 n,
169 mlib_s32 dx_l,
170 mlib_s32 dx_r,
171 mlib_s32 dy_t,
172 mlib_s32 dy_b,
173 mlib_s32 cmask);
174
175mlib_status mlib_convMxNext_d64(mlib_image *dst,
176 const mlib_image *src,
177 const mlib_d64 *kernel,
178 mlib_s32 m,
179 mlib_s32 n,
180 mlib_s32 dx_l,
181 mlib_s32 dx_r,
182 mlib_s32 dy_t,
183 mlib_s32 dy_b,
184 mlib_s32 cmask);
185
186#ifdef __cplusplus
187}
188#endif /* __cplusplus */
189#endif /* __MLIB_IMAGECONV_H */
190