private void drawMesh()
	{
		lastTexture.bind();
		
		if(vbo == 0 || ibo == 0)
		{
			vbo = glGenBuffers();
			ibo = glGenBuffers();
		}
		
		if(iidx == 0 && vidx == 0)
			return;
		
		glBindBuffer(GL_ARRAY_BUFFER, vbo);
		glBufferData(GL_ARRAY_BUFFER, Vertex.createBuffer(vertices), GL_DYNAMIC_DRAW);
		
		glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
		glBufferData(GL_ELEMENT_ARRAY_BUFFER, createIndicesBuffer(indices), GL_DYNAMIC_DRAW);
		
		glEnableVertexAttribArray(0);
		glEnableVertexAttribArray(1);
		glEnableVertexAttribArray(2);
		
		glBindBuffer(GL_ARRAY_BUFFER, vbo);
		
		glVertexAttribPointer(0, 2, GL_FLOAT, false, Vertex.SIZE * 4, 0);
		glVertexAttribPointer(1, 2, GL_FLOAT, false, Vertex.SIZE * 4, 8);
		glVertexAttribPointer(2, 3, GL_FLOAT, false, Vertex.SIZE * 4, 16);
		
		glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
		glDrawElements(GL_TRIANGLES, indices.length, GL_UNSIGNED_INT, 0);
		
		glDisableVertexAttribArray(0);
		glDisableVertexAttribArray(1);
		glDisableVertexAttribArray(2);
		
		drawCalls++;
		
		reset();
	}