Robert Osfield
11ddd53eb4
Removed redundent Referenced::s/getThreadSafeReferenceCounting() and associated static and env vars as there are now inapprorpiate and no longer supported
2016-08-26 17:59:30 +01:00
Robert Osfield
14a563dc9f
Ran script to remove trailing spaces and tabs
2012-03-21 17:36:20 +00:00
Robert Osfield
f6ace4a7d0
From Ulrich Hertlein, typo fixes
2011-12-23 16:14:51 +00:00
Robert Osfield
cc471b1103
From Magnus Kessler, "Attached are a number of files where I have tried to fix up some of the
...
documentation. I have accumulated them over some time, but rebased onto the
subversion trunk."
2010-09-15 12:00:12 +00:00
Robert Osfield
9cf330d7ff
Introduced a alternative implementation of observer_ptr<> that uses ObserverSet rather than an local WeakReference object.
2010-05-20 13:38:28 +00:00
Robert Osfield
65c09c8e0d
From Tim Moore, improved doxygen comments
2010-05-17 14:43:41 +00:00
Robert Osfield
ccd9f31309
Removed signalUnreffed interface
2010-05-17 14:21:53 +00:00
Robert Osfield
f832198128
From Tim Moore, refactore WeakReference/Referenced to avoid signalling the observers when do a unref_nodelete.
2010-05-17 09:03:44 +00:00
Robert Osfield
2b2ea4487a
From Tim Moore, new more robust observer_ptr<> implementation
2010-05-14 12:14:14 +00:00
Robert Osfield
b09757bdb8
Refactored the osg::Referenced observerset code so that it now uses a dedicated ObserverSet class,
...
which utilises a global recursive mutex that is dedicated to manage Observer and ObserverSet.
The new global mutex for observers avoids problems with deadlocks that were occurring previously when
an osg::Refenced object was being deleted at the same time as on osg::ObserverNodePath.
2010-02-18 21:21:12 +00:00
Robert Osfield
644b2e15d1
Refactored the osg::Observer to introduce a new bool Observer::objectUnreferenced(void*) method that adds
...
the extra capability of making it possible for Observers to assume ownership of a object that would otherwsie be deleted.
Added a thread safe ref_ptr<T> observer_ptr<T>::lock() method for robust access to an observed object. This
makes observer_ptr<> more equivilant to boosts weak_ptr.
2010-02-15 20:12:53 +00:00
Robert Osfield
482a18b9f2
Added depends_on template and usage in RenderBin to help with static variable destruction ordering
2009-06-05 11:48:35 +00:00
Robert Osfield
d2099da5cb
Fixed indentation
2009-03-04 16:15:05 +00:00
Robert Osfield
69f9377093
Fixed effective leak in Program::PerContextProgram caused by previously osg::State keeping a set of std::ref_ptr<Program::PerContextProgram> without ever pruning this list.
...
The fix was to convert the osg::State to use C pointers for the set of applied PerContexProgram objects, and use the osg::Oberver mechanism to avoid dangling pointers for being maintained in osg::State.
2009-01-26 15:16:24 +00:00
Robert Osfield
315aeeb557
Where possible moved redundent C header includes from headers to source files
2008-12-12 18:47:30 +00:00
Robert Osfield
ac975bf79a
Added a Refrenced::getGlobalReferencedMutex, and OpenThreads::ScopedPointerLock() and use of this in add/removeParent() codes
...
to avoid threading problems when using atomic ref counting.
2008-10-14 14:27:41 +00:00
Robert Osfield
eb5a656f4e
From Neil Groves, added intrusive_ptr_add_ref and intrusive_ptr_release methods to enable
...
usage of boost::intrusive_ptr<> with osg::Referenced objects.
2008-10-03 13:34:32 +00:00
Robert Osfield
5a4ce5a387
From Mathias Froechlich, "Attached is a change to that atomic stuff to move the win32, msvc
...
implementation of the atomic increment and decrement into a implementation
file.
This way inlining and compiler optimization can no longer happen for these
implementations, but it fixes compilation on win32 msvc targets. I expect
that this is still faster than with with mutexes.
Also the i386 gcc target gets atomic operations with this patch. By using an
implementation file we can guarantee that we have the right compiler flags
available."
2008-06-26 10:27:16 +00:00
Robert Osfield
936edacc92
From Mathias Froehlich, added support for using OpenThreads::Atomic for thread safe ref/unref.
2008-06-19 17:30:38 +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
86e998f64c
Added mutex locking add addParents/removeParents in Drawable, Node and StateSet.
2007-08-31 20:14:36 +00:00
Robert Osfield
eac3dc1963
From Paul Melis, "Here is a list of fixes to misspelled APIs. Unfortunately, more than one
...
of these are public APIs and therefore will break linkage to existing
shared libraries."
Note from Robert Osfield, updated wrappers.
2007-06-27 20:36:16 +00:00
Robert Osfield
6d9641a78b
Added a concrete osg::DeleteHandler implementation which provides support for
...
retain objects for several frames before deleting them. Also added RenderStageCache
into CullVistor.cpp that is used for handling RTT osg::Camera's that are being
used in double buffered SceneView usage.
2007-02-02 12:41:13 +00:00
Robert Osfield
73fffe1800
Made Refernced::setThreadSafeReferenceCounting(bool) a virtual then overrode
...
this in various scene graph classes to ensure that the scene graph gets
updated as well as the objects that the initialial call is made from.
2007-01-04 16:49:58 +00:00
Robert Osfield
f1c2694c17
Updated copyright years.
2006-07-18 15:21:48 +00:00
Robert Osfield
ce4b3a7b9e
Changed parameter name from osberver_ptr to observer.
2006-07-04 19:58:53 +00:00
Robert Osfield
83722dc064
From Tree, build fixes for JavaOSG build.
2006-05-09 09:42:17 +00:00
Robert Osfield
a8c52a90f0
Added selective support for thread safe ref/unref such that the rendering
...
backend now doesn't use thread safe ref counting where multi-buffering exists.
This reduces the overhead of multi-threading.
2006-05-02 15:52:46 +00:00
Robert Osfield
8f2ffb7c2d
Added new observer_ptr templated smart pointer to allow one to retain pointers
...
to objects but have the pointer reset to null if that object is deleted.
2006-02-27 19:44:33 +00:00
Robert Osfield
35fcaf7bde
Convert tabs to spaces.
2005-11-17 17:44:48 +00:00
Robert Osfield
678b22ce83
Updated Copyright notices to 1998-2005.
2005-04-14 21:41:28 +00:00
Robert Osfield
d268cf46fa
Renamed SG_LIBRARY and SG_EXPORT macro's to OSG_LIBRARY and OSG_EXPORT
2005-04-11 17:14:17 +00:00
Robert Osfield
164cb8216c
Made Referenced::ref() and unref() inline methods.
2005-02-23 12:50:10 +00:00
Robert Osfield
e01990d419
Made the osg::Referenced Mutex be declared as a pointer to a Mutex, with the
...
Mutex allocated dynamically when required. Added the following methods to
help manage the usage of the mutex:
void setThreadSafeRefUnref(bool threadSafe);
bool getThreadSafeRefUnref() const;
2005-02-22 20:25:58 +00:00
Robert Osfield
84d3746e8a
From Tree, fixes for Java bindings
2004-11-15 13:02:43 +00:00
Robert Osfield
d548d77010
From Tree chagenes required for Java Wrappers
2004-11-01 16:14:53 +00:00
Robert Osfield
de0e616433
Added new methods into osg::Referenced for controlling the use of thread safe
...
ref/unref:
/** Set whether reference counting should be use a mutex to create thread reference counting.*/
static void setThreadSafeReferenceCounting(bool enableThreadSafeReferenceCounting);
/** Get whether reference counting is active.*/
static bool getThreadSafeReferenceCounting();
2004-09-27 14:15:13 +00:00
Robert Osfield
7126ca44e9
Better macro support for switching on/off use of mutex
2004-08-03 11:01:39 +00:00
Robert Osfield
bb5576bef8
Added support s/getImage(uint i) and getNumImages().
2004-07-27 10:11:45 +00:00
Robert Osfield
d36e302573
Added OpenThreads mutex to protect ref()/unref().
2004-07-20 05:34:02 +00:00
Robert Osfield
8bb2ca48b7
Made = opeator const.
2003-10-17 10:26:31 +00:00
Robert Osfield
6c4f2f5207
Fixes for multipipe support.
...
Addition of FrameStatsHandler to osgproducer demo to add frame stats.
2003-01-29 17:16:26 +00:00
Robert Osfield
48bda9cc79
Added new Copyright/License notice to header and source files.
2003-01-21 16:45:36 +00:00
Robert Osfield
c406d2476f
Removed the osg::Referenced::createCount() and deleteCount() methods and
...
associated variables which were only compiled in on debug build. These optional
methods/static vars were causingproblems when mixing debug and release builds.
2003-01-17 14:11:34 +00:00
Robert Osfield
64341828b8
Added a few more comments on the DeleteHandler.
...
Changed the friend struct DeleteHandler to friend class DeleteHandler.
2002-12-16 21:39:26 +00:00
Don BURNS
bbab5af6eb
Fixed a scope issue for 3.2 compiler for friend declarattion, l ine 39 in
...
include/osg/Referenced
2002-12-16 19:39:08 +00:00
Robert Osfield
884b2730e8
Added a DeleteHandler into osg::Referenced so that it can delete objects
...
via a seperate delete handler. Useful for making unref()/ref() thread safe if
the users needs to address this issue.
2002-12-16 10:25:31 +00:00
Robert Osfield
fb629ae87d
From Gideon, support for tracking the number of objects constructed and deleted,
...
only compiled in when unit tests are compiled in.
2002-09-20 15:55:50 +00:00
Robert Osfield
12226e4371
Converted the instances of const built in types being returned from methods
...
and passed as paramters into straight forward non const built in types,
i.e. const bool foogbar(const int) becomes bool foobar(int).
2002-09-02 12:31:35 +00:00
Robert Osfield
3a964a6b93
Updated docs and added osgGA
2002-07-16 20:07:32 +00:00