Do EXT_ and ARB_ calls get automatically mapped to Modern OpenGL?


I was wondering if modern OpenGL automatically maps extensions into their API. Is that the case?


Get mapped to what? It’s not clear what you’re asking about.

If a given functionality is available as an ARB_ or EXT_ and the next version of OpenGL brings it into the core profile, will code written with those extensions work the same if run within the updated OpenGL profile?

Assuming that you mean “are the likes of glBufferData and glBufferDataARB really the same call?” the answer is yes, no, maybe, but don’t depend on it.

Not all extensions move to core GL unmodified; for example there are differences between GL_EXT_framebuffer_object and core GL FBOs that may trip you up. Other extensions may take the long way around, moving from vendor to EXT to ARB to core and changing each step of the way. On the other hand there are some core GL features that never existed in extension form, and even some ARB/EXT extensions that never moved (and are unlikely to ever move) to core GL.

So in other words either use the core GL variant consistently, or use the extension consistently, but don’t rely on being able to reliably fallback to an extension if it’s not in core (otherwise keeping the rest of your code the same), and definitely don’t mix-and-match calls from the two.