From a8e9e1387f0abaa46557dd2076973cd30784148c Mon Sep 17 00:00:00 2001 From: raysan5 Date: Fri, 30 Jul 2021 13:47:21 +0200 Subject: [PATCH] REVIEWED: Avoid UBSAN warnings #1891 --- src/rlgl.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index ece72f8c0..10cde3095 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -3227,7 +3227,8 @@ void rlDrawVertexArray(int offset, int count) void rlDrawVertexArrayElements(int offset, int count, void *buffer) { - glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (unsigned short *)buffer + offset); + if (buffer == 0) glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, offset); + else glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (unsigned short *)buffer + offset); } void rlDrawVertexArrayInstanced(int offset, int count, int instances) @@ -3240,7 +3241,8 @@ void rlDrawVertexArrayInstanced(int offset, int count, int instances) void rlDrawVertexArrayElementsInstanced(int offset, int count, void *buffer, int instances) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (unsigned short *)buffer + offset, instances); + if (buffer == 0) glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, offset, instances); + else glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (unsigned short *)buffer + offset, instances); #endif }