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 >
Wrap
Text File
|
1994-07-04
|
9KB
|
284 lines
GIF.svobject
© 1993-94 by Andreas R. Kleinert.
FREEWARE. All rights reserved.
Version : 2.10
Release Date : 05.06.1994
Requirements
~~~~~~~~~~~~
- OS V2.04+ (V37)+ and its libraries
- superviewsupport.library V3+
Description
~~~~~~~~~~~
GIF.svobject is an external Library-Module for the superview.library V2+.
It contains SVDriver-Support for the superview.library V3+, and
needs any SVDriver with ChunkyPixel-Support.
It supports reading and writing of GIF Files.
In detail these are :
Reading :
- GIF 87a
- GIF 89a
Writing :
- GIF 87a
- GIF 89a
Source Colors Version Type Destination Colors
2 .. 256 GIF 87/89a chunky pixel 2 .. 256
A special 68030+ Version of GIF.svobject is called "GIF.svobject.030" and
has to be copied/renamed to GIF.svobject before usage (it runs on the
68020 as well, but might be more suitable for the 68030 : Only the
Compiler knows about it ... ;).
GIF.svobject works fine with Instruction Cache (Burst) and Data Cache
(Burst).
Bugs and other Problems
~~~~~~~~~~~~~~~~~~~~~~~
Fixed : The Decoding Routines are fully re-entrant since V2.2 !
Please note, that the Encoding Routines of the Library are not (yet)
fully re-entrant, so that only one Task may Encode a picture at a time.
The Library itself manages it, that the other Task has to Delay() until
the Encoding Routines are "free" again.
This makes NOT REALLY A MATTER, because Encoding takes so much of the
processor's time, that it is NOT EFFICIENT to ENCODE TWO OR MORE
pictures AT THE SAME TIME ANYWAY !
Nevertheless for example it is possible to decode a picture at the same
time an other is been encoded, due to the fact, that the decoding
routines do not share any data or variables with the encoding routines.
Author
~~~~~~
Andreas R. Kleinert
Grube Hohe Grethe 23
D-57074 Siegen
Germany
History :
~~~~~~~~~
V2.10 (05.06.1994) :
- SVObject flags now reflect, that GfxBuffers can be written
V2.9 (03.06.1994) :
- again did some optimization of LZW decoding routines :
- replaced some weird loops with simple bit-shifting operations
- forced longword-usage for 68030 version
(there's still room for more optimization, but can you tell me,
HOW this can be done without producing garbage ... ?!)
- version still reflected 2.7 instead 2.8. Now we're at 2.9 :-)
V2.8 (27.05.1994) :
- now saving of GfxBuffers is possible : internal write routines have
been completely rewritten, so that supplied Screens are transferred
to GfxBuffers before saving. BitPlane AND OnePlane Buffers upto
8 Bit are supported : they are converted to each other by using the
appropriate functions of superviewsupport.library V3+.
V2.7 (07.05.1994) :
- use of SAS/C V6.51
- use of new "superviewsupport.library" V1
This saves some space again (here : ca. 1600 Bytes).
V2.6 (16.04.1994) :
- now using "libcall" pragmas in 68030-Code, which should be faster
- _strongly_ optimized LWZ decoding routines : these will hopefully
be much faster on 68000 machines. On the 68030 it's hard to decide,
whether there's an increase or not.
- interlaced and simple raster decoding has been joined to one single
routine, so that there are no longer any unnecessary redundancies
- side effects of these changes :
interlaced graphics should be read somewhat faster, because
the "skipping code" for the passes has been changed to allow
simple adaption of the raster file decoding routine
- shortly : it's smaller (some routines), faster, better !
V2.5 (27.03.1994) :
- removed internal SVDriver-Replacement, so that we now are really
dependent on external SVDrivers in libs:svdrivers.
This saves about 1600 Bytes diskspace and reduces redundancy.
- replaced SAS/C's sprintf()-routine with own, RawDoFmt()-based one.
This saves again about 1800 Bytes.
- now using Utility-Library for integer operations (activated
SAS/C's UTILLIB option) : this increases 68000-codesize a little
bit more than 68030-codesize, but increases speed on 68020+ systems
(should also decrease codesize, but does not ...)
V2.4 (25.03.1994) :
- slightly improved internal BitMap-to-BitMap routine
V2.3 (17.03.1994) :
- fixed "large memory usage" bug in internal ECS-ChunkyPixel routine
- added several security checks (zero-pointers)
- multiple enconding was not enabled (although possible, since the
decoding routines are fully re-entrant since V2.2) due to an internal
flag check : now they are.
This will perhaps not be fast at all, but for 4-Color GIFs it should
suffice ... ;)
- improved (hopefully) LWZ-Decoding a little bit
- improved handling of "worst case" : unexpected end of file situations
(source buffer for GIF Encoding too small)
Now will be handled faster.
- changed 68020 version to 68030 version : both processors are binary
compatible, but perhaps there are differences in execution time,
which may be important for optimizations ...
V2.2 (13.03.1994) :
- decoding routines now are fully re-entrant (no more local static
variables inside decoding routines)
- AGAIN : fixed same bug as in V1.2 (GIF87a ColorDepth)
(re-occured in V2.1)
- this version has been released as bug-fix to V2.1
(superview.library V3.1 release)
V2.1 (09.03.1994) :
- now with SVDriver-Support. Not yet necessarily needed.
- added Write Support for GIF 87a and GIF 89a under usage of
_strongly_ modified FBM routines (see copyright notices under
credits)
- improved internal "Chunky Pixel to BitMap" (8 Bit) Routine
- optimized GIF decoding a little bit !?
- fixed small bug in memory management routines
- internal routines : AUTOSCROLL now really works with big-sized Screens
- fixed several little bugs
V1.4 (29.01.1994) :
- fixed bug with reading of interlaced GIFs
- fixed bug in former optimizations
- small speed improvements
- added special 68020+ version (GIF.svobject.020) to the distribution
archive
V1.3 (24.01.1994) :
- fixed bug with setting ColorMap under V37/V38
V1.2 (16.01.1994) :
- fixed bug with GIF87a inconsistence with global and local colordepth
V1.1 (02.01.1994) :
- first version
Literature
~~~~~~~~~~
[1] "Supercharged Bitmapped Graphics", Steve Rimmer, Windcrest/McGraw-Hill,
© 1992 by Windcrest Books (registered Trademark of TAB Books).
ISBN 0-8306-3788-5
[2] "DOS Extra", Issue 4/1993, DMV-Verlag
Credits
~~~~~~~
For the GIF LWZ Decoding Routines I used some code of the FBM Package.
The code of the original routines has been _strongly_ modified and
enhanced/improved.
Here's the Copyright notice as found in the file "flgifr.c" :
* flgifr.c: FBM Release 1.0 25-Feb-90 Michael Mauldin
*
* Modifications to GIFTORLE are Copyright (C) 1989,1990 by Michael
* Mauldin. Permission is granted to use this file in whole or in
* part for any purpose, educational, recreational or commercial,
* provided that this copyright notice is retained unchanged.
* This software is available to all free of charge by anonymous
* FTP and in the UUNET archives.
*
* Derived from 'giftorle', written by David Koblas
*
* +------------------------------------------------------------------+
* | Copyright 1989, David Koblas. |
* | You may copy this file in whole or in part as long as you |
* | don't try to make money off it, or pretend that you wrote it. |
* +------------------------------------------------------------------+
For the GIF LWZ Encoding Routines I used some code of the FBM Package.
The code of the original routines has been _strongly_ modified and
enhanced/improved.
Here are the Copyright notice of these modules as found in the files
"flgife.c" and "flgifc.c" (revision headers cut off / left out) :
* flgife.c: FBM Release 1.0 25-Feb-90 Michael Mauldin
*
* Modifications to GIFENCODE are Copyright (C) 1989,1990 by
* Michael Mauldin. Permi