home *** CD-ROM | disk | FTP | other *** search
- FGDEMO version 4.0
-
- Ted Gruber Software Voice: (702) 735-1980
- PO Box 13408 FAX: (702) 735-4603
- Las Vegas, NV 89112 BBS: (702) 796-7134
- CIS: 72000,1642
-
- ------------------------------------------------------------------------------
- FGDEMO: the demo program for Fastgraph 4.0 and Fastgraph/Light 4.0
- ------------------------------------------------------------------------------
-
- The FGDEMO program illustrates some of the features of the Fastgraph (tm)
- graphics library. FGDEMO was written by Diana Gruber, senior programmer at Ted
- Gruber Software. You can contact Ted Gruber Software at the address and phone
- numbers listed at the bottom of this file.
-
- Fastgraph is a programmer's graphics library, a programming tool useful for
- writing games and other graphics-based programs. There is more information
- about Fastgraph in a later section of this file.
-
- ------------------------------------------------------------------------------
- Running FGDEMO
- ------------------------------------------------------------------------------
-
- You can install FGDEMO on a hard disk or run it from diskette. Just type
- FGDEMO at the DOS command prompt. To install FGDEMO on a hard disk, create a
- subdirectory and copy all the files from the diskette to the subdirectory.
-
- When you start FGDEMO, you'll see an attractive scrolling sky and scaling logo
- appear. This display uses the 320x200x256 "mode X" graphics mode. In a few
- seconds, or when you press any key, the sky and logo will disappear, FGDEMO
- will switch to the 640x350x16 EGA/VGA graphics mode, and the main menu screen
- will appear. From this screen you may choose options using the point and click
- vertical menus to view various Fastgraph features and effects.
-
- ------------------------------------------------------------------------------
- FGDEMO source code
- ------------------------------------------------------------------------------
-
- FGDEMO is distributed with full C source code. You may use the FGDEMO source
- code in your Fastgraph and FG/Light applications. If you want to recompile any
- of the FGDEMO source code, you'll need one of the supported compilers and
- either Fastgraph version 4.0 or Fastgraph/Light version 4.0. If you want to
- use this code, and you don't have a copy of Fastgraph, please contact Ted
- Gruber Software. If you want to "try before you buy", we will gladly send you
- an evaluation copy of Fastgraph/Light, the shareware version of Fastgraph, at
- no charge. You can also obtain Fastgraph/Light from our technical support BBS,
- or from our internet ftp site (ftp.accessnv.com).
-
- Because of space constraints, the FGDEMO source code is distributed in an
- archived format. To unarchive the source code, copy all FGDEMO files to a
- subdirectory on your hard disk, then type SOURCE. This runs a self-extracting
- archive (SOURCE.COM) that will copy the FGDEMO source code files to the
- current directory. Note that it's not necessary to unarchive the source code
- if you just want to run FGDEMO.
-
- ------------------------------------------------------------------------------
- Distributing FGDEMO
- ------------------------------------------------------------------------------
-
- You may freely distribute FGDEMO as long as all the files are distributed
- together in their original unaltered state. If you want to zip the files
- together for BBS distribution, please use the file name FGDEMO40.ZIP for
- version 4.0 of FGDEMO. The following files are included in the FGDEMO
- distribution:
-
- FGDEMO files:
-
- FGDEMO EXE the FGDEMO program
- FGDEMO DOC this file: documentation
- ORDER FRM Fastgraph order form
- SOURCE COM self-extracting archive containing FGDEMO source code
-
- TGSDEMO EXE the TGSDEMO program (sky and logo demo)
- TGSDEMO FGI image resource file for TGSDEMO program
-
- FONT14 PCX 14 point font file
- BORLAND PCX image files for various effects
- DUB PCX
- MOUNTAIN PCX
- MOUSE PCX
-
- FILE_ID DIZ for PCBoard bulletin board descriptions
-
- The following files are archived in the SOURCE.COM file:
-
- C and C++ source code files:
- CHAR C character display and management functions
- COMMON C initialization, termination, general I/O functions
- DISPLAY C functions on Display submenu
- FGDEMO C function 'main' and screen drawing functions
- FILE C functions on File submenu
- FUNDMTLS C functions on Fundamentals submenu
- MENU C define and manage the horizontal and vertical menus
- MISC C functions on Miscellaneous submenu
- VIDEO C functions on Video submenu
- TGSDEMO CPP moving sky with scaled logo demo program
-
- Header files:
- DECLARE H function declarations (included in DEFS.H)
- DEFS H general declarations and definitions (all C files)
- BIRDS H bird animation bitmaps (MISC.C and DISPLAY.C)
- FGTITLE H bitmapped "Fastgraph" letters (MISC.C)
- FIGHTER H bitmapped airplane for keyboard handler (MISC.C)
- TNTMAPS H TNT and "Kablooy" bitmaps for explosion (DISPLAY.C)
-
- Compilation batch files, make files, and project files:
- BUILDBC BAT batch file to compile and link FGDEMO with Borland C++
- BUILDMSC BAT batch file for Microsoft C/C++ or Visual C++
- BUILDPC BAT batch file for Power C
- BUILDQC BAT batch file for Microsoft QuickC
- BUILDTC BAT batch file for Turbo C/C++
- BUILDWC BAT batch file for Watcom C/C++ (16-bit)
- FGDEMOBC MAK make file for Borland C++
- FGDEMOMC MAK make file for Microsoft C/C++
- FGDEMOQC MAK make file for Microsoft QuickC
- FGDEMOVC MAK make file for Microsoft Visual C++ (16-bit)
- FGDEMOWC MAK make file for Watcom C/C++ (16-bit)
- FGDEMOBC PRJ project file for Borland C++
- FGDEMOPC PRJ project file for Power C
- FGDEMOTC PRJ project file for Turbo C++
-
- ------------------------------------------------------------------------------
- Compiling and linking FGDEMO
- ------------------------------------------------------------------------------
-
- You may recompile the FGDEMO source code using Borland C++, Microsoft C/C++,
- QuickC, Power C, Turbo C/C++, Visual C++ (16-bit), or Watcom C++ (16-bit). The
- medium memory model is recommended (the large model will also work). FGDEMO is
- too big to use the small memory model. The remainder of this section will
- describe the batch files, make files, and project files included in the FGDEMO
- distribution to assist with compilation and linking.
-
-
- Borland C++
-
- A make file (FGDEMOBC.MAK) and batch file (BUILDBC.BAT) are provided for
- compiling and linking FGDEMO with Borland C++. Type "MAKE -fFGDEMOBC.MAK" to
- use the make file, or BUILDBC to recompile and link all the FGDEMO code. The
- make file and batch file are set up to use the Fastgraph/Light medium model
- library. Change the library name from FGLM.LIB to FGM.LIB in the TLINK command
- to use Fastgraph instead of FG/Light.
-
- A project file (FGDEMOBC.PRJ) is also provided for the Borland C++ Integrated
- Development Environment (IDE). Project files are required within the IDE to
- build EXE files that utilize third party libraries such as Fastgraph. Select
- the project file from the Project menu in the IDE. Refer to your Borland C++
- manuals for more information about project files.
-
-
- Microsoft C/C++
-
- A make file (FGDEMOMC.MAK) and batch file (BUILDMSC.BAT) are provided for
- compiling and linking FGDEMO with Microsoft C/C++. Type "MAKE FGDEMOMC.MAK" to
- use the make file, or BUILDMSC to recompile and link all the FGDEMO code. The
- make file and batch file are set up to use the Fastgraph/Light medium model
- library. Change the library name from FGLM.LIB to FGM.LIB in the LINK command
- to use Fastgraph instead of FG/Light.
-
- If you are using Microsoft C version 6, do not include the /QC option when
- compiling FGDEMO with the medium memory model. Microsoft technical support has
- confirmed that this version of the compiler has known problems when passing
- structures to functions if /QC is specified. We've noticed no such problems
- with the large model, however.
-
-
- Microsoft QuickC
-
- A make file (FGDEMOQC.MAK) and batch file (BUILDQC.BAT) are provided for
- compiling and linking FGDEMO with QuickC. Type "NMAKE FGDEMOQC.MAK" to use
- the make file, or BUILDQC to recompile and link all the FGDEMO code. The make
- file and batch file are set up to use the Fastgraph/Light medium model
- library. Change the library name from FGLM.LIB to FGM.LIB in the LINK command
- to use Fastgraph instead of FG/Light.
-
- If you are using Fastgraph/Light and you receive the message "out of heap
- space" when compiling FGDEMO, unload FGDRIVER and try compiling again.
-
-
- Microsoft Visual C++ (16-bit)
-
- A make file (FGDEMOVC.MAK) and batch file (BUILDMSC.BAT) are provided for
- compiling and linking FGDEMO with Visual C++. Type "NMAKE FGDEMOVC.MAK" to use
- the make file, or BUILDMSC to recompile and link all the FGDEMO code. The make
- file and batch file are set up to use the Fastgraph/Light medium model
- library. Change the library name from FGLM.LIB to FGM.LIB in the LINK command
- to use Fastgraph instead of FG/Light.
-
-
- Power C
-
- A project file (FGDEMOPC.PRJ) and batch file (BUILDPC.BAT) are provided for
- compiling and linking FGDEMO with Power C. Type PC FGDEMOPC.PRJ to use the
- project file, or BUILDPC to recompile and link all the FGDEMO code. The
- project file and batch file are set up to use the Fastgraph/Light medium model
- library. Change the library name from FGLM.LIB to FGM.LIB in the PCL command
- to use Fastgraph instead of FG/Light.
-
-
- Turbo C
-
- A batch file (BUILDTC.BAT) is provided for compiling and linking FGDEMO with
- Turbo C. Type BUILDTC to recompile and link all the FGDEMO code. The batch
- file is set up to use the Fastgraph/Light medium model library. Change the
- library name from FGLM.LIB to FGM.LIB in the TLINK command to use Fastgraph
- instead of FG/Light.
-
-
- Turbo C++
-
- A batch file (BUILDTC.BAT) is provided for compiling and linking FGDEMO with
- Turbo C++. Type BUILDTC to recompile and link all the FGDEMO code. The batch
- file is set up to use the Fastgraph/Light medium model library. Change the
- library name from FGLM.LIB to FGM.LIB in the TLINK command to use Fastgraph
- instead of FG/Light.
-
- A project file (FGDEMOTC.PRJ) is also provided for the Turbo C++ Integrated
- Development Environment (IDE). Project files are required within the IDE to
- build EXE files that utilize third party libraries such as Fastgraph. Select
- the project file from the Project menu in the IDE. Refer to your Turbo C++
- manuals for more information about project files.
-
-
- Watcom C/C++ (16-bit)
-
- A make file (FGDEMOWC.MAK) and batch file (BUILDWC.BAT) are provided for
- compiling and linking FGDEMO with Watcom C++. Type "MAKE /f FGDEMOWC.MAK" to
- use the make file, or BUILDWC to recompile and link all the FGDEMO code. The
- make file and batch file are set up to use the Fastgraph/Light medium model
- library. Change the library name from FGLM.LIB to FGM.LIB in the WCL or WLINK
- commands to use Fastgraph instead of FG/Light.
-
- ------------------------------------------------------------------------------
- Borland IDE troubleshooting
- ------------------------------------------------------------------------------
-
- If you have problems compiling and linking FGDEMO within the Borland C++,
- Turbo C++, or Turbo C Integrated Development Environment, please check the
- following before you call us:
-
- 1) Make sure you have a PROJECT FILE that includes the names of all C source
- code files comprising FGDEMO, as well as the FGLM.LIB library file name. Some
- versions of Turbo C++ require the full path name for library files specified
- in a project file. For more information on project files, consult your Borland
- manuals.
-
- 2) The include files must exist in a path recognized by the IDE. From the
- menu, select Options; Directories; Include Directories. Make sure FASTGRAF.H
- exists in the path.
-
- 3) The library files must exist in a path recognized by the IDE. From the
- menu, select Options; Directories; Library Directories. Make sure FGLM.LIB
- exists in the path.
-
- 4) You must compile and link for the same memory model. From the menu, select
- Options; Compiler; Code Generation. Compile for the medium model if linking
- with FGLM.LIB.
-
- ------------------------------------------------------------------------------
- About the FGDEMO menus
- ------------------------------------------------------------------------------
-
- The menu structure is defined in the file DEFS.H. A typdef MENU is defined
- which is a structure containing information about each menu item: the function
- called when the menu choice is activated, the descriptive name of the menu
- item, the x and y location of the menu item, and pointers to the next and
- previous items on the menu. Each menu is defined by an array of these
- structures, and is initialized at the top of MENU.C.
-
- There are two types of menus: a horizontal menu, which is the moving bar menu
- at the top of the screen, and vertical menus, also known as "pull-down" menus.
- When a pull-down menu is visible, a menu function may be activated by either
- clicking the mouse on a highlighted menu function, or by pressing <Enter>.
- Arrow keys are used to highlight the next and previous menu item, and a mouse
- may also be used.
-
- User input relevant to the menus is accepted in two places: within the
- vertical_menu function (to activate a menu choice), or in the main function
- (to control the horizontal menu). The horizontal menu is also controlled
- within the vertical menu, to the extent that if an arrow key is pressed, the
- next or previous pull-down menu becomes active.
-
- The entire screen, including the horizontal menu and the dithered background,
- is drawn at the beginning of the program and stored on the hidden page. When a
- function is called, for example "point", part or all of the visual page is
- overwritten, in this case with a pattern of points. When a key or mouse button
- is pressed, the relevant parts of the hidden page are copied back to the
- visual page using fg_transfer, resulting in quick (almost instantaneous)
- screen redraws. Occasionally, the entire hidden page needs to be completely
- redrawn, such as when a PCX file is displayed, but in most cases only a small
- part of the hidden page needs to be redrawn, usually with a single call to
- fg_drect. In general, the hidden page is assumed to have a "clean" copy of the
- horizontal menu screen throughout the program, and whenever it is overwritten
- it is immediately restored.
-
- ------------------------------------------------------------------------------
- About the TGSDEMO program
- ------------------------------------------------------------------------------
-
- The TGSDEMO program displays the scrolling sky and scaled logo at the start of
- FGDEMO. You may also run this program separately entering TGSDEMO at the DOS
- command prompt.
-
- C++ source code for TGSDEMO is included as part of the FGDEMO distribution.
- However, you must have Fastgraph 4.0 and Fastgraph/Image 2.0 to re-link the
- program.
-
- TGSDEMO was written by Michael Miller of MSJ Applications, Inc., of Valley
- Stream, New York.
-
- ------------------------------------------------------------------------------
- Fastgraph 4.0
- ------------------------------------------------------------------------------
-
- Fastgraph is a versatile, high-performance programmer's graphics library for
- DOS-based PC systems. It is powerful enough to satisfy the most demanding
- graphics application, yet it is easy enough for even the novice graphics
- programmer. Fastgraph includes more than 275 hand-optimized routines, from
- pixel display to sophisticated animation tools. This collection of routines
- provides a programmer with proven, powerful tools to take command of the PC
- and PS/2 text and graphics video environment.
-
- Fastgraph's major functional areas include:
-
- * Real mode, 16-bit protected mode, and 32-bit protected mode libraries
- * Support for most popular C/C++, Pascal, BASIC, and FORTRAN compilers
- * Support for 28 video modes, including SuperVGA, standard and extended VGA,
- MCGA, EGA, Hercules, Tandy, CGA, and color and monochrome text
- * Direct SVGA chipset support plus VESA in resolutions of 640x400x256,
- 640x480x256, 800x600x256, 1024x768x256, 800x600x16, and 1024x768x16
- * SVGA chipset autodetection
- * Colors, virtual colors, and palettes
- * Graphics fundamentals, including points, solid and dashed lines,
- polygons, circles, ellipses, solid and dithered rectangles, region
- fill, and clipping
- * Viewports and world space coordinate system
- * A scalable stroked character font
- * GIF and PCX display and creation routines
- * Support for Autodesk Animator FLI/FLC files
- * Bitmapped image support, including mode-specific and mode-independent
- images, transparent pixels, clipped and reversed images, scaled and sheared
- images, image retrieval, pixel run maps, and masking maps
- * Fast block transfer routines (BitBlt)
- * Virtual buffers
- * Physical, virtual, and logical video page management
- * Resizeable video pages for smooth, flicker-free panning
- * Split screen support
- * Animation and special effects
- * Keyboard, mouse, and joystick support
- * Low-level keyboard handler, ideal for game development
- * Sound effects and music, both synchronous and asynchronous
- * 750-page tutorial-style user's guide and reference manual
- * No royalties
-
- ------------------------------------------------------------------------------
- Fastgraph video mode summary
- ------------------------------------------------------------------------------
-
- SVGA 640x400x256 MCGA 320x200x256
- 640x480x256
- 800x600x256 CGA 320x200x4
- 1024x768x256 640x200x2
- 800x600x16
- 1024x768x16 Hercules 320x200 dithered
- 720x348
- VGA 320x200x256 (Mode X)
- 320x240x256 (Mode X) Tandy 320x200x16
- 320x400x256 (Mode X)
- 320x480x256 (Mode X) Text 40x25 color
- 640x480x16 80x25 color
- 640x480x2 80x25 monochrome
- 80x43 color
- EGA 320x200x16 80x50 color
- 640x200x16
- 640x350x16
- 640x350 monochrome
-
- ------------------------------------------------------------------------------
- Supported SVGA chipsets
- ------------------------------------------------------------------------------
-
- Ahead "A" type Oak OTI-067
- Ahead "B" type Oak OTI-077
- ATI 18800 Oak OTI-087
- ATI 18800-1 Paradise PVGA1a
- ATI 28800 Paradise WD90C00/10
- ATI 38800 (mach8) Paradise WD90C11/30/31/33
- ATI 68800 (mach32) S3
- ATI 88800 (mach64) Trident 8800
- Avance Logic 2000 series Trident 8900
- Chips & Technologies 82c45x Trident 9000
- Cirrus Logic 5400 series Tseng ET3000
- Cirrus Logic 6400 series Tseng ET4000
- Genoa 6000 series Video7
- NCR 77C22/77C32 plus VESA BIOS support
-
- ------------------------------------------------------------------------------
- Supported compilers
- ------------------------------------------------------------------------------
-
- 32-bit protected mode:
- Borland C++ (4.02 or above)
- MetaWare High C/C++ (3.0 or above)
- Microsoft Fortran PowerStation (1.0 or above)
- Microsoft Visual C++ 32-bit edition (1.0 or above)
- Watcom C/C++ (9.5 or above)
- Watcom C32 for DOS (9.5 or above)
-
- 16-bit protected mode:
- Borland C++ (2.0 or above)
- Borland Pascal (7.0 or above)
- Microsoft C/C++ (5.0 or above)
- Microsoft Visual C++ (1.0 or above)
- Turbo C++ (3.0 or above)
-
- Real mode:
- Borland C++ (2.0 or above)
- Borland Pascal (7.0 or above)
- Microsoft BASIC PDS (7.1 or above)
- Microsoft C/C++ (5.0 or above)
- Microsoft FORTRAN (4.0 or above)
- Microsoft QuickBASIC (4.0 or above)
- Microsoft QuickC (2.0 or above)
- Microsoft Visual Basic for DOS (1.0 or above)
- Microsoft Visual C++ (1.0 or above)
- Power C (2.0 or above)
- Turbo C (2.0 or above)
- Turbo C++ (1.0 or above)
- Turbo Pascal (6.0 or above)
- Watcom C/C++ (9.5 or above)
- Zortech C++ (3.0 or above)
-
- ------------------------------------------------------------------------------
- Supported DOS extenders
- ------------------------------------------------------------------------------
-
- 32-bit:
- Borland PowerPack for DOS
- DOSXMSF (Fortran PowerStation)
- Phar Lap TNT Dos-Extender SDK
- Phar Lap TNT Dos-Extender Lite
- Rational Systems DOS/4G
- Rational Systems DOS/4GW
- Rational Systems DOS/4GW Professional
-
- 16-bit:
- Borland Pascal 7 (built in DPMI extender)
- Borland PowerPack for DOS
- Phar Lap 286|Dos-Extender SDK
- Phar Lap 286|Dos-Extender Lite
- Rational Systems DOS/16M
-
- ------------------------------------------------------------------------------
- Summary of Fastgraph 4.0 functions
- ------------------------------------------------------------------------------
-
- Video initialization
- --------------------
- fg_automode determine which available video mode offers the highest
- resolution and number of colors
- fg_bestmode choose the best video mode given resolution and video page
- requirements
- fg_cursor turn the text mode cursor on or off
- fg_egacheck return information about the active EGA or VGA adapter and
- display
- fg_getlines get the number of text rows per video page
- fg_getmode return the current video mode number
- fg_initpm initialize Fastgraph's protected mode kernel
- fg_reset erase the screen, restoring screen attributes if ANSI.SYS
- is loaded
- fg_setlines in EGA/VGA/SVGA text modes, establish 25, 43, or 50 line mode
- fg_setmode establish a video mode and initialize Fastgraph
- fg_svgainit autodetect the SVGA chipset (or VESA) and initialize
- Fastgraph's SVGA kernel
- fg_testmode determine whether or not a video mode is available on the
- system
-
- Coordinate systems
- ------------------
- fg_getmaxx get the maximum x coordinate in screen space
- fg_getmaxy get the maximum y coordinate in screen space
- fg_getview return current viewport extremes
- fg_getworld determine the current limits of the world space coordinate
- system
- fg_initw initialize the world space coordinate system
- fg_setview define viewport extremes and position
- fg_setworld define the floating point world space coordinate system
- fg_xalpha translate screen space x coordinate to character space column
- fg_xconvert translate character space column to screen space x coordinate
- fg_xscreen translate world space x coordinate to screen space x coordinate
- fg_xview translate horizontal viewport coordinate to screen space
- fg_xworld translate screen space x coordinate to world space x coordinate
- fg_yalpha translate screen space y coordinate to character space row
- fg_yconvert translate character space row to screen space y coordinate
- fg_yscreen translate world space y coordinate to screen space y coordinate
- fg_yview translate vertical viewport coordinate to screen space
- fg_yworld translate screen space y coordinate to world space y coordinate
-
- Colors and palettes
- -------------------
- fg_colors return number of colors available in the current video mode
- fg_defcolor assign a color value to a virtual color index
- fg_getcolor get the current color index (graphics modes) or display
- attributes (text modes)
- fg_getdacs get the RGB components of a block of DAC registers
- fg_getindex get the color value assigned to a virtual color index
- fg_getrgb get the RGB components of a specified DAC register
- fg_maprgb map six-bit RGB components to a 16-color palette value
- fg_palette assign a color value to a palette
- fg_palettes define 16 palette register values
- fg_setattr establish display attributes in text modes
- fg_setcolor establish the current color index
- fg_setdacs specify RGB components of a block of DAC registers
- fg_setrgb define the RGB value of a palette or video DAC register
-
- Graphics fundamentals
- ---------------------
- fg_box draw a hollow rectangle
- fg_boxdepth specify the outline size of a hollow rectangle
- fg_boxw draw a hollow rectangle in world space
- fg_boxx draw a hollow rectangle in XOR mode
- fg_boxxw draw a hollow rectangle in XOR mode in world space
- fg_circle draw a hollow circle
- fg_circlef draw a filled circle
- fg_circlefw draw a filled circle in world space
- fg_circlew draw a hollow circle in world space
- fg_clprect draw a clipped rectangle
- fg_clprectw draw a clipped rectangle in world space
- fg_dash draw a dashed line
- fg_dashrel draw a dashed line relative to current position
- fg_dashrw draw a relative dashed line in world space
- fg_dashw draw a dashed line in world space
- fg_draw draw a line
- fg_drawrel draw a line relative to the current position
- fg_drawrelx draw a relative XOR line
- fg_drawrw draw a relative line in world space
- fg_drawrxw draw a relative XOR line in world space
- fg_draww draw a line in world space
- fg_drawx draw an XOR line
- fg_drawxw draw an XOR line in world space
- fg_drect draw a dithered rectangle
- fg_drectw draw a dithered rectangle in world space
- fg_ellipse draw an ellipse
- fg_ellipsef draw a filled ellipse
- fg_ellipsew draw an ellipse in world space
- fg_ellipsfw draw a filled ellipse in world space
- fg_erase clear the active video page
- fg_fillpage fill active video page with current color
- fg_flood like fg_paint but observes the clipping limits
- fg_floodw like fg_paintw but observes the clipping limits
- fg_getclip return current clipping limits
- fg_getpixel get the color value of specified pixel
- fg_getxbox return fg_box left and right edge width
- fg_getxpos get screen space x coordinate of graphics cursor
- fg_getybox return fg_box top and bottom edge width
- fg_getypos get the screen space y coordinate of graphics cursor
- fg_inside check if a specified point is inside a convex polygon
- fg_move position the graphics cursor
- fg_moverel position the graphics cursor relative to current position
- fg_moverw position the graphics cursor, relative, in world space
- fg_movew position the graphics cursor in world space
- fg_paint fast flood fill of any closed area, including an area with
- holes
- fg_paintw world space version of fg_paint
- fg_point draw a point
- fg_pointw draw a point in world space
- fg_pointx draw a point in XOR mode
- fg_pointxw draw a point in XOR mode in world space
- fg_polyedge specify fg_polyfill right and bottom edge inclusion
- fg_polyfill draw a filled convex polygon
- fg_polygon draw an unfilled polygon
- fg_polygonw draw an unfilled polygon in world space
- fg_polyline draw an unfilled polygon from one vertex array
- fg_polyoff define polygon offsets for fg_polyfill and fg_polyline
- fg_rect draw a solid rectangle in screen space or character space
- fg_rectw draw a solid rectangle in world space
- fg_setclip establish limits of clipping region for primitives and
- bitmapped images
- fg_setclipw world space version of fg_setclip
-
- Character display
- -----------------
- fg_chgattr change display attribute for existing text in text modes
- fg_chgtext change text while preserving the display attributes in text
- modes
- fg_fontsize enable 8x8, 8x14, or 8x16 ROM font (VGA/SVGA only)
- fg_getattr get the display attribute of a given character cell in text
- modes
- fg_getchar get the character value of a given character cell in text modes
- fg_getxjust return fg_print and fg_printc horizontal justification setting
- fg_getyjust return fg_print and fg_printc vertical justification setting
- fg_justify define justification settings for fg_print
- fg_locate define row and column for character display
- fg_print display hardware characters in screen space
- fg_printc version of fg_print that performs clipping
- fg_setangle define the orientation of software (stroked) characters
- fg_setratio define the aspect ratio for software characters
- fg_setsize define the height of software characters in screen space
- fg_setsizew define the height of software characters in world space
- fg_swchar display software (stroked) characters
- fg_swlength compute the length of a string of software characters
- fg_swtext display software characters
- fg_text display hardware (ROM font) characters
- fg_textc version of fg_text that supports clipping
- fg_where return the text cursor position
-
- Video page management
- ---------------------
- fg_allocate create a virtual page in conventional memory
- fg_alloccms create a logical page in conventional memory
- fg_allocems create a logical page in expanded memory
- fg_allocxms create a logical page in extended memory
- fg_findpage find an available page number for virtual/logical pages
- fg_freepage release a virtual or logical page
- fg_getaddr get the segment address of the active video page
- fg_getentry get address and type of a physical, virtual, or logical page
- fg_getpage get the active video page number
- fg_getvpage get the number of the visual video page
- fg_initems initialize expanded memory (EMS)
- fg_initxms initialize extended memory (XMS)
- fg_pagesize return video page size in bytes
- fg_resize change the size of a video page (use with fg_pan)
- fg_setentry set address and type of a physical, virtual, or logical page
- fg_setpage establish the active video page
- fg_setvpage establish the visual video page
-
- Virtual buffer management
- -------------------------
- fg_vbaddr return address of a virtual buffer
- fg_vballoc create a virtual buffer (allocate memory internally)
- fg_vbclose close the active virtual buffer
- fg_vbcopy copy rectangular region from one virtual buffer to another
- fg_vbcut copy rectangular region from active video page to virtual buffer
- fg_vbdefine create a virtual buffer (from previously allocated memory)
- fg_vbfree release virtual buffer memory allocated with fg_vballoc
- fg_vbhandle return handle of the active virtual buffer
- fg_vbinit initialize Fastgraph's virtual buffer environment
- fg_vbopen make an existing virtual buffer the active virtual buffer
- fg_vbpaste copy rectangular region from virtual buffer to active video page
- fg_vbtccopy version of fg_vbcopy that supports transparent colors
- fg_vbtcxfer version of fg_vbpaste that supports transparent colors
- fg_vbundef release a virtual buffer handle
-
- Bitmapped image management
- --------------------------
- fg_clipmap version of fg_drawmap that performs clipping
- fg_clipmask draw a clipped masking map
- fg_clpimage draw a clipped mode-specific bitmap
- fg_display display a pixel run map
- fg_displayp display a packed pixel run map
- fg_drawmap draw a mode-independent bitmap
- fg_drawmask draw a masking map
- fg_drwimage draw a lightning-fast mode-specific bitmap
- fg_flipmask draw an inverted masking map
- fg_flpimage draw an inverted mode-specific bitmap
- fg_getimage retrieve an image as a mode-specific bitmap
- fg_getmap retrieve an image as a mode-independent bitmap
- fg_imagesiz calculate the number of bytes required for mode-specific
- bitmap storage
- fg_invert invert orientation of a bitmapped image array
- fg_pack translate "one pixel per byte" bitmap to mode-specific format
- fg_putimage like fg_drwimage but doesn't check for transparent pixels
- fg_revimage display a reversed mode-specific bitmap
- fg_revmask display a reversed masking map
- fg_scale scale a bitmapped image
- fg_shear shear a bitmapped image
- fg_unpack translate mode-specific bitmap to "one pixel per byte" format
-
- Image file routines
- -------------------
- fg_dispfile display a pixel run file, packed or unpacked
- fg_flicdone close an FLI or FLC file
- fg_flichead read an FLI or FLC file header
- fg_flicmode determine optimal video mode for an FLI or FLC file
- fg_flicopen open an FLI or FLC file
- fg_flicplay play one or more frames from an FLI or FLC file
- fg_flicsize return FLI or FLC image dimensions
- fg_flicskip advance one or more frames in an FLI or FLC file
- fg_gifhead read a GIF file global header and first local header
- fg_gifmode determine optimal video mode for a GIF file
- fg_gifpal retrieve palette information from a GIF file
- fg_gifrange return GIF image dimensions
- fg_imagebuf define the address and size of the image file buffer
- fg_loadpcx load a PCX image into a virtual buffer
- fg_makegif create a GIF file from a rectangular region of the active
- video page
- fg_makepcx create a PCX file from a rectangular region of the active
- video page
- fg_makeppr create a PPR file from a rectangular region of the active
- video page
- fg_makespr create an SPR file from a rectangular region of the active
- video page
- fg_pattern define dither patterns for pixel run maps
- fg_pcxhead read a PCX file header into a 128-byte buffer
- fg_pcxmode determine the optimal mode for displaying a PCX file
- fg_pcxpal retrieve palette information from a PCX file
- fg_pcxrange return PCX image dimensions
- fg_showflic play an FLI or FLC file
- fg_showgif display a GIF file
- fg_showpcx display a PCX file
- fg_showppr display a packed pixel run (PPR) file
- fg_showspr display a standard pixel run (SPR) file (RLE)
-
- Block transfer routines
- -----------------------
- fg_copypage copy an entire physical, virtual, or logical page
- fg_getblock transfer rectangular region from video memory to RAM
- fg_gethpage get the number of the current "hidden" video page
- fg_putblock transfer rectangular region from RAM to video memory
- fg_restore fast rectangular area copy from hidden to visual page
- fg_restorew world space version of fg_restore
- fg_save fast rectangular area copy from visual to hidden page
- fg_savew world space version of fg_save
- fg_sethpage establish the hidden video page
- fg_tcdefine define transparent color number for fg_tcxfer
- fg_tcmask define transparent colors for fg_tcxfer
- fg_tcxfer transfer rectangular area with transparent colors
- fg_transfer fast rectangular region copy from any page to any page (bitblt)
-
- Special effects
- ---------------
- fg_fadein copy hidden to visual page in small, random increments
- fg_fadeout erase the visual page in small, random increments
- fg_pan change the screen origin for full-screen four-directional
- smooth scrolling
- fg_panw world space version of fg_pan
- fg_scroll smooth vertical scrolling of rectangular area
- fg_split enable or disable a split screen environment
-
- Keyboard control
- ----------------
- fg_capslock turn the CapsLock key on or off
- fg_getkey wait for a keystroke or retrieve the next value from the
- keystroke buffer
- fg_intkey get the next entry from BIOS keyboard buffer if it is not empty
- fg_kbinit enable or disable the low-level keyboard handler
- fg_kblast return scan code of most recent keypress
- fg_kbreset reset Fastgraph's low-level keyboard handler
- fg_kbtest determine if a key is now pressed or released
- fg_numlock get the state of the NumLock key
- fg_scrlock get the state of the ScrollLock key
- fg_setcaps turn the CapsLock key on or off
- fg_setnum turn the NumLock key on or off
- fg_waitkey wait for any keystroke
-
- Mouse management
- ----------------
- fg_mouse256 define 256-color mouse cursor
- fg_mousebut get information about the mouse - were buttons pressed, and
- where?
- fg_mousecur define the appearance of the mouse cursor in text modes
- fg_mousefin unhook Fastgraph's XVGA or SVGA mouse handler
- fg_mouseini initialize the mouse
- fg_mouselim define limits of mouse movement
- fg_mousemov position the mouse cursor
- fg_mousepos get the current mouse position and button status
- fg_mouseptr define shape and appearance of mouse cursor in graphics modes
- fg_mousespd control the speed of mouse cursor relative to the speed of the
- mouse
- fg_mousevis make the mouse cursor visible or invisible
-
- Joystick support
- ----------------
- fg_button get a joystick's button status
- fg_getxjoy get the horizontal position of the specified joystick
- fg_getyjoy get the vertical position of the specified joystick
- fg_initjoy initialize either joystick
- fg_intjoy return keyboard codes analogous to joystick position and
- button status
-
- Sound effects and music
- -----------------------
- fg_hush immediately stop any asynchronous sound or music
- fg_hushnext stop asynchronous sound or music after the current iteration
- fg_music play a sequence of musical notes
- fg_musicb play asynchronous music (background music)
- fg_playing determine whether there is any asynchronous sound in progress
- fg_quiet stop continuous sound
- fg_resume after suspending asynchronous music, continue the music
- fg_sound produce a tone of specified frequency and duration
- fg_sounds play a series of tones, concurrent with other activity
- fg_suspend suspend asynchronous sound (see fg_resume)
- fg_voice produce sound on TI sound chip (as in Tandy 1000)
- fg_voices play a series of tones on TI sound chip, concurrent with other
- activity
-
- Timing
- ------
- fg_getclock get the number of clock ticks since midnight
- fg_measure benchmark the system speed to determine delay units for fg_stall
- fg_stall stall for a given number of delay units (see fg_measure)
- fg_waitfor delay a specified number of clock ticks (18.2 per second)
-
- Miscellaneous
- -------------
- fg_getbanks return current SVGA read and write bank numbers
- fg_memavail determine the amount of conventional memory available to DOS
- fg_memory return the amount of video memory present in kilobytes
- fg_setbanks define SVGA read and write bank numbers
- fg_setfunc specify the logical operation in EGA/VGA modes (XOR/OR/AND)
- fg_svgaver return Fastgraph SVGA kernel version number
- fg_version return Fastgraph version number
- fg_vgastate save or restore the internal VGA state
- fg_waitvr specify if functions wait internally for vertical retrace
-
- ------------------------------------------------------------------------------
- Fastgraph/Light
- ------------------------------------------------------------------------------
-
- Fastgraph/Light is the shareware version of Fastgraph. The major differences
- between Fastgraph and Fastgraph/Light are:
-
- 1) Fastgraph/Light requires an external TSR video driver (FGDRIVER.EXE) that
- you must load before running programs developed with the product. Fastgraph
- creates stand-alone EXE files that do not use FGDRIVER and only include
- those Fastgraph routines your program actually uses.
-
- 2) Fastgraph/Light supports real mode only. Fastgraph includes libraries for
- real mode, 16-bit protected mode, and 32-bit protected mode. The FGDRIVER
- video driver in Fastgraph/Light precludes protected mode support.
-
- 3) Fastgraph/Light does not include the GIF support and world space functions
- available in Fastgraph. Including these functions in Fastgraph/Light would
- considerably increase the FGDRIVER memory requirements.
-
- 4) Fastgraph comes with a 750-page softcover manual. Fastgraph/Light comes
- with an on-line manual.
-
- 5) Fastgraph provides better performance than Fastgraph/Light because of the
- overhead associated with Fastgraph/Light's TSR video driver. This is
- especially true for routines that do relatively little, such as FG_POINT.
-
- Any programs developed using Fastgraph/Light are 100% source code compatible
- with Fastgraph. If you purchase Fastgraph after trying Fastgraph/Light, all
- you need to do is re-link your programs.
-
- We will mail Fastgraph/Light to you at no charge, or you can download it from
- our bulletin board or internet ftp site (ftp.accessnv.com). If you want to
- download it, look for the following files for version 4.02 of Fastgraph/Light:
-
- FGL402A.ZIP -- libraries, install program, utilities
- FGL402B.ZIP -- complete 700 page documentation
- FGL402C.ZIP -- C source code for example programs
- FGL402D.ZIP -- BASIC source code for example programs
- FGL402E.ZIP -- Pascal source code for example programs
- FGL402F.ZIP -- FORTRAN source code for example programs
-
- You will probably only want to download FGLA402A.ZIP and FGL402B.ZIP and your
- choice of one of the other four files, depending on what language you are
- programming in. These file names are current as of February 1995, but we
- update the files regularly so the version numbers will change periodically.
-
- To download Fastgraph/Light from CompuServe, select library 3 of the Game
- Developers forum (GO GAMDEV) and browse for "Fastgraph". The CompuServe file
- names are FGLA.ZIP through FGLF.ZIP.
-
- ------------------------------------------------------------------------------
- Fastgraph/Fonts 2.0
- ------------------------------------------------------------------------------
-
- Fastgraph/Fonts lets you easily add bitmapped character support to Fastgraph
- applications. The product includes 40 font files in several point sizes, font
- scaling and conversion utilities, and an interactive font editor that can
- translate TrueType font files to the Fastgraph/Fonts font file format. A
- program can load up to 32 fonts simultaneously. Font files shipped with
- Fastgraph/Fonts may be distributed without royalties in your applications.
-
- Fastgraph/Fonts 2.0 requires Fastgraph 4.0 or Fastgraph/Light 4.0.
-
- ------------------------------------------------------------------------------
- Fastgraph/Image 2.0
- ------------------------------------------------------------------------------
-
- Fastgraph/Image is a Fastgraph add-on product that provides functions and
- utilities for managing resource files containing images and other files. While
- the product was designed to manage and display PCX, GIF, pixel run, and flic
- images stored in resource files, Fastgraph/Image can be used with any type of
- file, including bitmaps, text files, and Fastgraph/Fonts font files. Besides
- making your product distribution neater, Fastgraph/Image resource files save
- disk space normally lost to DOS disk sectoring.
-
- Fastgraph/Image 2.0 requires Fastgraph 4.0.
-
- ------------------------------------------------------------------------------
- Ordering Information
- ------------------------------------------------------------------------------
-
- The Fastgraph family of products represents a high-performance, comprehensive
- development system for graphics programmers. For more information about any of
- our products, please call, write, or FAX. You can download evaluation versions
- and product demos from our technical support BBS at (702) 796-7134, or from
- our internet ftp sites FTP.ACCESSNV.COM and SWCBBS.COM.
-
- We accept Visa, MasterCard, and COD (extra charge for COD orders). Purchase
- orders are welcome from most companies, schools, and government agencies, but
- prior approval is required from TGS. After December 31, 1995, please contact
- TGS for current version and pricing information.
-
- Source code and site licenses are available for all products. Please call,
- write, or FAX for details.
-
- For your convenience, the order form below appears by itself in the ORDER.FRM
- file.
-
- Order from: Voice: (702) 735-1980
- Ted Gruber Software FAX: (702) 735-4603
- PO Box 13408 BBS: (702) 796-7134
- Las Vegas, NV 89112 CIS: 72000,1642
-
- Name: _____________________________________________________________________
-
- Company: _____________________________________________________________________
-
- Address: _____________________________________________________________________
-
- City: _____________________________________ State: ________ Zip: ________
-
- Country: _________________ Phone: __________________ FAX: ___________________
-
- +=====+=========================================+=======+============+=======+
- | | | Price | Shipping | |
- | Qty | Product Description | Each | Code Cost | Total |
- +=====+=========================================+=======+=====+======+=======+
- | | Fastgraph graphics library | $249 | 1 | | |
- +-----+-----------------------------------------+-------+-----+------+-------+
- | | Fastgraph/Light with on-line manual | $49 | 2 | | |
- | | (registered version) | | | | |
- +-----+-----------------------------------------+-------+-----+------+-------+
- | | Fastgraph/Light with printed manual | $79 | 1 | | |
- | | (registered version) | | | | |
- +-----+-----------------------------------------+-------+-----+------+-------+
- | | Fastgraph/Fonts bitmapped font support | $69 | 2 | | |
- | | (requires Fastgraph or Fastgraph/Light) | | | | |
- +-----+-----------------------------------------+-------+-----+------+-------+
- | | Fastgraph/Image image management toolkit| $69 | 2 | | |
- | | (requires Fastgraph) | | | | |
- +-----+-----------------------------------------+-------+-----+------+-------+
- | | FG/Fonts and FG/Image bundle | $118 | 2 | | |
- +-----+-----------------------------------------+-------+-----+------+-------+
- | | Graphics Power Pack | $359 | 1 | | |
- | | Fastgraph, FG/Fonts, and FG/Image | | | | |
- +=====+=========================================+=======+=====+======+=======+
- Subtotal | |
- ********************************* +=======+
- * * Nevada residents add sales tax | |
- * Shipping charges per product: * +=======+
- * * COD orders (U.S. only) add $6 | |
- * Code 1 Code 2 * +=======+
- * ---------- ---------- * Total | |
- * U.S. $7 U.S. $3 * +=======+
- * Canada $10 Canada $3 * Method of payment:
- * Other $30 Other $6 *
- * * [ ] payment enclosed
- ********************************* [ ] Visa or MasterCard
- [ ] COD
- [ ] purchase order # _________________
- For credit card orders only:
-
- Card number: ____________________________________ Expiration date: __________
-
- Signature: _________________________________________________________________