]> git.imager.perl.org - imager.git/blobdiff - TODO
Various changes:
[imager.git] / TODO
diff --git a/TODO b/TODO
index 5f37dd7b5fc968d75e09d2cfe77c595c50e577f5..dd09fddda6df01ac4975dc97bdfb42a53fabd7f3 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,65 +6,149 @@ Release Plans (subject to change)
 brown-bag bugs may add intermediate releases.  The dates are goals,
 not commitments.
 
-0.45: (march 2005?)
-- audit pnm.c (done)
-- audit tga.c (done)
-- audit rgb.c and add tests
-- add META.yml (bypass EU::MM's limited mechanism) (done)
-- implement i_incomplete for bmp files
-- check if freetype 2 is faster/slower than freetype 1 with Imager's glyph
-  caching.  If FT1 is faster, add caching as a TODO for FT2.
-- add XS for i_tags_get_string() and test it.  It has an apparent problem
-  in C<< sprintf(value, "%d", entry->data); >> since data is a pointer
-  (done)
-- test and fix problem with fallback value for 
-  Imager::Font::BBox->advance_width. (done)
-- check handling of string() method align parameter.
-- i_tt_bbox_inst in font.c uses variable i without ever setting it. (fixed)
-- add sample CGI that handles an uploaded image (done)
-- examples for fountain filter in Imager::Filters
-- allow Imager::Fountain to take color descriptions (eg. blue, FF000)
-  instead of color objects for c0 and c1 (done)
-- support newer GIMP gradient files with the Name line (done)
-- provide access to right-side bearing information from the bounding box
-  function (done for all drivers)
-- capture TIFF read warnings (i_warnings tag?) (done)
-- Imager::Matrix2d rotate method only applies offset if both x and y
-  are non-zero, it should do it if either is non-zero (done)
-- add Imager::Cookbook with at least 5 recipes (done)
-- store floating point tags in an appropriate precision (done)
-- allow image creation to fail on malloc() failure for the image data
-  rather than aborting.  The current behaviour could be a denial of
-  service attack.  This has limited utility because of the way memory
-  over commitment works on Linux (done but reverted)
-- eliminate unused variable warning (especially the RETVAL ones in Imager.xs)
-  (done)
-- handle probing for libraries better (use pkg-config or I<library>-config
-  where possible (freetype2 and libpng)) (done)
-- add concept index to Imager.pm pod (done, still working it)
-- replace testimg/penguin-base.ppm with a smaller image (done)
-- add a sample CGI HTML and image generation scripts that work together,
-  with appropriate security management (done)
+BEFORE 0.54
+
+OO interface for i_plin/i_glin (done)
+
+remove gif query from makefile.pl (done)
+
+fallback for read/write_multi to read/write
+
+pnmscale based alternative scale method (done)
+
+rubthrough 4 on 4 (done)
+
+replace dummy test script in dynfilt with a real one (done)
+
+BEFORE 0.50:
+
+skip t82inline.t tests if directory has spaces in name
+
+integrate pod coverage tests
+
+rework iolayers
+
+add .ico support
+
+note lack of IRC support
+
+document parseiptc()
+
+BEFORE 0.48:
+
+scale() fixes/docs, Imager::Transformations going over. (done)
+
+do some more malloc checks (done)
+
+scan $Config{libspath} for directories if we can. (done)
+
+0.47:
+
+- more documentation (and corresponding code cleanup)
+
+- external C API access
+
+- hooks for file reading/writing
+
+- hooks for font types
+
+- hooks for filters
+
+- hooks for fills
+
+- filter pre-processor for handling both image access methods
+
+- move existing loadable filters into separate sub-directories
+
+- write Imager::SDL
+
+- maybe Imager::Tk::Photo
+
+
+0.46: (September 2005)
+
+- check remaining memory allocation calls for integer overflows
+  http://rt.cpan.org/NoAuth/Bug.html?id=8213
+   - check *alloc() calls
+   - check llist_push() calls
+
+- fix Imager::Color warning when $ENV{HOME} isn't set from
+  _get_gimp_color() (done)
+  http://rt.cpan.org/NoAuth/Bug.html?id=13143
+
+- module version numbers (done)
+  http://rt.cpan.org/NoAuth/Bug.html?id=13047 
 
-0.46: (june 2005)
 - allow limits to be set on the size of an image read from a file.  This is
   to prevent an attacker supplying huge images that consume all of 
-  memory causing a denial of service attack.
-- add Imager::Tutorial (see Tk::UserGuide for a structure)
+  memory causing a denial of service attack. (done)
+
+- implement gsamp()/gsampf()/plin() etc methods for those low level image
+  interfaces which don't yet have methods. (done)
+   - code (done)
+   - test (done)
+   - document (done)
+
+- add Imager::Tutorial (see Tk::UserGuide for a structure) (done)
   don't cover installation - belongs in README or INSTALL
   it doesn't need to cover everything - read/write/create/simple drawing
   and simple text - other stuff belongs in the cookbook or in sample code
+
+- rename lib/Imager/Cookbook.pm to lib/Imager/Cookbook.pod (done)
+
 - add 5 more recipes to Imager::Cookbook
-- implement gsamp()/gsampf()/plin() etc methods for those low level image
-  interfaces which don't yet have methods.
+
 - implement i_incomplete for png and gif files.
+
 - documentation audit, check:
   - every method has at least one example, but if the method is complex
     (like transform2, to_paletted, string() for example) it should include 
     a range of examples
   - check each method description to ensure it's reasonably clear.
   - check POD sections (SEE ALSO in particular)
-- rework handling of antialiasing against transparent images
+  - multiple examples for writing GIF images.
+  - name arguments and use those names in the documentation
+    http://nntp.perl.org/group/perl.perl5.porters/102434
+  (#1521, #5608, #8231, #11429, #13058(done))
+
+- have $img->read() act like ($img) = Imager->read_multi() on GIFs (done)
+
+- figure out what the nearest_color filter does, and document it
+
+- remove image.h dependency on t1lib.h (done)
+
+- make sure dynfilt/Makefile.PL gets the same includes that
+  Makefile.PL does.
+
+0.47:
+
+- rework handling of antialiasing and other transparency against
+  transparent images
+
+  Places to check:
+   - text AA rendering
+   - AA line drawing
+   - anything that uses combine (fills in particular)
+   - image scaling? and matrix_transform()'s interpolation
+  http://rt.cpan.org/NoAuth/Bug.html?id=11972
+
+0.48:
+
+- fill out handling of large sample (16/double per sample) images
+  - filters
+  - rendering:
+    - lines
+    - text
+    - boxes
+    - polygons
+  - engines
+    - matrix transform
+    - transform()
+    - transform2()
+  - files:
+    - png
+    - tiff
+    - pnm
 
 Speculation
 -----------
@@ -103,7 +187,7 @@ MultiImage & metadata support:
 
 New Features:
 - Add mng support, pcx and aalib support.
-  - Windows icon files (.ico)
+  - Windows icon files (.ico) (done)
   - ILBM (Amiga) images
   - photoshop files (I think I've seen docs)
   - XBM
@@ -125,7 +209,7 @@ New Features:
   (or even from an existing bold or slanted font)
 
 - utf8 support for text output
-  (available for FT1, freetype2, should be easy for Win32)
+  (available for FT1, freetype2, T1, Win32)
 
 - easy interfaces for text output:
   - align text around point, including:
@@ -220,7 +304,7 @@ Format specific issues:
 - provide patches for libgif and libungif that fix their bugs
   and give a useful extension interface.  Probe for the 
   installation of the patches in Makefile.PL to let gif.c
-  know what features it can use.
+  know what features it can use. (no need anymore)
 
 - Add options for pnm writer to save in any of the p1..P6
   formats.  Even if the input has 1 channel, write 3 and such
@@ -238,7 +322,11 @@ Format specific issues:
 - read more metadata from images, esp tiff tags, EXIF format information 
   from TIFF and JPEG.
 
-- handle 16-bit/sample pgm/ppm files
+- handle 16-bit/sample pgm/ppm files (done)
+
+- "jpeg lossless rotation" - directly manipulates the JPEG
+  representation to rotate, scale or in some limited cases, crop an
+  image.
 
 Documentation:
 - Add to the documentation
@@ -293,3 +381,48 @@ Old release checklists
 - check quant code for integer overflows - done
 - check for old URLs (umich and imager.perl.org/~addi/...) - done
 
+0.45: (march 2005?)
+- resolve fills test failure under 5.8.6/darwin
+  http://www.nntp.perl.org/group/perl.cpan.testers/202802
+  add tests to check if the same problem occurs with other ?: operators
+- stop tga_header_verify() from spewing junk to stdout (done)
+- fix i_setcolors_p bug (done)
+- audit pnm.c (done)
+- audit tga.c (done)
+- audit rgb.c and add tests
+- add META.yml (bypass EU::MM's limited mechanism) (done)
+- implement i_incomplete for bmp files
+- check if freetype 2 is faster/slower than freetype 1 with Imager's glyph
+  caching.  If FT1 is faster, add caching as a TODO for FT2.
+- add XS for i_tags_get_string() and test it.  It has an apparent problem
+  in C<< sprintf(value, "%d", entry->data); >> since data is a pointer
+  (done)
+- test and fix problem with fallback value for 
+  Imager::Font::BBox->advance_width. (done)
+- check handling of string() method align parameter. (done, fixed)
+- i_tt_bbox_inst in font.c uses variable i without ever setting it. (fixed)
+- add sample CGI that handles an uploaded image (done)
+- examples for fountain filter in Imager::Filters (done)
+- allow Imager::Fountain to take color descriptions (eg. blue, FF000)
+  instead of color objects for c0 and c1 (done)
+- support newer GIMP gradient files with the Name line (done)
+- provide access to right-side bearing information from the bounding box
+  function (done for all drivers)
+- capture TIFF read warnings (i_warnings tag?) (done)
+- Imager::Matrix2d rotate method only applies offset if both x and y
+  are non-zero, it should do it if either is non-zero (done)
+- add Imager::Cookbook with at least 5 recipes (done)
+- store floating point tags in an appropriate precision (done)
+- allow image creation to fail on malloc() failure for the image data
+  rather than aborting.  The current behaviour could be a denial of
+  service attack.  This has limited utility because of the way memory
+  over commitment works on Linux (done but reverted)
+- eliminate unused variable warning (especially the RETVAL ones in Imager.xs)
+  (done)
+- handle probing for libraries better (use pkg-config or I<library>-config
+  where possible (freetype2 and libpng)) (done)
+- add concept index to Imager.pm pod (done, still working it)
+- replace testimg/penguin-base.ppm with a smaller image (done)
+- add a sample CGI HTML and image generation scripts that work together,
+  with appropriate security management (done)
+