Commit Graph

32 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
d18250da59 Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
Robert Osfield
1f2d381299 From Luc Frauciel, added extra test case accessible via -t 7. 2010-06-14 16:30:43 +00:00
Robert Osfield
907a51b198 Replaced usage of depreacted IntersectVisitor with IntersectionVisitor 2008-10-07 14:01:14 +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
581b1c322e Added setting of the Camera's projection matrix to fit the windowing aspect ratio. 2007-06-23 11:21:54 +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
2528eabd0e Added --object, --ortho and --persp OverlayNode options 2007-05-28 15:44:37 +00:00
Robert Osfield
784383ac08 Added camera event callback support into osgViewer 2007-05-27 17:29:29 +00:00
Robert Osfield
d6291a0ffc Ported follow examples to osgViewer:
osgshape
    osgsimplifier
    osgsimulation
    osgslice
    osgspacewarp
    osgspheresegment
    osgspotlight
    osgstereoimage
2007-01-11 11:47:01 +00:00
Robert Osfield
41a4aa1548 Added viewer.cleanup_frame() to all examples. 2006-08-02 19:55:03 +00:00
Robert Osfield
2cf8fd8f42 Added a setRadius into the screen space LOD. 2006-06-28 10:00:54 +00:00
Robert Osfield
5670ce8c0a Added extra SphereSegment intersection tests. 2006-06-05 16:25:01 +00:00
Robert Osfield
5fe7595478 Added moving sphere segment intersections. 2006-03-15 12:26:10 +00:00
Robert Osfield
91855e7c50 Replaced tabs with spaces in examples. 2005-11-17 20:22:55 +00:00
Robert Osfield
5d1b46d25f Changed the "Cessna" text so that it is sized according to OBJECT_COORDS rather
than SCREEN_COORDS as the later was causing problems with the pixel size based LOD selection.
2005-10-13 10:29:40 +00:00
Robert Osfield
c401e31bd8 Added test cases for SphereSegment intersection code. 2005-10-01 19:28:34 +00:00
Robert Osfield
07d7d39eb5 Added TexEnv DECAL mode. 2005-09-26 11:24:14 +00:00
Robert Osfield
d2f98ef56e Added line connectivity code. 2005-09-15 20:03:37 +00:00
Robert Osfield
745834c329 Added triangle index functor to src/osgUtil/SphereSegment.cpp for computing
the intersection between an indivual geometry and the sphere segment.

Converted the terrain in osgspheresegment to be an osg::Geometry based
drawable rather than a osg::ShapeDrawable/osg::HeightField one to make it
more practicle to use as a test for the new SphereSegment intersection code.
2005-09-09 11:13:40 +00:00
Robert Osfield
559219f519 Added initial interface for computing intersections between sphere segments
and terrain.
2005-09-08 13:10:04 +00:00
Robert Osfield
58112d9591 Added a grid of lines into the OverlaySubgraph to demonstate use the
OverlayNode for applying general drawing onto terrain.
2005-09-06 20:28:53 +00:00
Robert Osfield
5283c11f8a Added osgSim::OverlayNode to osganimate and osgspheresegment examples, and
added support for setting texture size hint and coping with scene graphs
with CoordinateSystemNode in them.
2005-09-06 15:48:18 +00:00
Robert Osfield
538ced579e Removed deprecated API in preparation for 0.9.9 release. 2005-05-09 13:09:07 +00:00
Robert Osfield
aee1e88f15 Added extra controls for ParticleEffects. 2005-03-23 17:05:21 +00:00
Robert Osfield
0b2ac40fe8 Moved ParticleSystemUpdater into ParticleEffect nodes to simplify usage
of nodes.
2005-03-22 20:26:45 +00:00
Robert Osfield
1c808e4959 Fixed the double transform of ParticleEffects 2005-03-22 17:00:41 +00:00
Robert Osfield
8e9f14a374 Updated sphere segment example to use original osgsimulation source, adding
in terrain, moving models and particle effects.
2005-03-22 12:11:03 +00:00
Robert Osfield
eca2fc2837 Improved osgSim::SphereSegmenet's handling of transparancy. 2004-02-12 01:15:37 +00:00
Robert Osfield
73094265c3 Fixes for Win32. 2003-09-01 15:46:10 +00:00
Robert Osfield
144ac14b07 From Neil Salter, added osgSim::SphereSegment and osgSim::ScalarBar, and
osgspheresegment and osgscalarbar, and osgsimulation examples.
2003-09-01 09:36:03 +00:00