15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_vertex_array_setXXX 45bd8deadSopenharmony_ci (No GenName version) 55bd8deadSopenharmony_ci 65bd8deadSopenharmony_ciName Strings 75bd8deadSopenharmony_ci 85bd8deadSopenharmony_ci GL_EXT_vertex_array_setXXX 95bd8deadSopenharmony_ci 105bd8deadSopenharmony_ciVersion 115bd8deadSopenharmony_ci 125bd8deadSopenharmony_ci $Date: 1999/04/03 08:40:30 $ $Revision: 1.2 $ 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciNumber 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci ??? 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ciDependencies 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci EXT_static_vertex_array 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciOverview 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci This extension introduces named vertex array sets which encapsulate 255bd8deadSopenharmony_ci vertex array state on the client side. The main purpose of these 265bd8deadSopenharmony_ci sets is to keep pointers to static vertex data and provide a name 275bd8deadSopenharmony_ci for different sets of static vertex data. The specification of 285bd8deadSopenharmony_ci static vertex data is done through EXT_static_vertex_array extension. 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciIssues 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci * Should we allow vertex array sets to be shared between 335bd8deadSopenharmony_ci client side contexts? 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciNew Procedures and Functions 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci const void *CreateArraySetExt(void); 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci void BindArraySetEXT(const void *arrayset); 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci void DeleteArraySetsEXT(sizei n, 425bd8deadSopenharmony_ci const void *arrayset[]); 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ciNew Tokens 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetPointerv: 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci ARRAY_SET_BINDING_EXT 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ciAdditions to Chapter 2, 3, 4 of the 1.1 Specification (OpenGL Operation, 515bd8deadSopenharmony_ci Rasterization, Per-Fragment Operations and the Frame Buffer) 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ci None 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci A vertex array set is created by calling CreateArraySet which 585bd8deadSopenharmony_ci returns the name of the newly created vertex array set. The 595bd8deadSopenharmony_ci newly created vertex array set also becomes the current 605bd8deadSopenharmony_ci vertex array set. The state encapsulated by a vertex array 615bd8deadSopenharmony_ci set immediately after it is first bound is equivalent to the 625bd8deadSopenharmony_ci default vertex array state at GL initialization. 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci Subsequent binding of a vertex array set is accomplished by 655bd8deadSopenharmony_ci calling BindArraySetEXT with arrayset set to the name of a 665bd8deadSopenharmony_ci previously created vertex array set. Subsequent bindings of a 675bd8deadSopenharmony_ci vertex array set have no effect on its encapsulated state 685bd8deadSopenharmony_ci unless changed explicitly. 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci When an OpenGL context is created, there is set of default vertex 715bd8deadSopenharmony_ci array state associated with the context. In order that the access to 725bd8deadSopenharmony_ci this default state is not lost, this extension treats the default state 735bd8deadSopenharmony_ci as if its name was NULL. Unlike other vertex array sets, the NULL 745bd8deadSopenharmony_ci set cannot be deleted. 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci Vertex array sets are deleted by calling DeleteArraySetsEXT with 775bd8deadSopenharmony_ci <arrayset> pointing to a list of <n> names of array sets to be 785bd8deadSopenharmony_ci deleted. DeleteArraySetsEXT implicitly performs a UnlockArraysExt 795bd8deadSopenharmony_ci on the sets to be deleted before deleting the <arrayset>. Once a 805bd8deadSopenharmony_ci vertex array set is deleted, it has no contents, and its name is 815bd8deadSopenharmony_ci freed. If a vertex array set that is currently bound is deleted, 825bd8deadSopenharmony_ci the binding reverts to zero. DeleteArraySetsEXT ignores names 835bd8deadSopenharmony_ci that do not correspond to array sets, including NULL. 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci The name of the currently bound vertex array set is returned in <params> 885bd8deadSopenharmony_ci when GetPointerv is called with <pname> set to ARRAY_SET_BINDING_EXT. 895bd8deadSopenharmony_ci If no vertex array set is bound, NULL is returned. 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ci A vertex array set comprises of vertex array pointers, the size and 925bd8deadSopenharmony_ci type information for each array, the corresponding enable flags and the 935bd8deadSopenharmony_ci range of static data for each array. More explicitly, the state list 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ci ARRAY_ELEMENT_LOCK_COUNT_EXT 965bd8deadSopenharmony_ci VERTEX_ARRAY 975bd8deadSopenharmony_ci VERTEX_ARRAY_SIZE 985bd8deadSopenharmony_ci VERTEX_ARRAY_TYPE 995bd8deadSopenharmony_ci VERTEX_ARRAY_STRIDE 1005bd8deadSopenharmony_ci VERTEX_ARRAY_POINTER 1015bd8deadSopenharmony_ci NORMAL_ARRAY 1025bd8deadSopenharmony_ci NORMAL_ARRAY_TYPE 1035bd8deadSopenharmony_ci NORMAL_ARRAY_STRIDE 1045bd8deadSopenharmony_ci NORMAL_ARRAY_POINTER 1055bd8deadSopenharmony_ci COLOR_ARRAY 1065bd8deadSopenharmony_ci COLOR_ARRAY_SIZE 1075bd8deadSopenharmony_ci COLOR_ARRAY_TYPE 1085bd8deadSopenharmony_ci COLOR_ARRAY_STRIDE 1095bd8deadSopenharmony_ci COLOR_ARRAY_POINTER 1105bd8deadSopenharmony_ci INDEX_ARRAY 1115bd8deadSopenharmony_ci INDEX_ARRAY_TYPE 1125bd8deadSopenharmony_ci INDEX_ARRAY_STRIDE 1135bd8deadSopenharmony_ci INDEX_ARRAY_POINTER 1145bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY 1155bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY_SIZE 1165bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY_TYPE 1175bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY_STRIDE 1185bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY_POINTER 1195bd8deadSopenharmony_ci EDGE_FLAG_ARRAY 1205bd8deadSopenharmony_ci EDGE_FLAG_ARRAY_STRIDE 1215bd8deadSopenharmony_ci EDGE_FLAG_ARRAY_POINTER 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci composes a single vertex array set. 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci When PushClientAttrib is called with CLIENT_VERTEX_ARRAY_BIT enabled, 1265bd8deadSopenharmony_ci the array pointers, types, size and stride are pushed, as well as 1275bd8deadSopenharmony_ci array pointer enables and the current vertex array set binding. 1285bd8deadSopenharmony_ci When the attribute set that includes vertex array information is 1295bd8deadSopenharmony_ci popped, the binding is first restored to its pushed value and then 1305bd8deadSopenharmony_ci the enables and the array pointers, types, size and stride are 1315bd8deadSopenharmony_ci are restored to their pushed values. 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ciAdditions to the GLX Specification 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci No change is made to the GLX API. 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ciGLX Protocol 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci None 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ciErrors 1425bd8deadSopenharmony_ci INVALID_VALUE is generated if DeleteArraySetsEXT parameter <n> is 1435bd8deadSopenharmony_ci negative. 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci INVALID_OPERATION may be generated if any of the commands defined in this 1465bd8deadSopenharmony_ci extension is executed between the execution of Begin and the corresponding 1475bd8deadSopenharmony_ci execution of End. 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ciNew State 1505bd8deadSopenharmony_ci 1515bd8deadSopenharmony_ci Get Value Get Command Type Value Attrib 1525bd8deadSopenharmony_ci --------- ----------- ---- ------- ------ 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci ARRAY_SET_BINDING_EXT GetPointerv Y 0 vertex-array 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ciNew Implementation Dependent State 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ci None 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci 161