home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / useful / dist / gfx / show / superview-lib / docs / svobject-docs / gif.doc < prev    next >
Text File  |  1994-07-04  |  9KB  |  284 lines

  1.  
  2.   GIF.svobject
  3.  
  4.   © 1993-94 by Andreas R. Kleinert.
  5.  
  6.   FREEWARE. All rights reserved.
  7.  
  8.   Version      : 2.10
  9.   Release Date : 05.06.1994
  10.  
  11.  
  12.   Requirements
  13.   ~~~~~~~~~~~~
  14.   - OS V2.04+ (V37)+ and its libraries
  15.   - superviewsupport.library V3+
  16.  
  17.  
  18.   Description
  19.   ~~~~~~~~~~~
  20.   GIF.svobject is an external Library-Module for the superview.library V2+.
  21.  
  22.   It contains SVDriver-Support for the superview.library V3+, and
  23.   needs any SVDriver with ChunkyPixel-Support.
  24.  
  25.   It supports reading and writing of GIF Files.
  26.   In detail these are :
  27.  
  28.   Reading :
  29.  
  30.    - GIF 87a
  31.    - GIF 89a
  32.  
  33.   Writing :
  34.  
  35.    - GIF 87a
  36.    - GIF 89a
  37.  
  38.    Source Colors    Version     Type           Destination Colors
  39.  
  40.    2 .. 256        GIF 87/89a     chunky pixel       2 .. 256
  41.  
  42.  
  43.   A special 68030+ Version of GIF.svobject is called "GIF.svobject.030" and
  44.   has to be copied/renamed to GIF.svobject before usage (it runs on the
  45.   68020 as well, but might be more suitable for the 68030 : Only the
  46.   Compiler knows about it ... ;).
  47.   GIF.svobject works fine with Instruction Cache (Burst) and Data Cache
  48.   (Burst).
  49.  
  50.  
  51.   Bugs and other Problems
  52.   ~~~~~~~~~~~~~~~~~~~~~~~
  53.   Fixed : The Decoding Routines are fully re-entrant since V2.2 !
  54.  
  55.   Please note, that the Encoding Routines of the Library are not (yet)
  56.   fully re-entrant, so that only one Task may Encode a picture at a time.
  57.   The Library itself manages it, that the other Task has to Delay() until
  58.   the Encoding Routines are "free" again.
  59.   This makes NOT REALLY A MATTER, because Encoding takes so much of the
  60.   processor's time, that it is NOT EFFICIENT to ENCODE TWO OR MORE
  61.   pictures AT THE SAME TIME ANYWAY !
  62.  
  63.   Nevertheless for example it is possible to decode a picture at the same
  64.   time an other is been encoded, due to the fact, that the decoding
  65.   routines do not share any data or variables with the encoding routines.
  66.  
  67.  
  68.   Author
  69.   ~~~~~~
  70.   Andreas R. Kleinert
  71.   Grube Hohe Grethe 23
  72.   D-57074 Siegen
  73.   Germany
  74.  
  75.  
  76.   History :
  77.   ~~~~~~~~~
  78.   V2.10 (05.06.1994) :
  79.  
  80.    - SVObject flags now reflect, that GfxBuffers can be written
  81.  
  82.  
  83.   V2.9 (03.06.1994) :
  84.  
  85.    - again did some optimization of LZW decoding routines :
  86.       - replaced some weird loops with simple bit-shifting operations
  87.       - forced longword-usage for 68030 version
  88.      (there's still room for more optimization, but can you tell me,
  89.       HOW this can be done without producing garbage ... ?!)
  90.    - version still reflected 2.7 instead 2.8. Now we're at 2.9 :-)
  91.  
  92.  
  93.   V2.8 (27.05.1994) :
  94.  
  95.    - now saving of GfxBuffers is possible : internal write routines have
  96.      been completely rewritten, so that supplied Screens are transferred
  97.      to GfxBuffers before saving. BitPlane AND OnePlane Buffers upto
  98.      8 Bit are supported : they are converted to each other by using the
  99.      appropriate functions of superviewsupport.library V3+.
  100.  
  101.  
  102.   V2.7 (07.05.1994) :
  103.  
  104.    - use of SAS/C V6.51
  105.    - use of new "superviewsupport.library" V1
  106.      This saves some space again (here : ca. 1600 Bytes).
  107.  
  108.  
  109.   V2.6 (16.04.1994) :
  110.  
  111.    - now using "libcall" pragmas in 68030-Code, which should be faster
  112.    - _strongly_ optimized LWZ decoding routines : these will hopefully
  113.      be much faster on 68000 machines. On the 68030 it's hard to decide,
  114.      whether there's an increase or not.
  115.    - interlaced and simple raster decoding has been joined to one single
  116.      routine, so that there are no longer any unnecessary redundancies
  117.    - side effects of these changes :
  118.      interlaced graphics should be read somewhat faster, because
  119.      the "skipping code" for the passes has been changed to allow
  120.      simple adaption of the raster file decoding routine
  121.    - shortly : it's smaller (some routines), faster, better !
  122.  
  123.  
  124.   V2.5 (27.03.1994) :
  125.  
  126.    - removed internal SVDriver-Replacement, so that we now are really
  127.      dependent on external SVDrivers in libs:svdrivers.
  128.      This saves about 1600 Bytes diskspace and reduces redundancy.
  129.    - replaced SAS/C's sprintf()-routine with own, RawDoFmt()-based one.
  130.      This saves again about 1800 Bytes.
  131.    - now using Utility-Library for integer operations (activated
  132.      SAS/C's UTILLIB option) : this increases 68000-codesize a little
  133.      bit more than 68030-codesize, but increases speed on 68020+ systems
  134.      (should also decrease codesize, but does not ...)
  135.  
  136.  
  137.   V2.4 (25.03.1994) :
  138.  
  139.    - slightly improved internal BitMap-to-BitMap routine
  140.  
  141.  
  142.   V2.3 (17.03.1994) :
  143.  
  144.    - fixed "large memory usage" bug in internal ECS-ChunkyPixel routine
  145.    - added several security checks (zero-pointers)
  146.    - multiple enconding was not enabled (although possible, since the
  147.      decoding routines are fully re-entrant since V2.2) due to an internal
  148.      flag check : now they are.
  149.      This will perhaps not be fast at all, but for 4-Color GIFs it should
  150.      suffice ... ;)
  151.    - improved (hopefully) LWZ-Decoding a little bit
  152.    - improved handling of "worst case" : unexpected end of file situations
  153.      (source buffer for GIF Encoding too small)
  154.      Now will be handled faster.
  155.    - changed 68020 version to 68030 version : both processors are binary
  156.      compatible, but perhaps there are differences in execution time,
  157.      which may be important for optimizations ...
  158.  
  159.  
  160.   V2.2 (13.03.1994) :
  161.  
  162.    - decoding routines now are fully re-entrant (no more local static
  163.      variables inside decoding routines)
  164.    - AGAIN : fixed same bug as in V1.2 (GIF87a ColorDepth)
  165.      (re-occured in V2.1)
  166.    - this version has been released as bug-fix to V2.1
  167.      (superview.library V3.1 release)
  168.  
  169.  
  170.   V2.1 (09.03.1994) :
  171.  
  172.    - now with SVDriver-Support. Not yet necessarily needed.
  173.    - added Write Support for GIF 87a and GIF 89a under usage of
  174.      _strongly_ modified FBM routines (see copyright notices under
  175.      credits)
  176.    - improved internal "Chunky Pixel to BitMap" (8 Bit) Routine
  177.    - optimized GIF decoding a little bit !?
  178.    - fixed small bug in memory management routines
  179.    - internal routines : AUTOSCROLL now really works with big-sized Screens
  180.    - fixed several little bugs
  181.  
  182.  
  183.   V1.4 (29.01.1994) :
  184.  
  185.    - fixed bug with reading of interlaced GIFs
  186.    - fixed bug in former optimizations
  187.    - small speed improvements
  188.    - added special 68020+ version (GIF.svobject.020) to the distribution
  189.      archive
  190.  
  191.  
  192.   V1.3 (24.01.1994) :
  193.  
  194.    - fixed bug with setting ColorMap under V37/V38
  195.  
  196.  
  197.   V1.2 (16.01.1994) :
  198.  
  199.    - fixed bug with GIF87a inconsistence with global and local colordepth
  200.  
  201.  
  202.   V1.1 (02.01.1994) :
  203.  
  204.    - first version
  205.  
  206.  
  207.   Literature
  208.   ~~~~~~~~~~
  209.   [1] "Supercharged Bitmapped Graphics", Steve Rimmer, Windcrest/McGraw-Hill,
  210.        © 1992 by Windcrest Books (registered Trademark of TAB Books).
  211.        ISBN 0-8306-3788-5
  212.   [2] "DOS Extra", Issue 4/1993, DMV-Verlag
  213.  
  214.  
  215.   Credits
  216.   ~~~~~~~
  217.   For the GIF LWZ Decoding Routines I used some code of the FBM Package.
  218.   The code of the original routines has been _strongly_ modified and
  219.   enhanced/improved.
  220.   Here's the Copyright notice as found in the file "flgifr.c" :
  221.  
  222.  
  223.  * flgifr.c: FBM Release 1.0 25-Feb-90 Michael Mauldin
  224.  *
  225.  * Modifications to GIFTORLE are Copyright (C) 1989,1990 by Michael
  226.  * Mauldin.  Permission is granted to use this file in whole or in
  227.  * part for any purpose, educational, recreational or commercial,
  228.  * provided that this copyright notice is retained unchanged.
  229.  * This software is available to all free of charge by anonymous
  230.  * FTP and in the UUNET archives.
  231.  *
  232.  * Derived from 'giftorle', written by David Koblas
  233.  *
  234.  * +------------------------------------------------------------------+
  235.  * | Copyright 1989, David Koblas.                      |
  236.  * |   You may copy this file in whole or in part as long as you      |
  237.  * |   don't try to make money off it, or pretend that you wrote it.  |
  238.  * +------------------------------------------------------------------+
  239.  
  240.  
  241.   For the GIF LWZ Encoding Routines I used some code of the FBM Package.
  242.   The code of the original routines has been _strongly_ modified and
  243.   enhanced/improved.
  244.   Here are the Copyright notice of these modules as found in the files
  245.   "flgife.c" and "flgifc.c" (revision headers cut off / left out) :
  246.  
  247.  * flgife.c: FBM Release 1.0 25-Feb-90 Michael Mauldin
  248.  *
  249.  * Modifications to GIFENCODE are Copyright (C) 1989,1990 by
  250.  * Michael Mauldin.  Permi