Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Oct 10, 2011

  1. Tony Cook

    Merge the I/O buffering branch

    commit 1d817f4
    Author: Tony Cook <>
    Date:   Mon Oct 10 18:07:12 2011 +1100
        move changes into release area
    commit a0392ff
    Author: Tony Cook <>
    Date:   Sat Oct 8 13:37:10 2011 +1100
        bump API revision level and note the cause (in a comment)
    commit fdbad1c
    Author: Tony Cook <>
    Date:   Sat Oct 8 12:36:44 2011 +1100
        fill out changes some more
    commit b54571f
    Author: Tony Cook <>
    Date:   Sat Oct 8 12:15:05 2011 +1100
        document io_new_cb() callbacks a little + some cleanup
    commit a5504e7
    Author: Tony Cook <>
    Date:   Sat Oct 8 11:53:17 2011 +1100
        make new I/O layer object constructors and document them
    commit c631d25
    Author: Tony Cook <>
    Date:   Sat Oct 8 00:14:07 2011 +1100
        document most I/O layer functions, export the io_glue constructors
    commit 1d7d283
    Author: Tony Cook <>
    Date:   Thu Oct 6 18:59:49 2011 +1100
        make sure we read bytes for callback IO objects
    commit 2aacacb
    Author: Tony Cook <>
    Date:   Thu Oct 6 17:00:35 2011 +1100
        document io_new_cb perl callbacks, buffered parameter and some cleanup
    commit b1cb9fb
    Author: Tony Cook <>
    Date:   Mon Oct 3 16:36:58 2011 +1100
        add Imager::IO pod coverage tests + add method docs
    commit dd20383
    Author: Tony Cook <>
    Date:   Mon Oct 3 12:31:29 2011 +1100
        move internals to the end of iolayer.c
    commit 4692ab9a42838919f1f5fd185f341d592319601b
    Author: Tony Cook <>
    Date:   Mon Oct 3 11:58:35 2011 +1100
        clean up unneeded structures
    commit b179462d315f0f953d55ec216d92912d8af6be7f
    Author: Tony Cook <>
    Date:   Fri Sep 30 23:36:41 2011 +1000
        fail flush if error is set
    commit 0db35f7e68d5027c85f7bf28b6706fb7dc210c96
    Author: Tony Cook <>
    Date:   Tue Sep 27 00:08:11 2011 +1000
        add i_io_gets()
    commit f1d7a30ae3376dcacf337faa3b172b135b8a85c2
    Author: Tony Cook <>
    Date:   Mon Sep 26 23:18:20 2011 +1000
        remove more unused code, including unused variables
    commit 9d4eea2b2d0725466162ee2008faa52825ea68ca
    Author: Tony Cook <>
    Date:   Mon Sep 26 21:46:29 2011 +1000
        final coverage tests
    commit 28a5ceb962c54f01d68115c8ce23cf47c9c33742
    Author: Tony Cook <>
    Date:   Thu Sep 22 22:36:01 2011 +1000
        WIP, more coverage and fixes
    commit 5a426928bc533e39c09acc795803a74054b7c779
    Author: Tony Cook <>
    Date:   Thu Sep 22 22:35:43 2011 +1000
        we almost always want symbols with our coverage, so enable them
    commit 7cfdd0cfde8b63760fb1817812ca53cbbb479b5b
    Author: Tony Cook <>
    Date:   Thu Sep 22 22:35:07 2011 +1000
        actually store the character in the i_io_putc() macro
    commit 676e43d395e0928ac46e3c6763169186c094fdcd
    Author: Tony Cook <>
    Date:   Thu Sep 22 22:32:42 2011 +1000
        remove the 0 size check, since i_io_peekn() itself does the check
        This ensures we can test the underlying function's behaviour
    commit 6175b9ef623b8c627b700f186b31937813c94f7f
    Author: Tony Cook <>
    Date:   Thu Sep 22 22:30:56 2011 +1000
        make i_io_set_buffered() into a real function
        since it needs to flush
    commit 3fc2c6587a5dbbaa7ef4ab84a1c83decc9f15bf8
    Author: Tony Cook <>
    Date:   Sat Sep 17 15:06:27 2011 +1000
        more coverage, some fixes, still WIP
    commit ddb433c610b9bc1e5588fcb7276b4f1916a09e8f
    Author: Tony Cook <>
    Date:   Sat Sep 17 13:16:00 2011 +1000
        improve i_io_peekn() / i_io_read_fill() interaction
        a peekn() for a small amount no longer limits a following peekn() for
        a larger amount
        it also handles partly consumed input buffers
    commit 830b5c652aa665b4ffe70c03b991ed53c18ea671
    Author: Tony Cook <>
    Date:   Sat Sep 17 00:24:55 2011 +1000
        WIP, working on coverage tests
    commit 1987245122d4a6eae095592f995786ad6097ed21
    Author: Tony Cook <>
    Date:   Wed Sep 14 20:47:49 2011 +1000
        update iobuf todos
    commit 2dbbb48e431d9c4f085330224e9a975be61f8a4c
    Author: Tony Cook <>
    Date:   Tue Sep 13 11:28:36 2011 +1000
        make the error message checks unbuffered, update the grey32 test image
        since test_image_double() has changed
    commit 84dc488a323bcded457d4f338b2636db59d51f03
    Author: Tony Cook <>
    Date:   Tue Sep 13 11:28:24 2011 +1000
        improve error checking a bit
    commit 617340662609eaf1ddf385758c7729e3fa8d37bb
    Author: Tony Cook <>
    Date:   Mon Sep 12 22:37:42 2011 +1000
        WIP commit
    commit 342167b92f30c4a1f8f94b16f85875c866383263
    Author: Tony Cook <>
    Date:   Sat Sep 10 15:07:00 2011 +1000
        remove buffering from the PNM reader
    commit 8c2fe37a2612a261cc53bcb955be11bd31974770
    Author: Tony Cook <>
    Date:   Sat Sep 10 14:00:10 2011 +1000
        remove buffering from the callback IO object implementation
           - the callback IO object did its own buffering, controlled by the
             maxbuffer parameter supplied to the read() and write() methods.
             This buffering has been removed, to avoid redundancy with the
             common io_glue buffering.
           - the callback IO object new tests the result of calling the close
             callback, which should return true for success.
    commit 2ffd623b6849096a3bd1ea9a0708c2f45d1824bf
    Author: Tony Cook <>
    Date:   Sat Sep 10 13:13:46 2011 +1000
        change notes + todo for the iobuf changes
    commit dce56aa69674ff522c0d617e84e1daa965c00775
    Author: Tony Cook <>
    Date:   Sat Sep 10 00:01:23 2011 +1000
        buffering working
        - some file handlers don't check the result of i_io_close(), test that
          (with a close callback handler), fix that
        - remove other buffering implementations where possible, the callback
          code (Imager.xs) and pnm.c in particular
        - allow _get_writer() to produce unbuffered writers
        - add coverage tests for the buffering code
    commit d45c6298a616a4481def0a1abfe0e91a26ef29b8
    Author: Tony Cook <>
    Date:   Tue Aug 30 00:15:12 2011 +1000
        reorganize the io_glue types for the upcoming buffering changes
    commit e080fa60bd5db126d4e2620131db4017cfe7a98c
    Author: Tony Cook <>
    Date:   Tue Aug 30 00:14:26 2011 +1000
        eliminate the final remnants of io_glue_commit_types()
        it's not part of the API and has been a no-op for years

Aug 08, 2011

  1. Tony Cook

    switch to using size_t and i_img_dim strictly

    Also, use double instead of float where the value is used in
    calculating a co-ordinate, since float may not be able to represent an
    image ordinate with sufficient precision

Jan 15, 2009

  1. - correct documentation of default of raw image interleave read

     - add raw_ prefix to raw read parameters, though the original names
       still work.
     - fail the read if an invalid raw_interleave parameter is supplied
     - warn if no interleave or raw_interleave parameter is supplied,
       since the documented default was wrong, and incompatible with the
       write format
     - for reading raw images, if raw_storechannels > raw_datachannels,
       set the extra channels in the image to 0
    Tony Cook authored

Feb 17, 2006

  1. - make win32.c const happy

    - make raw.c C89 compliant
    Tony Cook authored

Jan 18, 2006

  1. - reading a raw image no longer exits on a short read or read error,

      and returns an appropriate error message in $im->errstr
    - write failures when writing a raw image now return a useful
      message in $im->errstr
    Tony Cook authored

Jan 10, 2006

  1. - start of external Imager API access:

      - rename headers to avoid conflicts:
        - image.h to imager.h
        - imagei.h to imageri.h
        - datatypes.h to imdatatypes.h
        - config.h to imconfig.h (created by Makefile.PL)
      - moved all public types defined in imager.h to imdatatypes.h
      - supply the PM parameter to WriteMakefile(), to install headers 
        under Imager/include, and the Imager typemap in Imager/typemap.
        We scan the MANIFEST for files to add to PM.
      - add "i_" prefix on some functions useful as public at the C level.
      - moved the typedefs that support the typemap from Imager.xs to 
      - set the global callbacks hook in the Imager.xs BOOT section
      - API cleanup:
        - define i_tags_set(), i_tags_setn() - we might not allow multiple 
          values for a tag in the future
        - i_copy() now returns a new image instead of doing horrible inplace
          things to an existing image
        - provide actual functions for all of the macros we define in imager.h
          so we can put them in the global callbacks structure
      - define global functions structure (imexttypes.h)
        and initialize it (imext.c)
      - add API include header with macros to setup the define and
        initialize the local callbacks pointer, and macros to call the API
      - build Imager::APIRef from C sources, including updating the sources
        to include documentation for each API function.
      - convert dyntest and mandelbrot dynfilts into XS modules (too easy)
      - simple Imager::CountColor example
    - support Inline::C :
      - typemap changes to accept Imager or Imager::ImgRaw objects as 
        image parameters
      - define Imager output type for trivial cases of returning an i_img as
        a full Imager object
      - Inline WITH hook to filter Imager XS types into types Inline::C can
        accept, supply appropriate headers and initialization.
      - test script t/t82inline.t
    - try to use XSLoader instead of DynaLoader (but fallback if necessary)
    - paste() can now paste a subset of the source image.
    - paste() now has better tests
    - paste() should now be faster for larger pastes
    Tony Cook authored

Jan 24, 2005

  1. - eliminate unused variables and static functions

    - simplify some XS code by adding another typemap entry
    Tony Cook authored

Dec 02, 2004

  1. - i_readraw_wiol() now checks for image creation failure

    - i_readrgb_wiol() now checks for image creation failure
    - i_writergb_wiol() was an empty stub, it now pushes an error message
      and explicitly returns failure.
    - i_readrgb_wiol() now sets i_format to rgb.
    - set i_format to raw when reading tga files and test for it
    - document i_format tag
    Tony Cook authored

Jan 04, 2002

  1. enhanced iolayer

    multi image/file tiff support
    Tony Cook authored

Nov 01, 2001

  1. Fixed most outstanding memory leaks that are revealed in the test cases.

    gif.c, bmp.c, font.c and tga.c still need to be checked.
    Arnar Mar Hrafnkelsson authored

Oct 23, 2001

  1. Cleaned up io.h, io.c which had functions not used any more, removed …

    and dated code from pnm.c.  Moved functions specific to raw images to raw.c
    from io.c
    Arnar Mar Hrafnkelsson authored

Aug 13, 2001

  1. Egads

    Merged in the exp_represent branch
    Should have done this earlier
    Tony Cook authored

Jun 07, 2001

  1. Clean up after changing some formats to use iolayer.

    Arnar Mar Hrafnkelsson authored

Jun 06, 2001

  1. Replaced i_readraw() and i_writeraw() with the equivalent _wiol funct…

    Arnar Mar Hrafnkelsson authored

Mar 25, 2001

  1. Initial revision

    Arnar Mar Hrafnkelsson authored
Something went wrong with that request. Please try again.