mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
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:
parent
002c5c1da3
commit
03d2f08539
3 changed files with 16 additions and 4 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue