15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    EXT_vertex_array_set / GenName version
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_EXT_vertex_array_set
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    $Date: 1997/09/17 18:23:47 $ $Revision: 1.2 $
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNumber
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    ???
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciDependencies
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    EXT_static_vertex_array   
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciOverview
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    This extension introduces named vertex array sets which encapsulate
245bd8deadSopenharmony_ci    vertex array state on the client side. The main purpose of these 
255bd8deadSopenharmony_ci    sets is to keep pointers to static vertex data and provide a name 
265bd8deadSopenharmony_ci    for different sets of static vertex data. The specification of 
275bd8deadSopenharmony_ci    static vertex data is done through EXT_static_vertex_array extension.
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ciIssues
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ci    *   Should we allow vertex array sets to be shared between
325bd8deadSopenharmony_ci    client side contexts? 
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ciNew Procedures and Functions
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    void GenArraySetsEXT(sizei n,
375bd8deadSopenharmony_ci            uint* arrayset);
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ci    void BindArraySetEXT(uint arrayset);
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    void DeleteArraySetsEXT(sizei n,
425bd8deadSopenharmony_ci            const uint* arrayset);
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ci    boolean IsArraySetEXT(uint arrayset);
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ciNew Tokens
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
495bd8deadSopenharmony_ci    GetFloatv, and GetDoublev:
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    ARRAY_SET_BINDING_EXT
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ciAdditions to Chapter 2, 3, 4 of the 1.1 Specification (OpenGL Operation,
545bd8deadSopenharmony_ci    Rasterization, Per-Fragment Operations and the Frame Buffer)
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    None
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions)
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci    A vertex array set is created by binding an unused name. This binding
615bd8deadSopenharmony_ci    is accomplished by calling BindArraySetEXT with arrayset set to
625bd8deadSopenharmony_ci    the name of the new vertex array set. 
635bd8deadSopenharmony_ci    
645bd8deadSopenharmony_ci    The state encapsulated by a vertex array set immediately after 
655bd8deadSopenharmony_ci    it is first bound is quivalent to the default vertex array 
665bd8deadSopenharmony_ci    state at GL initialization.  Subsequent bindings of a vertex 
675bd8deadSopenharmony_ci    array set have no effect on its encapsulated state unless changed
685bd8deadSopenharmony_ci    explicitly. 
695bd8deadSopenharmony_ci    
705bd8deadSopenharmony_ci    When an OpenGL context is created, there is set of default vertex
715bd8deadSopenharmony_ci    array state associated with the context. In order that the access to
725bd8deadSopenharmony_ci    this default state is not lost, this extension treats the default state
735bd8deadSopenharmony_ci    as if its name was zero. Unlike other vertex array sets, the zero 
745bd8deadSopenharmony_ci    set cannot be deleted.
755bd8deadSopenharmony_ci    
765bd8deadSopenharmony_ci    GenArraySetsEXT returns <n> vertex array set names in <arrayset>.
775bd8deadSopenharmony_ci    These names are chosen in an unspecified manner, the only condition being 
785bd8deadSopenharmony_ci    that only names that were not in use immediately prior to the call to
795bd8deadSopenharmony_ci    GenArraySetsEXT are considered.  Names returned by GenArraySetsEXT 
805bd8deadSopenharmony_ci    are marked as used (so that they are not returned by subsequent calls to
815bd8deadSopenharmony_ci    GenArraySetsEXT), but they are associated with a vertex array set 
825bd8deadSopenharmony_ci    only after they are first bound (just as if the name were unused).
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    Vertex array sets are deleted by calling DeleteArraySetsEXT with 
855bd8deadSopenharmony_ci    <arrayset> pointing to a list of <n> names of array sets to be 
865bd8deadSopenharmony_ci    deleted. DeleteArraySetsEXT implicitly performs a UnlockArraysExt 
875bd8deadSopenharmony_ci    on the sets to be deleted before deleting the <arrayset>. Once a 
885bd8deadSopenharmony_ci    vertex array set is deleted, it has no contents, and its name is freed.
895bd8deadSopenharmony_ci    If a pointer set that is currently bound is deleted, the binding
905bd8deadSopenharmony_ci    reverts to zero. DeleteArraySetsEXT ignores names that do not
915bd8deadSopenharmony_ci    correspond to array sets, including zero.
925bd8deadSopenharmony_ci    
935bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
945bd8deadSopenharmony_ci
955bd8deadSopenharmony_ci    IsArraySetEXT returns TRUE if <arrayset> is the name of a valid
965bd8deadSopenharmony_ci    vertex array set. If <arrayset> is zero, or is a non-zero value
975bd8deadSopenharmony_ci    that is not the name of a vertex array set, or if an error condition
985bd8deadSopenharmony_ci    occurs, IsArraySetEXT returns FALSE. 
995bd8deadSopenharmony_ci    
1005bd8deadSopenharmony_ci    The name of the currently bound vertex array set is returned in <params>
1015bd8deadSopenharmony_ci    when GetIntegerv is called with <pname> set to  ARRAY_SET_BINDING_EXT. 
1025bd8deadSopenharmony_ci    If no vertex array set is bound, zero is returned.
1035bd8deadSopenharmony_ci    
1045bd8deadSopenharmony_ci    A vertex array set comprises of vertex array pointers, the size and
1055bd8deadSopenharmony_ci    type information for each array, the corresponding enable flags and the
1065bd8deadSopenharmony_ci    range of static data for each array. More explicitly, the state list
1075bd8deadSopenharmony_ci    
1085bd8deadSopenharmony_ci    ARRAY_ELEMENT_LOCK_COUNT_EXT
1095bd8deadSopenharmony_ci    VERTEX_ARRAY
1105bd8deadSopenharmony_ci    VERTEX_ARRAY_SIZE
1115bd8deadSopenharmony_ci    VERTEX_ARRAY_TYPE
1125bd8deadSopenharmony_ci    VERTEX_ARRAY_STRIDE
1135bd8deadSopenharmony_ci    VERTEX_ARRAY_POINTER
1145bd8deadSopenharmony_ci    NORMAL_ARRAY
1155bd8deadSopenharmony_ci    NORMAL_ARRAY_TYPE
1165bd8deadSopenharmony_ci    NORMAL_ARRAY_STRIDE
1175bd8deadSopenharmony_ci    NORMAL_ARRAY_POINTER
1185bd8deadSopenharmony_ci    COLOR_ARRAY
1195bd8deadSopenharmony_ci    COLOR_ARRAY_SIZE
1205bd8deadSopenharmony_ci    COLOR_ARRAY_TYPE
1215bd8deadSopenharmony_ci    COLOR_ARRAY_STRIDE
1225bd8deadSopenharmony_ci    COLOR_ARRAY_POINTER
1235bd8deadSopenharmony_ci    INDEX_ARRAY
1245bd8deadSopenharmony_ci    INDEX_ARRAY_TYPE
1255bd8deadSopenharmony_ci    INDEX_ARRAY_STRIDE
1265bd8deadSopenharmony_ci    INDEX_ARRAY_POINTER
1275bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY
1285bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_SIZE
1295bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_TYPE
1305bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_STRIDE
1315bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_POINTER
1325bd8deadSopenharmony_ci    EDGE_FLAG_ARRAY
1335bd8deadSopenharmony_ci    EDGE_FLAG_ARRAY_STRIDE
1345bd8deadSopenharmony_ci    EDGE_FLAG_ARRAY_POINTER
1355bd8deadSopenharmony_ci    
1365bd8deadSopenharmony_ci    composes a single vertex array set.
1375bd8deadSopenharmony_ci    
1385bd8deadSopenharmony_ci    When PushClientAttrib is called with CLIENT_VERTEX_ARRAY_BIT enabled,
1395bd8deadSopenharmony_ci    the array pointers, types, size and stride are pushed, as well as
1405bd8deadSopenharmony_ci    array pointer enables and the current vertex array set binding.
1415bd8deadSopenharmony_ci    When the attribute set that includes vertex array information is
1425bd8deadSopenharmony_ci    popped, the binding is first restored to its pushed value and then
1435bd8deadSopenharmony_ci    the enables and the array pointers, types, size and stride are
1445bd8deadSopenharmony_ci    are restored to their pushed values.
1455bd8deadSopenharmony_ci
1465bd8deadSopenharmony_ciAdditions to the GLX Specification
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ci    No change is made to the GLX API.
1495bd8deadSopenharmony_ci
1505bd8deadSopenharmony_ciGLX Protocol
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ci    None
1535bd8deadSopenharmony_ci
1545bd8deadSopenharmony_ciErrors
1555bd8deadSopenharmony_ci
1565bd8deadSopenharmony_ci    INVALID_VALUE is generated if GenArraySetsEXT parameter <n> is negative.
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci    INVALID_VALUE is generated if DeleteArraySetsEXT parameter <n> is 
1595bd8deadSopenharmony_ci    negative.
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci    INVALID_OPERATION is generated if BindArraySetEXT parameter <n> is 
1625bd8deadSopenharmony_ci    negative.
1635bd8deadSopenharmony_ci
1645bd8deadSopenharmony_ci    INVALID_OPERATION is generated if any of the commands defined in this
1655bd8deadSopenharmony_ci    extension is executed between the execution of Begin and the corresponding
1665bd8deadSopenharmony_ci    execution of End.
1675bd8deadSopenharmony_ci
1685bd8deadSopenharmony_ciNew State
1695bd8deadSopenharmony_ci
1705bd8deadSopenharmony_ci    Get Value               Get Command Type    Value   Attrib
1715bd8deadSopenharmony_ci    ---------               ----------- ----    ------- ------
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ci    ARRAY_SET_BINDING_EXT   GetIntegerv Z+      0       vertex-array
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ciNew Implementation Dependent State
1765bd8deadSopenharmony_ci    
1775bd8deadSopenharmony_ci    None
1785bd8deadSopenharmony_ci
1795bd8deadSopenharmony_ci
180