• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    EXT_vertex_array_setXXX
4    (No GenName version)
5
6Name Strings
7
8    GL_EXT_vertex_array_setXXX
9
10Version
11
12    $Date: 1999/04/03 08:40:30 $ $Revision: 1.2 $
13
14Number
15
16    ???
17
18Dependencies
19
20    EXT_static_vertex_array
21
22Overview
23
24    This extension introduces named vertex array sets which encapsulate
25    vertex array state on the client side. The main purpose of these
26    sets is to keep pointers to static vertex data and provide a name
27    for different sets of static vertex data. The specification of
28    static vertex data is done through EXT_static_vertex_array extension.
29
30Issues
31
32    *   Should we allow vertex array sets to be shared between
33    client side contexts?
34
35New Procedures and Functions
36
37    const void *CreateArraySetExt(void);
38
39    void BindArraySetEXT(const void *arrayset);
40
41    void DeleteArraySetsEXT(sizei n,
42                         const void *arrayset[]);
43
44New Tokens
45
46    Accepted by the <pname> parameter of GetPointerv:
47
48    ARRAY_SET_BINDING_EXT
49
50Additions to Chapter 2, 3, 4 of the 1.1 Specification (OpenGL Operation,
51    Rasterization, Per-Fragment Operations and the Frame Buffer)
52
53    None
54
55Additions to Chapter 5 of the 1.1 Specification (Special Functions)
56
57    A vertex array set is created by calling CreateArraySet which
58    returns the name of the newly created vertex array set. The
59    newly created vertex array set also becomes the current
60    vertex array set. The state encapsulated by a vertex array
61    set immediately after it is first bound is equivalent to the
62    default vertex array state at GL initialization.
63
64    Subsequent binding of a vertex array set is accomplished by
65    calling BindArraySetEXT with arrayset set to the name of a
66    previously created vertex array set. Subsequent bindings of a
67    vertex array set have no effect on its encapsulated state
68    unless changed explicitly.
69
70    When an OpenGL context is created, there is set of default vertex
71    array state associated with the context. In order that the access to
72    this default state is not lost, this extension treats the default state
73    as if its name was NULL. Unlike other vertex array sets, the NULL
74    set cannot be deleted.
75
76    Vertex array sets are deleted by calling DeleteArraySetsEXT with
77    <arrayset> pointing to a list of <n> names of array sets to be
78    deleted. DeleteArraySetsEXT implicitly performs a UnlockArraysExt
79    on the sets to be deleted before deleting the <arrayset>. Once a
80    vertex array set is deleted, it has no contents, and its name is
81    freed.  If a vertex array set that is currently bound is deleted,
82    the binding reverts to zero. DeleteArraySetsEXT ignores names
83    that do not correspond to array sets, including NULL.
84
85Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
86
87    The name of the currently bound vertex array set is returned in <params>
88    when GetPointerv is called with <pname> set to ARRAY_SET_BINDING_EXT.
89    If no vertex array set is bound, NULL is returned.
90
91    A vertex array set comprises of vertex array pointers, the size and
92    type information for each array, the corresponding enable flags and the
93    range of static data for each array. More explicitly, the state list
94
95    ARRAY_ELEMENT_LOCK_COUNT_EXT
96    VERTEX_ARRAY
97    VERTEX_ARRAY_SIZE
98    VERTEX_ARRAY_TYPE
99    VERTEX_ARRAY_STRIDE
100    VERTEX_ARRAY_POINTER
101    NORMAL_ARRAY
102    NORMAL_ARRAY_TYPE
103    NORMAL_ARRAY_STRIDE
104    NORMAL_ARRAY_POINTER
105    COLOR_ARRAY
106    COLOR_ARRAY_SIZE
107    COLOR_ARRAY_TYPE
108    COLOR_ARRAY_STRIDE
109    COLOR_ARRAY_POINTER
110    INDEX_ARRAY
111    INDEX_ARRAY_TYPE
112    INDEX_ARRAY_STRIDE
113    INDEX_ARRAY_POINTER
114    TEXTURE_COORD_ARRAY
115    TEXTURE_COORD_ARRAY_SIZE
116    TEXTURE_COORD_ARRAY_TYPE
117    TEXTURE_COORD_ARRAY_STRIDE
118    TEXTURE_COORD_ARRAY_POINTER
119    EDGE_FLAG_ARRAY
120    EDGE_FLAG_ARRAY_STRIDE
121    EDGE_FLAG_ARRAY_POINTER
122
123    composes a single vertex array set.
124
125    When PushClientAttrib is called with CLIENT_VERTEX_ARRAY_BIT enabled,
126    the array pointers, types, size and stride are pushed, as well as
127    array pointer enables and the current vertex array set binding.
128    When the attribute set that includes vertex array information is
129    popped, the binding is first restored to its pushed value and then
130    the enables and the array pointers, types, size and stride are
131    are restored to their pushed values.
132
133Additions to the GLX Specification
134
135    No change is made to the GLX API.
136
137GLX Protocol
138
139    None
140
141Errors
142    INVALID_VALUE is generated if DeleteArraySetsEXT parameter <n> is
143    negative.
144
145    INVALID_OPERATION may be generated if any of the commands defined in this
146    extension is executed between the execution of Begin and the corresponding
147    execution of End.
148
149New State
150
151    Get Value               Get Command Type    Value   Attrib
152    ---------               ----------- ----    ------- ------
153
154    ARRAY_SET_BINDING_EXT   GetPointerv Y       0       vertex-array
155
156New Implementation Dependent State
157
158    None
159
160
161