Path: blob/master/src/java.desktop/share/native/libmlib_image/mlib_ImageLookUp.h
41149 views
/*1* Copyright (c) 2003, 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_IMAGE_LOOKUP_FUNC_INTENAL_H27#define __MLIB_IMAGE_LOOKUP_FUNC_INTENAL_H2829#include "mlib_ImageCopy.h"3031#ifdef __cplusplus32extern "C" {33#endif /* __cplusplus */3435#ifdef _MSC_VER36/* Microsoft VC 6.0 compiler assumes that pointer fit into long37and therefore array's index may not exceed MAX_INT/sizeof(data_type).3839TABLE_SHIFT_32 is used as index in arrays of types up to mlib_d6440(see mlib_ImageLookUp_S32_D64 for instance) and therefore must not41exceed ((2^33/sizeof(mlib_d64)) - 1) */42#define TABLE_SHIFT_S32 (mlib_u32) 53687091143#else44#define TABLE_SHIFT_S32 536870911u45#endif /* _MSC_VER */464748/* mlib_ImageLookUp_64.c */4950void mlib_ImageLookUp_U8_D64(const mlib_u8 *src,51mlib_s32 slb,52mlib_d64 *dst,53mlib_s32 dlb,54mlib_s32 xsize,55mlib_s32 ysize,56mlib_s32 csize,57const mlib_d64 **table);5859void mlib_ImageLookUp_S16_D64(const mlib_s16 *src,60mlib_s32 slb,61mlib_d64 *dst,62mlib_s32 dlb,63mlib_s32 xsize,64mlib_s32 ysize,65mlib_s32 csize,66const mlib_d64 **table);6768void mlib_ImageLookUp_U16_D64(const mlib_u16 *src,69mlib_s32 slb,70mlib_d64 *dst,71mlib_s32 dlb,72mlib_s32 xsize,73mlib_s32 ysize,74mlib_s32 csize,75const mlib_d64 **table);7677void mlib_ImageLookUp_S32_D64(const mlib_s32 *src,78mlib_s32 slb,79mlib_d64 *dst,80mlib_s32 dlb,81mlib_s32 xsize,82mlib_s32 ysize,83mlib_s32 csize,84const mlib_d64 **table);8586void mlib_ImageLookUpSI_U8_D64(const mlib_u8 *src,87mlib_s32 slb,88mlib_d64 *dst,89mlib_s32 dlb,90mlib_s32 xsize,91mlib_s32 ysize,92mlib_s32 csize,93const mlib_d64 **table);9495void mlib_ImageLookUpSI_S16_D64(const mlib_s16 *src,96mlib_s32 slb,97mlib_d64 *dst,98mlib_s32 dlb,99mlib_s32 xsize,100mlib_s32 ysize,101mlib_s32 csize,102const mlib_d64 **table);103104void mlib_ImageLookUpSI_U16_D64(const mlib_u16 *src,105mlib_s32 slb,106mlib_d64 *dst,107mlib_s32 dlb,108mlib_s32 xsize,109mlib_s32 ysize,110mlib_s32 csize,111const mlib_d64 **table);112113void mlib_ImageLookUpSI_S32_D64(const mlib_s32 *src,114mlib_s32 slb,115mlib_d64 *dst,116mlib_s32 dlb,117mlib_s32 xsize,118mlib_s32 ysize,119mlib_s32 csize,120const mlib_d64 **table);121122/* mlib_ImageLookUp_Bit.c */123124mlib_status mlib_ImageLookUp_Bit_U8_1(const mlib_u8 *src,125mlib_s32 slb,126mlib_u8 *dst,127mlib_s32 dlb,128mlib_s32 xsize,129mlib_s32 ysize,130mlib_s32 nchan,131mlib_s32 bitoff,132const mlib_u8 **table);133134mlib_status mlib_ImageLookUp_Bit_U8_2(const mlib_u8 *src,135mlib_s32 slb,136mlib_u8 *dst,137mlib_s32 dlb,138mlib_s32 xsize,139mlib_s32 ysize,140mlib_s32 nchan,141mlib_s32 bitoff,142const mlib_u8 **table);143144mlib_status mlib_ImageLookUp_Bit_U8_3(const mlib_u8 *src,145mlib_s32 slb,146mlib_u8 *dst,147mlib_s32 dlb,148mlib_s32 xsize,149mlib_s32 ysize,150mlib_s32 nchan,151mlib_s32 bitoff,152const mlib_u8 **table);153154mlib_status mlib_ImageLookUp_Bit_U8_4(const mlib_u8 *src,155mlib_s32 slb,156mlib_u8 *dst,157mlib_s32 dlb,158mlib_s32 xsize,159mlib_s32 ysize,160mlib_s32 nchan,161mlib_s32 bitoff,162const mlib_u8 **table);163164#ifdef __cplusplus165}166#endif /* __cplusplus */167#endif /* __MLIB_IMAGE_LOOKUP_FUNC_INTENAL_H */168169170