Implement support for GL_UNSIGNED_INT indices
This commit is contained in:
parent
8cc9e84cca
commit
31e666c77a
11
GL/draw.c
11
GL/draw.c
|
@ -121,10 +121,13 @@ static void _parseFloats(GLfloat* out, const GLubyte* in, GLint size, GLenum typ
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _parseIndex(GLshort* out, const GLubyte* in, GLenum type) {
|
static void _parseIndex(GLuint* out, const GLubyte* in, GLenum type) {
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case GL_UNSIGNED_BYTE:
|
case GL_UNSIGNED_BYTE:
|
||||||
*out = (GLshort) *in;
|
*out = (GLuint) *in;
|
||||||
|
break;
|
||||||
|
case GL_UNSIGNED_INT:
|
||||||
|
*out = *((GLuint*) in);
|
||||||
break;
|
break;
|
||||||
case GL_UNSIGNED_SHORT:
|
case GL_UNSIGNED_SHORT:
|
||||||
default:
|
default:
|
||||||
|
@ -203,7 +206,7 @@ static void generate(AlignedVector* output, const GLenum mode, const GLsizei fir
|
||||||
for(j = first; j < max; ++i, ++j, ++vertex) {
|
for(j = first; j < max; ++i, ++j, ++vertex) {
|
||||||
vertex->flags = PVR_CMD_VERTEX;
|
vertex->flags = PVR_CMD_VERTEX;
|
||||||
|
|
||||||
GLshort idx = j;
|
GLuint idx = j;
|
||||||
if(indices) {
|
if(indices) {
|
||||||
_parseIndex(&idx, &indices[byte_size(type) * j], type);
|
_parseIndex(&idx, &indices[byte_size(type) * j], type);
|
||||||
}
|
}
|
||||||
|
@ -408,7 +411,7 @@ static void divide(AlignedVector* vertices) {
|
||||||
for(i = 0; i < vertices->size; ++i, ++vertex) {
|
for(i = 0; i < vertices->size; ++i, ++vertex) {
|
||||||
vertex->xyz[2] = 1.0f / vertex->w;
|
vertex->xyz[2] = 1.0f / vertex->w;
|
||||||
vertex->xyz[0] *= vertex->xyz[2];
|
vertex->xyz[0] *= vertex->xyz[2];
|
||||||
vertex->xyz[1] *= vertex->xyz[2];
|
vertex->xyz[1] *= vertex->xyz[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user