| Name |
| |
| 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? |
| |
| New Procedures and Functions |
| |
| void GenArraySetsEXT(sizei n, |
| uint* arrayset); |
| |
| void BindArraySetEXT(uint arrayset); |
| |
| void DeleteArraySetsEXT(sizei n, |
| const uint* arrayset); |
| |
| boolean IsArraySetEXT(uint arrayset); |
| |
| New Tokens |
| |
| 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 |
| |
| |