| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -1782,14 +1782,14 @@ void rlLoadMesh(Mesh *mesh, bool dynamic) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glGenBuffers(1, &mesh->vboId[4]); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glBindBuffer(GL_ARRAY_BUFFER, mesh->vboId[4]); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*mesh->vertexCount, mesh->tangents, drawHint); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glVertexAttribPointer(4, 3, GL_FLOAT, 0, 0, 0); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*mesh->vertexCount, mesh->tangents, drawHint); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glVertexAttribPointer(4, 4, GL_FLOAT, 0, 0, 0); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glEnableVertexAttribArray(4); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    else | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        // Default tangents vertex attribute | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glVertexAttrib3f(4, 0.0f, 0.0f, 0.0f); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glVertexAttrib4f(4, 0.0f, 0.0f, 0.0f, 0.0f); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glDisableVertexAttribArray(4); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -1804,7 +1804,7 @@ void rlLoadMesh(Mesh *mesh, bool dynamic) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    else | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        // Default tangents vertex attribute | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        // Default texcoord2 vertex attribute | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glVertexAttrib2f(5, 0.0f, 0.0f); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glDisableVertexAttribArray(5); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -1868,8 +1868,8 @@ void rlUpdateMesh(Mesh mesh, int buffer, int numVertex) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case 4:     // Update tangents (vertex tangents) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            glBindBuffer(GL_ARRAY_BUFFER, mesh.vboId[4]); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            if (numVertex >= mesh.vertexCount) glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*numVertex, mesh.tangents, GL_DYNAMIC_DRAW); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            else glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float)*3*numVertex, mesh.tangents); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            if (numVertex >= mesh.vertexCount) glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*numVertex, mesh.tangents, GL_DYNAMIC_DRAW); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            else glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float)*4*numVertex, mesh.tangents); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case 5:     // Update texcoords2 (vertex second texture coordinates) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -2019,7 +2019,7 @@ void rlDrawMesh(Mesh mesh, Material material, Matrix transform) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        if (material.shader.locs[LOC_VERTEX_TANGENT] != -1) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            glBindBuffer(GL_ARRAY_BUFFER, mesh.vboId[4]); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            glVertexAttribPointer(material.shader.locs[LOC_VERTEX_TANGENT], 3, GL_FLOAT, 0, 0, 0); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            glVertexAttribPointer(material.shader.locs[LOC_VERTEX_TANGENT], 4, GL_FLOAT, 0, 0, 0); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            glEnableVertexAttribArray(material.shader.locs[LOC_VERTEX_TANGENT]); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |