|
programmer's graphics library
What's New in Fastgraph 6.0?
Toward the bottom of this page, you'll find a brief summary of the 76 functions added in version 6.0, with links to Fastgraph's online help. Vastly Improved 3D Support
The 3D functionality in Fastgraph 6.0 has been completely redesigned
and enhanced. It works with but does not require Microsoft's Direct3D.
If you're new to 3D work, or if you want more details on Fastgraph's
3D features, we recommend looking at the Fastgraph 6.0
3D tutorial.
Fastgraph 6.0 uses a new floating point
3D geometry system.
The new geometry system uses floating point math (instead of the slower and
more cumbersome fixed point math of Fastgraph 5.x). It is designed to
use a left-handed 3D coordinate system for compatibility with Direct3D.
Fastgraph's
texture mapping
capabilities have been enhanced significantly. While Fastgraph 5.x provided
linear texture mapping, Fastgraph 6.0 adds perspective texture mapping,
texture clipping, transparent texels, plus support for Direct3D managed
textures. And the new
texture map management
functions make it easier to work with texture maps in Fastgraph programs.
Fastgraph 6.0 adds support for z-buffering, a technique for determining what
parts of a 3D object are visible.
Z-buffer management
functions let you create, open, and free z-buffer surfaces, plus prepare a
z-buffer for a new animation frame. Fastgraph's native z-buffering uses a
clever incremental depth technique which eliminates the need to actually
clear out the z-buffer after every frame.
The new
fg_3Dpov()
function defines the viewer's position and orientation in 3D world space.
Simplified 3D functions
let you draw texture-mapped, shaded, filled, or wireframe polygons, as well
as 3D lines. With the simplified functions, you don't need to worry about
things like transformation matrices, 3D clipping, and projection. You merely
call
fg_3Drenderstate()
to specify how Fastgraph should draw 3D objects (for example, with
z-buffering and 3D clipping) and then draw each object in 3D space with
Fastgraph's 3D polygon or line-drawing functions.
If you perform your own transformation, clipping, and projection of 3D
objects, you can use Fastgraph's
low-level 3D functions
to display the projected objects. Specialized functions are provided for
drawing texture-mapped, shaded, and filled polygons, with and without
z-buffering. Other low-level 3D functions perform transformation, 3D
clipping, and projection. For example, you could transform and project
your 3D objects yourself, but let Fastgraph apply the 3D clipping.
All Fastgraph 5.x 3D functions are still included in Fastgraph 6.0 as
legacy functions.
Fastgraph offers 3D rendering through Direct3D hardware acceleration,
Direct3D software rendering, or Fastgraph's own 3D rendering. As you
might expect, Direct3D hardware acceleration is very fast, but its
software rendering is rather slow, often unbearably slow. Fastgraph
includes its own 3D software rendering that is only slightly slower
than Direct3D hardware acceleration (and sometimes even faster). This
lets you write a DirectX application that will use Direct3D hardware
acceleration if available, but if not, use Fastgraph's 3D software
rendering without sacrificing too much in terms of 3D performance.
Fastgraph's DirectX libraries now offer DirectX
version control.
By default, Fastgraph will use the highest supported version of DirectX on
the user's system, subject to any restrictions defined by the new
fg_ddsetversion()
function. The new
fg_ddgetversion()
function returns the DirectX version number an application is using.
The fg_ddsetup()
"attached surface count" parameter has changed to a series of flags that
specifies how we wish to use DirectX. This will not break any Fastgraph
5.x code, as the flag values for blitting and flipping are respectively
0 and 1.
For full screen DirectX programs that use a true color display mode, a new
fg_ddsetup()
flag specifies if we want to try the alternate true color bit depth if the
requested true color bit depth is unavailable.
In Fastgraph's DirectX libraries, the
fg_vbinit()
return value indicates how Fastgraph is using DirectX. You can also
determine this by calling the new
fg_ddusage()
function.
The
fg_clip2vb(),
fg_vb2clip(),
and fg_vbprint()
functions are now supported in Fastgraph's DirectX libraries.
The new
fg_gdiflip()
function flips to the GDI drawing surface. This is useful for displaying a
message box or other GDI object in a DirectX page flipping program.
The new
fg_ddsetblt()
function lets you specify if certain functions in Fastgraph's DirectX
libraries use their own native code, or if they use the DirectX Blt() or
BltFast() blitting methods. By default, the affected functions use the
DirectX blitting methods.
The new
fg_ddsetobj()
and fg_ddapply()
functions provide better support for DirectDraw and Direct3D objects
created externally.
Programs linked with Fastgraph's DirectX libraries no longer need to link
with the DDRAW.LIB import library.
Fastgraph's DirectX libraries now require DirectX 2.0 or later for
DirectDraw, and DirectX 5.0 or later for Direct3D.
The maximum number of virtual buffers has been increased from 32 to 256.
The fg_vbfree()
function now accepts a negative parameter to free all virtual buffers.
The new
fg_gethcbpp()
function returns the color depth of a high color virtual buffer. For
Fastgraph's native libraries, fg_gethcbpp() always returns 16. For
Fastgraph's DirectX libraries, fg_gethcbpp() returns 16 if the DirectX
implementation uses the 5/6/5 high color pixel format, or 15 if it uses
the 5/5/5 format.
The new
fg_vbtzcopy()
function is similar to the more general
fg_vbtccopy()
function, but it only treats zero pixels as transparent. Using fg_vbtzcopy()
is considerably faster than fg_vbtccopy(), especially with high color or
true color virtual buffers.
The fg_vbaddr()
function returns the address of the specified virtual buffer when using
Fastgraph's native libraries, just as it did in Fastgraph 5.x. But when using
Fastgraph's DirectX libraries, fg_vbaddr() now returns the pointer to the
DirectDrawSurface object for the specified virtual buffer. You can still use
fg_ddlock()
to obtain the virtual buffer's address with Fastgraph's DirectX libraries.
Fastgraph's new
AVI file support
includes the ability to play AVI files with a single call to
fg_showavi().
There are also
low-level functions
to play AVI files one frame at a time, AVI
helper functions
similar to those provided for other image files, plus functions to
create AVI files.
The fg_bmppal()
and fg_pcxpal()
functions now accept a NULL value for the RGB array. In this case, the
functions return the number of colors in the image palette, but no palette
data.
The fg_showjpeg()
function now manages the JPEG internal buffer memory instead of using
fg_jpegbuf() and fg_jpegmem(). The fg_jpegbuf() and fg_jpegmem() functions
are still included in Fastgraph for source code compatibility, but they just
return without doing anything.
Fastgraph now defines symbolic constants for the fg_showxxx() flags
parameter.
The fg_showbmp()
and fg_showjpeg()
functions now work with files that extend beyond the right or bottom edges of
a virtual buffer, just as
fg_showpcx() does.
The fg_makebmp(),
fg_makepcx(),
fg_showbmp(),
and fg_showpcx()
functions now support arbitrary-width image files. In Fastgraph 5.x, the
image width was limited to 10K bytes.
Fastgraph 6.0 includes a comprehensive suite of
alpha blending
functions. You can blend single color values, direct color bitmaps, or direct
color virtual buffers. For bitmaps and virtual buffers, you can blend with
constant or variable opacities.
New functions are provided for four popular
image processing
transforms
(grayscale,
photo-inversion,
contrast enhancement,
and
gamma correction).
You can apply these transforms to a series of RGB values, a direct color
bitmap, or any rectangular subset of a direct color virtual buffer.
Fastgraph's new
bitmap sections
let you work with subsets of 256-color or direct color bitmaps. Functions
are provided for extracting a bitmap section from an existing bitmap, and
also for inserting a bitmap section into another larger bitmap.
The new
fg_transdcb()
function converts direct color bitmaps between the true color, 5/6/5 high
color, and 5/5/5 high color formats.
The fg_maprgb()
function now works like fg_findrgb() when using a 256-color virtual buffer.
The fg_polyfill()
function no longer uses a work array, so you can now pass NULL as the second
fg_polyfill() parameter.
The fg_measure()
and fg_stall()
functions have been rewritten to work with faster processors.
The
WinPal and WinMatch
utilities are now supplied as Win32 console programs instead of DOS
applications.
Win16 support has been discontinued. The Fastgraph 5.x code shared between
16-bit and 32-bit platforms has been replaced with pure 32-bit code, hand
optimized for the Pentium processor family. The Fastgraph 5.02 Win16
distribution is included on the Fastgraph 6.0 CD for customers who must
continue maintaining 16-bit Windows applications.
New compilers supported in Fastgraph 6.0:
Win32 compilers supported in Fastgraph 5.x but not 6.0:
Since Fastgraph 6.0 is purely a Win32 product, support for Win16-only
compilers has been dropped. The Win16 compilers no longer supported are:
Separate FGworld and FGworldD units are no longer supplied for Delphi, as
the functions in these unit files have been integrated into the FGwin and
FGwinD units. Delphi programs that use either FGworld or FGworldD should
simply remove these unit references from their uses statements.
Win16 support has been discontinued. The Fastgraph/Fonts 5.x code shared
between 16-bit and 32-bit platforms has been replaced with pure 32-bit code,
hand optimized for the Pentium processor family. The Fastgraph/Fonts 5.02
Win16 distribution is included with Fastgraph/Fonts 6.0 for customers who
must continue maintaining 16-bit Windows applications.
The maximum number of fonts you can load simultaneously has been increased
from 32 to 256.
Fastgraph/Fonts 6.0 includes a new version of the
FGFedit
utility. The new FGFedit includes the ability to work with larger-size glyphs,
adds a "recent file" list, and preserves options settings through the Windows
registry.
Win16 support has been discontinued. The Fastgraph/Image 5.x code shared
between 16-bit and 32-bit platforms has been replaced with pure 32-bit code,
hand optimized for the Pentium processor family. The Fastgraph/Image 5.02
Win16 distribution is included with Fastgraph/Image 6.0 for customers who
must continue maintaining 16-bit Windows applications.
Fastgraph/Image 6.0 adds support for AVI files stored in FGI libraries, with
AVI functions analogous to those provided in Fastgraph 6.0.
The fgi_bmppal()
and fgi_pcxpal()
functions now accept a NULL value for the RGB array. In this case, the
functions return the number of colors in the image palette, but no palette
data.
Fastgraph/Image 6.0 includes a new version of the
FGILIB
library management utility, with support added for AVI files.
New Functions in Fastgraph/Image 6.0
 
Product Catalog |
Price List |
Windows FAQ |
Windows CE FAQ |
DOS FAQ  
|