EGI
---------------------------------------------------------------------------
                                                                Version 3.0
                                                               January 2000


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.PDF for a complete description of both the FLIC
compiler and the FLIC player in the EGI product.

This is an evaluation version. The evaluation version may be distributed in
its entirity. Commercial information is at the bottom of this file.

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

    Fax:        +31 35 693 9293
    Compuserve: 100115,2074
    e-mail:     info@compuphase.com
    WWW:        http://www.compuphase.com/




PRODUCT OVERVIEW
----------------

EGI is a tool to create and play back frame based animation sequences.
These sequences can be embedded into a (multimedia) application that
runs under Microsoft Windows 3.x, Microsoft Windows 95/98 and Microsoft
Windows NT. The product consists of a compiler, players for the
supported environments and a decompiler (see Product Components).

The compiler takes a series of pictures as input (in the BMP, PCX, TGA
or SPR formats) plus a script file that relates the pictures to each
other. The output consists of a single file with the animation sequences
(there can be multiple sequences per generated output file). The format
of the output file is a superset of the FLIC format that is used by
Autodesk Animator and related products. If desired, the EGI compiler can
create FLIC files that are fully compatible with Autodesk Animator.

The EGI players are dynamically loaded libraries (DLLs) that take a
compiled animation file as input and display the frames at the screen
location and the speed as specified by an application. Both files
created by Autodesk Animator (or related products) and files created by
EGI are accepted. There are separate players for 16-bit and 32-bit
Microsoft Windows environments. The players offer a rich API by means of
which they are easily integrated with C or other programming languages.

The decompiler is provided to aid converting existing FLIC files to the
enhanced format that is used by EGI. Through this enhanced format,
features like segmentation and transparency are achieved.



New in version 3.0
------------------
Support for 16-bit HiColor FLIC files; support for C-like programming
scripts to increase the flexibility of the animations; support for
DirectDraw; better integration with AniSprite, and more...

o  Support for 16-bit RGB colour depth ("HiColor" mode). These FLIC files
   do not contain a palette. The 16-bit FLIC files are compatible with
   those generated by the well known DTA program by Dave K. Mason
   (unless, of course, you use other EGI extensions as well). For 16-bit
   programs running under Windows 3.1x, you may need to have "Video for
   Windows" extensions installed for the HiColor FLIC file to display
   correctly.

o  The 32-bit player can decode the frames in a DirectDraw surface. Once
   that is done, you can blit the (secondary) surface to the primary
   surface, or flip surfaces and pass the new secondary surface to the
   player for the next frame.

o  For 8-bit animations, EGI now provides "Riemersma dither" as
   yet-another dither algorithm. Riemersma dither was designed for frame
   animation sequences with optimized palettes; it combines a high
   quality dither with good delta compression capabilities. We encourage
   you to use Riemersma dither instead of the error diffusion dithers
   that EGI also still provides. Riemersma dither is also the slowest
   dither, though.

   For those who are interested, the details of the dither technique can
   be found at: "http://www.compuphase.com/riemer.htm".

o  An EGI script may contain an embedded "Small" script to define
   run-time behaviour of the animations. "Small" is a flexible scripting
   language that is freely available at "http://www.compuphase.com/small.htm".
   The EGI compiler invokes Small compiler to generate P-code (bytecode)
   of the Small script, which it then includes in the FLIC file.

o  The EGI compiler now supports 24-bit uncompressed Targa images (.TGA
   files). A few rendering programs can produced Targa files with
   sequentially numbered filenames. These images can now be directly
   used with the EGI compiler.

o  To access the player DLLs more easily from Visual Basic, the DLLs
   include a type library. This library (embedded in the DLL) replaces
   the .BAS glue file(s) of earlier versions. See the manual for usage
   instructions.

o  The package comes with retail and "trace" versions of the 16-bit and
   32-bit player DLLs. The debug versions output more diagnostics, which
   can be intercepted with a system debugger or a special utility.

o  The player DLLs now include the function descriptions that Macromedia
   Authorware needs. That is, the DLLs now function as UCDs. You may
   rename the files EPLAY.DLL and EPLAY32.DLL to EPLAY.UCD and
   EPLAY32.U32 respectively to make this explicit, but Authorware does
   not require this step.

o  Every frame can now have a specific delay; this allows for very
   flexible slow-in and slow-out animations, for example. To set a frame
   specific delay, use the "speed()" instruction inside a "frame()"
   instruction.

   Note: segments that use frame specific delays cannot use the
   "wave_sync" feature, because the audio synchronization requires that
   keyframes are separated at precise time intervals.

o  Every frame can now have an "origin": a pixel position in the sprite
   that you define as point (0,0). Setting an origin often makes it
   easier to align an animation to the background, or multiple
   animations to each other.

o  For compatibility with the Small scripting language, the "rgb"
   function in the EGI compiler now allows you to separate the
   parameters with commas. That is, you can now write "rgb(255,0,255)"
   to specify magenta. The commas are optional, so you may also still
   write "rgb(255 0 255)" to do the same.

   Optional commas to separate the parameters also apply to the new
   command "origin".

o  The player DLLs (and the EGI compiler) support multiple transparent
   colours, to use for semi-transparent shadows or for alpha-blending.
   The multi-level masks map directly to AniSprite's "luma masks" and
   "alpha masks".

o  Palette handling updated: it turns out that the "static colours" of
   the Microsoft Windows palettes are not that static at all. Read more
   on this (and the way to "fix" it) on http://www.compuphase.com/palette.htm.

o  The MKSCRIPT utility now supports multiple transparent values. It can
   also add a wave audio file to the script that it generates.

o  The Windows version of the compiler now supports long filenames and
   long pathnames under Windows NT. The player DLLs already supported
   long filenames under Windows NT. The DOS tools support long filenames
   under Windows 95/98.

o  The Windows version of the compiler has a "drag-and-drop" client
   inteface, which means that you can drop files from the Windows
   Explorer onto the window of the EGI compiler. The filenames will be
   inserted in the current script (or a new script is created).

o  The calculation of the bounding box (and the region of changes) has
   been improved; previous versions of the EGI compiler had a bug that
   made the bounding box larger than necessary when large "skip counts"
   occurred in the frame.

o  The player now has an option (a parameter) to switch the preloading of
   frames on or off. By default, the player preloads one frame when it
   is playing an animation. This increases the fluency of the animation
   and makes the playback speed more accurate. The disadvantage is that,
   when you stop an animation, the next frame is already in the internal
   buffers and FlicPaint() will show *that* frame (instead of the frame
   that the animation was stopped at). Switching the preloading of
   frames off lifts this problem, at the cost of a slightly less
   accurate frame interval timing. See FlicSetParam() for more
   information.

o  New Function FlicIsValid(), which verifies whether a FLIC handle is
   (still) valid.

o  The Windows version of the compiler could "block" other programs while
   it was running on Windows 95/98. The new version "yields" much more
   often, thereby giving other applications more time to do their
   business.

o  A bug in cleaning up the colour quantizer was fixed. The bug caused a
   crash when running two scripts with true-colour images in a single
   session (in ECOMPW).

o  A bug with cleaning up include files was fixed. The bug caused a crash
   when re-running a script after an aborted first run (in the special
   case that the compiler was parsing an include file at the time that
   the user aborted the run).

o  Under NT, the player could give a non-fatal exception at the time of
   closing an animation. The exception was non-fatal, which means that
   you would not usually see it. However, the Delphi debugger caught the
   exception (and other debuggers may do this too).

o  CD-quality audio (44 kHz, 16-bit, stereo) did not play in the 16-bit
   version of EPLAY.DLL due to an integer overflow bug. This has been
   fixed.

o  A bug in the "file find" functions in the "#makescript" command made
   it fail if it was used several times in a single script file (e.g.
   for several sub-directories).


These are in addition to the features already offered by EGI 2.2:
-----------------------------------------------------------------
o  The 32-bit player DLL supports Unicode filenames. Currently, this only
   works under Windows NT (Windows 95 has only very limited support for
   Unicode). To open a file with an Unicode filename, call FlicOpenEx()
   and add the FLIC_FLAG_UNICODE flag in the "wFlags" parameter. The filename
   and password string can then be passed as Unicode strings (though you
   need to cast them to "LPSTR" type).

o  Animations can be loaded from a file (either by passing a file name or by
   passing a file handle), or from a resource.

o  FLIC animations can now run from memory. This frees a file handle; by
   default, a program has 20 file handles with 5 of them predefined and
   pre-opened. You can also play a FLIC file from a resource or from an
   archive file, provided that you load the resource/file into memory
   yourself.

o  The players can function as extension DLLs for the Microsoft WinHelp
   viewers. In a help file, you can define "embedded windows" with content
   that is defined by an external DLL (in the case of EGI, the embedded window
   displays a FLIC animation). The FLIC file itself is compiled with the
   help file.

o  16-bit and 32-bit MCI drivers, with "extended MCI commands" (reproduced from
   the MCI driver for Video for Windows) like "setaudio" and "setvideo".

o  The compilers, decompiler and script generator support the "SPRITE"
   file format of Cosmigo's Pro Motion, in addition to PCX, and BMP. The
   decompiler generates one sprite file for every segment in the FLIC file.

o  Support for password protection. Caution: you cannot play back or
   decompile a FLIC for which you have forgotten the password.

o  You can add digitized audio to the animation (from .WAV files). Both
   unsynchronized sound (sound effects) and synchronized sound is
   supported.

o  Ability to seek (forward and backward) to any frame in a segment.

o  You can now specify the "sequence" relations between segments. This
   allows you to combine several segments to a larger "meta-animation".

o  The player DLL can dynamically scale the image to any size. This is
   convenient to adjust the aspect ratio of FLI files to a resolution with
   square pixels (like 640x480 or 800x600). The player also scales the
   "multilevel" masks.

o  The compiler supports cropping and panning of the input images. This is
   also convenient for filmstrips.

o  The player is a DLL that you control from your application.
   Versions are available for Microsoft Windows 3.1, and for Microsoft
   Windows 95 and Windows NT (using threads and DIB sections). There is
   limited support for Win32s.

o  EGI can be integrated with a sprite library with little effort. This will
   allow you to make a FLIC animation of a walking puppet, and then to move
   that puppet across the screen like a sprite.

o  Synchronize animations with sound or other events. Options for "hard"
   and "soft" synchronization are supported.

o  Better compression with a last pass using Huffman coding and the
   Burrows-Wheeler Transform. The modified (and optimized) algorithm that
   EGI uses takes little CPU time to expand the data to the original size.

o  Palettes are optionally remapped to an "identity palette", which allows
   faster animation in Microsoft Windows. The animation can also adapt to the
   current foreground palette (even dynamically) or to an explicit palette.

o  Support for transparent animations, with multi-level masks (for shadow
   effects or alpha-blending).

o  Support for symbolic constants and shared include files for the EGI
   compiler and C programs (that use the EGI player to play back the
   animations).

o  A "decompiler" allows you to extract images (and a script file) from an
   existing FLIC file (both the .FLI and .FLC types are supported). You can
   feed these images back into the EGI compiler.

o  Interfaces for: C, C++, Delphi and Visual Basic.

o  Full source is available (for the players and for the compiler/decompiler).



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

EGI version 3.0 is available as of January 2000. To order EGI version 3.0,
use the order form (file ORDER.PDF in the archive) in the evaluation version,
or ask us to send or fax you an order form.


1. Contents of the product

EGI version 3.0 consists of:

  FLIC compiler (DOS and Windows versions)
  FLIC decompiler
  script generator
  FLIC players (DLLs) for Windows 3.1, Windows 95/98 and Windows NT
  FLIC MCI drivers for Windows 3.1, Windows 95/98 and Windows NT
  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.


2. Price information

All prices are in Euros. At the time of this writing, one Euro is roughly
equivalent to one dollar.

Several license are available. The costs for shipping and handling
is Euro 20,00.


EGI standard license                             Euro 140,00

   Includes:
          EGI compilers
          EGI decompiler
          EGI script generator
          EGI player in both 16-bit and 32-bit versions
          FLIC MCI drivers
          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 source code license                          Euro 335,00

   Includes:
          EGI compilers, including source
          EGI decompiler, including source
          EGI script generator, including source
          EGI players in both 16-bit and 32-bit versions,
            including source
          FLIC MCI drivers, 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 Euro 2.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 negotiate 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. Source code of the EGI
   product may not be distributed.

   This option requires a signed license agreement.


