[ Previous | Next | Contents | Glossary | Home | Search ]
GL3.2 Version 4.1 for AIX: Programming Concepts

SGI GL Performance and System Environment Considerations

Your display subsystem architecture is designed to support a wide range of application programming interfaces (API), such as graPHIGS, X11, and GL. Your GL subsystem is implemented in two pieces: GL windowing, input, and event queue functions are implemented as a module on top of Xlib; and GL drawing commands are sent directly to the graphics hardware. The internals of the 3D drawing subsystem are implemented in a high-performance, object-directed fashion, allowing GL applications to run transparently on different 3D graphics hardware without requiring recompilation or relinking. Additional information about your graphics subsystem architecture can be found in the Xhibition '91 Conference Proceedings (published by Integrated Computer Solutions, Inc. 201 Broadway, Cambridge MA 02139, xhibit@ics.com).

Performance characteristics of your GL implementation differs from the characteristics of the SGI GL implementation. Three system environments affect performance: the "raw" speed of the hardware, the software interface to the hardware, and the structure of application programs. Because some of your GL functions are supported by AIXwindows, these functions operate significantly slower in your GL, such as:

mapcolor getmcolor
viewport scrnmask
curson cursoff

To avoid using the above functions excessively, use the following substitutions to improve the performance of your GL implementation:

mapcolors getmcolors

Certain functions behave differently because of the operating system. The return of gversion is AIX GL Version 3.2 on your platform while it is GL4DPI-3.2 or GL4DPI2-3.2 on the SGI platform.

The drawmode (PUPDRAW) call redirects the mapcolor and getcolor subroutines to affect the pop-up menus. In AIX Version 3.1, GL pop-up menus were implemented as separate X11 windows, on top of Xlib. This design caused the pop-ups to generate excessive REDRAW events to GL applications. To solve this problem, GL pop-up menus were redesigned in AIX Version 3.2 to operate in the overlay planes, using GL rendering calls.

In Color Map Mode, the value stored in the standard bit planes is interpreted as an index into a color map. With GL (AIXwindows environment), the order of the lowest 8 values was modified to be more compatible with X11: black was placed in slot 0 and white in slot 1. To be portable, these colors should be accessed with the #define'd token names found in <gl/gl.h> and never directly through their numeric value. The following table shows the color map's color values:

R G B Color
0 0 0 Black
255 0 0 Red
0 255 0 Green
255 255 0 Yellow
0 0 255 Blue
255 0 255 Magenta
0 255 255 Cyan
255 255 255 White

With the SGI GL, the lowest 8 values in the default color map are loaded in a different order.

The font management facilities provided by SGI as part of the operating system are not part of your GL. The SGI FontManager library provides a font management system that allows scaling and rotating of annotation text fonts. The default font for the Personal IRIS has not been licensed by your supplier. Programs must choose fonts from those provided by AIX and AIXwindows. To set default GL fonts for any programs inheriting the environment from a shell, execute the following:

GLFONT0=Rom10; export GLFONT0; glprog

All AIXwindows fonts are available for use in GL programs. Use the XListFonts call for an array of available font names, and then use loadXfont to load the specified font and return the font ID. Example programs demonstrating this usage can be found in /usr/lpp/GL/examples. With AIXwindows fonts available to your GL, most functions that are provided by SGI FontManager are satisfied.

In AIX Version 3.2, Xlib calls can be mixed with GL calls in the same application. The guidelines for doing this, and the routines that enable this, can be found in Using Enhanced X-Windows Calls with GL Subroutines. Example programs demonstrating integration can be found in /usr/lpp/GL/examples.


[ Previous | Next | Contents | Glossary | Home | Search ]