reavertm    15/07/20 19:24:58

  Added:                openscenegraph-3.2.1-gdal-2.0.patch
  Log:
  Addd patch for gdal-2.0 compilation, fixes bug 554310.
  
  (Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key 
B1E955DB)

Revision  Changes    Path
1.1                  
dev-games/openscenegraph/files/openscenegraph-3.2.1-gdal-2.0.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-games/openscenegraph/files/openscenegraph-3.2.1-gdal-2.0.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-games/openscenegraph/files/openscenegraph-3.2.1-gdal-2.0.patch?rev=1.1&content-type=text/plain

Index: openscenegraph-3.2.1-gdal-2.0.patch
===================================================================
--- OpenSceneGraph-3.2.1/src/osgPlugins/ogr/ReaderWriterOGR.cpp
+++ OpenSceneGraph-3.2.1/src/osgPlugins/ogr/ReaderWriterOGR.cpp
@@ -134,11 +134,21 @@
 
     virtual ReadResult readFile(const std::string& fileName, const 
osgDB::ReaderWriter::Options* options) const
     {
+#if GDAL_VERSION_MAJOR < 2
         if (OGRSFDriverRegistrar::GetRegistrar()->GetDriverCount() == 0)
             OGRRegisterAll();
+#else
+        if (GDALGetDriverCount() == 0)
+            GDALAllRegister();
+#endif
 
         // Try to open data source
+#if GDAL_VERSION_MAJOR < 2
         OGRDataSource* file = OGRSFDriverRegistrar::Open(fileName.c_str());
+#else
+        GDALDataset       *file;
+        file = (GDALDataset*) GDALOpenEx( fileName.c_str(), GDAL_OF_VECTOR, 
NULL, NULL, NULL );
+#endif
         if (!file)
             return 0;
 
@@ -156,6 +166,7 @@
 
         osg::Group* group = new osg::Group;
 
+#if GDAL_VERSION_MAJOR < 2
         for (int i = 0; i < file->GetLayerCount(); i++)
         {
             osg::Group* node = readLayer(file->GetLayer(i), file->GetName(), 
useRandomColorByFeature, addGroupPerFeature);
@@ -163,6 +174,16 @@
                 group->addChild( node );
         }
         OGRDataSource::DestroyDataSource( file );
+#else
+        for (int i = 0; i < file->GetLayerCount(); i++)
+        {
+            OGRLayer* layer = (OGRLayer *)GDALDatasetGetLayer(file, i); 
+            osg::Group* node = readLayer(layer, layer->GetName(), 
useRandomColorByFeature, addGroupPerFeature);
+            if (node)
+                group->addChild( node );
+        }
+        GDALClose( file );
+#endif
         return group;
     }
 




Reply via email to