diff --git a/libvips/include/vips/resample.h b/libvips/include/vips/resample.h index 01d14080..7f58096d 100644 --- a/libvips/include/vips/resample.h +++ b/libvips/include/vips/resample.h @@ -55,7 +55,7 @@ int vips_affine( VipsImage *in, VipsImage **out, int vips_resize( VipsImage *in, VipsImage **out, double scale, ... ) __attribute__((sentinel)); -int vips_index( VipsImage *in, VipsImage **out, VipsImage *index, ... ) +int vips_mapim( VipsImage *in, VipsImage **out, VipsImage *index, ... ) __attribute__((sentinel)); int vips_quadratic( VipsImage *in, VipsImage **out, VipsImage *coeff, ... ) diff --git a/libvips/resample/Makefile.am b/libvips/resample/Makefile.am index 9af7c3d5..ec8a775e 100644 --- a/libvips/resample/Makefile.am +++ b/libvips/resample/Makefile.am @@ -1,5 +1,5 @@ libresample_la_SOURCES = \ - index.c \ + mapim.c \ affine.c \ quadratic.c \ resample.c \ diff --git a/libvips/resample/index.c b/libvips/resample/mapim.c similarity index 81% rename from libvips/resample/index.c rename to libvips/resample/mapim.c index 7559eced..8c6636ff 100644 --- a/libvips/resample/index.c +++ b/libvips/resample/mapim.c @@ -54,7 +54,7 @@ #include "presample.h" -typedef struct _VipsIndex { +typedef struct _VipsMapim { VipsResample parent_instance; VipsImage *index; @@ -64,11 +64,11 @@ typedef struct _VipsIndex { */ VipsImage *in_array[3]; -} VipsIndex; +} VipsMapim; -typedef VipsResampleClass VipsIndexClass; +typedef VipsResampleClass VipsMapimClass; -G_DEFINE_TYPE( VipsIndex, vips_index, VIPS_TYPE_RESAMPLE ); +G_DEFINE_TYPE( VipsMapim, vips_mapim, VIPS_TYPE_RESAMPLE ); /* * FAST_PSEUDO_FLOOR is a floor and floorf replacement which has been @@ -126,7 +126,7 @@ G_DEFINE_TYPE( VipsIndex, vips_index, VIPS_TYPE_RESAMPLE ); /* Scan a region and find min/max in the two axes. */ static void -vips_index_region_minmax( VipsRegion *region, VipsRect *r, VipsRect *bounds ) +vips_mapim_region_minmax( VipsRegion *region, VipsRect *r, VipsRect *bounds ) { int min_x; int max_x; @@ -189,7 +189,7 @@ vips_index_region_minmax( VipsRegion *region, VipsRect *r, VipsRect *bounds ) q[z] = 0; \ } \ else \ - interpolate( index->interpolate, q, ir[0], \ + interpolate( mapim->interpolate, q, ir[0], \ px + window_offset, py + window_offset ); \ \ p1 += 2; \ @@ -198,27 +198,27 @@ vips_index_region_minmax( VipsRegion *region, VipsRect *r, VipsRect *bounds ) } static int -vips_index_gen( VipsRegion *or, void *seq, void *a, void *b, gboolean *stop ) +vips_mapim_gen( VipsRegion *or, void *seq, void *a, void *b, gboolean *stop ) { VipsRect *r = &or->valid; VipsRegion **ir = (VipsRegion **) seq; const VipsImage **in_array = (const VipsImage **) a; - const VipsIndex *index = (VipsIndex *) b; - const VipsResample *resample = VIPS_RESAMPLE( index ); + const VipsMapim *mapim = (VipsMapim *) b; + const VipsResample *resample = VIPS_RESAMPLE( mapim ); const VipsImage *in = in_array[0]; const int window_size = - vips_interpolate_get_window_size( index->interpolate ); + vips_interpolate_get_window_size( mapim->interpolate ); const int window_offset = - vips_interpolate_get_window_offset( index->interpolate ); + vips_interpolate_get_window_offset( mapim->interpolate ); const VipsInterpolateMethod interpolate = - vips_interpolate_get_method( index->interpolate ); + vips_interpolate_get_method( mapim->interpolate ); const int ps = VIPS_IMAGE_SIZEOF_PEL( in ); VipsRect bounds, image, clipped; int x, y, z; #ifdef DEBUG_VERBOSE - printf( "vips_index_gen: " + printf( "vips_mapim_gen: " "generating left=%d, top=%d, width=%d, height=%d\n", r->left, r->top, @@ -226,17 +226,17 @@ vips_index_gen( VipsRegion *or, void *seq, void *a, void *b, gboolean *stop ) r->height ); #endif /*DEBUG_VERBOSE*/ - /* Fetch the chunk of the index image we need, and find the max/min in + /* Fetch the chunk of the mapim image we need, and find the max/min in * x and y. */ if( vips_region_prepare( ir[1], r ) ) return( -1 ); - VIPS_GATE_START( "vips_index_gen: work" ); + VIPS_GATE_START( "vips_mapim_gen: work" ); - vips_index_region_minmax( ir[1], r, &bounds ); + vips_mapim_region_minmax( ir[1], r, &bounds ); - VIPS_GATE_STOP( "vips_index_gen: work" ); + VIPS_GATE_STOP( "vips_mapim_gen: work" ); /* The bounding box of that area is what we will need from @in. Add * enough for the interpolation stencil as well. @@ -255,7 +255,7 @@ vips_index_gen( VipsRegion *or, void *seq, void *a, void *b, gboolean *stop ) vips_rect_intersectrect( &bounds, &image, &clipped ); #ifdef DEBUG_VERBOSE - printf( "vips_index_gen: " + printf( "vips_mapim_gen: " "preparing left=%d, top=%d, width=%d, height=%d\n", clipped.left, clipped.top, @@ -270,7 +270,7 @@ vips_index_gen( VipsRegion *or, void *seq, void *a, void *b, gboolean *stop ) if( vips_region_prepare( ir[0], &clipped ) ) return( -1 ); - VIPS_GATE_START( "vips_index_gen: work" ); + VIPS_GATE_START( "vips_mapim_gen: work" ); /* Resample! x/y loop over pixels in the output image (5). */ @@ -305,28 +305,28 @@ vips_index_gen( VipsRegion *or, void *seq, void *a, void *b, gboolean *stop ) } } - VIPS_GATE_STOP( "vips_index_gen: work" ); + VIPS_GATE_STOP( "vips_mapim_gen: work" ); return( 0 ); } static int -vips_index_build( VipsObject *object ) +vips_mapim_build( VipsObject *object ) { VipsObjectClass *class = VIPS_OBJECT_GET_CLASS( object ); VipsResample *resample = VIPS_RESAMPLE( object ); - VipsIndex *index = (VipsIndex *) object; + VipsMapim *mapim = (VipsMapim *) object; VipsImage **t = (VipsImage **) vips_object_local_array( object, 4 ); VipsImage *in; int window_size; int window_offset; - if( VIPS_OBJECT_CLASS( vips_index_parent_class )->build( object ) ) + if( VIPS_OBJECT_CLASS( vips_mapim_parent_class )->build( object ) ) return( -1 ); if( vips_check_coding_known( class->nickname, resample->in ) || - vips_check_twocomponents( class->nickname, index->index ) ) + vips_check_twocomponents( class->nickname, mapim->index ) ) return( -1 ); in = resample->in; @@ -338,7 +338,7 @@ vips_index_build( VipsObject *object ) /* We can't use vips_object_argument_isset(), since it may have been * set to NULL, see vips_similarity(). */ - if( !index->interpolate ) { + if( !mapim->interpolate ) { VipsInterpolate *interpolate; interpolate = vips_interpolate_new( "bilinear" ); @@ -348,15 +348,15 @@ vips_index_build( VipsObject *object ) g_object_unref( interpolate ); /* coverity gets confused by this, it thinks - * index->interpolate may still be null. Assign ourselves, + * mapim->interpolate may still be null. Assign ourselves, * even though we don't need to. */ - index->interpolate = interpolate; + mapim->interpolate = interpolate; } - window_size = vips_interpolate_get_window_size( index->interpolate ); + window_size = vips_interpolate_get_window_size( mapim->interpolate ); window_offset = - vips_interpolate_get_window_offset( index->interpolate ); + vips_interpolate_get_window_offset( mapim->interpolate ); /* Add new pixels around the input so we can interpolate at the edges. */ @@ -372,56 +372,56 @@ vips_index_build( VipsObject *object ) in, NULL ) ) return( -1 ); - resample->out->Xsize = index->index->Xsize; - resample->out->Ysize = index->index->Ysize; + resample->out->Xsize = mapim->index->Xsize; + resample->out->Ysize = mapim->index->Ysize; - index->in_array[0] = in; - index->in_array[1] = index->index; - index->in_array[2] = NULL; + mapim->in_array[0] = in; + mapim->in_array[1] = mapim->index; + mapim->in_array[2] = NULL; if( vips_image_generate( resample->out, - vips_start_many, vips_index_gen, vips_stop_many, - index->in_array, index ) ) + vips_start_many, vips_mapim_gen, vips_stop_many, + mapim->in_array, mapim ) ) return( -1 ); return( 0 ); } static void -vips_index_class_init( VipsIndexClass *class ) +vips_mapim_class_init( VipsMapimClass *class ) { GObjectClass *gobject_class = G_OBJECT_CLASS( class ); VipsObjectClass *vobject_class = VIPS_OBJECT_CLASS( class ); - VIPS_DEBUG_MSG( "vips_index_class_init\n" ); + VIPS_DEBUG_MSG( "vips_mapim_class_init\n" ); gobject_class->set_property = vips_object_set_property; gobject_class->get_property = vips_object_get_property; - vobject_class->nickname = "index"; - vobject_class->description = _( "resample with an index image" ); - vobject_class->build = vips_index_build; + vobject_class->nickname = "mapim"; + vobject_class->description = _( "resample with an mapim image" ); + vobject_class->build = vips_mapim_build; VIPS_ARG_IMAGE( class, "index", 3, _( "Index" ), _( "Index pixels with this" ), VIPS_ARGUMENT_REQUIRED_INPUT, - G_STRUCT_OFFSET( VipsIndex, index ) ); + G_STRUCT_OFFSET( VipsMapim, index ) ); VIPS_ARG_INTERPOLATE( class, "interpolate", 4, _( "Interpolate" ), _( "Interpolate pixels with this" ), VIPS_ARGUMENT_OPTIONAL_INPUT, - G_STRUCT_OFFSET( VipsIndex, interpolate ) ); + G_STRUCT_OFFSET( VipsMapim, interpolate ) ); } static void -vips_index_init( VipsIndex *index ) +vips_mapim_init( VipsMapim *mapim ) { } /** - * vips_index: + * vips_mapim: * @in: input image * @out: output image * @index: index image @@ -458,13 +458,13 @@ vips_index_init( VipsIndex *index ) * Returns: 0 on success, -1 on error */ int -vips_index( VipsImage *in, VipsImage **out, VipsImage *index, ... ) +vips_mapim( VipsImage *in, VipsImage **out, VipsImage *index, ... ) { va_list ap; int result; va_start( ap, index ); - result = vips_call_split( "index", ap, in, out, index ); + result = vips_call_split( "mapim", ap, in, out, index ); va_end( ap ); return( result ); diff --git a/libvips/resample/resample.c b/libvips/resample/resample.c index 72582109..09013229 100644 --- a/libvips/resample/resample.c +++ b/libvips/resample/resample.c @@ -112,7 +112,7 @@ void vips_resample_operation_init( void ) { extern GType vips_shrink_get_type( void ); - extern GType vips_index_get_type( void ); + extern GType vips_mapim_get_type( void ); extern GType vips_shrinkh_get_type( void ); extern GType vips_shrinkv_get_type( void ); extern GType vips_shrink2_get_type( void ); @@ -121,7 +121,7 @@ vips_resample_operation_init( void ) extern GType vips_similarity_get_type( void ); extern GType vips_resize_get_type( void ); - vips_index_get_type(); + vips_mapim_get_type(); vips_shrink_get_type(); vips_shrinkh_get_type(); vips_shrinkv_get_type();