diff --git a/ChangeLog b/ChangeLog index f5703c52..bb76e04e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,8 @@ - fix a mixup with ANY hints that caused performance problems on the main benchmark - rewritten im_circle as im_draw_circle, im_circle moved to almostdeprecated +- added IM_TYPE_RW args for inplace ops --- nip2 uses this to wrap inplace ops + automatically - special-case 3x3 makss in im_conv() for a 20% speedup - add IM_TYPE_RW flag for im__rw_image, helps nip2 auto-wrap inplace ops - im_insertplace() casts and bandalikes diff --git a/TODO b/TODO index c160849d..69d89f78 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,15 @@ - rename most of the inplace ops as im_draw_line() etc. +- how do we wrap inplace ops in C++ now? will checking the RW bit help at all? + - use im__inplace_base() in more places - nip2 should be able to call RW image ops by copying them, see im_draw_circle_copy() + + + - use D65 in cmsCreateLab4Profile() ? not sure - VImage("poop.v") should use "rd" as well? Python too? diff --git a/libvips/convolution/im_conv.c b/libvips/convolution/im_conv.c index fd86f88e..c2bb0951 100644 --- a/libvips/convolution/im_conv.c +++ b/libvips/convolution/im_conv.c @@ -501,7 +501,7 @@ conv3x3_gen( REGION *or, void *vseq, void *a, void *b ) int bands = in->Bands; Rect s; - int x, y, z; + int x, y; /* Prepare the section of the input image we need. A little larger * than the section of the output image we are producing. diff --git a/libvips/include/vips/dispatch.h b/libvips/include/vips/dispatch.h index 45323634..e9605601 100644 --- a/libvips/include/vips/dispatch.h +++ b/libvips/include/vips/dispatch.h @@ -64,7 +64,9 @@ typedef void *im_object; /* These bits are ored together to make the flags in a type descriptor. * - * IM_TYPE_OUTPUT: set to indicate output, otherwise input. + * IM_TYPE_OUTPUT: set to indicate output, otherwise input. If the IM_TYPE_RW + * bit is set and IM_TYPE_OUTPUT is not set, both input and output (ie. the + * operation side-effects this argument). * * IM_TYPE_ARG: Two ways of making an im_object --- with and without a * command-line string to help you along. Arguments with a string are thing