ADDED: rlUpdateVertexBufferElements() #1915

This commit is contained in:
raysan5 2021-08-12 21:01:09 +02:00
parent 26db391576
commit 1dff5814be

View file

@ -506,8 +506,8 @@ RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer
RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index
RLAPI void rlDisableVertexAttribute(unsigned int index);// Disable vertex attribute index RLAPI void rlDisableVertexAttribute(unsigned int index);// Disable vertex attribute index
#if defined(GRAPHICS_API_OPENGL_11) #if defined(GRAPHICS_API_OPENGL_11)
RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer
RLAPI void rlDisableStatePointer(int vertexAttribType); RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer
#endif #endif
// Textures state // Textures state
@ -3223,6 +3223,7 @@ unsigned int rlLoadVertexBufferElement(void *buffer, int size, bool dynamic)
return id; return id;
} }
// Enable vertex buffer (VBO)
void rlEnableVertexBuffer(unsigned int id) void rlEnableVertexBuffer(unsigned int id)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3230,6 +3231,7 @@ void rlEnableVertexBuffer(unsigned int id)
#endif #endif
} }
// Disable vertex buffer (VBO)
void rlDisableVertexBuffer(void) void rlDisableVertexBuffer(void)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3237,6 +3239,7 @@ void rlDisableVertexBuffer(void)
#endif #endif
} }
// Enable vertex buffer element (VBO element)
void rlEnableVertexBufferElement(unsigned int id) void rlEnableVertexBufferElement(unsigned int id)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3244,6 +3247,7 @@ void rlEnableVertexBufferElement(unsigned int id)
#endif #endif
} }
// Disable vertex buffer element (VBO element)
void rlDisableVertexBufferElement(void) void rlDisableVertexBufferElement(void)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3251,7 +3255,7 @@ void rlDisableVertexBufferElement(void)
#endif #endif
} }
// Update GPU buffer with new data // Update vertex buffer with new data
// NOTE: dataSize and offset must be provided in bytes // NOTE: dataSize and offset must be provided in bytes
void rlUpdateVertexBuffer(unsigned int id, void *data, int dataSize, int offset) void rlUpdateVertexBuffer(unsigned int id, void *data, int dataSize, int offset)
{ {
@ -3261,6 +3265,17 @@ void rlUpdateVertexBuffer(unsigned int id, void *data, int dataSize, int offset)
#endif #endif
} }
// Update vertex buffer elements with new data
// NOTE: dataSize and offset must be provided in bytes
void rlUpdateVertexBufferElements(unsigned int id, void *data, int dataSize, int offset)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id);
glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data);
#endif
}
// Enable vertex array object (VAO)
bool rlEnableVertexArray(unsigned int vaoId) bool rlEnableVertexArray(unsigned int vaoId)
{ {
bool result = false; bool result = false;
@ -3274,6 +3289,7 @@ bool rlEnableVertexArray(unsigned int vaoId)
return result; return result;
} }
// Disable vertex array object (VAO)
void rlDisableVertexArray(void) void rlDisableVertexArray(void)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3281,6 +3297,7 @@ void rlDisableVertexArray(void)
#endif #endif
} }
// Enable vertex attribute index
void rlEnableVertexAttribute(unsigned int index) void rlEnableVertexAttribute(unsigned int index)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3288,6 +3305,7 @@ void rlEnableVertexAttribute(unsigned int index)
#endif #endif
} }
// Disable vertex attribute index
void rlDisableVertexAttribute(unsigned int index) void rlDisableVertexAttribute(unsigned int index)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3295,16 +3313,19 @@ void rlDisableVertexAttribute(unsigned int index)
#endif #endif
} }
// Draw vertex array
void rlDrawVertexArray(int offset, int count) void rlDrawVertexArray(int offset, int count)
{ {
glDrawArrays(GL_TRIANGLES, offset, count); glDrawArrays(GL_TRIANGLES, offset, count);
} }
// Draw vertex array elements
void rlDrawVertexArrayElements(int offset, int count, void *buffer) void rlDrawVertexArrayElements(int offset, int count, void *buffer)
{ {
glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (unsigned short *)buffer + offset); glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (unsigned short *)buffer + offset);
} }
// Draw vertex array instanced
void rlDrawVertexArrayInstanced(int offset, int count, int instances) void rlDrawVertexArrayInstanced(int offset, int count, int instances)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3312,6 +3333,7 @@ void rlDrawVertexArrayInstanced(int offset, int count, int instances)
#endif #endif
} }
// Draw vertex array elements instanced
void rlDrawVertexArrayElementsInstanced(int offset, int count, void *buffer, int instances) void rlDrawVertexArrayElementsInstanced(int offset, int count, void *buffer, int instances)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3320,6 +3342,7 @@ void rlDrawVertexArrayElementsInstanced(int offset, int count, void *buffer, int
} }
#if defined(GRAPHICS_API_OPENGL_11) #if defined(GRAPHICS_API_OPENGL_11)
// Enable vertex state pointer
void rlEnableStatePointer(int vertexAttribType, void *buffer) void rlEnableStatePointer(int vertexAttribType, void *buffer)
{ {
if (buffer != NULL) glEnableClientState(vertexAttribType); if (buffer != NULL) glEnableClientState(vertexAttribType);
@ -3334,12 +3357,14 @@ void rlEnableStatePointer(int vertexAttribType, void *buffer)
} }
} }
// Disable vertex state pointer
void rlDisableStatePointer(int vertexAttribType) void rlDisableStatePointer(int vertexAttribType)
{ {
glDisableClientState(vertexAttribType); glDisableClientState(vertexAttribType);
} }
#endif #endif
// Load vertex array object (VAO)
unsigned int rlLoadVertexArray(void) unsigned int rlLoadVertexArray(void)
{ {
unsigned int vaoId = 0; unsigned int vaoId = 0;
@ -3352,6 +3377,7 @@ unsigned int rlLoadVertexArray(void)
return vaoId; return vaoId;
} }
// Set vertex attribute
void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, void *pointer) void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, void *pointer)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3359,6 +3385,7 @@ void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool norma
#endif #endif
} }
// Set vertex attribute divisor
void rlSetVertexAttributeDivisor(unsigned int index, int divisor) void rlSetVertexAttributeDivisor(unsigned int index, int divisor)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3366,6 +3393,7 @@ void rlSetVertexAttributeDivisor(unsigned int index, int divisor)
#endif #endif
} }
// Unload vertex array object (VAO)
void rlUnloadVertexArray(unsigned int vaoId) void rlUnloadVertexArray(unsigned int vaoId)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
@ -3378,6 +3406,7 @@ void rlUnloadVertexArray(unsigned int vaoId)
#endif #endif
} }
// Unload vertex buffer (VBO)
void rlUnloadVertexBuffer(unsigned int vboId) void rlUnloadVertexBuffer(unsigned int vboId)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)