15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    INTEL_parallel_arrays
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_INTEL_parallel_arrays
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    $Date: 1997/05/08 22:57:31 $ $Revision: 1.1 $  INITIAL
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNumber
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    136
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciDependencies
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    OpenGL 1.1
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciOverview
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci        This extension adds the ability to format vertex arrays in a way that's 
245bd8deadSopenharmony_ciefficient for SIMD architectures as well as caching.  In addition to storing 
255bd8deadSopenharmony_civertex data in staggered in a single array, or sparsely in separate arrays as 
265bd8deadSopenharmony_cipossible with existing vertex arrays, coordinates may be stored in individual 
275bd8deadSopenharmony_ciarrays.  
285bd8deadSopenharmony_ciThe parallel array mode is enabled using Enable(PARALLEL_ARRAYS).
295bd8deadSopenharmony_ciPointers to the coordinate arrays are specified using new vector versions of the
305bd8deadSopenharmony_ciPointer functions.
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ciIssues
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ci        Should an Enable/Disbale be used to switch to/from parallel arrays, or 
355bd8deadSopenharmony_ci        just infer it from the last type of Pointer called?
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci        Is stride needed for anything?
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ci        Should this be called Coordinate Arrays?
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci        Should the <pointer> to the Pointerv funcions be (void *) or (void **)?
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ciReasoning
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci        Alternative methods for specifying vertex data are provided for
465bd8deadSopenharmony_ci        vertex, normal, color, and texture pointers.  Need to put in argument   
475bd8deadSopenharmony_ci        for why this is faster on some architectures (cache lines, etc).
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ciNew Procedures and Functions
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    void VertexPointervINTEL(int size,
535bd8deadSopenharmony_ci                          enum type,
545bd8deadSopenharmony_ci                          const void** pointer);
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    void NormalPointervINTEL(enum type,
575bd8deadSopenharmony_ci                          const void** pointer);
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ci    void ColorPointervINTEL(int size,
605bd8deadSopenharmony_ci                          enum type,
615bd8deadSopenharmony_ci                          const void** pointer);
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci    void TexCoordPointervINTEL(int size,
645bd8deadSopenharmony_ci                          enum type,
655bd8deadSopenharmony_ci                          const void** pointer);
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ciNew Tokens
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ci    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, and
705bd8deadSopenharmony_ci    by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and
715bd8deadSopenharmony_ci    GetDoublev:
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci        PARALLEL_ARRAYS_INTEL				0x83F4
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetPointerv:
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ci        VERTEX_ARRAY_PARALLEL_POINTERS_INTEL		0x83F5
785bd8deadSopenharmony_ci        NORMAL_ARRAY_PARALLEL_POINTERS_INTEL		0x83F6
795bd8deadSopenharmony_ci        COLOR_ARRAY_PARALLEL_POINTERS_INTEL		0x83F7
805bd8deadSopenharmony_ci        TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL	0x83F8
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    Array Specification
855bd8deadSopenharmony_ci    -------------------
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    VertexPointervINTEL specifies the location and data format of an    
885bd8deadSopenharmony_ci    array of vertex coordinates.  <pointer> specifies an array of pointers,     
895bd8deadSopenharmony_ci    where pointer[0] is a pointer to the x coordinate of the first vertex in the
905bd8deadSopenharmony_ci    array,  pointer[1] specifies a pointer to the y coordinate of the first     
915bd8deadSopenharmony_ci    vertex in the array, pointer[2] specifies a  pointer to the z coordinate of 
925bd8deadSopenharmony_ci    the first vertex in the array, and pointer[3] specifies a pointer to the w  
935bd8deadSopenharmony_ci    coordinate of the first vertex in the array.   
945bd8deadSopenharmony_ci    <type> specifies the data type of each coordinate in the array, and must be 
955bd8deadSopenharmony_ci    one of SHORT, INT, FLOAT, or DOUBLE, implying GL data types short, int,     
965bd8deadSopenharmony_ci    float, and double respectively.  <size> specifies the number of coordinates 
975bd8deadSopenharmony_ci    per vertex, and must be 2, 3, or 4.  
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    NormalPointervINTEL specifies the location and data format of an    
1005bd8deadSopenharmony_ci    array of normals.  <pointer> specifies an array of pointers, where          
1015bd8deadSopenharmony_ci    pointer[0] is a pointer to the x coordinate of the first normal in the      
1025bd8deadSopenharmony_ci    array,  pointer[1] specifies a pointer to the y coordinate of the first     
1035bd8deadSopenharmony_ci    normal in the array, pointer[2] specifies a  pointer to the z coordinate of 
1045bd8deadSopenharmony_ci    the first normal in the array, and pointer[3] specifies a pointer to the w  
1055bd8deadSopenharmony_ci    coordinate of the first normal in the array.  <type> specifies the 
1065bd8deadSopenharmony_ci    data type of each coordinate in the array, and must be one of BYTE, SHORT,  
1075bd8deadSopenharmony_ci    INT, FLOAT, or DOUBLE, implying GL data types byte, short, int, float,
1085bd8deadSopenharmony_ci    and double respectively.  It is understood that each normal comprises
1095bd8deadSopenharmony_ci    three coordinates.    
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci    ColorPointervINTEL specifies the location and data format of an     
1125bd8deadSopenharmony_ci    array of color components.  <pointer> specifies an array of pointers,       
1135bd8deadSopenharmony_ci    where pointer[0] is a pointer to the r coordinate of the first color in the 
1145bd8deadSopenharmony_ci    array,  pointer[1] specifies a pointer to the g coordinate of the first     
1155bd8deadSopenharmony_ci    color in the array, pointer[2] specifies a pointer to the b coordinate of   
1165bd8deadSopenharmony_ci    the first color in the array, and pointer[3] specifies a pointer to the a   
1175bd8deadSopenharmony_ci    coordinate of the first color in the array.  <type> specifies the data type 
1185bd8deadSopenharmony_ci    of each component in the array, and must be one of BYTE, UNSIGNED_BYTE,     
1195bd8deadSopenharmony_ci    SHORT, UNSIGNED_SHORT, INT, UNSIGNED_INT, FLOAT, or DOUBLE_EXT, implying GL 
1205bd8deadSopenharmony_ci    data types byte, ubyte, short, ushort, int, uint, float, and double         
1215bd8deadSopenharmony_ci    respectively.  <size> specifies the number of components per color, and must
1225bd8deadSopenharmony_ci    be 3 or 4.  
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci    TexCoordPointervINTEL specifies the location and data format of an  
1255bd8deadSopenharmony_ci    array of texture coordinates.  <pointer> specifies an array of pointers,    
1265bd8deadSopenharmony_ci    where pointer[0] is a pointer to the u coordinate of the first element in   
1275bd8deadSopenharmony_ci    the array,  pointer[1] specifies a pointer to the v coordinate of the first 
1285bd8deadSopenharmony_ci    element in the array, pointer[2] specifies a  pointer to the s coordinate of
1295bd8deadSopenharmony_ci    the first element in the array, and pointer[3] specifies a pointer to the t 
1305bd8deadSopenharmony_ci    coordinate of the first element in the array.  <type> specifies the data    
1315bd8deadSopenharmony_ci    type of each coordinate in the array, and must be one of SHORT, INT, FLOAT, 
1325bd8deadSopenharmony_ci    or DOUBLE, implying GL data types short, int, float, and double             
1335bd8deadSopenharmony_ci    respectively. <size> specifies the number of coordinates per element, and   
1345bd8deadSopenharmony_ci    must be 1, 2, 3, or 4.  
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci    Rendering the Arrays
1375bd8deadSopenharmony_ci    --------------------
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci    When ArrayElement is called, a single vertex is drawn, using vertex
1405bd8deadSopenharmony_ci    and attribute data taken from location <i> of the enabled arrays.  The
1415bd8deadSopenharmony_ci    semantics of ArrayElement are defined in the C-code below:
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci        void ArrayElement (int i) {
1445bd8deadSopenharmony_ci            byte* p, px, py, pz, pw, pr, pg, pb, pa;
1455bd8deadSopenharmony_ci            if (NORMAL_ARRAY) {
1465bd8deadSopenharmony_ci                if (PARALLEL_ARRAYS) {
1475bd8deadSopenharmony_ci                    px = (byte*)normal_x_pointer + i *  sizeof(normal_type);
1485bd8deadSopenharmony_ci                    py = (byte*)normal_y_pointer + i *  sizeof(normal_type);
1495bd8deadSopenharmony_ci                    pz = (byte*)normal_z_pointer + i *  sizeof(normal_type);
1505bd8deadSopenharmony_ci                    Normal3<normal_type> (*(normal_type*)px, *(normal_type*)py, 
1515bd8deadSopenharmony_ci                        *(normal_type*)pz);
1525bd8deadSopenharmony_ci                } else {
1535bd8deadSopenharmony_ci                        if (normal_stride == 0)
1545bd8deadSopenharmony_ci                            p = (byte*)normal_pointer + i * 3 *                 
1555bd8deadSopenharmony_ci                                        sizeof(normal_type);
1565bd8deadSopenharmony_ci                        else
1575bd8deadSopenharmony_ci                            p = (byte*)normal_pointer + i * normal_stride;
1585bd8deadSopenharmony_ci                        Normal3<normal_type>v ((normal_type*)p);
1595bd8deadSopenharmony_ci                }
1605bd8deadSopenharmony_ci            }
1615bd8deadSopenharmony_ci            if (COLOR_ARRAY) {
1625bd8deadSopenharmony_ci                if (PARALLEL_ARRAYS) {
1635bd8deadSopenharmony_ci                    pr = (byte*)color_r_pointer + i *  sizeof(color_type);
1645bd8deadSopenharmony_ci                    pg = (byte*)color_g_pointer + i *  sizeof(color_type);
1655bd8deadSopenharmony_ci                    pb = (byte*)color_b_pointer + i *  sizeof(color_type);
1665bd8deadSopenharmony_ci                    switch (<color_size>){
1675bd8deadSopenharmony_ci                        case 3:
1685bd8deadSopenharmony_ci                            Color<color_size><color_type> (*(color_type*)pr,    
1695bd8deadSopenharmony_ci                                *(color_type*)pg, *(color_type*)pb); break;
1705bd8deadSopenharmony_ci                        case 4:
1715bd8deadSopenharmony_ci                            pa = (byte*)color_a_pointer + i *                   
1725bd8deadSopenharmony_ci                                        sizeof(color_type);
1735bd8deadSopenharmony_ci                            Color<color_size><color_type> (*(color_type*)pr,    
1745bd8deadSopenharmony_ci                                *(color_type*)pg, *(color_type*)pb,             
1755bd8deadSopenharmony_ci                                *(color_type*)pa); break;
1765bd8deadSopenharmony_ci                    }
1775bd8deadSopenharmony_ci                } else {
1785bd8deadSopenharmony_ci                        if (color_stride == 0)
1795bd8deadSopenharmony_ci                            p = (byte*)color_pointer +
1805bd8deadSopenharmony_ci                                i * color_size * sizeof(color_type);
1815bd8deadSopenharmony_ci                        else
1825bd8deadSopenharmony_ci                            p = (byte*)color_pointer + i * color_stride;
1835bd8deadSopenharmony_ci                        Color<color_size><color_type>v ((color_type*)p);
1845bd8deadSopenharmony_ci                }
1855bd8deadSopenharmony_ci            }
1865bd8deadSopenharmony_ci            if (INDEX_ARRAY) {
1875bd8deadSopenharmony_ci                if (index_stride == 0)
1885bd8deadSopenharmony_ci                    p = (byte*)index_pointer + i * sizeof(index_type);
1895bd8deadSopenharmony_ci                else
1905bd8deadSopenharmony_ci                    p = (byte*)index_pointer + i * index_stride;
1915bd8deadSopenharmony_ci                Index<index_type>v ((index_type*)p);
1925bd8deadSopenharmony_ci            }
1935bd8deadSopenharmony_ci            if (TEXTURE_COORD_ARRAY_EXT) {
1945bd8deadSopenharmony_ci                if (PARALLEL_ARRAYS) {
1955bd8deadSopenharmony_ci                    pu = (byte*)texcoord_u_pointer + i *  sizeof(texcoord_type);
1965bd8deadSopenharmony_ci                    switch (<texcoord_size>){
1975bd8deadSopenharmony_ci                        case 1:
1985bd8deadSopenharmony_ci                            TexCoord<texcoord_size><texcoord_type>              
1995bd8deadSopenharmony_ci                                (*(texcoord_type*)pu); break;
2005bd8deadSopenharmony_ci                        case 2:
2015bd8deadSopenharmony_ci                            pv = (byte*)texcoord_v_pointer + i *                
2025bd8deadSopenharmony_ci                                sizeof(texcoord_type);
2035bd8deadSopenharmony_ci                            TexCoord<texcoord_size><texcoord_type>              
2045bd8deadSopenharmony_ci                                (*(texcoord_type*)pu, *(texcoord_type*)pv);     
2055bd8deadSopenharmony_ci                            break;
2065bd8deadSopenharmony_ci                        case 3:
2075bd8deadSopenharmony_ci                            ps = (byte*)texcoord_s_pointer + i *                
2085bd8deadSopenharmony_ci                                sizeof(texcoord_type);
2095bd8deadSopenharmony_ci                            TexCoord<texcoord_size><texcoord_type>              
2105bd8deadSopenharmony_ci                                (*(texcoord_type*)pu, *(texcoord_type*)pv,      
2115bd8deadSopenharmony_ci                                 *(texcoord_type*)ps); break;
2125bd8deadSopenharmony_ci                        case 4:
2135bd8deadSopenharmony_ci                            pt = (byte*)texcoord_t_pointer + i *                
2145bd8deadSopenharmony_ci                                sizeof(texcoord_type);
2155bd8deadSopenharmony_ci                            TexCoord<texcoord_size><texcoord_type>              
2165bd8deadSopenharmony_ci                                (*(texcoord_type*)pu, *(texcoord_type*)pv,      
2175bd8deadSopenharmony_ci                                 *(texcoord_type*)ps, *(texcoord_type*)pt);     
2185bd8deadSopenharmony_ci                            break;
2195bd8deadSopenharmony_ci                    }
2205bd8deadSopenharmony_ci                } else {
2215bd8deadSopenharmony_ci                        if (texcoord_stride == 0)
2225bd8deadSopenharmony_ci                            p = (byte*)texcoord_pointer +
2235bd8deadSopenharmony_ci                                i * texcoord_size * sizeof(texcoord_type);
2245bd8deadSopenharmony_ci                        else
2255bd8deadSopenharmony_ci                            p = (byte*)texcoord_pointer + i * texcoord_stride;
2265bd8deadSopenharmony_ci                        TexCoord<texcoord_size><texcoord_type>v                 
2275bd8deadSopenharmony_ci                                ((texcoord_type*)p);
2285bd8deadSopenharmony_ci                }
2295bd8deadSopenharmony_ci            }
2305bd8deadSopenharmony_ci            if (EDGE_FLAG_ARRAY) {
2315bd8deadSopenharmony_ci                if (edgeflag_stride == 0)
2325bd8deadSopenharmony_ci                    p = (byte*)edgeflag_pointer + i * sizeof(boolean);
2335bd8deadSopenharmony_ci                else
2345bd8deadSopenharmony_ci                    p = (byte*)edgeflag_pointer + i * edgeflag_stride;
2355bd8deadSopenharmony_ci                EdgeFlagv ((boolean*)p);
2365bd8deadSopenharmony_ci            }
2375bd8deadSopenharmony_ci            if (VERTEX_ARRAY) {
2385bd8deadSopenharmony_ci                if (PARALLEL_ARRAYS) {
2395bd8deadSopenharmony_ci                    px = (byte*)vertex_x_pointer + i *  sizeof(vertex_type);
2405bd8deadSopenharmony_ci                    py = (byte*)vertex_y_pointer + i *  sizeof(vertex_type);
2415bd8deadSopenharmony_ci                    Normal3<normal_type> ((normal_type*)px, (normal_type*)py,   
2425bd8deadSopenharmony_ci                                          (normal_type*)pz);
2435bd8deadSopenharmony_ci                    switch (<vertex_size>){
2445bd8deadSopenharmony_ci                        case 2:
2455bd8deadSopenharmony_ci                          Vertex<vertex_size><vertex_type> (*(vertex_type*)px,  
2465bd8deadSopenharmony_ci                                                            *(vertex_type*)py);
2475bd8deadSopenharmony_ci                        case 3:
2485bd8deadSopenharmony_ci                          pz = (byte*)vertex_z_pointer + i *                    
2495bd8deadSopenharmony_ci                                sizeof(vertex_type);
2505bd8deadSopenharmony_ci                          Vertex<vertex_size><vertex_type> (*(vertex_type*)px,  
2515bd8deadSopenharmony_ci                                *(vertex_type*)py, *(vertex_type*)pz);
2525bd8deadSopenharmony_ci                        case 4:
2535bd8deadSopenharmony_ci                          pw = (byte*)vertex_w_pointer + i *                    
2545bd8deadSopenharmony_ci                                sizeof(vertex_type);
2555bd8deadSopenharmony_ci                          Vertex<vertex_size><vertex_type> (*(vertex_type*)px,  
2565bd8deadSopenharmony_ci                                *(vertex_type*)py, *(vertex_type*)pz,           
2575bd8deadSopenharmony_ci                                *(vertex_type*)pw);
2585bd8deadSopenharmony_ci                    }
2595bd8deadSopenharmony_ci                } else {
2605bd8deadSopenharmony_ci                        if (vertex_stride == 0)
2615bd8deadSopenharmony_ci                            p = (byte*)vertex_pointer +
2625bd8deadSopenharmony_ci                                i * vertex_size * sizeof(vertex_type);
2635bd8deadSopenharmony_ci                        else
2645bd8deadSopenharmony_ci                            p = (byte*)vertex_pointer + i * vertex_stride;
2655bd8deadSopenharmony_ci                        Vertex<vertex_size><vertex_type>v ((vertex_type*)p);
2665bd8deadSopenharmony_ci                }
2675bd8deadSopenharmony_ci            }
2685bd8deadSopenharmony_ci        }
2695bd8deadSopenharmony_ci
2705bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization)
2715bd8deadSopenharmony_ci
2725bd8deadSopenharmony_ci    None
2735bd8deadSopenharmony_ci
2745bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
2755bd8deadSopenharmony_ciand the Frame buffer)
2765bd8deadSopenharmony_ci
2775bd8deadSopenharmony_ci    None
2785bd8deadSopenharmony_ci
2795bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions)
2805bd8deadSopenharmony_ci
2815bd8deadSopenharmony_ci    Array specification commands VertexParallelPointerINTEL,                    
2825bd8deadSopenharmony_ci    NormalParallelPointerINTEL, ColorParallelPointerINTEL, and                  
2835bd8deadSopenharmony_ci    TexCoordParallelPointerINTEL specify client side state, and are therefore
2845bd8deadSopenharmony_ci    not included in display lists.  Likewise Enable and Disable, when
2855bd8deadSopenharmony_ci    called with <cap> set to PARALLEL_ARRAYS_INTEL, are not included in display 
2865bd8deadSopenharmony_ci    lists.
2875bd8deadSopenharmony_ci
2885bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
2895bd8deadSopenharmony_ci
2905bd8deadSopenharmony_ci    GetPointerv returns in <param> the array pointer value specified
2915bd8deadSopenharmony_ci    by <pname>.  GetPointerv additional accepts the following values for <pname>
2925bd8deadSopenharmony_ci 
2935bd8deadSopenharmony_ci    VERTEX_ARRAY_PARALLEL_POINTERS_INTEL, NORMAL_ARRAY_PARALLEL_POINTERS_INTEL,
2945bd8deadSopenharmony_ci    COLOR_ARRAY_PARALLEL_POINTERS_INTEL,                                        
2955bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL.
2965bd8deadSopenharmony_ci    In this case, <param> will return an array of pointers.
2975bd8deadSopenharmony_ci
2985bd8deadSopenharmony_ciAdditions to the GLX Specification
2995bd8deadSopenharmony_ci
3005bd8deadSopenharmony_ci    None
3015bd8deadSopenharmony_ci
3025bd8deadSopenharmony_ciGLX Protocol
3035bd8deadSopenharmony_ci
3045bd8deadSopenharmony_ci    None
3055bd8deadSopenharmony_ci
3065bd8deadSopenharmony_ciErrors
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci    INVALID_VALUE is generated if VertexPointervINTEL parameter <size>  
3095bd8deadSopenharmony_ci    is not 2, 3, or 4.
3105bd8deadSopenharmony_ci
3115bd8deadSopenharmony_ci    INVALID_ENUM is generated if VertexPointervINTEL parameter <type> 
3125bd8deadSopenharmony_ci    is not SHORT, INT, FLOAT, or DOUBLE.
3135bd8deadSopenharmony_ci
3145bd8deadSopenharmony_ci    INVALID_ENUM is generated if NormalPointervINTEL parameter <type> is
3155bd8deadSopenharmony_ci    not BYTE, SHORT, INT, FLOAT, or DOUBLE.
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ci    INVALID_VALUE is generated if ColorPointervINTEL parameter <size> is
3185bd8deadSopenharmony_ci    not 3 or 4.
3195bd8deadSopenharmony_ci
3205bd8deadSopenharmony_ci    INVALID_ENUM is generated if ColorPointervINTEL parameter <type> is 
3215bd8deadSopenharmony_ci    not BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT, INT, UNSIGNED_INT, FLOAT,
3225bd8deadSopenharmony_ci    or DOUBLE.
3235bd8deadSopenharmony_ci
3245bd8deadSopenharmony_ci    INVALID_VALUE is generated if TexCoordPointervINTEL parameter <size>
3255bd8deadSopenharmony_ci    is not 1, 2, 3, or 4.
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci    INVALID_ENUM is generated if TexCoordPointervINTEL parameter <type> is not
3285bd8deadSopenharmony_ci    SHORT, INT, FLOAT, or DOUBLE.
3295bd8deadSopenharmony_ci
3305bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetPointerv parameter <pname> is not
3315bd8deadSopenharmony_ci    VERTEX_ARRAY_POINTER, NORMAL_ARRAY_POINTER,
3325bd8deadSopenharmony_ci    COLOR_ARRAY_POINTER, INDEX_ARRAY_POINTER,
3335bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_POINTER, EDGE_FLAG_ARRAY_POINTER, or
3345bd8deadSopenharmony_ci    VERTEX_ARRAY_PARALLEL_POINTERS_INTEL, NORMAL_ARRAY_PARALLEL_POINTERS_INTEL,
3355bd8deadSopenharmony_ci    COLOR_ARRAY_PARALLEL_POINTERS_INTEL,                                        
3365bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL
3375bd8deadSopenharmony_ci
3385bd8deadSopenharmony_ciNew State
3395bd8deadSopenharmony_ci                                                                Initial
3405bd8deadSopenharmony_ci    Get Value                           Get Command     Type    Value   Attrib
3415bd8deadSopenharmony_ci    ---------                           -----------     ----    ------- ------
3425bd8deadSopenharmony_ci    PARALLEL_ARRAYS_INTEL               IsEnabled       B       False   client
3435bd8deadSopenharmony_ci    VERTEX_ARRAY_PARRALEL_POINTERS_INTEL GetPointerv    Z+      0       client
3445bd8deadSopenharmony_ci    NORMAL_ARRAY_PARALLEL_POINTERS_INTEL GetPointerv    Z+      0       client
3455bd8deadSopenharmony_ci    COLOR_ARRAY_PARALLEL_POINTERS_INTEL GetPointervEXT  Z+      0       client
3465bd8deadSopenharmony_ci    TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL GetPointerv Z+  0       client
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ciNew Implementation Dependent State
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ci    None
351