Apple iMac / G3 / G4 / etc (OS support library: agl)

Troy Dawson, Dan Zinngrabe and Christopher Holland have all given me a great deal of help with assembling the information on this page. All the actual text, however, was written by Neal Tringham, who takes full responsibility for any mistakes

Sections

Accelerators

Architecture

GameSprockets

Game Related Extensions

OpenGL 1.2

Accelerated CPU Instructions

Mac OS X

Accelerators

ATI: Rage Pro, Rage 128 (versions of these cards are built in to iMacs, G3s, G4s and some recent Powerbooks)

3dfx: All Voodoo cards used in Macs now have drivers from 3dfx, Mesa, or both (see External Links for details).

3DLabs Permedia 3: There is a version of this card (the Proformance III) made by Formac, for which the drivers are in final release as of 20th December 1999 and apparently working well.

There is also an accelerated driver in the Apple install for Macs containing a Rage II, but the implementation is not fully OpenGL 1.1 conformant (due to issues with the card hardware) and so it can only be accessed if the "AGL_ALL_RENDERERS" flag is used during initialisation. Note that the frame rate of a modern 3d game on a Rage II is likely to be rather less than stunning in any case.

Some other older hardware may be usable with the Apple OpenGL implementation via the QuickDraw3D RAVE driver interface.

Apple supply a free shippable installer for ATI support (ATI provide the only cards normally shipped in Macs), which I believe can be included on games CDs if the appropriate (free) agreements are signed. At present, 3dfx and Permedia 3 drivers have to be installed separately.

Architecture

There are two main implementations on the Mac: Apple's OpenGL and Mesa for 3dfx on the Mac. Apple's OpenGL is actually based on the 1.5 version of the now discontinued Conix implementation of OpenGL for the Mac. Although there are native drivers for cards such as the Rage 128 and Proformance III, other hardware may be accessible via the RAVE layer that Conix used to use. Note that the Apple OpenGL implementation only started shipping as part of OS 9, but it can be installed on OS 8.1 or later.

Mesa for the Mac includes a separate development environment (Mesa is an open source clone of OpenGL. On the Mac it runs on 3dfx cards, on top of MacGlide). However, it can now also be used as a plugin with the Mac OpenGL SDK, so that all current OpenGL implementations on the Mac can be targeted with a single development environment.

GameSprockets

Apple's GameSprockets are normally used by developers to support input, sound and basic screen access on Mac games. DrawSprocket generally works well with OpenGL, but it should be noted that QuickDraw can't see Voodoo 1 or 2 cards. Troy Dawson says that, when using DrawSprocket, "one should create a real CGrafPtr from a real window and not use the DSP-provided CGrafPtrs as AGLDrawables".

See the downloads section for Quake 3's Mac initialisation code, which demonstrates how to start up and shut down OpenGL for a Mac game, set screen modes, etc, as well as some other useful functionality such as hardware gamma ramp manipulation.

Game Related Extensions

The current ATI drivers include a number of commonly used game oriented extensions, such as EXT_compiled_vertex_array, as well as two new extensions defined by Apple, APPLE_transform_hint and APPLE_specular_vector.

OpenGL 1.2

The current release of Apple's OpenGL is version 1.1. The Mesa implementation for Macs (see above) is 1.2, but there is no guarantee that 1.2 specific functionality will be accelerated.

Accelerated CPU Instructions

The current release of Apple's OpenGL (version 1.1.2) includes optimisations to the OpenGL geometry and lighting pipeline for machines with a G4 Velocity Engine, similar to the Katmai and 3DNow! optimisations found in OpenGL drivers running on PC hardware.

Max OS X

OpenGL, like the GameSprockets, should be supported in Mac OS X, but as of March 2000 Apple have not publically released any technical details.

Back to main