GBM Change Log

11-May-1992  Initial general release.

29-Nov-1993  Supplied to IBM OS/2 Developer Connection.

01-Aug-1994  Submitted to Internet hobbes.nmsu.edu.

10-Jan-1995  Added gbm_version(), better error checking, const's.
             Added clarification on LZW 'software patent'.
             Submitted to hobbes.nmsu.edu.

16-Jan-1995  Added support for Portrait files (.CVP files).

21-Mar-1995  Fixed palettes in XIMG GemRas files (thanks Eero).
             Fixed GIF writing transcol=edge, & reading local colour tables.
             Added GBMLOGO.EXE to ease use of MAKELOGO.EXE on DevCon CD 6.

16-May-1995  Distribution now uses InfoZIP ZIP.EXE, not PKZIP.EXE 2.04g.
             Added Product Information dialog box to GBMV2.EXE.
             Fixed GBMLOGO.EXE error message trap for non 640x400 bitmaps.

25-Mar-1996  Improved Bitmap reader to tolerate bad #colours in header.
             Fixed reading XBitmaps with digits in their identifiers.
             Added support for ilace flag on GIF output.

01-Apr-1996  Fixed reading XBitmaps with other chars in their identifiers.
             Fixed interlaced GIF support.
             Added Win32 makefile and compilability.
             Added ability to cause GBM.DLL to use user defined I/O funcs.
             Added accessibility of I/O funcs used by GBM.

16-Apr-1996  Applied fixes found by Wonkoo in 1/4/1996 release.
             Increase warning levels for OS/2 compile and cleaned up source.
             Added /Os- to work around C-Set++ bug.

29-Apr-1996  Applied fix to GIF/TIFF readers found by David Wendt.

19-Jun-1996  Applied fixes found by Ralf and Andreas.
             Fixed RLE4 Bitmap decoder (thanks for Marc for bug report).

28-Oct-1996  Changed over from IBM C-Set++ to IBM VisualAge C++ with CTC305.
             Fixed 16bpp display bug in GBMV2.EXE.

18-Nov-1996  Added darkfg option on 1bpp BMP writing.
             Fixed printout of 1bpp bitmaps problem.

01-Feb-1997  Changed colour->greyscale coefficients, as Wonkoo suggested.
             Added JPEG support.
             Changed documentation to HTML.
             Submitted to Internet hobbes.nmsu.edu.

01-May-1998  Added initial Linux port.
             Support GIF files without EOI code in compressed data.
             Included source for OS/2 PM Scroller control.

12-Jul-1998  Fixed writing 1bpp PCXs with reverse palettes (ta Wonkoo).
             Fixed OS/2 c0000005 Trap by increasing stack size (ta Gunter).

01-Jan-1999  Added OS/2 _System Gbm_ entrypoints.
             Added support for filenames starting with -, via -- convention.
             Initial port to 32 bit DOS, via Watcom C/C++ and CauseWay.

20-Jan-1999  Fixed reading of .pgm palettes (ta Wonkoo Kim).
             Fixed 2 low probability bugs in LZW encoders in GIF and TIFF.

   ?/?/1999  Change to gbmpgm.c and gbmppm.c to use \n in header.
             Splitting out of OS/2 specific stuff to seperate package.
             Fixed 32 bit DOS port to work properly with JPEG support.

21-Nov-1999  Fixed reading OS/2 bitmaps with < 2**N colours.

04-Jan-2000  Fixed reading of 24 bit GemRas image files.

12-May-2000  Improved TIFF and GIF LZW readers corrupt data detection.
             Improved TIFF LZW decompressor to work if EOI missing (ta Doug).

31-Dec-2000  A few minor tweaks to make source more friendly to Mac compiler.
             Basically factored in Karl Timmermann suggestions, fixed a few
             minor signed/unsigned char problems, and removed some #includes.

05-Feb-2001  gbmsize -a option, Jeroen Mosterts idea.

12-Feb-2001  gbmbpp -c palNbpp options to map to user defined palette.

18-Feb-2004  Added 4x4x4 truncate, halftone and error-diffuse functions.
             Added gbmbpp -m 4x4x4 option.

24-Aug-2005  Heiko Nitzsche:
             Added PNG support via Libpng 1.2.8 and Zlib 1.2.3.

28-Sep-2005  Heiko Nitzsche: GBM version 1.30

             TIF support:
               Replaced original TIF support by Libtiff 3.7.3.
               This adds many additional compression schemes like LZW (with, w/o predictor),
               PackBits, JPEG, Deflate, CCITT and more. Simple CMYK (32, 64 bpp) import is
               available. Now also 32 bpp (with alpha channel), 48 bpp and 64 bpp (with alpha
               channel) import and export is available. The alpha channel is available to the
               application if option ext_bpp is used for import.
               Single bitmaps of multipage TIFFs can be extracted.

             PNG support:
               PNG support from previous release got some fixes and was extended.
               Now also 16 gray level, 32 (with alpha channel), 48 and 64 bpp (with alpha channel)
               import and export is available. Transparency and user defined background is
               supported as well. The alpha channel is available to the application if option
               ext_bpp is used for import.

             For backward compatibility the extended color depths must be explicitly enabled
             by the client (see option ext_bpp) otherwise bitmaps downsampled to 24 bpp are
             provided.

             GBM command line tools:
               The following tools have been extended to support 32, 48 and 64 bpp:
               gbmsize, gbmhdr, gbmref, gbmsub, gbmgamma

               A new format converter gbmconv has been added (also supports extended bpp).


02-Oct-2005  Heiko Nitzsche: GBM version 1.31

             PPM support: (algorithms replaced)
               Can now also read and write 48 bpp RGB files.
               Reading a bitmap from a multipage file is now possible.

12-Dec-2005  Heiko Nitzsche: GBM version 1.32

             TIF support:
               Update to Libtiff 3.7.4
               Fix decoding of separated RGB tiffs
               Fix decoding of non-separated CMYK tiffs (8/16 bits per channel)

             GBM File Dialog:
               Redesign to match standard file dialog (eComStation)
               Add bitmap preview

08-Mar-2006  Heiko Nitzsche: GBM version 1.35

             Reworked GBM documentation.

             OS/2 compiler support extended:
               GBM.DLL, command line tools, GBM file dialog, GBMV and GBMV2 can
               now also be compiled with Open Watcom 1.4. IBM Visual Age C++ for
               OS/2 is still supported. Binaries created with Open Watcom are
               fully compatible with older VAC builds (_Optlink is supported).
               The makefiles use nmake syntax but you can use "wmake /ms /f makefile.wat"
               to compile with Open Watcom's wmake.

             Regression tests:
               A simple set of regression tests has been created. See gbmtest directory.

             BMP support:
               Add support for reading RLE24 compressed bitmaps

             Code changes:
               All bitmap format descriptions have been moved to gbmdesc.h to
               support simplified localization.

             API extensions:
               New APIs have been added:
               1. gbm_restore_io_setup()
               2. gbm_read_imgcount()
               3. Compiler independent modes for gbm_io_open() and gbm_io_create()
                  are now provided. Use only the new GBM_O_* modes for new applications!
                  The defined values are backward compatible to VAC++ 3.0 to keep
                  compatibility with older applications.
               4. gbm_io_lseek() should only be used with the new compiler independent
                  origin defines GBM_SEEK_*. The new definitions are backward compatible
                  to VAC++ 3.0 to keep compatibility with older applications.
                    
               The import library gbm.lib does reflect the extended API.
               If your application has to be compatible to GBM.DLL releases
               up to 1.32, you should link against gbmorg.lib. New APIs
               will not be available then. You should still use the new defines.

               Supported multipage image formats: BMP, GIF, TIF, PPM, SPR
               (For all other image formats, the header is tested first and
               on successful detection, 1 is reported.)

             GBM command line tools:
               gbmhdr is now able to display all bitmaps of multipage images.
               The reported index can be used to reference a specific bitmap
               by using option index=n in all command line tools.

               Supported multipage image formats: BMP, GIF, TIF, PPM, SPR


24-Mar-2006  Heiko Nitzsche: GBM.DLL 1.36, GBMDLG/GBMV2 1.23

             GBM.DLL:
             * TIF support:
               Update to Libtiff 3.8.2
               Fix JPEG decoding via RGBA reader for YCbCr JPEGs

             GBM File Dialog:
             * Fix bitmap preview, sometimes the bitmap was not shown due to a scaling issue


29-Mar-2006  Heiko Nitzsche: GBM version 1.37

             Some small performance optimizations for color mapping in TIF, PNG and PPM
             when importing/exporting.

             GBM File Dialog 1.24:
             * Bitmap preview enhanced
               If options are entered into options field and the field loses focus,
               they are now interpreted for the preview. ext_bpp is supported as well
               but because OS/2-PM only supports 24 bpp the bitmap is downsampled
               for the preview.
             * Bitmap info beside preview image extended to show also number of
               contained pages if a recent GBM.DLL is found.
             * Fix dialog resource issue with IBM RC compiler (get rid of CTLDATA at VALUESET)
               which caused a crash with IBM VAC compiled GBMDLG.DLL. OpenWatcom wrc
               didn't cause any issues.



Future?     Palette Manager capability in GBMV.EXE and GBMV2.EXE?
            Non-scaled and fixed scale print for GBMV2.EXE?
            Special logic for print to 1bpp and 3bpp printers for GBMV2.EXE?
            Photo-CD, saving RLE-Bitmap, G3-Bitmap for GBM.DLL?
            My free time is scarce - don't hold your breath!