Large amounts of VAOs causing immense lag

Hi,

Title basically says it all. I had been using the immediate mode for 2D game programming and decided to learn the new code for OpenGL 3+. It had been going quite well; I had managed to write a model loader based on the code in SHC’s tutorials on this website, and everything was working beautifully.

Recently, I was trying to render 10000 textured quads (previously the most I’d done was maybe 100 triangles in the model I rendered). I tried to do this using a 100x100 array of quads. This was something I did in immediate mode without any lag whatsoever - however, using VAOs and VBOs, it ran at around 5 FPS, and I’m not sure why it’s running that slow.

Is there any part of my code (below) which would cause such a hit on performance?

Game.java: http://pastebin.java-gaming.org/3c33b89997f (a base for a game)
GameImpl.java: http://pastebin.java-gaming.org/03c337b9979 (implementation of Game.java)
GLTexture.java: http://pastebin.java-gaming.org/c33b9999f77 (represents quad with textures applied)
Camera.java: http://pastebin.java-gaming.org/33b990f078d (camera and matrix stuff)

Any tips or hints are appreciated. Sorry if this is in the wrong section.

You don’t create a VAO/VBO for EVERY QUAD! Put all the vertices into a SINGLE VBO and then render that.