Index: OpenSceneGraph/trunk/examples/osgdepthpartition/osgdepthpartition.cpp
===================================================================
--- OpenSceneGraph/trunk/examples/osgdepthpartition/osgdepthpartition.cpp (revision 10021)
+++ OpenSceneGraph/trunk/examples/osgdepthpartition/osgdepthpartition.cpp (revision 12503)
@@ -25,8 +25,8 @@
 
 #include <osgGA/TrackballManipulator>
+#include <osgGA/StateSetManipulator>
 
 #include <osgViewer/Viewer>
-
-#include "DepthPartitionNode.h"
+#include <osgViewer/ViewerEventHandlers>
 
 const double r_earth = 6378.137;
@@ -133,4 +133,10 @@
     osgViewer::Viewer viewer;
 
+    // add the state manipulator
+    viewer.addEventHandler( new osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()) );
+
+    // add stats
+    viewer.addEventHandler( new osgViewer::StatsHandler() );
+
     bool needToSetHomePosition = false;
 
@@ -144,12 +150,6 @@
         needToSetHomePosition = true;
     }
-    
-    // Create a DepthPartitionNode to manage partitioning of the scene
-    osg::ref_ptr<DepthPartitionNode> dpn = new DepthPartitionNode;
-    dpn->addChild(scene.get());
-    dpn->setActive(true); // Control whether the node analyzes the scene
-        
     // pass the loaded scene graph to the viewer.
-    viewer.setSceneData(dpn.get());
+    viewer.setSceneData(scene.get());
 
     viewer.setCameraManipulator(new osgGA::TrackballManipulator);
@@ -157,9 +157,24 @@
     if (needToSetHomePosition)
     {
-      viewer.getCameraManipulator()->setHomePosition(osg::Vec3d(0.0,-5.0*r_earth,0.0),osg::Vec3d(0.0,0.0,0.0),osg::Vec3d(0.0,0.0,1.0));
+        viewer.getCameraManipulator()->setHomePosition(osg::Vec3d(0.0,-5.0*r_earth,0.0),osg::Vec3d(0.0,0.0,0.0),osg::Vec3d(0.0,0.0,1.0));
     }
     
-    // depth partion node is only supports single window/single threaded at present.
-    viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded);
+    double zNear=1.0, zMid=10.0, zFar=1000.0;
+    if (arguments.read("--depth-partition",zNear, zMid, zFar))
+    {
+        // set up depth partitioning
+        osg::ref_ptr<osgViewer::DepthPartitionSettings> dps = new osgViewer::DepthPartitionSettings;
+        dps->_mode = osgViewer::DepthPartitionSettings::FIXED_RANGE;
+        dps->_zNear = zNear;
+        dps->_zMid = zMid;
+        dps->_zFar = zFar;
+        viewer.setUpDepthPartition(dps.get());
+    }
+    else
+    {
+        // set up depth partitioning with default settings
+        viewer.setUpDepthPartition();
+    }
+    
 
     return viewer.run();
