GL_NV_vertex_array_range

Some questions about the GL_NV_vertex_array_range extension.

1)If I’ve allocated a vertex array buffer using wglAllocateMemoryNV, with the read/write frequencies set up such that the allocator should return video memory, can I write to the allocated memory buffer at any time, or are there restrictions?

2)Are there some sort of restrictions on the vertex formats that this extension supports?

3)Based on my understanding of the extension spec, It seems like the following code should work. However, it seems to ignore the supplied texture coordinates. What am I doing wrong?

// allocate vertex array
void *pbase = wglAllocateMemoryNV(nBytes,0,0,1);

/*
fill out pbase buffer with appropriate data.
*/

// enable vertex format
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY_RANGE_NV);

char *ptex_coord_base = ((char *)pbase) + sizeof(float)*3;

// set data pointers
int nStride = sizeof(float)*5;
glVertexPointer(3,GL_FLOAT,nStride,pbase);
glTexCoordPointer(2,GL_FLOAT,nStride,(void *)ptex_coord_base );

// specify current vertex array range
glVertexArrayRangeNV(nBytes, pbase);

glDrawElements(GL_TRIANGLES,nindices,GL_UNSIGNED_SHORT,pibuf);