]> git.mxchange.org Git - simgear.git/commitdiff
changes for OSG 3.3.4 and later
authorTim Moore <timoore33@gmail.com>
Sun, 19 Apr 2015 15:11:49 +0000 (17:11 +0200)
committerTim Moore <timoore33@gmail.com>
Sun, 19 Apr 2015 20:45:59 +0000 (22:45 +0200)
The public interfaces to osgText and osg::GLExtensions changed.

simgear/canvas/elements/CanvasText.cxx
simgear/scene/material/Technique.cxx
simgear/scene/sky/CloudShaderGeometry.cxx
simgear/scene/tgdb/ShaderGeometry.cxx
simgear/scene/util/SGSceneFeatures.cxx

index 4b7600fc1dc4136ed08b706db5c756971ead4005..ead600bd854b1a70457898864d8b29003d252420 100644 (file)
@@ -159,8 +159,12 @@ namespace canvas
 
     if( empty() )
       return pos;
-
+#if OSG_VERSION_LESS_THAN(3,3,4)
     GlyphQuads::Coords2 const& coords = _quads->_coords;
+#else
+    GlyphQuads::Coords2 refCoords = _quads->_coords;
+    GlyphQuads::Coords2::element_type &coords = *refCoords.get();
+#endif
     size_t global_i = _begin + i;
 
     if( global_i == _begin )
@@ -194,7 +198,12 @@ namespace canvas
       return cursorPos(0);
 
     GlyphQuads::Glyphs const& glyphs = _quads->_glyphs;
+    #if OSG_VERSION_LESS_THAN(3,3,4)
     GlyphQuads::Coords2 const& coords = _quads->_coords;
+#else
+    GlyphQuads::Coords2 refCoords = _quads->_coords;
+    GlyphQuads::Coords2::element_type &coords = *refCoords.get();
+#endif
 
     float const HIT_FRACTION = 0.6;
     float const character_width = _text->getCharacterHeight()
@@ -627,7 +636,13 @@ namespace canvas
 
     const GlyphQuads& quads = _textureGlyphQuadMap.begin()->second;
     const GlyphQuads::Glyphs& glyphs = quads._glyphs;
-    const GlyphQuads::Coords2& coords = quads._coords;
+#if OSG_VERSION_LESS_THAN(3,3,4)
+    GlyphQuads::Coords2 const& coords = quads._coords;
+#else
+    GlyphQuads::Coords2 refCoords = quads._coords;
+    GlyphQuads::Coords2::element_type &coords = *refCoords.get();
+#endif
+
     const GlyphQuads::LineNumbers& line_numbers = quads._lineNumbers;
 
     float wr = _characterHeight / getCharacterAspectRatio();
index 93a17b87fc9be3d57675a000ae6c18e7b39f8f19..96856cd13d58e0642ca79ab44558c3b3a51c7307 100644 (file)
@@ -326,9 +326,15 @@ public:
             = GL2Extensions::Get(static_cast<unsigned>(contextId), true);
         if (!extensions)
             return;
+#if OSG_VERSION_LESS_THAN(3,3,3)
         if (!extensions->isGlslSupported())
             return;
         value = extensions->getLanguageVersion();
+#else
+        if (!extensions->isGlslSupported)
+            return;
+        value = extensions->glslLanguageVersion;
+#endif
     }
 };
 
@@ -357,7 +363,11 @@ public:
            = GL2Extensions::Get(static_cast<unsigned>(contextId), true);
        if (!extensions)
            return;
+#if OSG_VERSION_LESS_THAN(3,3,3)
        value = extensions->isGlslSupported();
+#else
+       value = extensions->isGlslSupported;
+#endif
    }
 };
 
index 8b4ea16e4e8b140f5e92e63cc5aa4f724988da9a..7800839c414452f0e3f5be5339fc1de3de060ffc 100644 (file)
@@ -127,8 +127,12 @@ void CloudShaderGeometry::drawImplementation(RenderInfo& renderInfo) const
         
         sortData.frameSorted = frameNumber;
     }
-    
+
+#if OSG_VERSION_LESS_THAN(3,3,3)
     const Extensions* extensions = getExtensions(state.getContextID(),true);
+#else
+    const GLExtensions* extensions = GLExtensions::Get(state.getContextID(), true);
+#endif
     GLfloat ua1[3] = { (GLfloat) alpha_factor,
                        (GLfloat) shade_factor,
                        (GLfloat) cloud_height };
index 5d286c317d50028fe16529d02b3055bcb120c6f8..ac9ec93718466d7d6e5b82d41030b5c8ac2c4876 100644 (file)
@@ -47,7 +47,11 @@ void ShaderGeometry::addObject(const Vec3& position, float scale,
 void ShaderGeometry::drawImplementation(osg::RenderInfo& renderInfo) const
 {
     State& state = *renderInfo.getState();
+#if OSG_VERSION_LESS_THAN(3,3,3)
     const Extensions* extensions = getExtensions(state.getContextID(), true);
+#else
+    const GLExtensions* extensions = GLExtensions::Get(state.getContextID(), true);
+#endif
     Vec4Array::const_iterator citer = _posScaleArray->begin();
     Vec4Array::const_iterator cend = _posScaleArray->end();
     FloatArray::const_iterator viter = _vertexAttribArray->begin();
index 4367e453926ddbde2f390af6662c1300ebde3644..79f182f96a270c4b25a0187a30323e2fa0302a3f 100644 (file)
 
 #include "SGSceneFeatures.hxx"
 
+#include <osg/Version>
 #include <osg/FragmentProgram>
 #include <osg/VertexProgram>
 #include <osg/Point>
 #include <osg/PointSprite>
 #include <osg/Texture>
+#include <osg/GLExtensions>
 
 #include <OpenThreads/Mutex>
 #include <OpenThreads/ScopedLock>
@@ -84,12 +86,18 @@ SGSceneFeatures::setTextureCompression(osg::Texture* texture) const
 bool
 SGSceneFeatures::getHavePointSprites(unsigned contextId) const
 {
+#if OSG_VERSION_LESS_THAN(3,3,3)
   return osg::PointSprite::isPointSpriteSupported(contextId);
+#else
+  const osg::GLExtensions* ex = osg::GLExtensions::Get(contextId, true);
+  return ex && ex->isPointSpriteSupported;
+#endif
 }
 
 bool
 SGSceneFeatures::getHaveFragmentPrograms(unsigned contextId) const
 {
+#if OSG_VERSION_LESS_THAN(3,3,3)
   const osg::FragmentProgram::Extensions* fpe;
   fpe = osg::FragmentProgram::getExtensions(contextId, true);
   if (!fpe)
@@ -98,11 +106,16 @@ SGSceneFeatures::getHaveFragmentPrograms(unsigned contextId) const
     return false;
   
   return true;
+#else
+  const osg::GLExtensions* ex = osg::GLExtensions::Get(contextId, true);
+  return ex && ex->isFragmentProgramSupported;
+#endif
 }
 
 bool
 SGSceneFeatures::getHaveVertexPrograms(unsigned contextId) const
 {
+#if OSG_VERSION_LESS_THAN(3,3,3)
   const osg::VertexProgram::Extensions* vpe;
   vpe = osg::VertexProgram::getExtensions(contextId, true);
   if (!vpe)
@@ -111,6 +124,10 @@ SGSceneFeatures::getHaveVertexPrograms(unsigned contextId) const
     return false;
   
   return true;
+#else
+  const osg::GLExtensions* ex = osg::GLExtensions::Get(contextId, true);
+  return ex && ex->isVertexProgramSupported;
+#endif
 }
 
 bool
@@ -124,6 +141,7 @@ SGSceneFeatures::getHaveShaderPrograms(unsigned contextId) const
 bool
 SGSceneFeatures::getHavePointParameters(unsigned contextId) const
 {
+#if OSG_VERSION_LESS_THAN(3,3,3)
   const osg::Point::Extensions* pe;
   pe = osg::Point::getExtensions(contextId, true);
   if (!pe)
@@ -131,5 +149,9 @@ SGSceneFeatures::getHavePointParameters(unsigned contextId) const
   if (!pe->isPointParametersSupported())
     return false;
   return true;
+#else
+  const osg::GLExtensions* ex = osg::GLExtensions::Get(contextId, true);
+  return ex && ex->isPointParametersSupported;
+#endif
 }