15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    EXT_static_vertex_array
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_EXT_static_vertex_array
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    $Date: 1997/09/17 18:24:20 $ $Revision: 1.1 $
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNumber
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    ?? 
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciDependencies
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    None
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciOverview
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    This extension defines an interface which allows vertex array
245bd8deadSopenharmony_ci    data to be cached or pre-compiled for more efficient rendering.  This
255bd8deadSopenharmony_ci    is useful for implementations which can cache the transformed results
265bd8deadSopenharmony_ci    of array data for reuse by several DrawArrays, ArrayElement, or
275bd8deadSopenharmony_ci    DrawElements commands.  It is also useful for implementations which
285bd8deadSopenharmony_ci    can transfer array data to fast memory for more efficient processing.
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    For example, rendering an M by N mesh of quadrilaterals can be
315bd8deadSopenharmony_ci    accomplished by setting up vertex arrays containing all of the
325bd8deadSopenharmony_ci    vertexes in the mesh and issuing M DrawElements commands each of
335bd8deadSopenharmony_ci    which operate on 2 * N vertexes.  Each DrawElements command after
345bd8deadSopenharmony_ci    the first will share N vertexes with the preceding DrawElements
355bd8deadSopenharmony_ci    command.  If the vertex array data is locked while the DrawElements
365bd8deadSopenharmony_ci    commands are executed, then OpenGL may be able to transform each
375bd8deadSopenharmony_ci    of these shared vertexes just once.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciNew Procedures and Functions
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    void LockArraysEXT (sizei count)
425bd8deadSopenharmony_ci    void UnlockArraysEXT (void)
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ciNew Tokens
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
475bd8deadSopenharmony_ci    GetFloatv, and GetDoublev:
485bd8deadSopenharmony_ci      
495bd8deadSopenharmony_ci        ARRAY_ELEMENT_LOCK_COUNT_EXT
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci    After the discussion of InterleavedArrays, add a description of
545bd8deadSopenharmony_ci    array compiling/locking.
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    The currently enabled vertex arrays can be locked with the command
575bd8deadSopenharmony_ci    LockArraysEXT.  When the vertex arrays are locked, the data
585bd8deadSopenharmony_ci    specified by the currently enabled vertex arrays is considered
595bd8deadSopenharmony_ci    to be static by GL. An implementation can delay  the referencing 
605bd8deadSopenharmony_ci    of the data used by the commands DrawArrays, ArrayElement or
615bd8deadSopenharmony_ci    DrawElements or pre-process the array data or cache the transformed 
625bd8deadSopenharmony_ci    vertex data associated with the currently enabled vertex arrays.  
635bd8deadSopenharmony_ci    The vertex arrays are unlocked by the command UnlockArraysEXT.
645bd8deadSopenharmony_ci    The lock count, ARRAY_ELEMENT_LOCK_COUNT_EXT, is reset
655bd8deadSopenharmony_ci    to 0 when the vertex arrays are unlocked. 
665bd8deadSopenharmony_ci 
675bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated if any array pointer
685bd8deadSopenharmony_ci    command such as EdgeFlagPointer, TexCoordPointer, ColorPointer, 
695bd8deadSopenharmony_ci    IndexPointer, NormalPointer, VertexPointer or InterleavedArrays
705bd8deadSopenharmony_ci    or EnableClientState/DisableClientState with array set
715bd8deadSopenharmony_ci    to EDGE_FLAG_ARRAY, TEXTURE_COORD_ARRAY, COLOR_ARRAY,
725bd8deadSopenharmony_ci    INDEX_ARRAY, NORMAL_ARRAY or VERTEX_ARRAY is executed between
735bd8deadSopenharmony_ci    the execution of LocakArraysEXT and the corresponding
745bd8deadSopenharmony_ci    UnlockArraysExt.
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    Between LockArraysEXT and UnlockArraysEXT the application
775bd8deadSopenharmony_ci    should ensure that none of the array data in the range 
785bd8deadSopenharmony_ci    specified by <count> are changed.  Changes to the array data 
795bd8deadSopenharmony_ci    between the execution of LockArraysEXT and UnlockArraysEXT 
805bd8deadSopenharmony_ci    commands may affect calls may affect DrawArrays, ArrayElement, 
815bd8deadSopenharmony_ci    or DrawElements commands in non-sequential ways.
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci    While using a static vertex array, references to array elements
845bd8deadSopenharmony_ci    by the commands DrawArrays, ArrayElement, or DrawElements which
855bd8deadSopenharmony_ci    are outside of the range specified by <count> are undefined.
865bd8deadSopenharmony_ci 
875bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization)
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci    None
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
925bd8deadSopenharmony_ciand the Frame Buffer)
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci    None
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions)
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    LockArraysEXT and UnlockArraysEXT are not complied into display lists
995bd8deadSopenharmony_ci    but are executed immediately.
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests)
1025bd8deadSopenharmony_ci
1035bd8deadSopenharmony_ci    None
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ciAdditions to the GLX Specification
1065bd8deadSopenharmony_ci
1075bd8deadSopenharmony_ci    None 
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ciGLX Protocol
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci    None 
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ciErrors
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ci    INVALID_VALUE is generated if LockArraysEXT parameter <count> is less than
1165bd8deadSopenharmony_ci    or equal to zero.
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ci    INVALID_OPERATION is generated if LockArraysEXT is called between execution
1195bd8deadSopenharmony_ci    of LockArraysEXT and corresponding execution of UnlockArraysEXT.
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci    INVALID_OPERATION is generated if UnlockArraysEXT is called without a
1225bd8deadSopenharmony_ci    corresponding previous execution of LockArraysEXT.
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci    INVALID_OPERATION may be generated if LockArraysEXT or UnlockArraysEXT is called
1255bd8deadSopenharmony_ci    between execution of Begin and the corresponding execution of End.
1265bd8deadSopenharmony_ci
1275bd8deadSopenharmony_ci    INVALID_OPERATION is generated if any array pointer command such as 
1285bd8deadSopenharmony_ci    EdgeFlagPointer, TexCoordPointer, ColorPointer, IndexPointer, 
1295bd8deadSopenharmony_ci    NormalPointer, VertexPointer or InterleavedArrays
1305bd8deadSopenharmony_ci    or EnableClientState/DisableClientState with array set
1315bd8deadSopenharmony_ci    to EDGE_FLAG_ARRAY, TEXTURE_COORD_ARRAY, COLOR_ARRAY,
1325bd8deadSopenharmony_ci    INDEX_ARRAY, NORMAL_ARRAY or VERTEX_ARRAY is executed between
1335bd8deadSopenharmony_ci    the execution of LocakArraysEXT and the corresponding
1345bd8deadSopenharmony_ci    UnlockArraysExt.
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ciNew State
1375bd8deadSopenharmony_ci                                                                Initial
1385bd8deadSopenharmony_ci    Get Value                           Get Command     Type    Value   Attrib
1395bd8deadSopenharmony_ci    ---------                           -----------     ----    ------- ------
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ci    ARRAY_ELEMENT_LOCK_COUNT_EXT        GetIntegerv     Z+      0       client-vertex-array
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ciNew Implementation Dependent State
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci    None
1465bd8deadSopenharmony_ci
147