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