| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -620,23 +620,24 @@ RLAPI void rlSetTexture(unsigned int id);           // Set current texture for r | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Vertex buffers management | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadVertexArray(void);                               // Load vertex array (vao) if supported | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadVertexBuffer(void *buffer, int size, bool dynamic);            // Load a vertex buffer attribute | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadVertexBufferElement(void *buffer, int size, bool dynamic);     // Load a new attributes element buffer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, void *data, int dataSize, int offset);    // Update GPU buffer with new data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic);            // Load a vertex buffer attribute | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic);     // Load a new attributes element buffer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset);     // Update GPU buffer with new data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset);   // Update vertex buffer elements with new data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlUnloadVertexArray(unsigned int vaoId); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlUnloadVertexBuffer(unsigned int vboId); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, void *pointer); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, ">const void *pointer); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlDrawVertexArray(int offset, int count); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlDrawVertexArrayElements(int offset, int count, void *buffer); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlDrawVertexArrayElements(int offset, int count, ">const void *buffer); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, void *buffer, int instances); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, ">const void *buffer, int instances); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Textures management | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadTexture(void *data, int width, int height, int format, int mipmapCount); // Load texture in GPU | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadTexture(">const void *data, int width, int height, int format, int mipmapCount); // Load texture in GPU | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer);               // Load depth texture/renderbuffer (to be attached to fbo) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadTextureCubemap(void *data, int size, int format);                        // Load texture cubemap | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI unsigned int rlLoadTextureCubemap(">const void *data, int size, int format);                        // Load texture cubemap | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data);  // Update GPU texture with new data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void rlGetGlTextureFormats(int format, int *glInternalFormat, int *glFormat, int *glType);  // Get OpenGL internal formats | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI const char *rlGetPixelFormatName(unsigned int format);              // Get name string for pixel format | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -2682,7 +2683,7 @@ bool rlCheckRenderBatchLimit(int vCount) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Textures data management | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//----------------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Convert image data to OpenGL texture (returns OpenGL valid Id) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadTexture(void *data, int width, int height, int format, int mipmapCount) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadTexture(">const void *data, int width, int height, int format, int mipmapCount) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    glBindTexture(GL_TEXTURE_2D, 0);    // Free any old binding | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -2884,7 +2885,7 @@ unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Load texture cubemap | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// expected the following convention: +X, -X, +Y, -Y, +Z, -Z | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadTextureCubemap(void *data, int size, int format) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadTextureCubemap(">const void *data, int size, int format) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int id = 0; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -3319,7 +3320,7 @@ void rlUnloadFramebuffer(unsigned int id) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Vertex data management | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//----------------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Load a new attributes buffer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadVertexBuffer(void *buffer, int size, bool dynamic) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadVertexBuffer(">const void *buffer, int size, bool dynamic) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int id = 0; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -3333,7 +3334,7 @@ unsigned int rlLoadVertexBuffer(void *buffer, int size, bool dynamic) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Load a new attributes element buffer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadVertexBufferElement(void *buffer, int size, bool dynamic) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			unsigned int rlLoadVertexBufferElement(">const void *buffer, int size, bool dynamic) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int id = 0; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -3380,7 +3381,7 @@ void rlDisableVertexBufferElement(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Update vertex buffer with new data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// 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, ">const void *data, int dataSize, int offset) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    glBindBuffer(GL_ARRAY_BUFFER, id); | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -3390,7 +3391,7 @@ void rlUpdateVertexBuffer(unsigned int id, void *data, int dataSize, int offset) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// 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) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void rlUpdateVertexBufferElements(unsigned int id, ">const void *data, int dataSize, int offset) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -3443,9 +3444,9 @@ void rlDrawVertexArray(int offset, int count) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Draw vertex array elements | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void rlDrawVertexArrayElements(int offset, int count, void *buffer) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void rlDrawVertexArrayElements(int offset, int count, ">const void *buffer) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (unsigned short *)buffer + offset); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (">const unsigned short *)buffer + offset); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Draw vertex array instanced | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -3457,10 +3458,10 @@ void rlDrawVertexArrayInstanced(int offset, int count, int instances) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Draw vertex array elements instanced | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void rlDrawVertexArrayElementsInstanced(int offset, int count, void *buffer, 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, (unsigned short *)buffer + offset, instances); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (">const unsigned short *)buffer + offset, instances); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -3501,7 +3502,7 @@ unsigned int rlLoadVertexArray(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// 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, ">const void *pointer) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    glVertexAttribPointer(index, compSize, type, normalized, stride, pointer); | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |