silk's picture

Extensions vs Core


I was trying to find information whether available functions from extensions are always mapped to GL.* delegates functions or are they only available through GL.Ext.* (or GL.Arb.*).

Let's take as an example GenFramebuffers, it was only in Ext before, and now is available as core in GL 3.0.

So, if a machine has only drivers supporting GL 2.1, and supporting framebuffers as extension, will the delegate GL.GenFramebuffers be mapped to that function? Or should I use GL.Ext.GenFramebuffers?

I cannot find this in faq, documentation or sources. From my experiments it seems that using GL.GenFramebuffers works fine even if drivers version string is 2.1.2 NVIDIA 180.44, but want to make sure if I can always count on it.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
the Fiddler's picture

To check if a specific function is supported, call GL.SupportsFunction:

GL.SupportsFunction("GenFramebuffers", "Ext");

Note that those two calls refer to completely different functions: one may be supported while the other is not.

Internally, all functions are routed through delegates, but this doesn't affect you in any way.

silk's picture

Ok, Thx.
So my first thought was correct.