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.