Replaced deprecated Geometry::set*Binding()
Replaced deprecated osg::Geometry::set*Binding() usage
Replaced deprecated osg::Geometry::set*Binding() usage.
Replaced deprecated osg::Geometry::set*Binding() usage
Replaced deprecated osg::Geometry::set*Binding() usage.
Removed deprecated usage of osg::Geometry::get*Binding()
Added Geometry::containsDeprecatedData() / fixDeprecatedData()
Replaced deprecatated osg::Geometry::get*Binding() calls.
From Aurelien Albert, added passing on of the gl array normalize to OpenGL when uses vertex attribute aliasing.
From Lionel Lagarde, "Support for paging and shared PBO"

"The attached file contains:
- a per-context read counter in GLBufferObject::BufferEntry
- a global client counter in BufferData
- the glue between Texture* and Image client counter
"
From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes"
From David Callu, serializer support for new Vec* and Vec*Array classes
From David Callu, added support for glVertexAttribLPointer and glVertexAttribIPointer, utilized via osg::Array::setPreserveDataType(true);
From David Callu, "in osgViewer::WoWVxDisplay::WoWVxDisplay(unsigned int type=20, unsigned int screenNum=0)
screenNum is unused.

fix attached.
"
From David Callu, warning fixes and removal of spaces at end of lines.
Added handling of an odd number rows in the capsule rendering and primitive calculation.
From Aurelien Albert, Added support for glPrimitiveRestartIndex.

"The idea of this new OpenGL feature is :

- set RestartIndex = "n"
- draw elements strip
  -> when the index is "n", the strip is "stopped" and restarted

It's very usefull for drawing tiles with a single strip and a "restart" at the end of each row.

The idea a an OSG StateAttribute is :

Usually we use to build geometry from code, because software modelers rarely support it (and 3d file formats doesn't support it) :

-RootNode <= "PrimitiveRestartIndex=0"     // So now, we know that our restart index is 0 for all drawables under this node
|
- Drawable 1 : triangles => as usual
|
- Drawable 2 : triangles strip => as usual
|
- Drawable 3 : triangles strip + "GL_PRIMITIVE_RESTART" mode = ON => use the restart index
|
- Drawable 4 : triangles strip + "GL_PRIMITIVE_RESTART" mode = ON => use the restart index
|
- Drawable 5 : triangles strip => as usual


With a StateAttribute, it's easy for the developper to say "0 will be my restart index for all this object" and then activate the mode only on some nodes.

The main problem is if you set and restart index value which is not included in the vertex array (for exemple set restart index = 100 but you have only 50 vertex). There is no problem with OpenGL, but some OSG algorithms will try to access the vertex[100] and will segfault.

To solve this, I think there is two ways :

1/ add restart index in osg::PrimitiveSet and use this value in all algorithms. It's a lot of work, maybe dangerous, and it concern only a few situations : developpers who use this extension should be aware of advanced OpenGL (and OSG) data management

2/ use a StateAttribute, and choose a "correct" restart index. In my applications, I always use "0" as a restart index and duplicate the first vertex (vertex[0] = vertex[1]). So there is no difference for OpenGL and all OSG algorithms works properly.
"
Fixed handling of DISPLAY=127.0.0.1:2 usage.
From Laurens Voerman, "the current version of BufferObject causes a huge amount of warnings in Visual Studio 2012 like:

OpenSceneGraph/include\osg/BufferObject(701): warning C4138: '*/' found outside of comment (E:\osg\osgSvn\OpenSceneGraph\src\osg\Array.cpp)

adding a space before /* fixes the problem
        void removeClient(osg::Object * /*client*/) { --_numClients; }
"