Hi Paul,

My changes are now checked in, an svn diff below should give you an
idea of what I've tinkered with.

Could you check these changes out and let me know if they are
suitable/need ammendments.

Cheers,
Robert.


svn diff
Index: src/osg/Texture.cpp
===================================================================
--- src/osg/Texture.cpp (revision 10736)
+++ src/osg/Texture.cpp (working copy)
@@ -2418,37 +2418,42 @@

     const char* renderer = (const char*) glGetString(GL_RENDERER);
     std::string rendererString(renderer ? renderer : "");
+
+    bool builtInSupport = OSG_GLES2_FEATURES || OSG_GL3_FEATURES;

-    _isMultiTexturingSupported = isGLExtensionOrVersionSupported(
contextID,"GL_ARB_multitexture", 1.3f) ||
+    _isMultiTexturingSupported = builtInSupport ||
+                                 isGLExtensionOrVersionSupported(
contextID,"GL_ARB_multitexture", 1.3f) ||

isGLExtensionOrVersionSupported(contextID,"GL_EXT_multitexture",
1.3f);

     _isTextureFilterAnisotropicSupported =
isGLExtensionSupported(contextID,"GL_EXT_texture_filter_anisotropic");

-    _isTextureCompressionARBSupported =
isGLExtensionOrVersionSupported(contextID,"GL_ARB_texture_compression",
1.3f);
+    _isTextureCompressionARBSupported = builtInSupport ||
isGLExtensionOrVersionSupported(contextID,"GL_ARB_texture_compression",
1.3f);

     _isTextureCompressionS3TCSupported =
isGLExtensionSupported(contextID,"GL_EXT_texture_compression_s3tc");

-    _isTextureMirroredRepeatSupported =
isGLExtensionOrVersionSupported(contextID,"GL_IBM_texture_mirrored_repeat",
1.4f) ||
+    _isTextureMirroredRepeatSupported = builtInSupport ||
+
isGLExtensionOrVersionSupported(contextID,"GL_IBM_texture_mirrored_repeat",
1.4f) ||

isGLExtensionOrVersionSupported(contextID,"GL_ARB_texture_mirrored_repeat",
1.4f);

-    _isTextureEdgeClampSupported =
isGLExtensionOrVersionSupported(contextID,"GL_EXT_texture_edge_clamp",
1.2f) ||
+    _isTextureEdgeClampSupported = builtInSupport ||
+
isGLExtensionOrVersionSupported(contextID,"GL_EXT_texture_edge_clamp",
1.2f) ||

isGLExtensionOrVersionSupported(contextID,"GL_SGIS_texture_edge_clamp",
1.2f);

-    _isTextureBorderClampSupported =
isGLExtensionOrVersionSupported(contextID,"GL_ARB_texture_border_clamp",
1.3f);
+    _isTextureBorderClampSupported = OSG_GL3_FEATURES ||
isGLExtensionOrVersionSupported(contextID,"GL_ARB_texture_border_clamp",
1.3f);

-    _isGenerateMipMapSupported =
isGLExtensionOrVersionSupported(contextID,"GL_SGIS_generate_mipmap",
1.4f);
+    _isGenerateMipMapSupported = builtInSupport ||
isGLExtensionOrVersionSupported(contextID,"GL_SGIS_generate_mipmap",
1.4f);

-    _isShadowSupported =
isGLExtensionSupported(contextID,"GL_ARB_shadow");
+    _isShadowSupported = OSG_GL3_FEATURES ||
isGLExtensionSupported(contextID,"GL_ARB_shadow");

     _isShadowAmbientSupported =
isGLExtensionSupported(contextID,"GL_ARB_shadow_ambient");

     _isClientStorageSupported =
isGLExtensionSupported(contextID,"GL_APPLE_client_storage");

-    _isNonPowerOfTwoTextureNonMipMappedSupported =
isGLExtensionOrVersionSupported(contextID,"GL_ARB_texture_non_power_of_two",
2.0);
+    _isNonPowerOfTwoTextureNonMipMappedSupported = builtInSupport ||
isGLExtensionOrVersionSupported(contextID,"GL_ARB_texture_non_power_of_two",
2.0);

-    _isNonPowerOfTwoTextureMipMappedSupported =
_isNonPowerOfTwoTextureNonMipMappedSupported;
+    _isNonPowerOfTwoTextureMipMappedSupported = builtInSupport ||
_isNonPowerOfTwoTextureNonMipMappedSupported;

-    _isTextureIntegerEXTSupported = isGLExtensionSupported(contextID,
"GL_EXT_texture_integer");
+    _isTextureIntegerEXTSupported = OSG_GL3_FEATURES ||
isGLExtensionSupported(contextID, "GL_EXT_texture_integer");

     if (rendererString.find("Radeon")!=std::string::npos ||
rendererString.find("RADEON")!=std::string::npos)
     {
Index: src/osg/BufferObject.cpp
===================================================================
--- src/osg/BufferObject.cpp    (revision 10736)
+++ src/osg/BufferObject.cpp    (working copy)
@@ -348,7 +348,7 @@
     setGLExtensionFuncPtr(_glUnmapBuffer,
"glUnmapBuffer","glUnmapBufferARB");
     setGLExtensionFuncPtr(_glGetBufferParameteriv,
"glGetBufferParameteriv","glGetBufferParameterivARB");
     setGLExtensionFuncPtr(_glGetBufferPointerv,
"glGetBufferPointerv","glGetBufferPointervARB");
-    _isPBOSupported =
osg::isGLExtensionSupported(contextID,"GL_ARB_pixel_buffer_object");
+    _isPBOSupported = OSG_GL3_FEATURES ||
osg::isGLExtensionSupported(contextID,"GL_ARB_pixel_buffer_object");
 }

 void GLBufferObject::Extensions::glGenBuffers(GLsizei n, GLuint
*buffers) const
Index: src/osg/Drawable.cpp
===================================================================
--- src/osg/Drawable.cpp        (revision 10736)
+++ src/osg/Drawable.cpp        (working copy)
@@ -960,7 +960,7 @@
     _isFogCoordSupported =
isGLExtensionSupported(contextID,"GL_EXT_fog_coord");
     _isMultiTexSupported =
isGLExtensionSupported(contextID,"GL_ARB_multitexture");
     _isOcclusionQuerySupported =
osg::isGLExtensionSupported(contextID, "GL_NV_occlusion_query" );
-    _isARBOcclusionQuerySupported =
osg::isGLExtensionSupported(contextID, "GL_ARB_occlusion_query" );
+    _isARBOcclusionQuerySupported = OSG_GL3_FEATURES ||
osg::isGLExtensionSupported(contextID, "GL_ARB_occlusion_query" );

     _isTimerQuerySupported = osg::isGLExtensionSupported(contextID,
"GL_EXT_timer_query" );;

Index: src/osg/Point.cpp
===================================================================
--- src/osg/Point.cpp   (revision 10736)
+++ src/osg/Point.cpp   (working copy)
@@ -140,12 +140,13 @@

 void Point::Extensions::setupGLExtensions(unsigned int contextID)
 {
-    _isPointParametersSupported = strncmp((const
char*)glGetString(GL_VERSION),"1.4",3)>=0 ||
+    _isPointParametersSupported = OSG_GL3_FEATURES ||
+                                  strncmp((const
char*)glGetString(GL_VERSION),"1.4",3)>=0 ||

isGLExtensionSupported(contextID,"GL_ARB_point_parameters") ||

isGLExtensionSupported(contextID,"GL_EXT_point_parameters") ||

isGLExtensionSupported(contextID,"GL_SGIS_point_parameters");

-    _isPointSpriteCoordOriginSupported = strncmp((const
char*)glGetString(GL_VERSION),"2.0",3)>=0;
+    _isPointSpriteCoordOriginSupported = OSG_GL3_FEATURES ||
strncmp((const char*)glGetString(GL_VERSION),"2.0",3)>=0;

     setGLExtensionFuncPtr(_glPointParameteri, "glPointParameteri",
"glPointParameteriARB");
     if (!_glPointParameteri)
setGLExtensionFuncPtr(_glPointParameteri, "glPointParameteriEXT",
"glPointParameteriSGIS");
Index: src/osg/ClampColor.cpp
===================================================================
--- src/osg/ClampColor.cpp      (revision 10736)
+++ src/osg/ClampColor.cpp      (working copy)
@@ -93,7 +93,8 @@

 void ClampColor::Extensions::setupGLExtensions(unsigned int
contextID)
 {
-    _isClampColorSupported =
isGLExtensionSupported(contextID,"GL_ARB_color_buffer_float") ||
+    _isClampColorSupported = OSG_GL3_FEATURES ||
+
isGLExtensionSupported(contextID,"GL_ARB_color_buffer_float") ||
                              strncmp((const
char*)glGetString(GL_VERSION),"2.0",3)>=0;

     setGLExtensionFuncPtr(_glClampColor, "glClampColor",
"glClampColorARB");
Index: src/osg/Multisample.cpp
===================================================================
--- src/osg/Multisample.cpp     (revision 10736)
+++ src/osg/Multisample.cpp     (working copy)
@@ -88,7 +88,7 @@

 void Multisample::Extensions::setupGLExtensions(unsigned int
contextID)
 {
-    _isMultisampleSupported =
isGLExtensionSupported(contextID,"GL_ARB_multisample");
+    _isMultisampleSupported = OSG_GLES2_FEATURES || OSG_GL3_FEATURES
|| isGLExtensionSupported(contextID,"GL_ARB_multisample");
     _isMultisampleFilterHintSupported =
isGLExtensionSupported(contextID,"GL_NV_multisample_filter_hint");

     setGLExtensionFuncPtr(_glSampleCoverage, "glSampleCoverageARB");
Index: src/osg/Texture3D.cpp
===================================================================
--- src/osg/Texture3D.cpp       (revision 10736)
+++ src/osg/Texture3D.cpp       (working copy)
@@ -579,7 +579,7 @@

 void Texture3D::Extensions::setupGLExtensions(unsigned int contextID)
 {
-    _isTexture3DFast =
isGLExtensionSupported(contextID,"GL_EXT_texture3D");
+    _isTexture3DFast = OSG_GL3_FEATURES ||
isGLExtensionSupported(contextID,"GL_EXT_texture3D");

     if (_isTexture3DFast) _isTexture3DSupported = true;
     else _isTexture3DSupported = strncmp((const
char*)glGetString(GL_VERSION),"1.2",3)>=0;
Index: src/osg/BlendFunc.cpp
===================================================================
--- src/osg/BlendFunc.cpp       (revision 10736)
+++ src/osg/BlendFunc.cpp       (working copy)
@@ -106,8 +106,9 @@

 void BlendFunc::Extensions::setupGLExtensions(unsigned int contextID)
 {
-    _isBlendFuncSeparateSupported = isGLExtensionSupported(contextID,
"GL_EXT_blend_func_separate") ||
-        strncmp((const char*)glGetString(GL_VERSION), "1.4", 3) >= 0;
+    _isBlendFuncSeparateSupported = OSG_GLES2_FEATURES ||
OSG_GL3_FEATURES ||
+                                    isGLExtensionSupported(contextID,
"GL_EXT_blend_func_separate") ||
+                                    strncmp((const
char*)glGetString(GL_VERSION), "1.4", 3) >= 0;

      setGLExtensionFuncPtr(_glBlendFuncSeparate,
"glBlendFuncSeparate", "glBlendFuncSeparateEXT");
 }
Index: src/osg/Texture2DArray.cpp
===================================================================
--- src/osg/Texture2DArray.cpp  (revision 10736)
+++ src/osg/Texture2DArray.cpp  (working copy)
@@ -596,8 +596,8 @@

 void Texture2DArray::Extensions::setupGLExtensions(unsigned int
contextID)
 {
-    _isTexture3DSupported =
isGLExtensionSupported(contextID,"GL_EXT_texture3D");
-    _isTexture2DArraySupported =
isGLExtensionSupported(contextID,"GL_EXT_texture_array");
+    _isTexture3DSupported = OSG_GL3_FEATURES ||
isGLExtensionSupported(contextID,"GL_EXT_texture3D");
+    _isTexture2DArraySupported = OSG_GL3_FEATURES ||
isGLExtensionSupported(contextID,"GL_EXT_texture_array");

     glGetIntegerv(GL_MAX_TEXTURE_SIZE, &_max2DSize);
     glGetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS_EXT, &_maxLayerCount);
Index: src/osg/BlendColor.cpp
===================================================================
--- src/osg/BlendColor.cpp      (revision 10736)
+++ src/osg/BlendColor.cpp      (working copy)
@@ -89,7 +89,8 @@

 void BlendColor::Extensions::setupGLExtensions(unsigned int
contextID)
 {
-    _isBlendColorSupported =
isGLExtensionSupported(contextID,"GL_EXT_blend_color") ||
+    _isBlendColorSupported = OSG_GLES2_FEATURES || OSG_GL3_FEATURES
||
+
isGLExtensionSupported(contextID,"GL_EXT_blend_color") ||
                              strncmp((const
char*)glGetString(GL_VERSION),"1.2",3)>=0;

     setGLExtensionFuncPtr(_glBlendColor, "glBlendColor",
"glBlendColorEXT");
Index: src/osg/BlendEquation.cpp
===================================================================
--- src/osg/BlendEquation.cpp   (revision 10736)
+++ src/osg/BlendEquation.cpp   (working copy)
@@ -124,10 +124,13 @@

 void BlendEquation::Extensions::setupGLExtensions(unsigned int
contextID)
 {
-    _isBlendEquationSupported = isGLExtensionSupported(contextID,
"GL_EXT_blend_equation") ||
+    bool bultInSupport = OSG_GLES2_FEATURES || OSG_GL3_FEATURES;
+    _isBlendEquationSupported = bultInSupport ||
+        isGLExtensionSupported(contextID, "GL_EXT_blend_equation") ||
         strncmp((const char*)glGetString(GL_VERSION), "1.2", 3) >= 0;

-    _isBlendEquationSeparateSupported =
isGLExtensionSupported(contextID, "GL_EXT_blend_equation_separate") ||
+    _isBlendEquationSeparateSupported = bultInSupport ||
+        isGLExtensionSupported(contextID, "GL_EXT_blend_equation_separate") ||
         strncmp((const char*)glGetString(GL_VERSION), "2.0", 3) >= 0;

     _isSGIXMinMaxSupported = isGLExtensionSupported(contextID,
"GL_SGIX_blend_alpha_minmax");
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to