[osg-users] OpenSceneGraph-3.3.8 dev release tagged

Robert Osfield robert.osfield at gmail.com
Fri Jun 12 05:33:22 PDT 2015

Hi All,

I have just tagged the OpenSceneGraph-3.3.8 developer release.  Focus for
this dev release has been a whole series of bug and build fixes.

*source package :* OpenSceneGraph-3.3.8.zip

*svn tag:* svn co

Feature wise I'm pretty happy with where the dev series is at, so am now
focused on readying OSG svn/trunk for the OSG-3.4 stable release, this dev
release is another step in this process.  Please test on as many platform
combinations as you can and against your own applications.

If there are problems with this dev release just post them here so we can
can discuss how best to resolve them.

If everything looks like a stable then I'll create the OSG-3.4 branch next
week and start the OSG-3.4 release candidate series.

Thanks to all who have contributed,


-- ChangeLog since 3.3.7

2015-06-12 08:04  robert

* src/osgText/TextBase.cpp: From Farshid Lashkari, "I've modified

  some setter methods of TextBase to avoid unnecessary calls to

  computeGlyphRepresentation() if the value has not changed."

2015-06-11 08:44  robert

* include/osg/GLDefines: Reverted the typdef GLfloat GLdouble for

  Andoid as this was causing conflicts.

2015-06-10 18:22  robert

* AUTHORS.txt, ChangeLog: Updated ChangeLog and AUTHORS file for

  3.3.8 dev release

2015-06-10 16:48  robert

* CMakeModules/FindOpenEXR.cmake: From Laurens Voerman, "attached

  is a zip with the files:


  I introduced a bug in the previous submission pointed out by

  Dmitry Marakasov:

  looking for IlmIlf instead of IlmImf (as the previous version did

  - but using variable OPENEXR_IlmIlf_LIBRARY)

  For some reason google decided his message was spam, so I just

  noticed it, and I reply to confirm his remarks and attach a full



2015-06-10 16:47  robert

* src/osg/GLExtensions.cpp, src/osg/Texture.cpp: From Colin

  McDonald, "An earlier fix in OSG 3.2 has been inadvertently lost

  in 3.3.x. The glGenerateMipMap function is part of the

  GL_EXT_framebuffer_object extension. Just checking if the

  function is present before using it for texture mipmaps is not

  sufficient, as on remote X-windows displays the client side

  capability may be different from the display server. This can

  lead to mipmapped textures failing to render. I've restored a fbo

  extension check. I've also tided up the GL version checking a


2015-06-10 10:00  robert

* src/osgGA/NodeTrackerManipulator.cpp: From Philippe Renon, "Fixed

  potential divide by zero in NodeTrackerManipulator : The divide

  by zero happens when throwing a NodeTrackerManipulator.

  The infinite result trickles down and later causes NaN in


  The fix was to use getThrowScale() as done everywhere else."

2015-06-09 16:49  robert

* CMakeLists.txt, include/osgDB/Serializer,

  src/osgWrappers/serializers/osg/Camera.cpp: Added supoort for


  and InheritanceMask properties.

2015-06-09 12:51  robert

* include/osg/GLDefines: Added namespace around typedef to avoid

  conflict issues

2015-06-09 10:49  robert

* include/osg/Node, include/osg/NodeVisitor, include/osg/Object,

  include/osg/StateAttribute, include/osg/Uniform,

  src/osg/Callback.cpp: Introduce osg::Object::asNode(),

  asNodeVisitor(), asStateAttribute() and asUniform() to replace

  dynamic_cast<> usage in Callback.cpp.

2015-06-09 09:44  robert

* examples/osghud/osghud.cpp: Added output of HUD scene graph to

  hud.osgt and hud.osgb for testing purposes.

2015-06-08 11:33  robert

* AUTHORS.txt, ChangeLog: Updated AUTHORS and ChangeLog for dev


2015-06-08 11:18  robert

* include/osgDB/Options, src/osgDB/DatabasePager.cpp,

  src/osgDB/Options.cpp: From Mike Connell, "Give ReadFileCallback

  access to parent location : These small changes to the database

  pager allow user code in the ReadFileCallback to safely determine

  where the file being loaded is destined to be inserted into the



2015-06-08 10:20  robert

* src/osgUtil/SceneView.cpp: Addressed race condition where

  SceneView::setLightingMode() was setting a shread Master Camera's


2015-06-07 11:13  robert

* src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp:

  Fixed setReferenceTime() bug where a * eather than the correct /

  was being used. Bug and fix suggested Benjamin Richter.

2015-06-04 09:35  robert

* AUTHORS.txt, ChangeLog, applications/osgversion/Contributors.cpp:

  Updated AUTHORS for dev release

2015-06-04 09:13  robert

* src/osg/Transform.cpp: From Jannik Heller,

  Transform::computeBound() optimization.

2015-06-04 09:05  robert

* include/osgViewer/ViewerEventHandlers: From Jannik Heller,

  Removed unused StatsHandler::_keyEventToggleVsync

2015-06-04 09:00  robert

* include/osgAnimation/UpdateUniform: From Jannik Heller, "In the

  attachment you will find a build fix for the latest trunk.

  osgAnimation failed to compile when using


2015-06-03 10:28  robert

* include/osgAnimation/UpdateUniform: Removed export that was

  breaking windows build

2015-06-03 09:14  robert

* include/osgAnimation/UpdateUniform,






  From KOS, "New classes for osgAnimation presented:

  UpdateFloatUniform, UpdateVec3fUniform and UpdateMatrixfUniform

  (based on UpdateUniform template)

  Classes operate like osgAnimation::UpdateMaterial for Material's

  diffuse component, but change Uniform."

2015-06-03 09:07  robert

* examples/osggeometryshaders/osggeometryshaders.cpp,




  examples/osgtransformfeedback/osgtransformfeedback.cpp: From KOS,

  build fix for osg::Uniform::Callback to osg::UniformCallback


2015-06-03 09:06  robert

* include/osg/Uniform: Added doxygen comment for typedef

2015-06-03 08:38  robert

* src/osgWrappers/serializers/osg/Uniform.cpp: Build fix for when

  Uniform::Callback isn't defined

2015-06-02 10:25  robert

* src/osgWrappers/serializers/osg/UniformCallback.cpp: From

  Konstantin Matveyev, serializer support for UniformCallback

2015-06-02 09:33  robert

* include/osg/Callback, include/osg/CopyOp, include/osg/Uniform,

  src/osg/Callback.cpp, src/osg/CopyOp.cpp, src/osg/StateSet.cpp,



  src/osgWrappers/serializers/osg/LibraryWrapper.cpp: From

  Konstantin Matveyev, "I've changed osg::Uniform::Callback to


  osg::UniformCallback inherits osg::Callback now.

  I don't really now if this class should be inside


  because StateAttributeCallback is not presented there, but i've

  included it in the patch.

  Please see archive in the attachment.


  DEEP_COPY_UNIFORMS works for me.


  Note from Robert Osfield, added typedef UniformCallback Callback

  for backwards compatibility.

2015-06-02 09:18  robert

* examples/osguniformbuffer/osguniformbuffer.cpp: Changed name of

  UniformCallback to UniformBufferCallback to avoid conflict with

  changes to come to the osg::Uniform::Callback ->


2015-06-01 13:40  robert

* include/OpenThreads/Thread, include/osg/BoundsChecking,

  include/osg/Geometry, include/osg/Image, include/osg/ImageUtils,

  include/osg/Object, include/osg/TransferFunction,

  include/osg/observer_ptr, include/osg/ref_ptr,

  include/osgDB/ClassInterface, include/osgDB/ExternalFileWriter,

  include/osgDB/ReaderWriter, include/osgGA/GUIActionAdapter,




  include/osgTerrain/TerrainTile, include/osgText/Glyph,

  include/osgUI/Widget, include/osgUtil/SceneGraphBuilder,




  src/OpenThreads/win32/Win32Thread.cpp, src/osg/ImageUtils.cpp,

  src/osg/Sequence.cpp, src/osg/ShadowVolumeOccluder.cpp,

  src/osg/TexGen.cpp, src/osg/Texture1D.cpp, src/osg/Texture2D.cpp,

  src/osg/Texture2DArray.cpp, src/osg/Texture3D.cpp,

  src/osg/TextureCubeMap.cpp, src/osg/TextureRectangle.cpp,

  src/osg/Uniform.cpp, src/osgAnimation/RigGeometry.cpp,

  src/osgDB/DynamicLibrary.cpp, src/osgDB/FileNameUtils.cpp,

  src/osgDB/FileUtils.cpp, src/osgDB/Registry.cpp,

  src/osgDB/XmlParser.cpp, src/osgManipulator/Dragger.cpp,











































  src/osgShadow/MinimalShadowMap.cpp, src/osgShadow/ShadowMap.cpp,



  src/osgSim/InsertImpostorsVisitor.cpp, src/osgSim/Sector.cpp,

  src/osgText/GlyphGeometry.cpp, src/osgText/TextBase.cpp,

  src/osgUtil/DelaunayTriangulator.cpp, src/osgUtil/Optimizer.cpp,

  src/osgUtil/RenderStage.cpp, src/osgUtil/Simplifier.cpp,



  src/osgViewer/GraphicsWindowX11.cpp, src/osgViewer/Viewer.cpp,

  src/osgWidget/Box.cpp, src/osgWidget/StyleManager.cpp,

  src/osgWidget/Window.cpp: From Albert Luaces, typo fixes.

2015-06-01 13:11  robert

* CMakeModules/FindSDL2.cmake,









  examples/osgvolume/osgvolume.cpp, include/osg/GraphicsContext,

  include/osg/StateAttribute, include/osg/Texture2DArray,

  include/osg/Texture3D, include/osg/TextureCubeMap,

  include/osg/Timer, include/osg/TransferFunction,

  include/osg/Uniform, include/osgAnimation/RigTransformSoftware,

  include/osgDB/DatabasePager, include/osgDB/ExternalFileWriter,

  include/osgDB/Registry, include/osgSim/ScalarBar,

  include/osgViewer/View, src/osg/BufferObject.cpp,

  src/osg/GraphicsContext.cpp, src/osg/Notify.cpp,

  src/osg/OperationThread.cpp, src/osg/Texture.cpp,

  src/osg/dxtctool.h, src/osgDB/FileUtils.cpp,

  src/osgDB/ImagePager.cpp, src/osgGA/StateSetManipulator.cpp,


  src/osgPlugins/ac/ac3d.cpp, src/osgPlugins/cfg/RenderSurface.h,

  src/osgPlugins/zip/unzip.cpp, src/osgPresentation/Timeout.cpp,

  src/osgUtil/CullVisitor.cpp, src/osgUtil/IntersectVisitor.cpp,

  src/osgUtil/RenderBin.cpp, src/osgUtil/SceneView.cpp: From Jannik

  Heller, typo fixes

2015-06-01 12:14  robert

* src/osgParticle/ParticleProcessor.cpp: From Jannik Heller, "This

  patch adds a missing initialization of

  osgParticle::ParticleProcessor::_frameNumber in the copy


  I noticed this because valgrind was complaining about use of

  uninitialized memory."

2015-06-01 12:07  robert

* include/osgDB/ObjectWrapper, src/osgDB/ObjectWrapper.cpp: From

  Frashud Lashkari, "I was getting "Unsupported wrapper class..."

  error messages when attempting to load osgb models simultaneously

  from multiple threads. I believe the problem is caused by

  un-synchronized access to the global osgDB::ObjectWrapperManager

  class. I've attached a change that adds a mutex to the class and

  uses it when accessing the internal wrapper/compress maps. This

  appears to fix the issues I was having."

2015-06-01 10:50  robert

* include/osg/Texture, include/osg/Texture2D, src/osg/Texture.cpp,

  src/osg/Texture1D.cpp, src/osg/Texture2D.cpp,

  src/osg/Texture2DArray.cpp, src/osg/Texture2DMultisample.cpp,

  src/osg/Texture3D.cpp, src/osg/TextureBuffer.cpp,

  src/osg/TextureCubeMap.cpp, src/osg/TextureRectangle.cpp,

  src/osgText/Glyph.cpp: From Jannik Heller, "I have added new

  functions Texture::generateAndAssignTextureObject mirroring the

  Texture::generateTextureObject functions.

  I have left the Texture::generateTextureObject functions intact

  as I'm not sure if/how it's used outside the core OSG. If you

  feel that compatibility isn't important in that area feel free to

  drop it.

  While testing the build with


  error in GlyphGeometry.cpp that was entirely unrelated to the

  changes I've made. The fix is included in the patch.

  There is one thing left to fix and that is


  class OSG_EXPORT SubloadCallback : public Referenced




  virtual TextureObject* generateTextureObject(const Texture2D&

  texture, State& state) const


  return osg::Texture::generateTextureObject(&texture,

  state.getContextID(), GL_TEXTURE_2D);




2015-06-01 10:41  robert

* src/osgText/GlyphGeometry.cpp: From Jannik Heller, build fix

2015-05-29 07:52  robert

* include/osg/BufferObject, src/osg/BufferObject.cpp: From Jannik

  Heller, fix for race condition in orphanded BufferObject


2015-05-26 17:24  robert

* src/osgUtil/MeshOptimizers.cpp: From Colin McDonald,

  "rc/osgUtl/MeshOptimizers.cpp won't compile on some systems due

  to a missing std:: namespace prefix."

2015-05-26 17:22  robert

* src/osgUtil/SceneView.cpp: From Farshid Lashkari, "attached a

  small change to osgUtil::SceneView that prevents unnecessary

  calls to glClear when the split stereo separation is 0."

2015-05-26 17:17  robert

* src/osgDB/ClassInterface.cpp: From Thomas Hogarth, "Little fix

  for ClassInterface::getSupportedProperties, before if you set

  searchAssociates to false then it would return the same

  BaseSerialiser::Type for every entry in the PropertyMap as i was

  not being incremented on line 539. Fix attached."

2015-05-26 17:12  robert

* src/osgUtil/RenderStage.cpp: From We See, "I found a small bug in

  osgUtil::RenderStage::draw() (osg 3.3.7), which crashes osg. The

  problem was caused by an access to the object _camera without

  checking whether the object is valid. So I changed the line:


  if (_cameraRequiresSetUp ||




  if (_cameraRequiresSetUp || (_camera.valid() &&



2015-05-26 17:09  robert

* src/osgUtil/CullVisitor.cpp: From Farshid Lashkari and Robert

  Osfield, "a small change to the CullVisitor class, which will use

  cloneType() on the root render stage when creating children

  render stages. This allows us to pass a custom RenderStage object

  to the SceneView and have it used for all sub-stages."

2015-05-26 10:05  robert

* examples/osgtext3D/TextNode.cpp,

  examples/osgtext3D/osgtext3D.cpp, include/osgText/Style,

  src/osgText/Glyph.cpp, src/osgText/GlyphGeometry.cpp,

  src/osgText/GlyphGeometry.h, src/osgText/Style.cpp: Rewrote the

  Text3D bevel implementation to automatically adjust bevel

  thickness to avoid overalapping and erronous tesselation.

  Added osgText::Bevel::s/getRoundedConcaveJunctions(bool) to

  control how the bevel should be tessellated around concave

  junctions on the glyph boundary.

2015-05-26 08:48  robert

* src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp:

  Added use of ref_ptr<>

2015-05-25 12:39  robert

* src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp:

  Changed the EventQueue::frame() event generation to use the

  generatePointerData/reprojectPointerData() methods in the same

  way that other events are handled.

2015-05-25 11:33  robert

* include/osgGA/EventQueue, src/osgGA/EventQueue.cpp: Added

  osgGA::GUIEventAdapter* returns from various EventQueue event

  generation methods.

2015-05-21 14:11  robert

* src/osgText/Text3D.cpp: Fixed memory error associated with

  reading over the end of container due to an unbounded while loop.

2015-05-06 18:39  robert

* AUTHORS.txt, ChangeLog, applications/osgversion/Contributors.cpp:

  Update ChangeLog and AUTHORS file

2015-05-05 11:05  robert

* CMakeLists.txt: Changed the CMP0020 check to > 2.8.10

  Updated SO version number

2015-04-30 14:04  robert

* include/osg/GLDefines: From Christian Kehl, changes for making

  osgAndroid working with GLES1 enabled

2015-04-30 13:59  robert

* src/osgViewer/GraphicsWindowWin32.cpp: From Dmitriy Ogalcev, fix

  for crash when calling setCursor from a non GUI thread

2015-04-28 16:12  robert

* include/osgShadow/MinimalShadowMap,

  src/osgShadow/MinimalShadowMap.cpp: Replaced attempt at passing

  NULL Matrix with two specialized methods.

2015-04-27 19:31  robert

* include/osg/LineSegment, src/osg/LineSegment.cpp: Renamed

  LineSegment::intersect(BoundingSphere/Box, double/float&,

  double/float&) methods to

  LineSegment::intersectAndComputeRations(..) to avoid confusion

  with the change in convention for

  the old intersect(BoundingBox&, float/double&, float/double&)

  method as it was inconsitent with the rest of the OSG including

  the intersect(BoundingSphere) method in how the ratio for the

  second intersection was measure from - original from the end

  point, but now made consistent with other places in the OSG so be

  based on ration from start to end of segment.

2015-04-23 14:44  robert

* src/osgText/GlyphGeometry.cpp: Refactoring GlyphGeometry Boundary

  class to facilate better bevel overlap detection

2015-04-23 12:58  robert

* examples/osgtext/osgtext.cpp: Comment out debug notification

2015-04-23 09:49  robert

* src/osgText/GlyphGeometry.cpp: Removed unused method

2015-04-22 14:25  robert

* src/osgPlugins/3ds/ReaderWriter3DS.cpp: From Giampaolo Vigano,

  "please find attached a further fix for 3ds plugin: now

  reflection map works also with transparent objects (I also

  removed a redundant setting of BlendFunc)."

2015-04-21 17:29  robert

* src/osgPlugins/3ds/ReaderWriter3DS.cpp,

  src/osgPlugins/3ds/lib3ds/lib3ds_util.c: From Chris Denham, "I

  found a couple of memory leaks in 3DS reader plugin and I have

  attached corrected files. I have attached an example 3DS file I

  used to test the leaks/fixes using osgviewer for trunk at rev

  [14853] and the tagged version 3.2.1.

  The first leak is in the lib3ds module (yeah, I know that

  probably should be corrected at http://code.google.com/p/lib3ds/

  but I'm assuming that as no commits have happened there since

  2011 that it may be better to fix the copy we have in the OSG of

  that project) The leak is caused by lib3d's use of realloc(ptr,

  0) to free up memory allocations, but realloc, when ptr==NULL

  returns malloc(0) rather than NULL and thus leaks a zero byte

  allocation. The solution here was to adjust the

  'lib3ds_util_reserve_array' function so that it realloc is not

  used to release a NULL pointer.

  The second leak is in ReaderWriter3DS.cpp and arises when any of

  the created StateSet objects added to the StateSetMap don't

  subsequently get applied to a Node. The solution here was just to

  simply use the osg::ref_ptr around the raw StateSet pointer that

  was used in the locally defined StateSetInfo struct."

2015-04-20 10:41  robert

* AUTHORS.txt, ChangeLog, applications/osgversion/Contributors.cpp:

  Updated AUTHORS

2015-04-20 10:36  robert

* examples/osgmanipulator/osgmanipulator.cpp: Build fix

2015-04-20 10:19  robert

* src/osgPlugins/3ds/ReaderWriter3DS.cpp: Build fix

2015-04-20 09:39  robert

* src/osg/State.cpp: Moved uniform substitution to infront of

  vertex attribute substituion to make sure gl_Vertex usage is

  replaced when required.

2015-04-20 09:08  robert

* include/osgUtil/MeshOptimizers: From Tim Moore, "The

  order_by_primitive_mode comparer was not providing a strict weak

  ordering, which was causing a crash in the sort() call in

  VertexAccessOrderVisitor::optimizeOrder (gcc 4.9, Fedora 21)."

2015-04-17 14:36  robert

* CMakeLists.txt: Updated dev release number

2015-04-17 13:33  robert

* include/osgManipulator/AntiSquish: Added implementations for the

  libraryName and className for the AntiSquish node.

2015-04-17 13:24  robert

* src/osg/Node.cpp: Fixed CollectParentPaths visitor so that it

  sets the setNodeMaskOverride(0xffffffff) to make sure all parents

  are traversed to find parents, even ones that have their NodeMask

  set to 0x0.

2015-04-17 13:22  robert

* examples/osgmanipulator/osgmanipulator.cpp: Added --test-NodeMask

  option to test crash when a parent of osgmanipulator::AntiSquish

  node has a NodeMask set to 0x0.

2015-04-16 11:19  robert

* src/osgPlugins/osgjs/json_stream: Changed MSVC version test to <=

  to enable fallback for VS2010.

2015-04-16 10:07  robert

* src/osgManipulator/AntiSquish.cpp: Fixed crash when AntiSquish

  node is the root of the scene graph.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20150612/c4ea1612/attachment-0002.htm>

More information about the osg-users mailing list