Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/native/sun/awt/medialib/mlib_ImageConv.h
38918 views
/*1* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/242526#ifndef __MLIB_IMAGECONV_H27#define __MLIB_IMAGECONV_H2829#ifdef __cplusplus30extern "C" {31#endif /* __cplusplus */3233// Shared macro defined for cleanup of allocated memory.34#ifndef FREE_AND_RETURN_STATUS35#define FREE_AND_RETURN_STATUS \36{ \37if (pbuff != buff) mlib_free(pbuff); \38if (k != akernel) mlib_free(k); \39return status; \40}41#endif /* FREE_AND_RETURN_STATUS */4243void mlib_ImageXor80_aa(mlib_u8 *dl,44mlib_s32 wid,45mlib_s32 hgt,46mlib_s32 str);4748void mlib_ImageXor80(mlib_u8 *dl,49mlib_s32 wid,50mlib_s32 hgt,51mlib_s32 str,52mlib_s32 nchan,53mlib_s32 cmask);5455mlib_status mlib_conv2x2ext_d64(mlib_image *dst,56const mlib_image *src,57mlib_s32 dx_l,58mlib_s32 dx_r,59mlib_s32 dy_t,60mlib_s32 dy_b,61const mlib_d64 *kern,62mlib_s32 cmask);6364mlib_status mlib_conv2x2ext_f32(mlib_image *dst,65const mlib_image *src,66mlib_s32 dx_l,67mlib_s32 dx_r,68mlib_s32 dy_t,69mlib_s32 dy_b,70const mlib_d64 *kern,71mlib_s32 cmask);7273mlib_status mlib_conv2x2ext_s16(mlib_image *dst,74const mlib_image *src,75mlib_s32 dx_l,76mlib_s32 dx_r,77mlib_s32 dy_t,78mlib_s32 dy_b,79const mlib_s32 *kern,80mlib_s32 scale,81mlib_s32 cmask);8283mlib_status mlib_conv2x2ext_s32(mlib_image *dst,84const mlib_image *src,85mlib_s32 dx_l,86mlib_s32 dx_r,87mlib_s32 dy_t,88mlib_s32 dy_b,89const mlib_s32 *kern,90mlib_s32 scale,91mlib_s32 cmask);9293mlib_status mlib_conv2x2ext_u16(mlib_image *dst,94const mlib_image *src,95mlib_s32 dx_l,96mlib_s32 dx_r,97mlib_s32 dy_t,98mlib_s32 dy_b,99const mlib_s32 *kern,100mlib_s32 scale,101mlib_s32 cmask);102103mlib_status mlib_conv2x2ext_u8(mlib_image *dst,104const mlib_image *src,105mlib_s32 dx_l,106mlib_s32 dx_r,107mlib_s32 dy_t,108mlib_s32 dy_b,109const mlib_s32 *kern,110mlib_s32 scale,111mlib_s32 cmask);112113mlib_status mlib_conv2x2nw_d64(mlib_image *dst,114const mlib_image *src,115const mlib_d64 *kern,116mlib_s32 cmask);117118mlib_status mlib_conv2x2nw_f32(mlib_image *dst,119const mlib_image *src,120const mlib_d64 *kern,121mlib_s32 cmask);122123mlib_status mlib_conv2x2nw_s16(mlib_image *dst,124const mlib_image *src,125const mlib_s32 *kern,126mlib_s32 scale,127mlib_s32 cmask);128129mlib_status mlib_conv2x2nw_s32(mlib_image *dst,130const mlib_image *src,131const mlib_s32 *kern,132mlib_s32 scale,133mlib_s32 cmask);134135mlib_status mlib_conv2x2nw_u16(mlib_image *dst,136const mlib_image *src,137const mlib_s32 *kern,138mlib_s32 scale,139mlib_s32 cmask);140141mlib_status mlib_conv2x2nw_u8(mlib_image *dst,142const mlib_image *src,143const mlib_s32 *kern,144mlib_s32 scale,145mlib_s32 cmask);146147mlib_status mlib_conv3x3ext_bit(mlib_image *dst,148const mlib_image *src,149mlib_s32 dx_l,150mlib_s32 dx_r,151mlib_s32 dy_t,152mlib_s32 dy_b,153const mlib_s32 *kern,154mlib_s32 scale,155mlib_s32 cmask);156157mlib_status mlib_conv3x3ext_d64(mlib_image *dst,158const mlib_image *src,159mlib_s32 dx_l,160mlib_s32 dx_r,161mlib_s32 dy_t,162mlib_s32 dy_b,163const mlib_d64 *kern,164mlib_s32 cmask);165166mlib_status mlib_conv3x3ext_f32(mlib_image *dst,167const mlib_image *src,168mlib_s32 dx_l,169mlib_s32 dx_r,170mlib_s32 dy_t,171mlib_s32 dy_b,172const mlib_d64 *kern,173mlib_s32 cmask);174175mlib_status mlib_conv3x3ext_s16(mlib_image *dst,176const mlib_image *src,177mlib_s32 dx_l,178mlib_s32 dx_r,179mlib_s32 dy_t,180mlib_s32 dy_b,181const mlib_s32 *kern,182mlib_s32 scale,183mlib_s32 cmask);184185mlib_status mlib_conv3x3ext_s32(mlib_image *dst,186const mlib_image *src,187mlib_s32 dx_l,188mlib_s32 dx_r,189mlib_s32 dy_t,190mlib_s32 dy_b,191const mlib_s32 *kern,192mlib_s32 scale,193mlib_s32 cmask);194195mlib_status mlib_conv3x3ext_u16(mlib_image *dst,196const mlib_image *src,197mlib_s32 dx_l,198mlib_s32 dx_r,199mlib_s32 dy_t,200mlib_s32 dy_b,201const mlib_s32 *kern,202mlib_s32 scale,203mlib_s32 cmask);204205mlib_status mlib_conv3x3ext_u8(mlib_image *dst,206const mlib_image *src,207mlib_s32 dx_l,208mlib_s32 dx_r,209mlib_s32 dy_t,210mlib_s32 dy_b,211const mlib_s32 *kern,212mlib_s32 scale,213mlib_s32 cmask);214215mlib_status mlib_conv3x3nw_bit(mlib_image *dst,216const mlib_image *src,217const mlib_s32 *kern,218mlib_s32 scale,219mlib_s32 cmask);220221mlib_status mlib_conv3x3nw_d64(mlib_image *dst,222const mlib_image *src,223const mlib_d64 *kern,224mlib_s32 cmask);225226mlib_status mlib_conv3x3nw_f32(mlib_image *dst,227const mlib_image *src,228const mlib_d64 *kern,229mlib_s32 cmask);230231mlib_status mlib_conv3x3nw_s16(mlib_image *dst,232const mlib_image *src,233const mlib_s32 *kern,234mlib_s32 scale,235mlib_s32 cmask);236237mlib_status mlib_conv3x3nw_s32(mlib_image *dst,238const mlib_image *src,239const mlib_s32 *kern,240mlib_s32 scale,241mlib_s32 cmask);242243mlib_status mlib_conv3x3nw_u16(mlib_image *dst,244const mlib_image *src,245const mlib_s32 *kern,246mlib_s32 scale,247mlib_s32 cmask);248249mlib_status mlib_conv3x3nw_u8(mlib_image *dst,250const mlib_image *src,251const mlib_s32 *kern,252mlib_s32 scale,253mlib_s32 cmask);254255mlib_status mlib_conv4x4ext_d64(mlib_image *dst,256const mlib_image *src,257mlib_s32 dx_l,258mlib_s32 dx_r,259mlib_s32 dy_t,260mlib_s32 dy_b,261const mlib_d64 *kern,262mlib_s32 cmask);263264mlib_status mlib_conv4x4ext_f32(mlib_image *dst,265const mlib_image *src,266mlib_s32 dx_l,267mlib_s32 dx_r,268mlib_s32 dy_t,269mlib_s32 dy_b,270const mlib_d64 *kern,271mlib_s32 cmask);272273mlib_status mlib_conv4x4ext_s16(mlib_image *dst,274const mlib_image *src,275mlib_s32 dx_l,276mlib_s32 dx_r,277mlib_s32 dy_t,278mlib_s32 dy_b,279const mlib_s32 *kern,280mlib_s32 scale,281mlib_s32 cmask);282283mlib_status mlib_conv4x4ext_s32(mlib_image *dst,284const mlib_image *src,285mlib_s32 dx_l,286mlib_s32 dx_r,287mlib_s32 dy_t,288mlib_s32 dy_b,289const mlib_s32 *kern,290mlib_s32 scale,291mlib_s32 cmask);292293mlib_status mlib_conv4x4ext_u16(mlib_image *dst,294const mlib_image *src,295mlib_s32 dx_l,296mlib_s32 dx_r,297mlib_s32 dy_t,298mlib_s32 dy_b,299const mlib_s32 *kern,300mlib_s32 scale,301mlib_s32 cmask);302303mlib_status mlib_conv4x4ext_u8(mlib_image *dst,304const mlib_image *src,305mlib_s32 dx_l,306mlib_s32 dx_r,307mlib_s32 dy_t,308mlib_s32 dy_b,309const mlib_s32 *kern,310mlib_s32 scale,311mlib_s32 cmask);312313mlib_status mlib_conv4x4nw_d64(mlib_image *dst,314const mlib_image *src,315const mlib_d64 *kern,316mlib_s32 cmask);317318mlib_status mlib_conv4x4nw_f32(mlib_image *dst,319const mlib_image *src,320const mlib_d64 *kern,321mlib_s32 cmask);322323mlib_status mlib_conv4x4nw_s16(mlib_image *dst,324const mlib_image *src,325const mlib_s32 *kern,326mlib_s32 scale,327mlib_s32 cmask);328329mlib_status mlib_conv4x4nw_s32(mlib_image *dst,330const mlib_image *src,331const mlib_s32 *kern,332mlib_s32 scale,333mlib_s32 cmask);334335mlib_status mlib_conv4x4nw_u16(mlib_image *dst,336const mlib_image *src,337const mlib_s32 *kern,338mlib_s32 scale,339mlib_s32 cmask);340341mlib_status mlib_conv4x4nw_u8(mlib_image *dst,342const mlib_image *src,343const mlib_s32 *kern,344mlib_s32 scale,345mlib_s32 cmask);346347mlib_status mlib_conv5x5ext_d64(mlib_image *dst,348const mlib_image *src,349mlib_s32 dx_l,350mlib_s32 dx_r,351mlib_s32 dy_t,352mlib_s32 dy_b,353const mlib_d64 *kern,354mlib_s32 cmask);355356mlib_status mlib_conv5x5ext_f32(mlib_image *dst,357const mlib_image *src,358mlib_s32 dx_l,359mlib_s32 dx_r,360mlib_s32 dy_t,361mlib_s32 dy_b,362const mlib_d64 *kern,363mlib_s32 cmask);364365mlib_status mlib_conv5x5ext_s16(mlib_image *dst,366const mlib_image *src,367mlib_s32 dx_l,368mlib_s32 dx_r,369mlib_s32 dy_t,370mlib_s32 dy_b,371const mlib_s32 *kern,372mlib_s32 scale,373mlib_s32 cmask);374375mlib_status mlib_conv5x5ext_s32(mlib_image *dst,376const mlib_image *src,377mlib_s32 dx_l,378mlib_s32 dx_r,379mlib_s32 dy_t,380mlib_s32 dy_b,381const mlib_s32 *kern,382mlib_s32 scale,383mlib_s32 cmask);384385mlib_status mlib_conv5x5ext_u16(mlib_image *dst,386const mlib_image *src,387mlib_s32 dx_l,388mlib_s32 dx_r,389mlib_s32 dy_t,390mlib_s32 dy_b,391const mlib_s32 *kern,392mlib_s32 scale,393mlib_s32 cmask);394395mlib_status mlib_conv5x5ext_u8(mlib_image *dst,396const mlib_image *src,397mlib_s32 dx_l,398mlib_s32 dx_r,399mlib_s32 dy_t,400mlib_s32 dy_b,401const mlib_s32 *kern,402mlib_s32 scale,403mlib_s32 cmask);404405mlib_status mlib_conv5x5nw_d64(mlib_image *dst,406const mlib_image *src,407const mlib_d64 *kern,408mlib_s32 cmask);409410mlib_status mlib_conv5x5nw_f32(mlib_image *dst,411const mlib_image *src,412const mlib_d64 *kern,413mlib_s32 cmask);414415mlib_status mlib_conv5x5nw_s16(mlib_image *dst,416const mlib_image *src,417const mlib_s32 *kern,418mlib_s32 scale,419mlib_s32 cmask);420421mlib_status mlib_conv5x5nw_s32(mlib_image *dst,422const mlib_image *src,423const mlib_s32 *kern,424mlib_s32 scale,425mlib_s32 cmask);426427mlib_status mlib_conv5x5nw_u16(mlib_image *dst,428const mlib_image *src,429const mlib_s32 *kern,430mlib_s32 scale,431mlib_s32 cmask);432433mlib_status mlib_conv5x5nw_u8(mlib_image *dst,434const mlib_image *src,435const mlib_s32 *kern,436mlib_s32 scale,437mlib_s32 cmask);438439mlib_status mlib_conv7x7ext_s16(mlib_image *dst,440const mlib_image *src,441mlib_s32 dx_l,442mlib_s32 dx_r,443mlib_s32 dy_t,444mlib_s32 dy_b,445const mlib_s32 *kern,446mlib_s32 scale,447mlib_s32 cmask);448449mlib_status mlib_conv7x7ext_s32(mlib_image *dst,450const mlib_image *src,451mlib_s32 dx_l,452mlib_s32 dx_r,453mlib_s32 dy_t,454mlib_s32 dy_b,455const mlib_s32 *kern,456mlib_s32 scale,457mlib_s32 cmask);458459mlib_status mlib_conv7x7ext_u16(mlib_image *dst,460const mlib_image *src,461mlib_s32 dx_l,462mlib_s32 dx_r,463mlib_s32 dy_t,464mlib_s32 dy_b,465const mlib_s32 *kern,466mlib_s32 scale,467mlib_s32 cmask);468469mlib_status mlib_conv7x7ext_u8(mlib_image *dst,470const mlib_image *src,471mlib_s32 dx_l,472mlib_s32 dx_r,473mlib_s32 dy_t,474mlib_s32 dy_b,475const mlib_s32 *kern,476mlib_s32 scale,477mlib_s32 cmask);478479mlib_status mlib_conv7x7nw_s16(mlib_image *dst,480const mlib_image *src,481const mlib_s32 *kern,482mlib_s32 scale,483mlib_s32 cmask);484485mlib_status mlib_conv7x7nw_s32(mlib_image *dst,486const mlib_image *src,487const mlib_s32 *kern,488mlib_s32 scale,489mlib_s32 cmask);490491mlib_status mlib_conv7x7nw_u16(mlib_image *dst,492const mlib_image *src,493const mlib_s32 *kern,494mlib_s32 scale,495mlib_s32 cmask);496497mlib_status mlib_conv7x7nw_u8(mlib_image *dst,498const mlib_image *src,499const mlib_s32 *kern,500mlib_s32 scale,501mlib_s32 cmask);502503mlib_status mlib_convMxNext_s32(mlib_image *dst,504const mlib_image *src,505const mlib_s32 *kernel,506mlib_s32 m,507mlib_s32 n,508mlib_s32 dx_l,509mlib_s32 dx_r,510mlib_s32 dy_t,511mlib_s32 dy_b,512mlib_s32 scale,513mlib_s32 cmask);514515mlib_status mlib_convMxNnw_d64(mlib_image *dst,516const mlib_image *src,517const mlib_d64 *ker,518mlib_s32 m,519mlib_s32 n,520mlib_s32 dm,521mlib_s32 dn,522mlib_s32 cmask);523524mlib_status mlib_convMxNnw_f32(mlib_image *dst,525const mlib_image *src,526const mlib_d64 *ker,527mlib_s32 m,528mlib_s32 n,529mlib_s32 dm,530mlib_s32 dn,531mlib_s32 cmask);532533mlib_status mlib_convMxNnw_s16(mlib_image *dst,534const mlib_image *src,535const mlib_s32 *kernel,536mlib_s32 m,537mlib_s32 n,538mlib_s32 dm,539mlib_s32 dn,540mlib_s32 scale,541mlib_s32 cmask);542543mlib_status mlib_convMxNnw_s32(mlib_image *dst,544const mlib_image *src,545const mlib_s32 *kernel,546mlib_s32 m,547mlib_s32 n,548mlib_s32 dm,549mlib_s32 dn,550mlib_s32 scale,551mlib_s32 cmask);552553mlib_status mlib_convMxNnw_u16(mlib_image *dst,554const mlib_image *src,555const mlib_s32 *kernel,556mlib_s32 m,557mlib_s32 n,558mlib_s32 dm,559mlib_s32 dn,560mlib_s32 scale,561mlib_s32 cmask);562563mlib_s32 mlib_ImageConvVersion(mlib_s32 m,564mlib_s32 n,565mlib_s32 scale,566mlib_type type);567568mlib_status mlib_ImageConvMxN_f(mlib_image *dst,569const mlib_image *src,570const void *kernel,571mlib_s32 m,572mlib_s32 n,573mlib_s32 dm,574mlib_s32 dn,575mlib_s32 scale,576mlib_s32 cmask,577mlib_edge edge);578579mlib_status mlib_convMxNnw_u8(mlib_image *dst,580const mlib_image *src,581const mlib_s32 *kern,582mlib_s32 m,583mlib_s32 n,584mlib_s32 dm,585mlib_s32 dn,586mlib_s32 scale,587mlib_s32 cmask);588589mlib_status mlib_convMxNext_u8(mlib_image *dst,590const mlib_image *src,591const mlib_s32 *kern,592mlib_s32 m,593mlib_s32 n,594mlib_s32 dx_l,595mlib_s32 dx_r,596mlib_s32 dy_t,597mlib_s32 dy_b,598mlib_s32 scale,599mlib_s32 cmask);600601mlib_status mlib_convMxNext_s16(mlib_image *dst,602const mlib_image *src,603const mlib_s32 *kernel,604mlib_s32 m,605mlib_s32 n,606mlib_s32 dx_l,607mlib_s32 dx_r,608mlib_s32 dy_t,609mlib_s32 dy_b,610mlib_s32 scale,611mlib_s32 cmask);612613mlib_status mlib_convMxNext_u16(mlib_image *dst,614const mlib_image *src,615const mlib_s32 *kernel,616mlib_s32 m,617mlib_s32 n,618mlib_s32 dx_l,619mlib_s32 dx_r,620mlib_s32 dy_t,621mlib_s32 dy_b,622mlib_s32 scale,623mlib_s32 cmask);624625mlib_status mlib_convMxNext_f32(mlib_image *dst,626const mlib_image *src,627const mlib_d64 *kernel,628mlib_s32 m,629mlib_s32 n,630mlib_s32 dx_l,631mlib_s32 dx_r,632mlib_s32 dy_t,633mlib_s32 dy_b,634mlib_s32 cmask);635636mlib_status mlib_convMxNext_d64(mlib_image *dst,637const mlib_image *src,638const mlib_d64 *kernel,639mlib_s32 m,640mlib_s32 n,641mlib_s32 dx_l,642mlib_s32 dx_r,643mlib_s32 dy_t,644mlib_s32 dy_b,645mlib_s32 cmask);646647#ifdef __cplusplus648}649#endif /* __cplusplus */650#endif /* __MLIB_IMAGECONV_H */651652653