Name

    EXT_misc_attribute

Name Strings

    GL_EXT_misc_attribute

Version

    $Date: 2005/06/02 18:11:10 $ $Revision: 1.1 $

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
