Intel® Fortran Compiler with Windows-Based Applications
Visible to Intel only — GUID: GUID-2F9C73E5-1805-4F12-969B-75605A5BDD09
Visible to Intel only — GUID: GUID-2F9C73E5-1805-4F12-969B-75605A5BDD09
Advanced Graphics with OpenGL
OpenGL* is a library of graphic functions that create sophisticated graphic displays such as 3-D images and animation. OpenGL is commonly available on workstations. Writing to this standard allows your program to be ported easily to other platforms.
OpenGL windows are used independently of and in addition to any console, QuickWin and standard Windows, windows your application uses. Every window in OpenGL uses a pixel format, and the pixels carry, RGB values, opacity values, and depth values so that pixels with a small depth (shallow) overwrite deeper pixels. The basic steps in creating OpenGL applications are:
Specify the pixel format.
Specify how the pixels will be rendered on the video device.
Call OpenGL commands.
OpenGL programming is straightforward, but requires a particular initialization and order, like other software tools. References to get you started are:
The OpenGL Reference Manual, Addison-Wesley, ISBN 0-201-46140-4.
The OpenGL Programming Guide, Addison-Wesley, ISBN 0-201-46138-2.
OpenGL SuperBible: The Complete Guide to OpenGL Programming on Windows NT and Windows 95, Richard Wright and Michael Sweet, Waite Group Press (Division of Sams Publishing), 1996, ISBN 1-57169-073-5.
OpenGL documentation in the Platform SDK title in HTML Help Viewer.
The OpenGL description from the Microsoft Visual C++ manuals.
Intel Fortran provides an OpenGL module, IFOPNGL.MOD, invoked with the USE statement line:
USE IFOPNGL
When you use this module, all constants and interfaces that bind Fortran to the OpenGL routines become available. Any link libraries required to link with an OpenGL program are automatically searched if USE IFOPNGL is present in your Fortran program.
An OpenGL window can be opened from a console, Windows, or QuickWin application. The OpenGL window uses OpenGL calls exclusively, not normal Graphic Device Interface (GDI) calls. Likewise, OpenGL calls cannot be made within an ordinary Windows window or QuickWin child window, because special initialization is required for OpenGL calls.
The Fortran OpenGL identifiers are the same as the C identifiers (such as using a GL_ prefix for constants), except that the GL prefix is changed to FGL for routines and identifier lengths are limited to 31 characters. The data types in the OpenGL C binding are translated to Fortran types as shown in the following table:
OpenGL/C Type |
Fortran Data Type |
---|---|
GLbyte |
INTEGER(1) |
GLshort |
INTEGER(2) |
GLint, GLsizei |
INTEGER(4) |
GLfloat, GLclampf |
REAL(4) |
GLdouble, GLclampd |
REAL(8) |
GLubyte |
INTEGER(1) |
GLboolean |
INTEGER(1) |
GLushort |
INTEGER(2) |
GLuint, GLenum, GLbitfield |
INTEGER(4) |
GLvoid |
INTEGER(INT_PTR_KIND()) |
pointers |
INTEGER(INT_PTR_KIND()) |
If you include (USE) the parameter constant definitions from IFOPNGLT.F90 (such as by USE IFOPNGL), you can use the constants to specify the kind type, such as INTEGER(K_GLint) instead of INTEGER(4).