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_C_IMAGECONV_H 28#define __MLIB_C_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_c_convMxNnw_u8(mlib_image *dst, 43 const mlib_image *src, 44 const mlib_s32 *kernel, 45 mlib_s32 m, 46 mlib_s32 n, 47 mlib_s32 dm, 48 mlib_s32 dn, 49 mlib_s32 scale, 50 mlib_s32 cmask); 51 52mlib_status mlib_c_convMxNext_u8(mlib_image *dst, 53 const mlib_image *src, 54 const mlib_s32 *kern, 55 mlib_s32 m, 56 mlib_s32 n, 57 mlib_s32 dx_l, 58 mlib_s32 dx_r, 59 mlib_s32 dy_t, 60 mlib_s32 dy_b, 61 mlib_s32 scale, 62 mlib_s32 cmask); 63 64#if ! defined ( __sparc ) /* for x86, using integer multiplies is faster */ 65 66mlib_status mlib_i_convMxNnw_s16(mlib_image *dst, 67 const mlib_image *src, 68 const mlib_s32 *kernel, 69 mlib_s32 m, 70 mlib_s32 n, 71 mlib_s32 dm, 72 mlib_s32 dn, 73 mlib_s32 scale, 74 mlib_s32 cmask); 75 76mlib_status mlib_i_convMxNnw_u16(mlib_image *dst, 77 const mlib_image *src, 78 const mlib_s32 *kernel, 79 mlib_s32 m, 80 mlib_s32 n, 81 mlib_s32 dm, 82 mlib_s32 dn, 83 mlib_s32 scale, 84 mlib_s32 cmask); 85 86mlib_status mlib_i_convMxNnw_u8(mlib_image *dst, 87 const mlib_image *src, 88 const mlib_s32 *kernel, 89 mlib_s32 m, 90 mlib_s32 n, 91 mlib_s32 dm, 92 mlib_s32 dn, 93 mlib_s32 scale, 94 mlib_s32 cmask); 95 96mlib_status mlib_i_convMxNext_u8(mlib_image *dst, 97 const mlib_image *src, 98 const mlib_s32 *kern, 99 mlib_s32 m, 100 mlib_s32 n, 101 mlib_s32 dx_l, 102 mlib_s32 dx_r, 103 mlib_s32 dy_t, 104 mlib_s32 dy_b, 105 mlib_s32 scale, 106 mlib_s32 cmask); 107 108mlib_status mlib_i_convMxNext_s16(mlib_image *dst, 109 const mlib_image *src, 110 const mlib_s32 *kernel, 111 mlib_s32 m, 112 mlib_s32 n, 113 mlib_s32 dx_l, 114 mlib_s32 dx_r, 115 mlib_s32 dy_t, 116 mlib_s32 dy_b, 117 mlib_s32 scale, 118 mlib_s32 cmask); 119 120mlib_status mlib_i_convMxNext_u16(mlib_image *dst, 121 const mlib_image *src, 122 const mlib_s32 *kernel, 123 mlib_s32 m, 124 mlib_s32 n, 125 mlib_s32 dx_l, 126 mlib_s32 dx_r, 127 mlib_s32 dy_t, 128 mlib_s32 dy_b, 129 mlib_s32 scale, 130 mlib_s32 cmask); 131 132#endif /* ! defined ( __sparc ) ( for x86, using integer multiplies is faster ) */ 133 134#ifdef __cplusplus 135} 136#endif /* __cplusplus */ 137#endif /* __MLIB_C_IMAGECONV_H */ 138