diff options
author | Lars Wendler <polynomial-c@gentoo.org> | 2016-01-08 16:04:17 +0100 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2016-01-11 14:22:31 +0100 |
commit | 20832fb6ed033ff27b5b75391b8056e6c9506867 (patch) | |
tree | 8d07a40ab2c1b53592ff39ca8884edb4c7fcfcec /dev-games/simgear | |
parent | kde-base/kdelibs: Added subslot dependency for media-libs/giflib. (diff) | |
download | gentoo-20832fb6ed033ff27b5b75391b8056e6c9506867.tar.gz gentoo-20832fb6ed033ff27b5b75391b8056e6c9506867.tar.bz2 gentoo-20832fb6ed033ff27b5b75391b8056e6c9506867.zip |
dev-games/simgear: Fixed compilation with >=openscenegraph-3.4.0
Package-Manager: portage-2.2.26
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Diffstat (limited to 'dev-games/simgear')
-rw-r--r-- | dev-games/simgear/files/simgear-3.4.0-osg340_fixes.patch | 203 | ||||
-rw-r--r-- | dev-games/simgear/simgear-3.4.0.ebuild | 4 |
2 files changed, 206 insertions, 1 deletions
diff --git a/dev-games/simgear/files/simgear-3.4.0-osg340_fixes.patch b/dev-games/simgear/files/simgear-3.4.0-osg340_fixes.patch new file mode 100644 index 000000000000..97ca64a21fef --- /dev/null +++ b/dev-games/simgear/files/simgear-3.4.0-osg340_fixes.patch @@ -0,0 +1,203 @@ +commit 51ff30f386ac098f477ff16c71756bcd089dcfae +Author: Tim Moore <timoore33@gmail.com> +Date: Sun Apr 19 17:11:49 2015 +0200 + + changes for OSG 3.3.4 and later + + The public interfaces to osgText and osg::GLExtensions changed. + +diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx +index 4b7600f..ead600b 100644 +--- a/simgear/canvas/elements/CanvasText.cxx ++++ b/simgear/canvas/elements/CanvasText.cxx +@@ -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(); +diff --git a/simgear/scene/material/Technique.cxx b/simgear/scene/material/Technique.cxx +index 93a17b8..96856cd 100644 +--- a/simgear/scene/material/Technique.cxx ++++ b/simgear/scene/material/Technique.cxx +@@ -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 + } + }; + +diff --git a/simgear/scene/sky/CloudShaderGeometry.cxx b/simgear/scene/sky/CloudShaderGeometry.cxx +index 8b4ea16..7800839 100644 +--- a/simgear/scene/sky/CloudShaderGeometry.cxx ++++ b/simgear/scene/sky/CloudShaderGeometry.cxx +@@ -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 }; +diff --git a/simgear/scene/tgdb/ShaderGeometry.cxx b/simgear/scene/tgdb/ShaderGeometry.cxx +index 5d286c3..ac9ec93 100644 +--- a/simgear/scene/tgdb/ShaderGeometry.cxx ++++ b/simgear/scene/tgdb/ShaderGeometry.cxx +@@ -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(); +diff --git a/simgear/scene/util/SGSceneFeatures.cxx b/simgear/scene/util/SGSceneFeatures.cxx +index 4367e45..79f182f 100644 +--- a/simgear/scene/util/SGSceneFeatures.cxx ++++ b/simgear/scene/util/SGSceneFeatures.cxx +@@ -25,11 +25,13 @@ + + #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 + } + diff --git a/dev-games/simgear/simgear-3.4.0.ebuild b/dev-games/simgear/simgear-3.4.0.ebuild index 579b7279af05..49fdf6ffbdd8 100644 --- a/dev-games/simgear/simgear-3.4.0.ebuild +++ b/dev-games/simgear/simgear-3.4.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ @@ -31,6 +31,8 @@ RDEPEND="${COMMON_DEPEND} DOCS=(AUTHORS ChangeLog NEWS README Thanks) +PATCHES=( "${FILESDIR}/${P}-osg340_fixes.patch" ) + src_configure() { local mycmakeargs=( -ENABLE_PKGUTIL=OFF |