No expert answer, so sharing my impressions and findings:

> Example code:
> 
> _isSomethingSupported = OSG_GLES2_FEATURES || OSG_GL3_FEATURES ||
>           isGLExtensionOrVersionSupported(contextID, "GL_EXT_something",
> 2.1);
> 
> Question 1:
> Why we are sometimes testing for version? e.g. 2.1?
> As the extension is in extension string anyway, is it correct to consider
> the version number as redundant while not harmful and mostly informative
> for programmer?

Not sure, but putting version number seems to be more sure approach.
E.g. ATI may support OpenGL 2.1 but decides not to support the extension from 
2.1 functionality was promoted.

> Problem 1:
> If there is a reference to the OpenGL number (e.g. 2.1), it is not possible
> to disable the functionality by osg::setGLExtensionDisableString(). Is it
> true?

Yes. I will try to resolve the issue.

> Question 2:
> Why we are using OSG_GL3_FEATURES ? The extension should be included in the
> extension string in my opinion. Or, am I mistaken?

My bet would be to use isGLExtensionOrVersionSupported with glVersion <=3.0 .

> Problem 2: The same as problem 1 - functionality can not be disabled if
> using OSG_GL3_FEATURES.

Same as Problem 1.

> Question 3:
> Is the extension string of OpenGL ES the same as on standard OpenGL? Will
> it, for instance, contain GL_ARB_multitexture of OpenGL 1.3?

Seems to me that not. The extensions has very different names on OpenGL ES. I 
expect that there is no GL_ARB_multitexture extension on OpenGL ES. We have to 
probably rely on OpenGL ES version. Anyway, I do not have OpenGL ES around me 
to test it.

John
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to