vbo: add new vbo_compute_max_verts() helper function
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
This commit is contained in:
@@ -196,6 +196,20 @@ vbo_get_default_vals_as_union(GLenum format)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compute the max number of vertices which can be stored in
|
||||
* a vertex buffer, given the current vertex size, and the amount
|
||||
* of space already used.
|
||||
*/
|
||||
static inline unsigned
|
||||
vbo_compute_max_verts(const struct vbo_exec_context *exec)
|
||||
{
|
||||
return (VBO_VERT_BUFFER_SIZE - exec->vtx.buffer_used) /
|
||||
(exec->vtx.vertex_size * sizeof(GLfloat));
|
||||
}
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
@@ -291,8 +291,7 @@ vbo_exec_wrap_upgrade_vertex(struct vbo_exec_context *exec,
|
||||
*/
|
||||
exec->vtx.attrsz[attr] = newSize;
|
||||
exec->vtx.vertex_size += newSize - oldSize;
|
||||
exec->vtx.max_vert = ((VBO_VERT_BUFFER_SIZE - exec->vtx.buffer_used) /
|
||||
(exec->vtx.vertex_size * sizeof(GLfloat)));
|
||||
exec->vtx.max_vert = vbo_compute_max_verts(exec);
|
||||
exec->vtx.vert_count = 0;
|
||||
exec->vtx.buffer_ptr = exec->vtx.buffer_map;
|
||||
|
||||
|
||||
@@ -435,8 +435,7 @@ vbo_exec_vtx_flush(struct vbo_exec_context *exec, GLboolean keepUnmapped)
|
||||
if (keepUnmapped || exec->vtx.vertex_size == 0)
|
||||
exec->vtx.max_vert = 0;
|
||||
else
|
||||
exec->vtx.max_vert = ((VBO_VERT_BUFFER_SIZE - exec->vtx.buffer_used) /
|
||||
(exec->vtx.vertex_size * sizeof(GLfloat)));
|
||||
exec->vtx.max_vert = vbo_compute_max_verts(exec);
|
||||
|
||||
exec->vtx.buffer_ptr = exec->vtx.buffer_map;
|
||||
exec->vtx.prim_count = 0;
|
||||
|
||||
Reference in New Issue
Block a user