OpenGLTM
Overview
Developed originally by Silicon Graphics Inc., OpenGL is
a 2D/3D graphics library which is available on most Win32, Unix and Linux
systems. OpenGL's main strengths are in the areas of 3 dimensional
visualisation and animation.
Calls to OpenGL routines in the GL and GLU libraries
(v1.10) can be included in Winteracter
programs. While other OpenGL interfaces exist for use from Fortran based
applications, the Winteracter OpenGL
interface offers some significant advantages
|
OpenGL graphics can be routed to a window, memory bitmap or dialog
field. Other interfaces typically just offer output to a window. |
|
OpenGL images can be printed via IGrPrintImage . Other
interfaces do not typically offer printing facilities. |
|
The full range of menu types (horizontal menu bar, toolbar and
floating menus are all available). Some other interfaces only offer
floating menus. |
|
All the other Winteracter
facilities are simultaneously available, combining state of the art 3D
graphics, with extensive user-interface and scientific graph plotting
capabilities. |
|
Text handling has been added (see below). |
Winteracter's interface
to OpenGL consists of two main components:
|
A routine called WglSelect which selects a target
drawing surface for OpenGL output. |
|
A module called OPENGL which provides a Fortran 9x
interface to the various OpenGL graphics routines. The routine names are
the same as the C originals. Fortran 90 data types are also defined
which are directly analagous to the C equivalents. Together, these allow
easy translation of C based OpenGL code to Fortran 90/95. |
A Winteracter-based
program therefore needs to specify USE OPENGL in each program
unit which will call OpenGL. A call to WglSelect will be
required to specify the target drawing surface.
Supported
Platforms
Win32 programs which call OpenGL routines require the
presence of two Windows system DLL's called OPENGL32.DLL and
GLU32.DLL (the so-called GL and GLU libraries). These are
usually located in the Windows SYSTEM or SYSTEM32
directory. These are provided under Windows NT/2000/XP/98/Me and Windows 95
OSR2. Users of Windows 95 release 1 will need to download the OpenGL DLL's
from Microsoft's web site.
OpenGL support in Windows is 'generic'. In other words,
it will work on any of the systems noted above. Special 'OpenGL compatible'
video hardware is not required. Accelerated OpenGL support on PC video
hardware has become much more widespread in recent times, but the generic
software based interface can still be used where this is not available.
Where accelerated facilities exist, some older drivers may only provide
full-screen support or only support certain colour depths. However,
substantial performance benefits can be expected with suitable combinations
of 3D video hardware and OpenGL-aware drivers.
OpenGL is also supported under Linux. Typically, this is
achieved by linking with the Mesa workalike library.
Documentation
and Examples
We recommend use of a suitable reference book when
writing applications which use OpenGL. However, since most of the available
reference material is C oriented, the supplied on-line documentation
includes brief Fortran oriented descriptions of all of the supported OpenGL
functions. A selection of example programs are also included to illustrate
the use of OpenGL in Winteracter-based
applications.
Text
Handling
Since OpenGL provides no text output facilities as
standard, Winteracter includes a set of
text support routines which are closely modelled on its own graphics text
handling facilities. These OpenGL text support functions provide access to
any True Type font under Windows and to a handful of built-in software-based
vector fonts under both Windows and Linux.
Acknowledgements
OpenGL is a trademark of Silicon Graphics Inc.
The OPENGL module included with
Winteracter is a derivation of f90gl, the
official Fortran 90 OpenGL interface written by William F. Mitchell of the
Mathematical and Computational Sciences Division, National Institute of
Standards and Technology, Gaithersburg, MD 20899, USA. While ISS provided
some minor assistance in the Win32 implementation of the f90gl interface,
the credit for that interface belongs to William Mitchell. The
Winteracter implementation of the OpenGL
interface differs from f90gl in several ways:
|