It's
really minor, but I just noticed this:
float left = m_vertices[0].position.x;
float top = m_vertices[0].position.y;
float right = m_vertices[0].position.x;
float bottom = m_vertices[0].position.y;
for (std::size_t i = 0; i < m_vertices.size(); ++i)
{
I suppose
i can start counting at 1.