Back to the OpenGL extension cross reference
GL_EXT_vertex_array_set
    EXT_vertex_array_set / GenName version
Name Strings
    GL_EXT_vertex_array_set
Version
    $Date: 1997/09/17 18:23:47 $ $Revision: 1.2 $
Number
    ???
Dependencies
    EXT_static_vertex_array   
Overview
    This extension introduces named vertex array sets which encapsulate
    vertex array state on the client side. The main purpose of these 
    sets is to keep pointers to static vertex data and provide a name 
    for different sets of static vertex data. The specification of 
    static vertex data is done through EXT_static_vertex_array extension.
Issues
    *   Should we allow vertex array sets to be shared between
    client side contexts? 
    void GenArraySetsEXT(sizei n,
            uint* arrayset);
    void BindArraySetEXT(uint arrayset);
    void DeleteArraySetsEXT(sizei n,
            const uint* arrayset);
    boolean IsArraySetEXT(uint arrayset);
    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
    GetFloatv, and GetDoublev:
    ARRAY_SET_BINDING_EXT
Additions to Chapter 2, 3, 4 of the 1.1 Specification (OpenGL Operation,
    Rasterization, Per-Fragment Operations and the Frame Buffer)
    None
Additions to Chapter 5 of the 1.1 Specification (Special Functions)
    A vertex array set is created by binding an unused name. This binding
    is accomplished by calling BindArraySetEXT with arrayset set to
    the name of the new vertex array set. 
    
    The state encapsulated by a vertex array set immediately after 
    it is first bound is quivalent to the default vertex array 
    state at GL initialization.  Subsequent bindings of a vertex 
    array set have no effect on its encapsulated state unless changed
    explicitly. 
    
    When an OpenGL context is created, there is set of default vertex
    array state associated with the context. In order that the access to
    this default state is not lost, this extension treats the default state
    as if its name was zero. Unlike other vertex array sets, the zero 
    set cannot be deleted.
    
    GenArraySetsEXT returns <n> vertex array set names in <arrayset>.
    These names are chosen in an unspecified manner, the only condition being 
    that only names that were not in use immediately prior to the call to
    GenArraySetsEXT are considered.  Names returned by GenArraySetsEXT 
    are marked as used (so that they are not returned by subsequent calls to
    GenArraySetsEXT), but they are associated with a vertex array set 
    only after they are first bound (just as if the name were unused).
    Vertex array sets are deleted by calling DeleteArraySetsEXT with 
    <arrayset> pointing to a list of <n> names of array sets to be 
    deleted. DeleteArraySetsEXT implicitly performs a UnlockArraysExt 
    on the sets to be deleted before deleting the <arrayset>. Once a 
    vertex array set is deleted, it has no contents, and its name is freed.
    If a pointer set that is currently bound is deleted, the binding
    reverts to zero. DeleteArraySetsEXT ignores names that do not
    correspond to array sets, including zero.
    
Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
    IsArraySetEXT returns TRUE if <arrayset> is the name of a valid
    vertex array set. If <arrayset> is zero, or is a non-zero value
    that is not the name of a vertex array set, or if an error condition
    occurs, IsArraySetEXT returns FALSE. 
    
    The name of the currently bound vertex array set is returned in <params>
    when GetIntegerv is called with <pname> set to  ARRAY_SET_BINDING_EXT. 
    If no vertex array set is bound, zero is returned.
    
    A vertex array set comprises of vertex array pointers, the size and
    type information for each array, the corresponding enable flags and the
    range of static data for each array. More explicitly, the state list
    
    ARRAY_ELEMENT_LOCK_COUNT_EXT
    VERTEX_ARRAY
    VERTEX_ARRAY_SIZE
    VERTEX_ARRAY_TYPE
    VERTEX_ARRAY_STRIDE
    VERTEX_ARRAY_POINTER
    NORMAL_ARRAY
    NORMAL_ARRAY_TYPE
    NORMAL_ARRAY_STRIDE
    NORMAL_ARRAY_POINTER
    COLOR_ARRAY
    COLOR_ARRAY_SIZE
    COLOR_ARRAY_TYPE
    COLOR_ARRAY_STRIDE
    COLOR_ARRAY_POINTER
    INDEX_ARRAY
    INDEX_ARRAY_TYPE
    INDEX_ARRAY_STRIDE
    INDEX_ARRAY_POINTER
    TEXTURE_COORD_ARRAY
    TEXTURE_COORD_ARRAY_SIZE
    TEXTURE_COORD_ARRAY_TYPE
    TEXTURE_COORD_ARRAY_STRIDE
    TEXTURE_COORD_ARRAY_POINTER
    EDGE_FLAG_ARRAY
    EDGE_FLAG_ARRAY_STRIDE
    EDGE_FLAG_ARRAY_POINTER
    
    composes a single vertex array set.
    
    When PushClientAttrib is called with CLIENT_VERTEX_ARRAY_BIT enabled,
    the array pointers, types, size and stride are pushed, as well as
    array pointer enables and the current vertex array set binding.
    When the attribute set that includes vertex array information is
    popped, the binding is first restored to its pushed value and then
    the enables and the array pointers, types, size and stride are
    are restored to their pushed values.
Additions to the GLX Specification
    No change is made to the GLX API.
GLX Protocol
    None
Errors
    INVALID_VALUE is generated if GenArraySetsEXT parameter <n> is negative.
    INVALID_VALUE is generated if DeleteArraySetsEXT parameter <n> is 
    negative.
    INVALID_OPERATION is generated if BindArraySetEXT parameter <n> is 
    negative.
    INVALID_OPERATION is generated if any of the commands defined in this
    extension is executed between the execution of Begin and the corresponding
    execution of End.
New State
    Get Value               Get Command Type    Value   Attrib
    ---------               ----------- ----    ------- ------
    ARRAY_SET_BINDING_EXT   GetIntegerv Z+      0       vertex-array
New Implementation Dependent State
    
    None
Implementation Support
   List of OpenGL implementations supporting the GL_EXT_vertex_array_set extension
Original File
   Original text file for the GL_EXT_vertex_array_set extension
Page generated on Sun Nov 20 18:38:22 2005