blob: 519b725654bf91e91d339395c089eee963cfd95a [file] [log] [blame]
Name
EXT_misc_attribute
Name Strings
GL_EXT_misc_attribute
Version
$Date: 1999/04/03 08:40:56 $ $Revision: 1.5 $
Number
31
Dependencies
None
Overview
EXT_misc_attribute extends the list of attribute groups. It provides
a miscellaneous group, controlled by the MISC_BIT_EXT bit, that contains
the attribute state of extensions that don't logically fit in any other
group.
Reasoning
In general, an extension's attributes are assigned to a similar
attribute group. If an extension is developed that doesn't fit in
any of the GL's existing attribute groups, the extension's attributes
should be added to the miscellaneous group.
The GL sample implementation incorrectly checks the bits in
the <mask> argument to PushAttrib and glXCopyContext,
generating an error if any unused bits are set. This
behavior causes interoperability problems between GLs with
different sets of attribute groups. This error checking
should be removed from all implementations. The reference
to this error checking should also be removed from the GLX
specification.
Because of the bit checking described above, ALL_ATTRIB_BITS
can't include MISC_BIT_EXT without risking GL interoperability
problems. Not including MISC_BIT_EXT changes the semantics of
ALL_ATTRIB_BITS, but is considered the lesser of two evils.
These problems should be fixed in the next GL version.
New Procedures and Functions
None
New Tokens
MISC_BIT_EXT
Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
None
Additions to Chapter 3 of the 1.0 Specification (Rasterization)
None
Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
and the Frame Buffer)
None
Additions to Chapter 5 of the 1.0 Specification (Special Functions)
None
Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
The command
void PushAttrib(bitfield mask)
takes a bitwise OR of symbolic constants indicating which groups of
state variables to push onto an attribute stack. Each constant refers
to a group of state variables. The single symbolic constant
GL_ALL_ATTRIB_BITS can be used to copy all of the attribute groups defined
by the core GL. Additional extension attribute groups cannot be copied
using GL_ALL_ATTRIB_BITS. To copy these groups, check to see that the GL
implementation supports the extension, then use a bitwise OR to set
the appropriate bit(s) in <mask>.
(Table 6.1 (Attribute Groups).)
Attribute Constant ALL_ATTRIB_BITS
--------- -------- ---------------
accum-buffer ACCUM_BUFFER_BIT yes
color-buffer COLOR_BUFFER_BIT yes
current CURRENT_BIT yes
depth-buffer DEPTH_BUFFER_BIT yes
enable ENABLE_BIT yes
eval EVAL_BIT yes
fog FOG_BIT yes
hint HINT_BIT yes
lighting LIGHTING_BIT yes
line LINE_BIT yes
list LIST_BIT yes
pixel PIXEL_MODE_BIT yes
point POINT_BIT yes
polygon POLYGON_BIT yes
polygon-stipple POLYGON_STIPPLE_BIT yes
scissor SCISSOR_BIT yes
stencil-buffer STENCIL_BUFFER_BIT yes
texture TEXTURE_BIT yes
transform TRANSFORM_BIT yes
viewport VIEWPORT_BIT yes
miscellaneous MISC_BIT_EXT no
- ALL_ATTRIB_BITS -
Additions to the GLX Specification
(In the glXCopyContext description)
The single symbolic constant GL_ALL_ATTRIB_BITS can be used to
copy all of the attribute groups defined by the core GL. Additional
extension attribute groups can not be copied using GL_ALL_ATTRIB_BITS.
To copy these groups, check to see that the GL implementation supports
the extension, then use a bitwise OR to set the appropriate bit(s) in
<mask>.
Errors
None
New State
None
New Implementation Dependent State
None