Replacement of display list by immutable objects


Following the OpenGL 3.1 speficication and my happiness about uniform buffers, I’m in a wait a bit sad about the display list being actually deprecated.

Well even if I don’t believe in this GL_ARB_compatibility dummy extension, it supposed to be possibly gone.

I admit that display list are not great any more, it’s so complicated to sure with all the functions that can’t be included in display list, I just can’t rely on it. However, I have a use of it I still like, I create immutable group of state objects for blending, for depth and stencil, for rasterizer, and I use these display list like immutable object. If the current blend object “binded” (which display list have been called last) is different that the blend object I want to bind, I call this display list.

It works pretty well into engine design that sorted objects and commands.

What I actually suggest is:

  • A generic immutable state object that can pack several state commands together. Imply a limited set of commands.
  • Specific objects for blending, for rasterizer, stencil and depth test, etc… (This would be perfect but it is so not going to happen unfortunately!)