------------------------------------------------------------------------------
                                 Introduction
------------------------------------------------------------------------------

The NOTESFGI.TXT file summarizes the new features added in Fastgraph/Image
2.0.  It also includes additions and changes made to Fastgraph/Image since the
publication of the Fastgraph/Image User's Guide and Reference Manual, as well
as other miscellaneous information.  The following topics are discussed:

* New features added in Fastgraph/Image 2.0
* Using Fastgraph/Image with the 16-bit WATCOM C/C++ compiler
* Creating BASIC quick libraries

------------------------------------------------------------------------------
                   New Features Added in Fastgraph/Image 2.0
------------------------------------------------------------------------------

The following routines have been added in Fastgraph/Image 2.0.  Please see
the Fastgraph/Image Reference Manual for full descriptions, including their
parameters, return values, and restrictions.

FGI_LOADPCX  Display a PCX file from an image library into a virtual buffer
FGI_SHOWFLIC Display an FLI or FLC file from an image library
FGI_SHOWGIF  Display a GIF file from an image library
FGI_SHOWPCX  Display a PCX file from an image library
FGI_SHOWPPR  Display a PPR file from an image library
FGI_SHOWSPR  Display an SPR file from an image library

In Fastgraph/Image 1.x, the FGI_DISPLAY routine combined the capabilities of
FGI_SHOWGIF, FGI_SHOWPCX, FGI_SHOWPPR, and FGI_SHOWSPR.  While FGI_DISPLAY
still does this (and now supports FLI/FLC files too), the individual routines
specific to each supported image type will almost always use less memory.

Fastgraph/Image 2.0 includes 16-bit and 32-bit protected mode libraries for
the same compilers and DOS extenders as Fastgraph 4.0.  No new Fastgraph/Image
routines are needed for protected mode support -- the protected mode specifics
are set up by Fastgraph's FG_INITPM routine.  FG_INITPM must be called before
any other Fastgraph or Fastgraph/Image routine.

Fastgraph/Image 2.0 uses a new format for image library files (FGI files).
The new FGI file format includes a file indexing scheme that reduces the time
it takes to access files in the library, especially with larger FGI files.  In
addition, the version 2.0 FGI files are usually slightly smaller.  However,
the new library file format means that FGI files created with Fastgraph/Image
1.x WILL NOT WORK with version 2.0.  A conversion utility named FGI1TO2 is
provided for converting FGI files to the new format.  Please refer to the
Fastgraph/Image User's Guide for complete information about the new FGI file
format and the FGI1TO2 utility.

The new version of the FGILIB library management utility included in the
Fastgraph/Image 2.0 distribution uses different command-line parameters and
options than previous versions of FGILIB.  See the Fastgraph/Image User's
Guide for details.

------------------------------------------------------------------------------
          Using Fastgraph/Image with the 16-bit WATCOM C/C++ Compiler
------------------------------------------------------------------------------

Support for 16-bit WATCOM C/C++ (version 9.5 or later) was added after the
Fastgraph/Image manuals were printed.  The following real mode Fastgraph/Image
libraries are compatible with this compiler:

     FGIS.LIB   Real mode small model library
     FGIM.LIB   Real mode medium model library
     FGIL.LIB   Real mode large model library

Programs may be compiled and linked from the DOS command line using the WCL
command.  Here are example WCL commands for compiling a 16-bit WATCOM C/C++
program and linking it with Fastgraph/Image.  Fastgraph's compiler-specific
auxiliary library names (FGWCx.LIB) only need to be included if your program
uses any of the Fastgraph routines listed in Appendix D of the Fastgraph
User's Guide.

     Small memory model:
        WCL /ms <source_file> FGS.LIB FGIS.LIB [FGWCS.LIB]

     Medium memory model:
        WCL /mm <source_file> FGM.LIB FGIM.LIB [FGWCM.LIB]

     Large memory model:
        WCL /ml <source_file> FGL.LIB FGIL.LIB [FGWCL.LIB]

For more information about other compilation and linking options, please refer
to the WATCOM C/C++ User's Guide.

------------------------------------------------------------------------------
                        Creating BASIC Quick Libraries
------------------------------------------------------------------------------

The three BASIC compilers that Fastgraph supports let you create applications
in two ways.  One way is to use the BC and LINK commands from the DOS command
prompt, and the other is to use the compiler's programming environment.  When
you want to use Fastgraph within the programming environment, you must load a
special library, called a quick library (QLB file), containing the Fastgraph
routines.

Because only one quick library name can be specified when using the compiler's
programming environment, you must create a combined quick library if you wish
to use Fastgraph/Fonts or Fastgraph/Image in the environment.  The following
LINK commands show how to create a quick library called FGALL.QLB containing
all Fastgraph, Fastgraph/Fonts, and Fastgraph/Image routines.

     Microsoft QuickBASIC:
     LINK /Q /SEG:340 FGQB.LIB+FGFQB.LIB+FGIQB.LIB,FGALL,NUL,BQLB45;

     Microsoft BASIC PDS 7.x:
     LINK /Q /SEG:350 FGQBX.LIB+FGFQBX.LIB+FGIQBX.LIB,FGALL,NUL,QBXQLB;

     Microsoft Visual Basic for DOS:
     LINK /Q /SEG:430 FGVBDOS.LIB+FGFVBDOS.LIB+FGIVBDOS.LIB,FGALL,NUL,VBDOSQLB;

If you don't have the Fastgraph/Fonts product, omit the FGFQB.LIB, FGFQBX.LIB,
or FGFVBDOS.LIB library names from the above LINK commands.

Unfortunately, the quick library format requires that all code and data for
every routine in the quick library be loaded into memory.  The combined quick
libraries include every Fastgraph, Fastgraph/Fonts, and Fastgraph/Image
routine, meaning the code and data for all three products will be loaded into
memory!  This leaves little if any memory available for your program's code
and data.

One solution to this problem is to use the BC and LINK commands, together with
the stand-alone BASIC libraries for each product.  The stand-alone libraries
(LIB files) are true libraries that do not suffer from the "use all or
nothing" feature of quick libraries.  However, the stand-alone libraries
cannot be used from the compiler's programming environment.

The other solution is to make a customized quick library containing only the
Fastgraph, Fastgraph/Fonts, and Fastgraph/Image routines your program actually
uses (plus any Fastgraph routines those might call).  To do this, use the
compiler's LIB utility to extract the required object modules from the
Fastgraph, Fastgraph/Fonts, and Fastgraph/Image stand-alone libraries.  Then
use the LINK command to build a quick library from the extracted OBJ files.

Each Fastgraph routine resides in a module having the same name as the routine
but without the FG prefix.  Similarly, each Fastgraph/Fonts routine resides in
a module whose name lacks the FG prefix but does include the character "1"
appended to the routine name.  When the routine name is already 8 characters
long, the "1" replaces the final character.  Fastgraph/Image uses the same
module naming convention as Fastgraph/Fonts, but suffixes the routine names
with the character "2" instead of "1".  Some examples might help clarify this.

     FGsetmode    module name is SETMODE
     FGFload      module name is LOAD1
     FGFundefine  module name is UNDEFIN1
     FGIopen      module name is OPEN2
     FGIshowflic  module name is SHOWFLI2

Custom quick libraries must include the DATA modules for each product (DATA,
DATA1, and DATA2) plus the modules for any other Fastgraph, Fastgraph/Fonts,
and Fastgraph/Image routines used in your program.

Depending on the number of modules added to a custom quick library, you might
need to increase the number of segments LINK uses when creating a custom quick
library.  This is done through LINK's /SEG:n command-line option.  The default
value of n is 128 segments.  The maximum value required is 340 for QuickBASIC,
350 for BASIC PDS, and 430 for Visual Basic for DOS.

For full details about creating BASIC quick libraries, please refer to the
manuals supplied with your BASIC compiler.
