15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    APPLE_vertex_array_object
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_APPLE_vertex_array_object
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Bob Beretta, Apple Computer (beretta 'at' apple.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciStatus
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Complete
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciVersion
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    $Date: 2002/09/23 04:37:25 $ $Revision: 1.9 $
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciNumber
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    273
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciDependencies
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    APPLE_vertex_array_range affects the definition of this extension.
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ci    APPLE_element_array affects the definition of this extension.
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ci    ARB_vertex_program affects the definition of this extension.
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    EXT_secondary_color affects the definition of this extension.
345bd8deadSopenharmony_ci    
355bd8deadSopenharmony_ci    EXT_fog_coord affects the definition of this extension.
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    ARB_vertex_blend affects the definition of this extension.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciOverview
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    This extension introduces named vertex array objects which encapsulate
425bd8deadSopenharmony_ci    vertex array state on the client side. The main purpose of these 
435bd8deadSopenharmony_ci    objects is to keep pointers to static vertex data and provide a name 
445bd8deadSopenharmony_ci    for different sets of static vertex data.  
455bd8deadSopenharmony_ci    
465bd8deadSopenharmony_ci    By extending vertex array range functionality this extension allows multiple
475bd8deadSopenharmony_ci    vertex array ranges to exist at one time, including their complete sets of
485bd8deadSopenharmony_ci    state, in manner analogous to texture objects. 
495bd8deadSopenharmony_ci    
505bd8deadSopenharmony_ci    GenVertexArraysAPPLE creates a list of n number of vertex array object
515bd8deadSopenharmony_ci    names.  After creating a name, BindVertexArrayAPPLE associates the name with
525bd8deadSopenharmony_ci    a vertex array object and selects this vertex array and its associated
535bd8deadSopenharmony_ci    state as current.  To get back to the default vertex array and its
545bd8deadSopenharmony_ci    associated state the client should bind to vertex array named 0.
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    Once a client is done using a vertex array object it can be deleted with
575bd8deadSopenharmony_ci    DeleteVertexArraysAPPLE.  The client is responsible for allocating and
585bd8deadSopenharmony_ci    deallocating the memory used by the vertex array data, while the
595bd8deadSopenharmony_ci    DeleteVertexArraysAPPLE command deletes vertex array object names and
605bd8deadSopenharmony_ci    associated state only.
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ciIssues
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    None
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ciNew Procedures and Functions
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    void BindVertexArrayAPPLE(uint array);
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci    void DeleteVertexArraysAPPLE(sizei n, const uint *arrays);
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci    void GenVertexArraysAPPLE(sizei n, const uint *arrays);
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    boolean IsVertexArrayAPPLE(uint array);
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ciNew Tokens
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
795bd8deadSopenharmony_ci    and GetDoublev:
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci    VERTEX_ARRAY_BINDING_APPLE                 0x85B5
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ciAdditions to Chapter 2, 3, 4 of the 1.1 Specification (OpenGL Operation,
845bd8deadSopenharmony_ci    Rasterization, Per-Fragment Operations and the Frame Buffer)
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    None
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions)
895bd8deadSopenharmony_ci
905bd8deadSopenharmony_ci    A vertex array object is created by binding an unused name. This binding is
915bd8deadSopenharmony_ci    accomplished by calling BindVertexArrayAPPLE with id set to the name of the
925bd8deadSopenharmony_ci    new vertex array object.
935bd8deadSopenharmony_ci    
945bd8deadSopenharmony_ci    The state encapsulated by a vertex array object immediately after it is
955bd8deadSopenharmony_ci    first bound is equivalent to the default vertex array state at GL
965bd8deadSopenharmony_ci    initialization.  Subsequent bindings of a vertex array object have no effect
975bd8deadSopenharmony_ci    on its encapsulated state unless changed explicitly.
985bd8deadSopenharmony_ci    
995bd8deadSopenharmony_ci    When an OpenGL context is created, there is set of default vertex array
1005bd8deadSopenharmony_ci    state associated with the context. In order that the access to this default
1015bd8deadSopenharmony_ci    state is not lost, this extension treats the default state as if its name
1025bd8deadSopenharmony_ci    was zero. Unlike other vertex array objects, the zero named object cannot be
1035bd8deadSopenharmony_ci    deleted.
1045bd8deadSopenharmony_ci    
1055bd8deadSopenharmony_ci    GenVertexArraysAPPLE returns a list of <n> unused vertex array object names
1065bd8deadSopenharmony_ci    in <arrays>.  Only names that were not in use immediately prior to the call
1075bd8deadSopenharmony_ci    to GenVertexArraysAPPLE are included in the returned list.  Names returned
1085bd8deadSopenharmony_ci    by GenVertexArraysAPPLE are marked as used, so that they are not returned by
1095bd8deadSopenharmony_ci    subsequent calls to GenVertexArraysAPPLE, but they are associated with a
1105bd8deadSopenharmony_ci    vertex array object only after they are first bound (just as if the name
1115bd8deadSopenharmony_ci    were unused).
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci    Vertex array objects are deleted by calling DeleteVertexArraysAPPLE with
1145bd8deadSopenharmony_ci    <arrays> specifying a list of <n> names to be deleted.  Once a vertex array
1155bd8deadSopenharmony_ci    object is deleted it has no contents and its name is freed.  If a vertex
1165bd8deadSopenharmony_ci    array object that is currently bound is deleted, the binding for that object
1175bd8deadSopenharmony_ci    reverts to zero and the default vertex array becomes current.
1185bd8deadSopenharmony_ci    DeleteVertexArraysAPPLE ignores names that do not correspond to existing
1195bd8deadSopenharmony_ci    vertex array objects, including zero.
1205bd8deadSopenharmony_ci    
1215bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
1225bd8deadSopenharmony_ci
1235bd8deadSopenharmony_ci    IsVertexArrayAPPLE returns TRUE if <id> is the name of a valid vertex array
1245bd8deadSopenharmony_ci    object.  If <id> is zero, or is a non-zero value that is not the name of a
1255bd8deadSopenharmony_ci    vertex array object, or if an error condition occurs, IsVertexArrayAPPLE
1265bd8deadSopenharmony_ci    returns FALSE.  A name that has been returned GenVertexArraysAPPLE but never
1275bd8deadSopenharmony_ci    bound with BindVertexArrayAPPLE is not the name of a vertex array object.
1285bd8deadSopenharmony_ci    
1295bd8deadSopenharmony_ci    The name of the currently bound vertex array object is returned in <params>
1305bd8deadSopenharmony_ci    when GetIntegerv is called with <pname> set to  VERTEX_ARRAY_BINDING_APPLE.
1315bd8deadSopenharmony_ci    If the default vertex array object is currently bound, zero is returned.
1325bd8deadSopenharmony_ci    
1335bd8deadSopenharmony_ci    A vertex array object comprises vertex array pointers, the size, type, and
1345bd8deadSopenharmony_ci    stride information for each array, the corresponding enable flags and the
1355bd8deadSopenharmony_ci    range of static data for each array. More explicitly, the state list
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci    VERTEX_ARRAY
1385bd8deadSopenharmony_ci    VERTEX_ARRAY_SIZE
1395bd8deadSopenharmony_ci    VERTEX_ARRAY_TYPE
1405bd8deadSopenharmony_ci    VERTEX_ARRAY_STRIDE
1415bd8deadSopenharmony_ci    VERTEX_ARRAY_POINTER
1425bd8deadSopenharmony_ci    NORMAL_ARRAY
1435bd8deadSopenharmony_ci    NORMAL_ARRAY_TYPE
1445bd8deadSopenharmony_ci    NORMAL_ARRAY_STRIDE
1455bd8deadSopenharmony_ci    NORMAL_ARRAY_POINTER
1465bd8deadSopenharmony_ci    COLOR_ARRAY
1475bd8deadSopenharmony_ci    COLOR_ARRAY_SIZE
1485bd8deadSopenharmony_ci    COLOR_ARRAY_TYPE
1495bd8deadSopenharmony_ci    COLOR_ARRAY_STRIDE
1505bd8deadSopenharmony_ci    COLOR_ARRAY_POINTER
1515bd8deadSopenharmony_ci    INDEX_ARRAY
1525bd8deadSopenharmony_ci    INDEX_ARRAY_TYPE
1535bd8deadSopenharmony_ci    INDEX_ARRAY_STRIDE
1545bd8deadSopenharmony_ci    INDEX_ARRAY_POINTER
1555bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY
1565bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_SIZE
1575bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_TYPE
1585bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_STRIDE
1595bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_POINTER
1605bd8deadSopenharmony_ci    EDGE_FLAG_ARRAY
1615bd8deadSopenharmony_ci    EDGE_FLAG_ARRAY_STRIDE
1625bd8deadSopenharmony_ci    EDGE_FLAG_ARRAY_POINTER
1635bd8deadSopenharmony_ci
1645bd8deadSopenharmony_ci    composes a single vertex array object.
1655bd8deadSopenharmony_ci
1665bd8deadSopenharmony_ci    Additionally, if APPLE_vertex_array_range is supported the state list also
1675bd8deadSopenharmony_ci    includes
1685bd8deadSopenharmony_ci
1695bd8deadSopenharmony_ci    VERTEX_ARRAY_RANGE_POINTER_APPLE
1705bd8deadSopenharmony_ci    VERTEX_ARRAY_RANGE_LENGTH_APPLE
1715bd8deadSopenharmony_ci
1725bd8deadSopenharmony_ci    Additionally, if ARB_vertex_program is supported the state list also
1735bd8deadSopenharmony_ci    includes
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci    VERTEX_ATTRIB_ARRAY_ARB
1765bd8deadSopenharmony_ci    VERTEX_ATTRIB_ARRAY_SIZE_ARB
1775bd8deadSopenharmony_ci    VERTEX_ATTRIB_ARRAY_TYPE_ARB
1785bd8deadSopenharmony_ci    VERTEX_ATTRIB_ARRAY_STRIDE_ARB
1795bd8deadSopenharmony_ci    VERTEX_ATTRIB_ARRAY_POINTER_ARB
1805bd8deadSopenharmony_ci    
1815bd8deadSopenharmony_ci    Additionally, if EXT_secondary_color is supported the state list also
1825bd8deadSopenharmony_ci    includes
1835bd8deadSopenharmony_ci
1845bd8deadSopenharmony_ci    SECONDARY_COLOR_ARRAY_EXT
1855bd8deadSopenharmony_ci    SECONDARY_COLOR_ARRAY_SIZE_EXT
1865bd8deadSopenharmony_ci    SECONDARY_COLOR_ARRAY_TYPE_EXT
1875bd8deadSopenharmony_ci    SECONDARY_COLOR_ARRAY_STRIDE_EXT
1885bd8deadSopenharmony_ci    SECONDARY_COLOR_ARRAY_POINTER_EXT
1895bd8deadSopenharmony_ci    
1905bd8deadSopenharmony_ci    Additionally, if EXT_fog_coord is supported the state list also includes
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_EXT
1935bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_TYPE_EXT
1945bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_STRIDE_EXT
1955bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_POINTER_EXT
1965bd8deadSopenharmony_ci    
1975bd8deadSopenharmony_ci    Additionally, if ARB_vertex_blend is supported the state list also includes
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci    WEIGHT_ARRAY_ARB
2005bd8deadSopenharmony_ci    WEIGHT_ARRAY_SIZE_ARB
2015bd8deadSopenharmony_ci    WEIGHT_ARRAY_TYPE_ARB
2025bd8deadSopenharmony_ci    WEIGHT_ARRAY_STRIDE_ARB
2035bd8deadSopenharmony_ci    WEIGHT_ARRAY_POINTER_ARB
2045bd8deadSopenharmony_ci
2055bd8deadSopenharmony_ci    Additionally, if APPLE_element_array is supported the state list also
2065bd8deadSopenharmony_ci    includes
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ci    ELEMENT_ARRAY_APPLE
2095bd8deadSopenharmony_ci    ELEMENT_ARRAY_TYPE_APPLE
2105bd8deadSopenharmony_ci    ELEMENT_ARRAY_POINTER_APPLE
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci    When PushClientAttrib is called with CLIENT_VERTEX_ARRAY_BIT enabled, the
2135bd8deadSopenharmony_ci    array pointers, types, size and stride are pushed, as well as array pointer
2145bd8deadSopenharmony_ci    enables and the current vertex array object binding. When the attribute set
2155bd8deadSopenharmony_ci    that includes vertex array information is popped, the binding is first
2165bd8deadSopenharmony_ci    restored to its pushed value and then the enables and the array pointers,
2175bd8deadSopenharmony_ci    types, size and stride are restored to their pushed values.
2185bd8deadSopenharmony_ci
2195bd8deadSopenharmony_ciAdditions to the GLX Specification
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ci    No change is made to the GLX API.
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ciGLX Protocol
2245bd8deadSopenharmony_ci
2255bd8deadSopenharmony_ci    None
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ciErrors
2285bd8deadSopenharmony_ci
2295bd8deadSopenharmony_ci    INVALID_OPERATION is generated if any of the commands defined in this
2305bd8deadSopenharmony_ci    extension is executed between the execution of Begin and the corresponding
2315bd8deadSopenharmony_ci    execution of End.
2325bd8deadSopenharmony_ci
2335bd8deadSopenharmony_ciNew State
2345bd8deadSopenharmony_ci
2355bd8deadSopenharmony_ci    Get Value                    Get Command Type    Value   Attrib
2365bd8deadSopenharmony_ci    ---------                    ----------- ----    ------- ------
2375bd8deadSopenharmony_ci    VERTEX_ARRAY_BINDING_APPLE   GetIntegerv Z+      0       vertex-array
2385bd8deadSopenharmony_ci
2395bd8deadSopenharmony_ciNew Implementation Dependent State
2405bd8deadSopenharmony_ci    
2415bd8deadSopenharmony_ci    None
2425bd8deadSopenharmony_ci
2435bd8deadSopenharmony_ciRevision History
2445bd8deadSopenharmony_ci
2455bd8deadSopenharmony_ci    None
246