I was looking over the ARB_sync specification, and I realized something. Sync objects aren’t regular OpenGL objects at all. They’re pointers.
This is not a small aberration. This is the first time an object has ever been made a pointer in the core of OpenGL.
Many previous proposals for object types used pointers or something equally opaque. But those parts of those proposals were shot down, preferring to use the standard glGen*/glDelete* conventions for object creation.
What I would like to know is what this says for the future? With 64-bit being effectively here, and bindless graphics-based performance tests proving the performance advantage of dumping the GLuint-based objects in favor of something more direct, will we see a move towards more pointer-based objects?