
EGI
---------------------------------------------------------------------------
                                                                Version 1.2
                                                                   May 1997


Thank you for your interest in EGI. The EGI tools are used to create
and play Autodesk Animator FLIC files. These animations can be embedded in
your programs. See EGI.DOC for a complete description of both the FLIC
compiler and the FLIC player in the EGI product. Commercial information is
at the bottom of this file.

    ITB CompuPhase
    Brinklaan 74-b
    1404 GL  Bussum
    The Netherlands (Pays Bas)

    Compuserve: 100115,2074
    e-mail:     CompuPhase@compuserve.com
    WWW:        http://ourworld.compuserve.com/homepages/CompuPhase


Acknowledgement
---------------
To show how transparent FLIC files work, I added a tiled background in the
animation window. One of the tiles I used for this was made by "leebert", and
can be found on CompuServe as the file LEEBMP.ZIP in forum WINAV, library 8.
There are many other, very pretty, tiles in the archive. I selected BOBTILE
mainly because the only animation files that I distribute with EGI feature
Zonya as the heroin, and Zonya enjoys to be in the limelight.

The other two tiles came from my Windows95 subdirectory.


32-bit version included
-----------------------
Early releases of EGI did not include the 32-bit version of the player
DLL to save space in the .ZIP file. However, a number of potential users
reported that they were developing solely for Win32 and so they could not
evaluate the product. Therefore, as of version 1.1, I have added the 32-bit
version of the player in the evaluation version.

That immediately leads to another issue: you need a separate .LIB file for
all three 32-bit compilers that I support explicitly. There are four (4) .LIB
files in the .ZIP file:
        EPLAY.LIB       for all 16-bit MS-Windows compilers
        EPLAY32B.LIB    for Borland C++ 5.0
        EPLAY32M.LIB    for Visual C/C++ 4.x
        EPLAY32W.LIB    for Watcom C/C++ 10.6


New in version 1.2
------------------
Version 1.2 is faster and more convenient to combine with other software.

o  The decompiler understands segmented FLIC files. Also new is the "/info"
   option with which you can a few lines with the basic information of the
   FLIC file (its dimensions, the number of frames, etc.).

   The decompiler now also checks (and warns) on inconsistencies in the FLIC
   file header. It appears that most FLIC players are very forgiving (whereas
   the EGI player was rather strict) and that there are a few programs (even
   by Autodesk) that create incorrect FLIC file headers.

o  New utility MKSCRIPT removes the burden of typing script files if you
   already have a sequential list of pictures. MKSCRIPT scans the directory,
   sorts the files and writes the script. It can optionally call the EGI
   compiler directly after creating the script file.

   For an example of its use, go to the EXAMPLES\CLEF directory and type:

        mkscript /c /ping /speed=100 clef *.pcx

   This creates CLEF.SCR with the pictures CLEF-00.PCX to CLEF-06.PCX and
   back (the "/ping" option) and calls the compiler to create CLEF.LFC (the
   "/c" option).

   MKSCRIPT has a few more options. Type "mkscript /?" to list them.

o  The 32-bit version has become a lot faster than previous versions. Several
   critical routines have been hand-optimized in assembler. Both the 16-bit
   and the 32-bit player DLLs now open FLIC files that were not made by
   EGI significantly faster. (The reason is that the EGI compiler puts
   several values in the FLIC file header that the player needs. Previous
   versions of the player DLLs browsed through the FLIC file when this
   information was absent from the header, The current version allocates
   more resources than can possibly be needed by the FLIC file.)

o  When you create a compressed FLIC file (Huffman or Burrows-Wheeler), the
   compiler now sets a private FLIC id in the header, so that other FLIC
   players won't try to interpret the data in the chunks.

   The EGI 1.2 player DLLs can read compressed FLIC files created with any
   version of the EGI compiler. Previous versions of the player will not
   accept compressed FLIC files created with the new compiler. So either
   distribute the new DLL with any compressed FLIC files, or continue to
   use version 1.1 for compressed FLIC files.

o  The EGI player has become much more forgiving regarding FLIC files with
   incorrect headers. As a result, version 1.2 will play FLIC files that
   previous versions rejected.

o  The Windows version of the compiler has got a small integrated editor,
   to correct typing errors or other small mistakes.

o  New parameter FLIC_PARAM_PALMODE superseedes FLIC_PARAM_CHGPAL. In addition
   to set the palette in the FLIC file or to adapt to the current system
   palette, it also allows you to set a specific palette. Values for this
   new parameter are:
     FLIC_PAL_ADAPT     same as FLIC_PARAM_CHGPAL / FALSE
     FLIC_PAL_ANIM      same as FLIC_PARAM_CHGPAL / TRUE (this is the default)
     FLIC_PAL_SPECIFIC  use the palette handle that is set with the function
                        FlicSetHandle().

   FlicSetHandle() is a new function. The only option it allows in this
   release is FLIC_HANDLE_PALETTE.

   If you set an explicit palette, you are also responsible for deleting
   it (but first make sure no animation is using the palette).

o  New parameter FLIC_PARAM_IDENTPAL returns whether the palette in the FLIC
   file is identical to the logical palette that is used for the BitBlt
   function. If the palettes are the same, the EGI player uses a faster BitBlt
   mode (i.e. faster than the BitBlt mode that is used when the palettes are
   different).

o  A C++ class for the player interface is included in EPLAY.H.

o  There is limited support for Win32s. That is, everything works except
   FlicPlay(). Function FlicPlay() requires either threads (which aren't
   supported by Win32s) or Windows 3.1 multimedia extensions (that only
   work with 16-bit code). But you can call FlicNextFrame() and FlicPaint()
   to play a FLIC file (you will only have to supply your own timing).

o  Version 1.2 drops WinG support. Although WinG is "very fast" according
   to some, it has always performed slower than StretchDIBits() on the
   three (different) machines that I tested it on. In addition, WinG
   carries many subtleties with it (the WinG DC is not a palette device
   under Windows 3.1, but it is under Windows95; bitmaps can be top-down
   or bottom-up; etc.). So I decided to scrap WinG.

o  On the positive side, the 16-bit player now uses DIB sections under
   Windows95. Officially, WinG is a pass-through to DIB sections when run
   under Windows95, so using DIB sections directly is just as good. (The
   32-bit versions has always supported DIB sections and has never used
   WinG.)

o  The 16-bit player should run more fluent when you play several FLIC
   files simultaniously on a machine that can barely keep up with the
   animations. (In previous versions, a single animation would run fluently
   and the other(s) would run very slow. Now the degradation in speed is
   more even over all animations.)

o  There is one additional error code: FLIC_ERROR_UNSUPPORTED, which is
   returned for any operation that is technically valid, but that the current
   setup does not support. For example, an attempt to set the BitBlt mode to
   FLIC_MODE_DIBSECTION under Win32s is flagged as "unsupported".

o  The Windows version of the compiler added its icon to its dialog template,
   but by doing so, it forced the EGI icon into every dialog box created
   thereafter. The new release has a different way to add the icon.

o  ECOMPW could crash when compiling two files sequentially that both use
   the #define instruction. At the end of the script the definitions were
   not cleaned up correctly. This has been fixed.

o  When using segments withou ring frames, the "read-ahead" optimization
   introduced in version 1.1 would sometimes block the animation. This
   has been fixed.


New in version 1.1
------------------
Version 1.1 is meant to be a corrective update. There are only few new
features.

o  A version of the EGI compiler with a Microsoft Windows interface is now
   included.

o  All utilities now support long filenames (if these are provided by the
   operating system). The decompiler has the switch "/sfn" to force the use
   of short filenames on operating systems that support long filenames. The
   decompiler uses long filenames by default.

o  The compiler supports an option to adapt all images to an explicit palette.
   See the section "Documentation update" below for details.

o  The palette handling has been totally reworked in the EGI player. When
   you ask the animation to adapt to the current palette, the EGI player
   installs a palette spy and grabs the system palette every time that it
   changes. It also automatically detects whether the system palette happens
   to be identical to the animation palette (by coincidence or by design),
   and selects a faster BitBlt mode if so.

o  Due to an oversight, you would have a problem playing back five or more
   FLIC files at the same time, at least in 16-bit mode. This was corrected.

o  If WinG is installed on a system, the EGI player would free a memory
   block twice. If you run under the debugging kernel of Windows 3.1, you
   would get a warning for freeing a NULL global handle.

o  There is now better checking for extended FLIC files. Several FLIC files
   that we came accross with a slightly different format now also play
   correctly.

o  The 16-bit version could hang if there was insufficient conventional
   memory to load MMTASK. Unfortunately, several drivers and applications
   use up conventional memory with no good reason. Windows 95 suffers far
   less from this problem than Windows 3.1.

o  To increase the "fluency" of an animation, the player now reads a frame
   ahead.


COMMERCIAL INFORMATION
----------------------

You can order EGI by using the included order form (file ORDER.FRM in the
archive).


1. Contents of the product

EGI version 1.2 consists of:

  FLIC compiler (DOS and Windows versions)
  FLIC decompiler
  script generator
  FLIC players for Windows 3.1 and Windows 95
  development libraries, programming examples
  printed manual

The decompiler converts a FLIC file into a series of PCX images and a script
file. It is provided to aid converting existing FLIC files to the enhanced
format used by EGI, in order to take advantage of features offered by EGI that
are not provided with other tools. The decompiler may not handle FLIC files
that use extensions beyond the format defined by Autodesk Animator Pro.


2. Price information

All prices are in Dutch Guilders (NLG). Approximate prices in Dollars
are given between parentheses, based on an exchange rate of 1.90 Dutch
Guilder for every Dollar.

Several license are available. The costs for shipping and
handling is NLG 35,--.

EGI 16-bit or 32-bit                              NLG 205,--
                                                  ($ 110.=)
   Includes:
          EGI compiler
          EGI decompiler
          EGI script generator
          EGI player in either 16-bit or 32-bit
          manual

   The EGI player may be distributed (without royalties) in combination
   with an application or development tool that uses the EGI player. The
   EGI compiler, decompiler, manual, examples or development files may
   not be distributed (and only be duplicated for backup purposes).


EGI both 16-bit and 32-bit                        NLG 275.=
                                                  ($ 145.=)
   Includes:
          EGI compiler
          EGI decompiler
          EGI script generator
          EGI player in both 16-bit or 32-bit versions
          manual

   The EGI players may be distributed (without royalties) in combination
   with an application or development tool that uses the EGI player. The
   EGI compiler, decompiler, manual, examples or development files may
   not be distributed (and only be duplicated for backup purposes).


EGI 16/32-bit plus source                         NLG 650.=
                                                  ($ 345.=)
   Includes:
          EGI compiler, including source
          EGI decompiler, including source
          EGI script generator, including source
          EGI players in both 16-bit or 32-bit versions,
            including source
          manual

   Libraries and source code that are licensed from other parties are
   not included (this includes the run-time library of the C compiler).

   Modified, or unmodified, versions of the EGI compiler may not be
   resold or distributed. Modified, or unmodified, versions of the
   EGI players may be distributed only in executable form and only in
   combination with an application that uses the EGI player(s). The
   manual or other development files may not be resold or distributed.


Royalty free distribution of EGI compiler & manual: to be negotiated

   This license gives you the right, under certain conditions, to
   distribute the compiler, the decompiler, and the 16-bit and
   32-bit players. The EGI manual may still not be duplicated or
   distributed. The precise terms and conditions, as well as the
   price of this license are to be negotiated. Below are some
   guidelines to such a license.

   The EGI compiler, decompiler and players may only be distributed
   together with an application or development tool that uses the
   EGI compiler and the EGI players. The price for the license to
   distribute the product is as of NLG 4.000,-- but depends on
   how your product relates to EGI.

   You will not obtain an exclusive license to distribute EGI. That
   is, others may also negotiated a license with us to distribute
   the compiler, decompiler and players.

   If you have licensed EGI with source code, this "royalty free
   distribution" license also gives you the right to sell modified
   versions of the EGI compiler and players, but again, only if they
   are packaged together with an application or development tools
   that uses the EGI compiler and/or player.

   This option requires a signed license agreement.

