1Name 2 3 EXT_misc_attribute 4 5Name Strings 6 7 GL_EXT_misc_attribute 8 9Version 10 11 $Date: 1999/04/03 08:40:56 $ $Revision: 1.5 $ 12 13Number 14 15 31 16 17Dependencies 18 19 None 20 21Overview 22 23 EXT_misc_attribute extends the list of attribute groups. It provides 24 a miscellaneous group, controlled by the MISC_BIT_EXT bit, that contains 25 the attribute state of extensions that don't logically fit in any other 26 group. 27 28Reasoning 29 30 In general, an extension's attributes are assigned to a similar 31 attribute group. If an extension is developed that doesn't fit in 32 any of the GL's existing attribute groups, the extension's attributes 33 should be added to the miscellaneous group. 34 35 The GL sample implementation incorrectly checks the bits in 36 the <mask> argument to PushAttrib and glXCopyContext, 37 generating an error if any unused bits are set. This 38 behavior causes interoperability problems between GLs with 39 different sets of attribute groups. This error checking 40 should be removed from all implementations. The reference 41 to this error checking should also be removed from the GLX 42 specification. 43 44 Because of the bit checking described above, ALL_ATTRIB_BITS 45 can't include MISC_BIT_EXT without risking GL interoperability 46 problems. Not including MISC_BIT_EXT changes the semantics of 47 ALL_ATTRIB_BITS, but is considered the lesser of two evils. 48 These problems should be fixed in the next GL version. 49 50New Procedures and Functions 51 52 None 53 54New Tokens 55 56 MISC_BIT_EXT 57 58Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 59 60 None 61 62Additions to Chapter 3 of the 1.0 Specification (Rasterization) 63 64 None 65 66Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 67and the Frame Buffer) 68 69 None 70 71Additions to Chapter 5 of the 1.0 Specification (Special Functions) 72 73 None 74 75Additions to Chapter 6 of the 1.0 Specification (State and State Requests) 76 77 The command 78 79 void PushAttrib(bitfield mask) 80 81 takes a bitwise OR of symbolic constants indicating which groups of 82 state variables to push onto an attribute stack. Each constant refers 83 to a group of state variables. The single symbolic constant 84 GL_ALL_ATTRIB_BITS can be used to copy all of the attribute groups defined 85 by the core GL. Additional extension attribute groups cannot be copied 86 using GL_ALL_ATTRIB_BITS. To copy these groups, check to see that the GL 87 implementation supports the extension, then use a bitwise OR to set 88 the appropriate bit(s) in <mask>. 89 90 91(Table 6.1 (Attribute Groups).) 92 93 Attribute Constant ALL_ATTRIB_BITS 94 --------- -------- --------------- 95 96 accum-buffer ACCUM_BUFFER_BIT yes 97 color-buffer COLOR_BUFFER_BIT yes 98 current CURRENT_BIT yes 99 depth-buffer DEPTH_BUFFER_BIT yes 100 enable ENABLE_BIT yes 101 eval EVAL_BIT yes 102 fog FOG_BIT yes 103 hint HINT_BIT yes 104 lighting LIGHTING_BIT yes 105 line LINE_BIT yes 106 list LIST_BIT yes 107 pixel PIXEL_MODE_BIT yes 108 point POINT_BIT yes 109 polygon POLYGON_BIT yes 110 polygon-stipple POLYGON_STIPPLE_BIT yes 111 scissor SCISSOR_BIT yes 112 stencil-buffer STENCIL_BUFFER_BIT yes 113 texture TEXTURE_BIT yes 114 transform TRANSFORM_BIT yes 115 viewport VIEWPORT_BIT yes 116 miscellaneous MISC_BIT_EXT no 117 - ALL_ATTRIB_BITS - 118 119 120Additions to the GLX Specification 121 122(In the glXCopyContext description) 123 124 The single symbolic constant GL_ALL_ATTRIB_BITS can be used to 125 copy all of the attribute groups defined by the core GL. Additional 126 extension attribute groups can not be copied using GL_ALL_ATTRIB_BITS. 127 To copy these groups, check to see that the GL implementation supports 128 the extension, then use a bitwise OR to set the appropriate bit(s) in 129 <mask>. 130 131Errors 132 133 None 134 135New State 136 137 None 138 139New Implementation Dependent State 140 141 None 142