|
|
@ -3687,7 +3687,11 @@ void rlDrawVertexArray(int offset, int count) |
|
|
|
// Draw vertex array elements |
|
|
|
void rlDrawVertexArrayElements(int offset, int count, const void *buffer) |
|
|
|
{ |
|
|
|
glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset); |
|
|
|
// NOTE: Added pointer math separately from function to avoid UBSAN complaining |
|
|
|
unsigned short *bufferPtr = (unsigned short *)buffer; |
|
|
|
if (offset > 0) bufferPtr += offset; |
|
|
|
|
|
|
|
glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); |
|
|
|
} |
|
|
|
|
|
|
|
// Draw vertex array instanced |
|
|
@ -3702,7 +3706,11 @@ void rlDrawVertexArrayInstanced(int offset, int count, int instances) |
|
|
|
void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) |
|
|
|
{ |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset, instances); |
|
|
|
// NOTE: Added pointer math separately from function to avoid UBSAN complaining |
|
|
|
unsigned short *bufferPtr = (unsigned short *)buffer; |
|
|
|
if (offset > 0) bufferPtr += offset; |
|
|
|
|
|
|
|
glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|