Btw, the upcoming version of LWJGL adds support for non-direct buffers, so you can be more liberal with the buffer allocation (at least for init code).
Really? What's the reason for that? It seems like so much effort has gone into forcing direct buffers, I'm curious why the sudden change? Won't that cause a performance hit? (I thought that was the reason for the direct buffers in the first place)
You're half way right. We've advocated direct buffers, and still do - they're faster than non-direct buffers. Non-direct buffer support is implemented as a slower fallback. The support should not affect the performance of direct buffers, since we already check isDirect() for sanity checking - the difference is that instead of throwing an exception, we fall back to a different code path.
- elias