@degac: makes sense, though a lot of work for Brucey! Not that that seems to stop him...
Just posting an update with my latest efforts -- LOTS of hackery involved, but I started putting stuff into classes again and a few Blitz3D-like wrapper functions, been fun this evening... it's a mess, but it's my mess, and I'm gradually tidying while also trying things out. Keeping single-file for now.
I can do around 10,000 cubes without any slowdown (after some pausing at startup), even with zero optimisation on my part!
There's also optional PS1-style texture warping (see LoadShaders to enable the alternative .glsl files, and if you edit resources\vertex-shader-affine-warping.glsl, you can even have wobbling vertices!).
The rotation is a quick hack, there's only (global) translation at present.
Controls are in the title-bar! C culls backfaces (not culled by default), but it's hard to tell here, and W does wireframe, but this is driver-dependent so don't be surprised if it doesn't do anything...
I've left the .exe in there for quick testing -- run through VirusTotal with no detections, but use normal precautions.
Thanks to Brucey for getting GLFW going... I've got a couple of OpenGL 3.3 books on order now as well, so I'm using it!