
- •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

5.5. FLUSH AND FINISH |
|
|
|
|
242 |
||
|
TexImage3D, TexImage2D, TexImage1D, |
Histogram, |
and |
Col- |
|||
orTable are |
executed immediately when called |
with the |
correspond- |
||||
ing |
proxy |
arguments |
PROXY TEXTURE 3D; |
PROXY TEXTURE 2D |
or |
||
PROXY TEXTURE CUBE MAP; |
PROXY TEXTURE 1D; |
PROXY HISTOGRAM; |
|||||
and |
PROXY COLOR TABLE, |
PROXY POST CONVOLUTION COLOR TABLE, |
or |
||||
PROXY POST COLOR MATRIX COLOR TABLE. |
|
|
|
|
|||
|
When a program object is in use, a display list may be executed whose vertex |
attribute calls do not match up exactly with what is expected by the vertex shader contained in that program object. Handling of this mismatch is described in section 2.15.3.
Display lists require one bit of state to indicate whether a GL command should be executed immediately or placed in a display list. In the initial state, commands are executed immediately. If the bit indicates display list creation, an index is required to indicate the current display list being defined. Another bit indicates, during display list creation, whether or not commands should be executed as they are compiled into the display list. One integer is required for the current ListBase setting; its initial value is zero. Finally, state must be maintained to indicate which integers are currently in use as display list indices. In the initial state, no indices are in use.
5.5Flush and Finish
The command
void Flush( void );
indicates that all commands that have previously been sent to the GL must complete in finite time.
The command
void Finish( void );
forces all previous GL commands to complete. Finish does not return until all effects from previously issued commands on GL client and server state and the framebuffer are fully realized.
5.6Hints
Certain aspects of GL behavior, when there is room for variation, may be controlled with hints. A hint is specified using
Version 2.0 - October 22, 2004

5.6. HINTS |
243 |
|
|
Target |
Hint description |
|
|
|
|
PERSPECTIVE CORRECTION HINT |
Quality of parameter interpolation |
|
|
POINT SMOOTH HINT |
Point sampling quality |
|
|
LINE SMOOTH HINT |
Line sampling quality |
|
|
POLYGON SMOOTH HINT |
Polygon sampling quality |
|
|
FOG HINT |
Fog quality |
|
(calculated per-pixel or per-vertex) |
|
|
GENERATE MIPMAP HINT |
Quality and performance of |
|
automatic mipmap level generation |
|
|
TEXTURE COMPRESSION HINT |
Quality and performance of |
|
texture image compression |
|
|
FRAGMENT SHADER DERIVATIVE HINT |
Derivative accuracy for fragment |
|
processing built-in functions |
|
dFdx, dFdy and fwidth |
|
|
Table 5.3: Hint targets and descriptions.
void Hint( enum target, enum hint );
target is a symbolic constant indicating the behavior to be controlled, and hint is a symbolic constant indicating what type of behavior is desired. The possible targets are described in table 5.3; for each target, hint must be one of FASTEST, indicating that the most efficient option should be chosen; NICEST, indicating that the highest quality option should be chosen; and DONT CARE, indicating no preference in the matter.
For the texture compression hint, a hint of FASTEST indicates that texture images should be compressed as quickly as possible, while NICEST indicates that the texture images be compressed with as little image degradation as possible. FASTEST should be used for one-time texture compression, and NICEST should be used if the compression results are to be retrieved by GetCompressedTexImage (section 6.1.4) for reuse.
The interpretation of hints is implementation dependent. An implementation may ignore them entirely.
The initial value of all hints is DONT CARE.
Version 2.0 - October 22, 2004