- win32 build missing batch files

- 16 bit TIFF write fails on win32? check

- im_prepare() should clip r argument against image size

  see vips2jpeg etc., also im_prepare_thread()

  or maybe not: we often do stuff like

  	im_prepare( input_region, &output_region->valid )

  changing valid would be baaad

  need safer idiom for im_prepare_thread() style looping?

- VMask( x, y, s, o, ...) constructor must go

  add a separate varargs convenience function

- check Joe's balancing problems?

TODO vips
=========

- lr/tb merge should test for all bands == 0 for transparency? when we build
  firstlast as well as blend?

- im_magick2vips seems to memleak according to memprof ... bug in libMagick, 
  or are we just not calling it right? can't tell

- can we make a cie2000 colourspace? not sure we can

  try to find a pair of hue angles which break joe's code?

- km claims im_sharpen() runs as thinstrip! shouldn't it be fatstrip?

- how about vips-config --rpath outputs (eg.) 
  /home/john/vips/lib:usr/local/lib ... suitable for adding to LD_LIBRARY_PATH?
  would help the vips-7.8 script a lot

- make a mosaic, use im_remosaic to rebuild, global_balance no longer works
  (more than 1 root msg)

- add func descriptors for im_isjpeg etc.?

iofuncs
-------

- vips.m4 could test for --prefix arg does not match location of vips-config
  executable

- could add a flag for "works on LABPACK" ... if we try to call a function
  with a LABPACK when it doesn't handle them, silently unpack to float

- could use convenience libs to do -tiff/etc. flags: libconversion could add
  according to flags, libvips could just inherit? 

  harder to do vips-config I guess

- scrap plugin stuff, redo with libltdl ... much more portable

- scrap my list type and most of the portability functions ... use glib 
  instead

- replace callbacks with signals

- add a [image] type ... cf. realvec ... useful for gbandjoin and im_compass()
  built out of lots of im_conv()

- function dispatch should trace VIPS calls ... with im_diagnostics() ...
  need some mechanism so diagnostics can write to a buffer which apps can
  display ... or at least set a handler for

- im_add_diagnostic_callback()?

- fix function dispatch stuff to include <-> char functions for each type ...
  see notes in nip/TODO

- new C API based on ip's vips.c interface? add optional args, OO stuff

- break vips into separate libs ... iofuncs becomes libvips, arithmetic becomes
  vips/arithmetic.plg, etc. 

- add glib dependency when glib 2.0 comes out, use g_object OO mechanism ...
  operations become classes, inheritance for more code sharing

- new C API based on ip's vips.c interface? add optional args, OO stuff,
  overloading

  eg
	
	if( im_add( a, b, result ) )
	  ...

  becomes

	result = vips( &err, "add", "in1", a, "in2", b, NULL );
	if( err ..

  rename all im_ to vips_

- maybe add arg flags for required/optional ... so in1/in2/result for vips_add
  are required and would not need flaging with names

	result = vips( &err, "add", a, b, "option1", option, NULL );
	if( err ..

operations
----------

- move more video stuff into vips from ip1, follow im_video_linux() template

- do we spot XIL correctly on perugino? not sure

- lhisteq menu item could loop over bands, rather than just working on the
  1st band

- im_invertlut() could be improved quite a bit

- put the acohir calibrator into VIPS

- colour stuff needs reworking to do differing colour temperatures cleanly, 
  some docs would be nice

- icc monitor profile reader needs fixing

- write im_resize() ... arbitrary scale/shrink, bi-cubic

- break tile cache from im_tiff2vips() out as a separate im_cache() function?
  would help caching, as cache currently per-thread, rather than per-image
  need to use lock API

- add im_connect()? writes a 1 band image with 255 pixels connected to the
  start point ... can then do im_flood() by plotmask, or im_ifthenelse()

  would avoid big undo thing in paintbox

  could have partial output, with some sort of sparse image thing for the
  mask?

  im_connect_equal(), im_connect_notequal()

- for a segmenter, would probably want a RW_ image, with pixels being set to a
  specified value, and only zero pixels being overwritten?

C++ API
-------

- C++ API is missing vector types ... doublevec and imagevec

- could add LUT stuff from nip 

configure
---------

- add BUILDING_DLL stuff to vips.h

  update main VIPS README for new configure options

- should rebuild C++ API using vips.exe in libsrcCC/Makefile.am ... somehow

- should define -DNDEBUG for production build

- need to version libs properly
