The following commit has been merged in the master branch:
commit fa3747cda6b533fc030d30fabbf7d8af77dad3ab
Author: Bas Couwenberg <sebas...@xs4all.nl>
Date:   Fri Sep 13 15:17:41 2013 +0200

    Add patch to support adapt MPGeometry to support OpenSceneGraph 3.1.8.

diff --git a/debian/changelog b/debian/changelog
index b2bbe98..0577052 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+osgearth (2.4.0+dfsg-4) UNRELEASED; urgency=low
+
+  * Add patch to support adapt MPGeometry to support OpenSceneGraph 3.1.8.
+
+ -- Bas Couwenberg <sebas...@xs4all.nl>  Fri, 13 Sep 2013 15:14:27 +0200
+
 osgearth (2.4.0+dfsg-3) unstable; urgency=low
 
   * Missing dependency libqt4-opengl-dev
diff --git a/debian/control b/debian/control
index 579c2ad..8f45244 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: osgearth
 Section: devel
 Priority: extra
 Maintainer: Debian GIS Project <pkg-grass-devel@lists.alioth.debian.org>
-Uploaders: Pirmin Kalberer <pi_...@sourcepole.ch>
+Uploaders: Pirmin Kalberer <pi_...@sourcepole.ch>, Bas Couwenberg 
<sebas...@xs4all.nl>
 Build-Depends: debhelper (>= 7), quilt, cmake (>= 2.6.2),
  libopenscenegraph-dev (>= 2.8.0), openscenegraph (>= 2.8.0),
  libgdal-dev, libgeos-dev, libexpat1-dev (>= 2.0.1),
diff --git a/debian/patches/MPGeometry-OpenSceneGraph-3.1.8.patch 
b/debian/patches/MPGeometry-OpenSceneGraph-3.1.8.patch
new file mode 100644
index 0000000..95b2733
--- /dev/null
+++ b/debian/patches/MPGeometry-OpenSceneGraph-3.1.8.patch
@@ -0,0 +1,130 @@
+Description: Updates to MPGeometry to support changes to OpenSceneGraph 
Geometry class in OSG 3.1.8.
+Origin: 
https://github.com/gwaldron/osgearth/commit/e67deedb2d5275d490dd393ec736a933c2ac48f0
+Author: jasonbeverage <jasonbever...@gmail.com>
+Last-Update: 2013-07-01
+--- a/src/osgEarthDrivers/engine_mp/MPGeometry.cpp
++++ b/src/osgEarthDrivers/engine_mp/MPGeometry.cpp
+@@ -18,6 +18,9 @@
+ */
+ #include "MPGeometry"
+ 
++#include <osg/Version>
++
++using namespace osg;
+ using namespace osgEarth_engine_mp;
+ using namespace osgEarth;
+ 
+@@ -212,18 +215,36 @@ MPGeometry::drawImplementation(osg::Rend
+ 
+     arrayDispatchers.reset();
+     
arrayDispatchers.setUseVertexAttribAlias(state.getUseVertexAttributeAliasing());
++
++
++    //Remove 
++#if OSG_VERSION_LESS_THAN(3,1,8)
+     arrayDispatchers.setUseGLBeginEndAdapter(false);
++#endif
++
+ 
++#if OSG_MIN_VERSION_REQUIRED(3,1,8)
++    arrayDispatchers.activateNormalArray(_normalArray.get());
++    arrayDispatchers.activateColorArray(_colorArray.get());
++    arrayDispatchers.activateSecondaryColorArray(_secondaryColorArray.get());
++    arrayDispatchers.activateFogCoordArray(_fogCoordArray.get());
++#else
+     arrayDispatchers.activateNormalArray(_normalData.binding, 
_normalData.array.get(), _normalData.indices.get());
+     arrayDispatchers.activateColorArray(_colorData.binding, 
_colorData.array.get(), _colorData.indices.get());
+     arrayDispatchers.activateSecondaryColorArray(_secondaryColorData.binding, 
_secondaryColorData.array.get(), _secondaryColorData.indices.get());
+     arrayDispatchers.activateFogCoordArray(_fogCoordData.binding, 
_fogCoordData.array.get(), _fogCoordData.indices.get());
++#endif
++    
+ 
+     if (handleVertexAttributes)
+     {
+         for(unsigned int unit=0;unit<_vertexAttribList.size();++unit)
+         {
++#if OSG_MIN_VERSION_REQUIRED(3,1,8)
++            arrayDispatchers.activateVertexAttribArray(unit, 
_vertexAttribList[unit].get());
++#else
+             
arrayDispatchers.activateVertexAttribArray(_vertexAttribList[unit].binding, 
unit, _vertexAttribList[unit].array.get(), 
_vertexAttribList[unit].indices.get());
++#endif             
+         }
+     }
+ 
+@@ -231,7 +252,24 @@ MPGeometry::drawImplementation(osg::Rend
+     arrayDispatchers.dispatch(BIND_OVERALL,0);
+     state.lazyDisablingOfVertexAttributes();
+ 
++
+     // set up arrays
++#if OSG_MIN_VERSION_REQUIRED( 3, 1, 8 )
++    if( _vertexArray.valid() )
++        state.setVertexPointer(_vertexArray.get());
++
++    if (_normalArray.valid() && 
_normalArray->getBinding()==osg::Array::BIND_PER_VERTEX)
++        state.setNormalPointer(_normalArray.get());
++
++    if (_colorArray.valid() && 
_colorArray->getBinding()==osg::Array::BIND_PER_VERTEX)
++        state.setColorPointer(_colorArray.get());
++
++    if (_secondaryColorArray.valid() && 
_secondaryColorArray->getBinding()==osg::Array::BIND_PER_VERTEX)
++        state.setSecondaryColorPointer(_secondaryColorArray.get());
++
++    if (_fogCoordArray.valid() && 
_fogCoordArray->getBinding()==osg::Array::BIND_PER_VERTEX)
++        state.setFogCoordPointer(_fogCoordArray.get());
++#else
+     if( _vertexData.array.valid() )
+         state.setVertexPointer(_vertexData.array.get());
+ 
+@@ -246,23 +284,50 @@ MPGeometry::drawImplementation(osg::Rend
+ 
+     if (_fogCoordData.binding==BIND_PER_VERTEX && _fogCoordData.array.valid())
+         state.setFogCoordPointer(_fogCoordData.array.get());
+-
++#endif    
++        
+     for(unsigned int unit=0;unit<_texCoordList.size();++unit)
+     {
++#if OSG_MIN_VERSION_REQUIRED( 3, 1, 8)
++        const Array* array = _texCoordList[unit].get();
++        if (array)
++        {
++            state.setTexCoordPointer(unit,array);
++        }
++#else
+         const osg::Array* array = _texCoordList[unit].array.get();
+         if (array) state.setTexCoordPointer(unit,array);
++#endif        
+     }
+ 
+     if( handleVertexAttributes )
+     {
+         for(unsigned int index = 0; index < _vertexAttribList.size(); ++index 
)
+         {
++#if OSG_MIN_VERSION_REQUIRED( 3, 1, 8)
++            const Array* array = _vertexAttribList[index].get();
++            if (array && array->getBinding()==osg::Array::BIND_PER_VERTEX)
++            {
++                if (array->getPreserveDataType())
++                {
++                    GLenum dataType = array->getDataType();
++                    if (dataType==GL_FLOAT) state.setVertexAttribPointer( 
index, array );
++                    else if (dataType==GL_DOUBLE) 
state.setVertexAttribLPointer( index, array );
++                    else state.setVertexAttribIPointer( index, array );
++                }
++                else
++                {
++                    state.setVertexAttribPointer( index, array );
++                }
++            }
++#else            
+             const osg::Array* array = _vertexAttribList[index].array.get();
+             const AttributeBinding ab = _vertexAttribList[index].binding;
+             if( ab == BIND_PER_VERTEX && array )
+             {
+                 state.setVertexAttribPointer( index, array, 
_vertexAttribList[index].normalize );
+             }
++#endif
+         }
+     }
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 0a55278..8ab01fc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 soversion.patch
+MPGeometry-OpenSceneGraph-3.1.8.patch

-- 
osgEarth terrain rendering toolkit

_______________________________________________
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

Reply via email to