I’m trying to design a reasonably high-performance OpenGL wrapper for a specific geometry-once, render-many case.
Past experience has shown me that on NVIDIA hardware at least, display lists can be faster than VBOs. So I thought I’d arrange things so that geometry always gets “baked” into a display list when it’s specified, using vertex arrays. I figure I can upgrade those to VBOs easily enough later if speed testing shows a benefit.
However, I’ve gotten a bit rusty, and there are a few issues about display lists I don’t recall. I know glVertexPointer and glEnableClientState don’t get added to display lists. Do I need to therefore reset those each time I glCallList(), or will the display list figure out how to compile in the relevant information?
I’m particularly interested as it affects glPrimitiveRestartIndexNV(), which also does not get added into display lists.