mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
mesa: make max_buffer_index() a non-static function
This commit is contained in:
parent
4916a5a2e7
commit
e5d29ebb5e
2 changed files with 51 additions and 0 deletions
|
|
@ -51,6 +51,51 @@ index_bytes(GLenum type, GLsizei count)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Find the max index in the given element/index buffer
|
||||
*/
|
||||
GLuint
|
||||
_mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type,
|
||||
const void *indices,
|
||||
struct gl_buffer_object *elementBuf)
|
||||
{
|
||||
const GLubyte *map = NULL;
|
||||
GLuint max = 0;
|
||||
GLuint i;
|
||||
|
||||
if (_mesa_is_bufferobj(elementBuf)) {
|
||||
/* elements are in a user-defined buffer object. need to map it */
|
||||
map = ctx->Driver.MapBuffer(ctx, GL_ELEMENT_ARRAY_BUFFER,
|
||||
GL_READ_ONLY, elementBuf);
|
||||
/* Actual address is the sum of pointers */
|
||||
indices = (const GLvoid *) ADD_POINTERS(map, (const GLubyte *) indices);
|
||||
}
|
||||
|
||||
if (type == GL_UNSIGNED_INT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLuint *) indices)[i] > max)
|
||||
max = ((GLuint *) indices)[i];
|
||||
}
|
||||
else if (type == GL_UNSIGNED_SHORT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLushort *) indices)[i] > max)
|
||||
max = ((GLushort *) indices)[i];
|
||||
}
|
||||
else {
|
||||
ASSERT(type == GL_UNSIGNED_BYTE);
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLubyte *) indices)[i] > max)
|
||||
max = ((GLubyte *) indices)[i];
|
||||
}
|
||||
|
||||
if (map) {
|
||||
ctx->Driver.UnmapBuffer(ctx, GL_ELEMENT_ARRAY_BUFFER_ARB, elementBuf);
|
||||
}
|
||||
|
||||
return max;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if OK to draw arrays/elements.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -30,6 +30,12 @@
|
|||
|
||||
#include "mtypes.h"
|
||||
|
||||
|
||||
extern GLuint
|
||||
_mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type,
|
||||
const void *indices,
|
||||
struct gl_buffer_object *elementBuf);
|
||||
|
||||
extern GLboolean
|
||||
_mesa_validate_DrawArrays(GLcontext *ctx,
|
||||
GLenum mode, GLint start, GLsizei count);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue