⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdl_imagefilter.h

📁 sdl的gfx开发包
💻 H
字号:
/*  SDL_imageFilter - bytes-image "filter" routines  (uses inline x86 MMX optimizations if available)  LGPL (c) A. Schiffler*/#ifndef _SDL_imageFilter_h#define _SDL_imageFilter_h/* Set up for C function definitions, even when using C++ */#ifdef __cplusplusextern "C" {#endif/* ------ Function Prototypes ------ */#ifdef WIN32#ifdef BUILD_DLL#define DLLINTERFACE __declspec(dllexport)#else#define DLLINTERFACE __declspec(dllimport)#endif#else#define DLLINTERFACE#endif/* Comments:                                                                           *//*  1.) MMX functions work best if all data blocks are aligned on a 32 bytes boundary. *//*  2.) Data that is not within an 8 byte boundary is processed using the C routine.   *//*  3.) Convolution routines do not have C routines at this time.                      */// Detect MMX capability in CPU    DLLINTERFACE int SDL_imageFilterMMXdetect(void);// Force use of MMX off (or turn possible use back on)    DLLINTERFACE void SDL_imageFilterMMXoff(void);    DLLINTERFACE void SDL_imageFilterMMXon(void);//// All routines return://   0   OK//  -1   Error (internal error, parameter error)////  SDL_imageFilterAdd: D = saturation255(S1 + S2)    DLLINTERFACE int SDL_imageFilterAdd(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterMean: D = S1/2 + S2/2    DLLINTERFACE int SDL_imageFilterMean(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterSub: D = saturation0(S1 - S2)    DLLINTERFACE int SDL_imageFilterSub(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterAbsDiff: D = | S1 - S2 |    DLLINTERFACE int SDL_imageFilterAbsDiff(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterMult: D = saturation(S1 * S2)    DLLINTERFACE int SDL_imageFilterMult(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterMultNor: D = S1 * S2   (non-MMX)    DLLINTERFACE int SDL_imageFilterMultNor(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterMultDivby2: D = saturation255(S1/2 * S2)    DLLINTERFACE int SDL_imageFilterMultDivby2(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest,					       int length);//  SDL_imageFilterMultDivby4: D = saturation255(S1/2 * S2/2)    DLLINTERFACE int SDL_imageFilterMultDivby4(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest,					       int length);//  SDL_imageFilterBitAnd: D = S1 & S2    DLLINTERFACE int SDL_imageFilterBitAnd(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterBitOr: D = S1 | S2    DLLINTERFACE int SDL_imageFilterBitOr(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterDiv: D = S1 / S2   (non-MMX)    DLLINTERFACE int SDL_imageFilterDiv(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length);//  SDL_imageFilterBitNegation: D = !S    DLLINTERFACE int SDL_imageFilterBitNegation(unsigned char *Src1, unsigned char *Dest, int length);//  SDL_imageFilterAddByte: D = saturation255(S + C)    DLLINTERFACE int SDL_imageFilterAddByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C);//  SDL_imageFilterAddByteToHalf: D = saturation255(S/2 + C)    DLLINTERFACE int SDL_imageFilterAddByteToHalf(unsigned char *Src1, unsigned char *Dest, int length,						  unsigned char C);//  SDL_imageFilterSubByte: D = saturation0(S - C)    DLLINTERFACE int SDL_imageFilterSubByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C);//  SDL_imageFilterShiftRight: D = saturation0(S >> N)    DLLINTERFACE int SDL_imageFilterShiftRight(unsigned char *Src1, unsigned char *Dest, int length, unsigned char N);//  SDL_imageFilterMultByByte: D = saturation255(S * C)    DLLINTERFACE int SDL_imageFilterMultByByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C);//  SDL_imageFilterShiftRightAndMultByByte: D = saturation255((S >> N) * C)    DLLINTERFACE int SDL_imageFilterShiftRightAndMultByByte(unsigned char *Src1, unsigned char *Dest, int length,							    unsigned char N, unsigned char C);//  SDL_imageFilterShiftLeftByte: D = (S << N)    DLLINTERFACE int SDL_imageFilterShiftLeftByte(unsigned char *Src1, unsigned char *Dest, int length,						  unsigned char N);//  SDL_imageFilterShiftLeft: D = saturation255(S << N)    DLLINTERFACE int SDL_imageFilterShiftLeft(unsigned char *Src1, unsigned char *Dest, int length, unsigned char N);//  SDL_imageFilterBinarizeUsingThreshold: D = S >= T ? 255:0    DLLINTERFACE int SDL_imageFilterBinarizeUsingThreshold(unsigned char *Src1, unsigned char *Dest, int length,							   unsigned char T);//  SDL_imageFilterClipToRange: D = (S >= Tmin) & (S <= Tmax) 255:0    DLLINTERFACE int SDL_imageFilterClipToRange(unsigned char *Src1, unsigned char *Dest, int length,						unsigned char Tmin, unsigned char Tmax);//  SDL_imageFilterNormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin)    DLLINTERFACE int SDL_imageFilterNormalizeLinear(unsigned char *Src1, unsigned char *Dest, int length, int Cmin,						    int Cmax, int Nmin, int Nmax);/* !!! NO C-ROUTINE FOR THESE FUNCTIONS YET !!! *///  SDL_imageFilterConvolveKernel3x3Divide: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel3x3Divide(unsigned char *Src, unsigned char *Dest, int rows,							    int columns, signed short *Kernel, unsigned char Divisor);//  SDL_imageFilterConvolveKernel5x5Divide: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel5x5Divide(unsigned char *Src, unsigned char *Dest, int rows,							    int columns, signed short *Kernel, unsigned char Divisor);//  SDL_imageFilterConvolveKernel7x7Divide: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel7x7Divide(unsigned char *Src, unsigned char *Dest, int rows,							    int columns, signed short *Kernel, unsigned char Divisor);//  SDL_imageFilterConvolveKernel9x9Divide: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel9x9Divide(unsigned char *Src, unsigned char *Dest, int rows,							    int columns, signed short *Kernel, unsigned char Divisor);//  SDL_imageFilterConvolveKernel3x3ShiftRight: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel3x3ShiftRight(unsigned char *Src, unsigned char *Dest, int rows,								int columns, signed short *Kernel,								unsigned char NRightShift);//  SDL_imageFilterConvolveKernel5x5ShiftRight: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel5x5ShiftRight(unsigned char *Src, unsigned char *Dest, int rows,								int columns, signed short *Kernel,								unsigned char NRightShift);//  SDL_imageFilterConvolveKernel7x7ShiftRight: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel7x7ShiftRight(unsigned char *Src, unsigned char *Dest, int rows,								int columns, signed short *Kernel,								unsigned char NRightShift);//  SDL_imageFilterConvolveKernel9x9ShiftRight: Dij = saturation0and255( ... )    DLLINTERFACE int SDL_imageFilterConvolveKernel9x9ShiftRight(unsigned char *Src, unsigned char *Dest, int rows,								int columns, signed short *Kernel,								unsigned char NRightShift);//  SDL_imageFilterSobelX: Dij = saturation255( ... )    DLLINTERFACE int SDL_imageFilterSobelX(unsigned char *Src, unsigned char *Dest, int rows, int columns);//  SDL_imageFilterSobelXShiftRight: Dij = saturation255( ... )    DLLINTERFACE int SDL_imageFilterSobelXShiftRight(unsigned char *Src, unsigned char *Dest, int rows, int columns,						     unsigned char NRightShift);// Align/restore stack to 32 byte boundary -- Functionality untested! --    DLLINTERFACE void SDL_imageFilterAlignStack(void);    DLLINTERFACE void SDL_imageFilterRestoreStack(void);/* Ends C function definitions when using C++ */#ifdef __cplusplus};#endif#endif				/* _SDL_imageFilter_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -