Commit Graph

38 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
5be86601bb Removed old GNUmakefile.inst files 2007-04-10 13:58:18 +00:00
Robert Osfield
2e6ee4bb39 Removed old gmake and VisualStudio build files 2007-04-10 13:10:25 +00:00
Robert Osfield
d9a94f7890 Moved the TARGET_NAME setting into the SETUP_APPLICATION/EXAMPLE macro 2007-03-19 17:18:59 +00:00
Robert Osfield
da64127539 Ran dos2unix on CMakeLists.txt files. 2007-03-19 13:26:34 +00:00
Robert Osfield
be3f61c49f From Luigi Calori, move to using local CMakeLists.txt files and explicit file lists.
From Robert Osfield, small ammendments of the above to seperate example and application installs, and fix the osgPlugins install directory.
2007-03-19 12:30:26 +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
f8107a39b9 Build Fixes for IRIX. 2003-09-04 08:50:06 +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