Robert Osfield
70dfd11531
From Tim Moore,
...
Fixes to race in DatabasePager where a parent PagedLOD
of newly loaded subgraph has been expired.
Clean up of visitor naming to make it clearer what role it has.
2011-03-30 15:15:07 +00:00
Robert Osfield
e0924886bd
Added support for enabling the assignment of PixelBufferObjects to loaded Images to aid the download of images to the GPU.
...
Feature can be enabled/disabled (default) by setting the env :
OSG_ASSIGN_PBO_TO_IMAGES to ON or OFF
2011-02-04 12:43:00 +00:00
Robert Osfield
88f9e7dda8
Fixed the setting of the Drawable modes
2011-02-01 12:18:47 +00:00
Robert Osfield
abea92ee91
From Mathias Froehlich, build fixes
2011-01-24 21:12:25 +00:00
Robert Osfield
bf99528322
Build fix
2011-01-18 09:54:47 +00:00
Robert Osfield
11cd5a89ed
Implemented better coupling of DatabasePager and IcrementalCompileOperation,
...
removing functional duplication and opening the door to dynamic enabling/disabling
of pre compile based on load.
2011-01-17 17:17:19 +00:00
Robert Osfield
f61a6aa4e7
Refactored the way that the DatabasePager passes the Terrain decorator node onto the TerrainTile.
...
The DatabasePager now passes the Terrain pointer into the ReaderWriter's via osgDB::Options object,
rather than pushing a NodePath containing the Terrain onto NodeVisitor. This
change means that the DatabasePager nolonger needs to observer the whole NodePath and
will be lighter and quicker for it.
The change also means that ReadFileCallback can now run custom NodeVisitor's on the scene graph without
having to worry about TerrainTile's constructing scene graphs prior to the Terrain being assigned.
Also changed is the NodeVisitor::DatabaseRequestHandler which now requires a NodePath to the node that you wish
to add to rather than just the pointer to the node you wish to add to. This is more robust when handling scenes
with multiple parental paths, whereas previously errors could have occurred due to the default of picking the first
available parental path. This change means that subclasses of DatabasePager will need to be updated to use this new
function entry point.
2011-01-12 19:29:24 +00:00
Robert Osfield
149200f0e9
Fixed warnings
2010-12-23 13:11:15 +00:00
Robert Osfield
410b4fd109
Converted FrameStamp::g/setFrameNumber from int to uint
2010-12-22 20:11:05 +00:00
Robert Osfield
b5d4d9954a
From Tim Moore, Dereference the databaseRequest while the queue is locked. This prevents the request from being
...
deleted at an unpredictable time within addLoadedDataToSceneGraph.
2010-12-21 12:54:06 +00:00
Robert Osfield
7507242891
Cleaned up the frame number increment.
2010-12-21 09:36:03 +00:00
Robert Osfield
4b4b438d44
Removed redundent MinimumNumberOfTextureObjectsToRetainInCache static variable
2010-12-14 15:28:31 +00:00
Robert Osfield
017a03ffe5
Refactor of DatabasePage/IncrementalCompileOperation to use the IncrementalCompileOperator for compiling objects
2010-12-10 15:27:19 +00:00
Robert Osfield
1b42084217
Fixes for benign threading memory contentions.
2010-12-08 09:52:58 +00:00
Robert Osfield
88a76e7b69
From Brad Christiansen, commented out debug messages
2010-12-02 13:53:10 +00:00
Robert Osfield
0739c15e0a
Removed deperecated variables that are no longer used.
2010-11-29 09:32:43 +00:00
Robert Osfield
78cdf41d53
From Michael Platings, "the build is broken if you have the OSG_REF_PTR_IMPLICIT_OUTPUT_CONVERSION turned off - the attached files fix this."
2010-11-22 17:37:35 +00:00
Robert Osfield
1a292ad8e3
Integrated IncementalCompileOperation into DatabasePager.
...
Improved various facilities in IncrementalCompileOperation.
2010-10-21 16:29:23 +00:00
Robert Osfield
6ed74470b2
Introduction of IncrementalCompileOperation support to DatabasePager.
2010-10-14 18:16:03 +00:00
Robert Osfield
8f2497e21d
From Wojciech Lewandowski,"These are our changes to DatabasePager. To check if parent PLOD is registered, I resurrected PagedLODList::containsPagedLOD() method. This method was available some time ago, but got removed and was not currently present in trunk. To add this method I had to also modify the DatabasePager header. "
2010-10-01 15:37:35 +00:00
Robert Osfield
b1aedf30e0
Aded option for doing a glFlush() after compiling texture objects, with a dedicated compile thread default to issuing the glFlush.
2010-08-09 16:19:50 +00:00
Robert Osfield
208b2fc3d0
#if 0'd out debugging timing code for detecting deadlocks
2010-06-18 09:48:55 +00:00
Robert Osfield
f97c2b65b3
Added reporting of possible deadlock of paging thread
2010-06-16 15:53:57 +00:00
Robert Osfield
5c0fb93de8
Re-enabled call to ShareStateManager.
2010-06-16 08:09:13 +00:00
Robert Osfield
86a0aaf7f3
Added insertion of children found by the CountPagedLODsVisitor into the childrenRemoved list to make sure that they are caught
...
and then removed correctly from the PagedLODLists.
2010-06-07 17:08:53 +00:00
Robert Osfield
1d401f2333
Added size() and swap() methods to provide a thread safe way to keep track of size of a RequestQueue/ReadQueue.
2010-06-07 11:28:25 +00:00
Robert Osfield
bcebc9a23f
Added removeNodes method to prune any nodes that are going to be deleted from the PagedLODLists.
2010-06-07 09:05:58 +00:00
Robert Osfield
768f466365
Fixed double registeration bug.
2010-06-03 16:24:25 +00:00
Robert Osfield
634e55eee3
Fixed permissions
2010-06-03 16:02:01 +00:00
Robert Osfield
2ea6aa050e
Refactored the PagedLODList implementation so that it's now done via a base class that enables different implementations to be easily tried. Initial concrete PagedLODList is the SetBasedPagedLODList.
2010-06-03 14:14:40 +00:00
Robert Osfield
054d5606fb
From Tim Moore, "This is a patch that allows a ref_ptr to be constructed using an observer_ptr argument, which is locked. This is shorthand for declaring the ref_ptr and then passing it to observer_ptr::lock().
...
"
2010-06-01 11:28:04 +00:00
Robert Osfield
d26a8474e7
Changed the ref_ptr<T> observer_ptr<>::lock() method to be
...
bool observer_ptr<>::lock(ref_ptr<T>&) to avoid the temporary ref_ptr<>'s
being created and destroyed on the stack along with the associated ref/unref() operations
2010-05-28 08:57:48 +00:00
Robert Osfield
2d9e469afa
Refactored the expiry and PagedLOD counting so that it's now done in single CountPagedLODsVisitor::removeExpiredChildrenAndCountPagedLODs method
2010-05-27 18:46:58 +00:00
Robert Osfield
fce49ae02a
Quitened down debug output
2010-05-24 14:16:31 +00:00
Robert Osfield
0fb865bc4f
Fixed typo
2010-05-18 17:58:35 +00:00
Robert Osfield
07e43822e6
Added better invalidation of the inactive and active PageLOD lists when children are invalidated when parents are removed.
2010-05-18 15:33:59 +00:00
Robert Osfield
554adfc8e6
Refactored Observer/ObserverNodePath and DatabasePager to improve their robustness.
2010-05-14 12:24:13 +00:00
Robert Osfield
7ee549bb06
From J.P. Delport, Fix for invalid iterator dereference in DatabasePager.
2010-04-15 12:51:41 +00:00
Robert Osfield
31ec835002
From Jason Beverage, "Here is a small fix to the DatabasePager to fix a crash if you were
...
running with the OSG_NOTIFY_LEVEL set to INFO.
An iterator was being erased, and then referenced to display a
message. Just changed it to display the message first, then erase."
2010-04-15 11:45:10 +00:00
Robert Osfield
9045d03a0b
Removed the setting of the DatabasePager thread affinity, and moved the setting of the DatabasePager thread priotity to after the creation of the threads
2010-04-15 11:02:22 +00:00
Robert Osfield
1319e270f6
Refactored the way that the RequestQueue's are pruned and highest prioty items taken from them so the operation is
...
now O(n) rather than O(nlogn) where n is the number of requests. The refactoring also cleans up the access of the
request lists so that the code is more readable/maintainable.
2010-03-24 14:27:00 +00:00
Robert Osfield
0661901016
disabled timing debug info
2010-03-17 11:35:52 +00:00
Robert Osfield
950d282f55
From Vincent Bourdier, addition of out of memory read result.
2010-03-10 14:28:18 +00:00
Robert Osfield
1a1b7bd7a1
Moved QWebViewImage and QGraphicsViewAdapter into new osgQt utility library.
2010-03-04 12:15:35 +00:00
Robert Osfield
9f8a4be2cd
Refactored DatabasePager so that it nolonger takes ref_ptr<PagedLOD>, but instead uses a custom version of observer_ptr<>.
...
This change should make it possible to delete PagedLOD's independantly from the DatabasePager, and also prevent issues of
consistency of the pager when subgraphs when are cached elsewhere in the application such as in the Registry filecache.
2010-03-03 16:40:19 +00:00
Robert Osfield
bff9b565df
Completed usage of ObserverNodePath to fix longstanding crash that occurred when nodes in parental chain of a newly loaded node had been deleted.
2010-02-18 21:21:59 +00:00
Robert Osfield
f17e401347
Convert NOTIFY to OSG_NOTIFY to avoid problems with polution of users apps with the NOTIFY macro
2010-02-10 12:44:59 +00:00
Robert Osfield
6ab51c7c47
Added pruning of requests that haven't been reissued since the last frame.
2010-02-10 11:21:45 +00:00
Robert Osfield
8d8037ee12
Converted osg::notify usage to NOTIFY
2010-02-09 18:24:37 +00:00
Robert Osfield
f8fc4f66a8
Added RequestQueue destructor and DatabaseRequest::invalidate() and valid() methods to allow the
...
destruction of RequestQueue to remove any pointers held in DatabaseRequest attached to the scene graph, and to
prevent their subsequent use in cases where the scene graph is attached to a new DatabasePager.
2010-01-22 20:47:39 +00:00