Commit Graph

25 Commits

Author SHA1 Message Date
Robert Osfield
6a67be2e32 Introduced CMake option OSG_PROVIDE_READFILE option that defaults to ON, but when switched to OFF disables the building of the osgDB::read*File() methods,
forcing users to use osgDB::readRef*File() methods.  The later is preferable as it closes a potential threading bug when using paging databases in conjunction
with the osgDB::Registry Object Cache.  This threading bug occurs when one thread gets an object from the Cache via an osgDB::read*File() call where only
a pointer to the object is passed back, so taking a reference to the object is delayed till it gets reassigned to a ref_ptr<>, but at the same time another
thread calls a flush of the Object Cache deleting this object as it's referenceCount is now zero.  Using osgDB::readREf*File() makes sure the a ref_ptr<> is
passed back and the referenceCount never goes to zero.

To ensure the OSG builds when OSG_PROVIDE_READFILE is to OFF the many cases of osgDB::read*File() usage had to be replaced with a ref_ptr<> osgDB::readRef*File()
usage.  The avoid this change causing lots of other client code to be rewritten to handle the use of ref_ptr<> in place of C pointer I introduced a serious of
templte methods in various class to adapt ref_ptr<> to the underly C pointer to be passed to old OSG API's, example of this is found in include/osg/Group:

    bool addChild(Node* child); // old method which can only be used with a Node*

    tempalte<class T> bool addChild(const osg::ref_ptr<T>& child) { return addChild(child.get()); } // adapter template method

These changes together cover 149 modified files, so it's a large submission. This extent of changes are warrent to make use of the Object Cache
and multi-threaded loaded more robust.



git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/branches/OpenSceneGraph-3.4@15165 16af8721-9629-0410-8352-f15c8da7e697
2015-10-22 14:14:53 +00:00
Robert Osfield
4b9aa1fd24 Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
Robert Osfield
f4afa427a7 From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)." 2007-12-10 17:30:18 +00:00
Robert Osfield
cc0f1cb0fe From Martin Lavery and Robert Osfield, Updated examples to use a variation of the MIT License 2007-06-12 14:20:16 +00:00
Robert Osfield
c4279bd5f1 Ported following examples to osgViewer:
osgparticleeffects
osgphotoalbum
osgpick
osgpoints
osgpointsprite
osgprecipitation
osgprerender
osgprerendercubemap
osgreflect
osgscalarbar
osgscribe
osgsequence
osgplanets
2007-01-10 13:52:22 +00:00
Robert Osfield
41a4aa1548 Added viewer.cleanup_frame() to all examples. 2006-08-02 19:55:03 +00:00
Robert Osfield
91855e7c50 Replaced tabs with spaces in examples. 2005-11-17 20:22:55 +00:00
Robert Osfield
38f938619e from Mike Weiblen, added wrap mode to planet texture to avoid black seam, and
add option of specifying the texture to use in osgshape.
2004-11-24 19:10:44 +00:00
Robert Osfield
1ac452df69 From Rainer Oder, improvements to planet motions 2004-11-22 13:58:57 +00:00
Robert Osfield
9dc4fb1a34 Added write to file and use of clearnode 2004-11-18 15:10:24 +00:00
Robert Osfield
138c1ddd05 Increased accuracy of animation path, moved main to end. 2004-11-18 15:01:41 +00:00
Robert Osfield
6edf15e371 Changed Solarsystem to SolarSystem. 2004-11-18 14:43:07 +00:00
Robert Osfield
ced404fa4f Changed path to imagery from Images/SolarSystem to SolarSystem. 2004-11-18 13:34:31 +00:00
Robert Osfield
595dda6fe4 From Vivek Rajan, fixes to Solaris build. 2004-11-18 10:08:29 +00:00
Robert Osfield
a2c3d0335c From osgplaents, updates to more of the solar systems planets. 2004-11-15 19:44:35 +00:00
Robert Osfield
f1129dde16 Added rainer's changes for adding billboard glow around sun. 2004-11-09 15:01:39 +00:00
Robert Osfield
de9f5c82d0 Commented out settings of TexEnvCombine alpha values 2004-11-01 16:16:31 +00:00
Robert Osfield
4065c551ef Added useage of TexEnvCombine 2004-10-29 18:24:26 +00:00
Robert Osfield
8dc722e2a7 Added multi-textured city illumination 2004-10-29 15:42:51 +00:00
Robert Osfield
12793c0580 Fixed support for NodeTrackerManipulator. 2004-10-28 19:09:32 +00:00
Robert Osfield
e97364899b Updates for Rainer, and with a few changes by Robert. 2004-10-28 09:38:03 +00:00
Robert Osfield
4352fe3f9f From Rainer, updates to osgplanet. 2004-10-25 18:23:42 +00:00
Robert Osfield
7039e5cb98 From Rainer Oder, updates to osgplanets 2004-10-24 14:23:42 +00:00
Robert Osfield
8ab8fc762f Compile fixes 2004-10-22 18:47:39 +00:00
Robert Osfield
763d6399af Added Rainer's initial osgplanets example. 2004-10-22 16:39:24 +00:00