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 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 . (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 . Errors None New State None New Implementation Dependent State None