So I have implemented this, and just for fun, I tried it with 100,000 squares.(400,000 vertices all in one list)
Even if that is all that the program does, I only get about 35 fps. I don't ever plan to draw that many, and I plan to stick with what I have, but I thought my graphics card could do way more than that. They are all of course using the same texture, and I'm not even doing ANY transforms on them. They are all getting drawn with the same draw call. That's only ~13 million a second. ("only 12 million a second"<-- lol).
But I thought it could handle hundreds of millions? What am I missing? Does that hundred million figure imply I would need need to use a VBO to step up the performance even more?(once again, just for curiosity)
Here is my code:
void QuadBatchContainer::draw(sf::RenderTarget& rTarget, sf::RenderStates states) const
{
for(auto it = m_vertexLists.cbegin(); it != m_vertexLists.cend(); ++it)
{
cout << "\n" << it->second->vertexList.getVertexCount();
states.texture = it->second->pTexture;
rTarget.draw(it->second->vertexList, states);
}
}