- varray_buf_vertex3f = NULL;
- varray_buf_color4f = NULL;
- varray_buf_color4b = NULL;
- varray_buf_elements3i = NULL;
- for (i = 0;i < MAX_TEXTUREUNITS;i++)
- varray_buf_texcoord3f[i] = varray_buf_texcoord2f[i] = NULL;
- }
-
- if (varray_buf_vertex3f)
-#ifdef MESH_VAR
- VID_FreeVertexArrays(varray_buf_vertex3f);
-#else
- Mem_Free(varray_buf_vertex3f);
-#endif
- varray_buf_vertex3f = NULL;
- varray_buf_color4f = NULL;
- varray_buf_color4b = NULL;
- for (i = 0;i < MAX_TEXTUREUNITS;i++)
- varray_buf_texcoord3f[i] = varray_buf_texcoord2f[i] = NULL;
-
- mesh_maxverts = gl_mesh_maxverts.integer;
- size = mesh_maxverts * (sizeof(float[3]) + sizeof(float[4]) + sizeof(qbyte[4]) + (sizeof(float[3]) + sizeof(float[2])) * backendunits);
-#ifdef MESH_VAR
- mesh_var = gl_mesh_vertex_array_range.integer && gl_support_var;
- mesh_var_readfrequency = gl_mesh_vertex_array_range_readfrequency.value;
- mesh_var_writefrequency = gl_mesh_vertex_array_range_writefrequency.value;
- mesh_var_priority = gl_mesh_vertex_array_range_priority.value;
- data = VID_AllocVertexArrays(gl_backend_mempool, size, gl_mesh_vertex_array_range.integer, gl_mesh_vertex_array_range_readfrequency.value, gl_mesh_vertex_array_range_writefrequency.value, gl_mesh_vertex_array_range_priority.value);
-#else
- data = Mem_Alloc(gl_backend_mempool, size);
-#endif
-
- varray_buf_vertex3f = (void *)data;data += sizeof(float[3]) * mesh_maxverts;
- varray_buf_color4f = (void *)data;data += sizeof(float[4]) * mesh_maxverts;
- for (i = 0;i < backendunits;i++)
- {
- varray_buf_texcoord3f[i] = (void *)data;data += sizeof(float[3]) * mesh_maxverts;
- varray_buf_texcoord2f[i] = (void *)data;data += sizeof(float[2]) * mesh_maxverts;
- }
- for (;i < MAX_TEXTUREUNITS;i++)
- varray_buf_texcoord3f[i] = varray_buf_texcoord2f[i] = NULL;
- varray_buf_color4b = (void *)data;data += sizeof(qbyte[4]) * mesh_maxverts;
-
- GL_Backend_AllocElementsArray();
-
-#ifdef MESH_VAR
- if (mesh_var)
- {
- CHECKGLERROR
- qglVertexArrayRangeNV(size, varray_buf_vertex3f);
- CHECKGLERROR
- }
-#endif
-