What's New in 7.20
- VIPS rewrite
- About half of the VIPS library has been revised. It's smaller, faster, and more flexible. There's a section below with some details.
- We've switched from man pages to gtk-doc, a system that generates documentation directly from comments embedded in the source code. You can browse the new documentation here. About half the library has been documented in the new format, we'll try to do the next half in the next six months.
- goffice support
- nip2 now uses goffice to display charts. Goffice uses a lot less memory and looks a lot better than the old system. We've also updated the widget that displays matrices, so it should now be easier to build and more portable.
- Support for newer GTK+ features
- nip2 now features previews in file dialogs and GtkInfoBar support. There are very few intrusive popup dialogs, instead a bar unfolds from the top of the window for a few seconds.
- Better Windows build
- The Windows build is faster, fixes some display problems, and handles very large images (over 4GB) correctly. It's a lot better at handling high zoom factors too. and the dialog box button order should be more Windows-y.
- Better image file support
- Better JPEG save, RAW image import, alpha channel fixes for libMagick import, Matlab image import fixes.
Plus the usual minor speed-ups, enhancements and bug fixes. What's New in 7.18 is still there if you're interested.
We're currently trying to move VIPS over to an object-oriented design based on GObject. We've built the core of the new system but when we came to move the code over it turned out to be a bit grottier than we thought. There's a lot of cruft that's accumulated over the years and some obvious things that can be sped up, simplified or generalised.
Rather than doing all this work in one go, the new plan is to make the change in two stages. First, we are sorting through the whole library, cleaning it up and throwing away stuff that's now useless or broken. We're also moving from man pages to gtk-doc at the same time. When this is done, we'll attack the move to GObject again.