
- •Introduction
- •Formatting of Optional Features
- •What is the OpenGL Graphics System?
- •Our View
- •Companion Documents
- •OpenGL Operation
- •OpenGL Fundamentals
- •Floating-Point Computation
- •GL State
- •GL Command Syntax
- •Basic GL Operation
- •GL Errors
- •Begin/End Paradigm
- •Begin and End
- •Polygon Edges
- •GL Commands within Begin/End
- •Vertex Specification
- •Vertex Arrays
- •Buffer Objects
- •Vertex Arrays in Buffer Objects
- •Array Indices in Buffer Objects
- •Rectangles
- •Coordinate Transformations
- •Controlling the Viewport
- •Matrices
- •Normal Transformation
- •Generating Texture Coordinates
- •Clipping
- •Current Raster Position
- •Colors and Coloring
- •Lighting
- •ColorMaterial
- •Lighting State
- •Color Index Lighting
- •Clamping or Masking
- •Flatshading
- •Color and Associated Data Clipping
- •Final Color Processing
- •Vertex Shaders
- •Shader Objects
- •Program Objects
- •Shader Variables
- •Shader Execution
- •Required State
- •Rasterization
- •Invariance
- •Antialiasing
- •Multisampling
- •Points
- •Basic Point Rasterization
- •Point Rasterization State
- •Point Multisample Rasterization
- •Line Segments
- •Basic Line Segment Rasterization
- •Other Line Segment Features
- •Line Rasterization State
- •Line Multisample Rasterization
- •Polygons
- •Basic Polygon Rasterization
- •Stippling
- •Antialiasing
- •Options Controlling Polygon Rasterization
- •Depth Offset
- •Polygon Multisample Rasterization
- •Polygon Rasterization State
- •Pixel Rectangles
- •Pixel Storage Modes
- •The Imaging Subset
- •Pixel Transfer Modes
- •Rasterization of Pixel Rectangles
- •Pixel Transfer Operations
- •Pixel Rectangle Multisample Rasterization
- •Bitmaps
- •Texturing
- •Compressed Texture Images
- •Texture Parameters
- •Depth Component Textures
- •Cube Map Texture Selection
- •Texture Wrap Modes
- •Texture Completeness
- •Texture State and Proxy State
- •Texture Objects
- •Texture Environments and Texture Functions
- •Texture Comparison Modes
- •Texture Application
- •Color Sum
- •Fragment Shaders
- •Shader Variables
- •Shader Execution
- •Antialiasing Application
- •Multisample Point Fade
- •Per-Fragment Operations
- •Pixel Ownership Test
- •Scissor Test
- •Multisample Fragment Operations
- •Alpha Test
- •Stencil Test
- •Depth Buffer Test
- •Occlusion Queries
- •Blending
- •Dithering
- •Logical Operation
- •Additional Multisample Fragment Operations
- •Whole Framebuffer Operations
- •Selecting a Buffer for Writing
- •Fine Control of Buffer Updates
- •Clearing the Buffers
- •The Accumulation Buffer
- •Drawing, Reading, and Copying Pixels
- •Writing to the Stencil Buffer
- •Reading Pixels
- •Copying Pixels
- •Pixel Draw/Read State
- •Special Functions
- •Evaluators
- •Selection
- •Feedback
- •Display Lists
- •Flush and Finish
- •Hints
- •State and State Requests
- •Querying GL State
- •Simple Queries
- •Data Conversions
- •Enumerated Queries
- •Texture Queries
- •Stipple Query
- •Color Matrix Query
- •Color Table Query
- •Convolution Query
- •Histogram Query
- •Minmax Query
- •Pointer and String Queries
- •Occlusion Queries
- •Buffer Object Queries
- •Shader and Program Queries
- •Saving and Restoring State
- •State Tables
- •Invariance
- •Corollaries
- •Version 1.1
- •Version 1.2
- •Imaging Subset
- •Version 1.2.1
- •Version 1.3
- •Version 1.4
- •Fog Coordinate
- •Texture LOD Bias
- •Version 1.5
- •Version 2.0
- •ARB Extensions
- •Texture Mirrored Repeat
- •OpenGL Shading Language

Appendix H
Version 1.5
OpenGL version 1.5, released on July 29, 2003, is the fifth revision since the original version 1.0. Version 1.5 is upward compatible with earlier versions, meaning that any program that runs with a 1.4, 1.3, 1.2, 1.1, or 1.0 GL implementation will also run unchanged with a 1.5 GL implementation.
In addition to additions to the classical fixed-function GL pipeline in OpenGL 1.5, the OpenGL ARB also approved a related set of ARB extensions including the OpenGL Shading Language specification and the ARB shader objects,
ARB vertex shader, and ARB fragment shader extensions through which high-level shading language programs can be loaded and used in place of the fixedfunction pipeline.
Following are brief descriptions of each addition to OpenGL 1.5. The low-level and high-level shading languages are important adjuncts to the OpenGL core. They are described in more detail in appendix J, and their corresponding ARB extension specifications are available online as described in that appendix.
H.1 Buffer Objects
Buffer objects allow various types of data (especially vertex array data) to be cached in high-performance graphics memory on the server, thereby increasing the rate of data transfers to the GL.
Buffer objects were promoted from the ARB vertex buffer object extension.
334

H.2. OCCLUSION QUERIES |
335 |
H.2 Occlusion Queries
An occlusion query is a mechanism whereby an application can query the number of pixels (or, more precisely, samples) drawn by a primitive or group of primitives. The primary purpose of occlusion queries is to determine the visibility of an object.
Occlusion query was promoted from the ARB occlusion query extension.
H.3 Shadow Functions
Texture comparison functions are generalized to support all eight binary functions rather than just LEQUAL and GEQUAL.
Texture comparison functions were promoted from the EXT shadow funcs extension.
H.4 Changed Tokens
To achieve consistency with the syntax guidelines for OpenGL function and token names, new token names are introduced to be used in place of old, inconsistent names. However, the old token names continue to be supported, for backwards compatibility with code written for previous versions of OpenGL. The new names, and the old names they replace, are shown in table H.1.
H.5 Acknowledgements
OpenGL 1.5 is the result of the contributions of many people. The editor especially thanks the following individuals for their sustained efforts in leading ARB working groups essential to the success of OpenGL 1.5 and of ARB extensions approved in
conjunction with OpenGL 1.5: |
|
|
|
|
|
||
Matt |
Craighead |
led |
the |
working |
group |
which |
cre- |
ated the ARB vertex buffer object extension and OpenGL 1.5 core feature. Kurt Akeley wrote the initial specification for the group.
Daniel Ginsburg and Matt Craighead led the working group which created the ARB occlusion query extension and OpenGL 1.5 core feature.
Benjamin Lipchak led the fragment program working group which created the ARB fragment program extension, completing the low-level programmable
shading interface. |
|
Bill Licea-Kane |
led the GL2 working group which created the high- |
level programmable |
shading interface, including the ARB fragment shader, |
Version 2.0 - October 22, 2004

H.5. ACKNOWLEDGEMENTS |
336 |
|
|
New Token Name |
Old Token Name |
|
|
|
|
FOG COORD SRC |
FOG COORDINATE SOURCE |
|
|
FOG COORD |
FOG COORDINATE |
|
|
CURRENT FOG COORD |
CURRENT FOG COORDINATE |
|
|
FOG COORD ARRAY TYPE |
FOG COORDINATE ARRAY TYPE |
|
|
FOG COORD ARRAY STRIDE |
FOG COORDINATE ARRAY STRIDE |
|
|
FOG COORD ARRAY POINTER |
FOG COORDINATE ARRAY POINTER |
|
|
FOG COORD ARRAY |
FOG COORDINATE ARRAY |
|
|
FOG COORD ARRAY BUFFER BINDING |
FOG COORDINATE ARRAY BUFFER BINDING |
|
|
SRC0 RGB |
SOURCE0 RGB |
|
|
SRC1 RGB |
SOURCE1 RGB |
|
|
SRC2 RGB |
SOURCE2 RGB |
|
|
SRC0 ALPHA |
SOURCE0 ALPHA |
|
|
SRC1 ALPHA |
SOURCE1 ALPHA |
|
|
SRC2 ALPHA |
SOURCE2 ALPHA |
|
|
Table H.1: New token names and the old names they replace.
ARB shader objects, and ARB vertex shader extensions and the OpenGL Shading Language.
John Kessenich was the principal editor of the OpenGL Shading Language specification for the GL2 working group, starting from the initial glslang proposal written by John, Dave Baldwin, and Randi Rost.
A partial list of other contributors, including the company that they represented at the time of their contribution, follows:
Kurt Akeley, NVIDIA Allen Akin
Chad Anson, Dell Computer
Bill Armstrong, Evans & Sutherland Ben Ashbaugh, Intel
Dave Baldwin, 3Dlabs Chris Bentley, ATI Bob Beretta, Apple David Blythe
Alain Bouchard, Matrox
Daniel Brokenshire, IBM Pat Brown, NVIDIA
John Carmack, Id Software
Version 2.0 - October 22, 2004
H.5. ACKNOWLEDGEMENTS |
337 |
Paul Carmichael, NVIDIA
Bob Carwell, IBM
Paul Clarke, IBM
Bill Clifford, Intel
Roger Cloud, SGI
Graham Connor, Power VR
Matt Craighead, NVIDIA
Doug Crisman, SGI
Matt Cruikshank, Vital Images
Deron Dann Johnson, Sun
Suzy Deffeyes, IBM
Steve Demlow, Vital Images
Joe Deng, SiS
Jean-Luc Dery, Discreet
Kenneth Dyke, Apple
Brian Emberling, Sun
Cass Everitt, NVIDIA
Brandon Fliflet, Intel
Allen Gallotta, ATI
Daniel Ginsburg, ATI
Steve Glanville, NVIDIA
Peter Graffagnino, Apple
Lee Gross, IBM
Rick Hammerstone, ATI
Evan Hart, ATI
Chris Hecker, Definition 6
Alan Heirich, HP
Gareth Hughes, NVIDIA
Michael I Gold, NVIDIA
John Jarvis, Alt.software
Rich Johnson, HP
John Kessenich, 3Dlabs
Mark Kilgard, NVIDIA
Dale Kirkland, 3Dlabs
Raymond Klassen, Intel
Jason Knipe, Bioware
Jayant Kolhe, NVIDIA
Steve Koren, 3Dlabs
Bob Kuehne, SGI
Christian Laforte, Alias
Version 2.0 - October 22, 2004
H.5. ACKNOWLEDGEMENTS |
338 |
Luc Leblanc, Discreet
Jon Leech, SGI
Kevin Lefebvre, HP
Bill Licea-Kane, ATI
Barthold Lichtenbelt, 3Dlabs
Kent Lin, Intel
Benjamin Lipchak, ATI
Rob Mace, ATI
Bill Mark, NVIDIA
Michael McCool, U. Waterloo
Jack Middleton, Sun
Howard Miller, Apple
Teri Morrison, HP / 3Dlabs
Marc Olano, SGI / U. Maryland
Jean-Francois Panisset, Discreet
Jon Paul Schelter, Matrox
Brian Paul, Tungsten Graphics
Scott Peterson, HP
Bimal Poddar, Intel
Thomas Roell, Xi Graphics
Phil Rogers, ATI
Ian Romanick, IBM
John Rosasco, Apple
Randi Rost, 3Dlabs
Matt Russo, Matrox
Jeremy Sandmel, ATI
Paul Sargent, 3Dlabs
Folker Schamel, Spinor GMBH
Michael Schulman, Sun
John Scott, Raven Software
Avinash Seetharamaiah, Intel
John Spitzer, NVIDIA
Vlad Stamate, Power VR
Michelle Stamnes, Intel
John Stauffer, Apple
Eskil Steenberg, Obsession
Bruce Stockwell, HP
Christopher Tan, IBM
Ray Tice, Avid
Pierre P. Tremblay, Discreet
Version 2.0 - October 22, 2004
H.5. ACKNOWLEDGEMENTS |
339 |
Neil Trevett, 3Dlabs
Nick Triantos, NVIDIA
Douglas Twilleager, Sun
Shawn Underwood, SGI
Steve Urquhart, Intelligraphics
Victor Vedovato, ATI
Daniel Vogel, Epic Games
Mik Wells, Softimage
Helene Workman, Apple
Dave Zenz, Dell
Karel Zuiderveld, Vital Images
Version 2.0 - October 22, 2004