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