1 /* A few basic types needed everywhere. 2 * 3 * 27/10/11 4 * - from type.h 5 */ 6 7 /* 8 9 This file is part of VIPS. 10 11 VIPS is free software; you can redistribute it and/or modify 12 it under the terms of the GNU Lesser General Public License as published by 13 the Free Software Foundation; either version 2 of the License, or 14 (at your option) any later version. 15 16 This program is distributed in the hope that it will be useful, 17 but WITHOUT ANY WARRANTY; without even the implied warranty of 18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 GNU Lesser General Public License for more details. 20 21 You should have received a copy of the GNU Lesser General Public License 22 along with this program; if not, write to the Free Software 23 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 24 02110-1301 USA 25 26 */ 27 28 /* 29 30 These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk 31 32 */ 33 34 #ifndef VIPS_BASIC_H 35 #define VIPS_BASIC_H 36 37 #ifdef __cplusplus 38 extern "C" { 39 #endif /*__cplusplus*/ 40 41 /** 42 * VipsPel: 43 * 44 * A picture element. Cast this to whatever the associated VipsBandFormat says 45 * to get the value. 46 */ 47 typedef unsigned char VipsPel; 48 49 /* Also used for eg. vips_local() and friends. 50 */ 51 typedef int (*VipsCallbackFn)( void *a, void *b ); 52 53 /* Like GFunc, but return a value. 54 */ 55 typedef void *(*VipsSListMap2Fn)( void *item, 56 void *a, void *b ); 57 typedef void *(*VipsSListMap4Fn)( void *item, 58 void *a, void *b, void *c, void *d ); 59 typedef void *(*VipsSListFold2Fn)( void *item, 60 void *a, void *b, void *c ); 61 62 typedef enum { 63 VIPS_PRECISION_INTEGER, 64 VIPS_PRECISION_FLOAT, 65 VIPS_PRECISION_APPROXIMATE, 66 VIPS_PRECISION_LAST 67 } VipsPrecision; 68 69 /* Just for testing. 70 */ 71 char *vips_path_filename7( const char *path ); 72 char *vips_path_mode7( const char *path ); 73 74 struct _VipsImage; 75 typedef struct _VipsImage VipsImage; 76 struct _VipsRegion; 77 typedef struct _VipsRegion VipsRegion; 78 79 #ifdef __cplusplus 80 } 81 #endif /*__cplusplus*/ 82 83 #endif /*VIPS_BASIC_H*/ 84