Commit Graph

197 Commits

Author SHA1 Message Date
Robert Osfield
734463fcc7 Warning fixes 2009-02-03 15:28:53 +00:00
Robert Osfield
908432c732 Replaced readImageFile() usage with readRefImageFile() to prevent threading issues with caching of imagery in the osgDB::Registry cache. 2009-01-21 18:23:55 +00:00
Robert Osfield
fa499dc55f From Andy Skinner, fixes for Solaris build 2009-01-09 12:17:40 +00:00
Robert Osfield
418dc34776 Fixed warnings 2009-01-07 11:24:47 +00:00
Robert Osfield
bc6a7b03ab Quitened down debug messages 2008-12-18 12:27:34 +00:00
Robert Osfield
215cd5f29b Fixed warnings 2008-12-18 12:26:14 +00:00
Robert Osfield
f63d33c003 Fixed warnings 2008-12-16 12:23:30 +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
720551d549 From Michael Platings, Converted std::fstream/ifstream/ofstream to osgDB::fstream/ifstream/ofstream and
fopen to osgDB::fopen to facilitate support for wide character filenames using UT8 encoding.
2008-11-07 15:08:08 +00:00
Robert Osfield
0ccf7d8383 Converted tabs to four spaces 2008-11-07 15:01:15 +00:00
Robert Osfield
02b456bcfa Converted plugins to use the new supportsExtension()/supportsOptions/supportsProtocl() methods
to help enable better querying of supported features
2008-07-13 22:18:59 +00:00
Robert Osfield
f10cb3c388 Added mutex to serialize access to the trpager 2008-06-16 13:20:51 +00:00
Robert Osfield
71187a2c56 From Mario Valle, fixed warnings 2008-06-03 13:07:40 +00:00
Robert Osfield
6873d4237c Ran merge to get rid of tabs 2008-06-03 13:06:54 +00:00
Robert Osfield
20f3e74643 From Brad Anderegg, "This submission fixes two bugs and helps some performance problems we have been having with txp databases.
The first bug is that the terrain tiles will page out to a lower LOD when they are right in front of you.  The issue appears to be with the blacklisting heuristic which forces a tile to LOD 1, commenting out the usage of blacklisting with the LOD Nodes fixes our problem.  This code change was made to line 29 of TXPPageLOD.cpp.

 

The second bug we were experiencing is that the database reader options never make it through to the archive loader.  The use case for us appeared when the FID codes for the terrain were no longer on the materials.  As it turns out the archive was being created twice, once by TXPNode and once by the ReaderWriterTXP on getArchive() so the options never actually got set on the archive that was being loaded.  The fix is to first create the archive by calling getArchive on the ReaderWriterTXP, which stores it in a map for reference later, and then passing that archive into the TXPNode for it to set its internal member.  With this code change we only create one archive (not sure what creating two did) and our options flags get set properly on the database.

 

The changes made are in TXPNode.h line 72 where the TXPArchive is now passed in.  In the TXPNode.cpp the loadArchive(TXPArchive*) was changed to have the default behavior if NULL is passed in, if an archive is passed in then it does not load it since all the loading is done in the ReaderWriterTXP::getArchive().  The only other place that loadArchive is called is in TXPIO.cpp where a modification was made to pass in NULL which will have the same behavior as it used to.  The last change is the little block of code starting on line 57 of ReaderWriterTXP.cpp, this was changed so that it first calls getArchive() which caches the archives in a map does some loading stuff and returns a pointer to it which is then passed in as a parameter to TXPNode::loadArchive().

 

The performance changes were made to TXPParser.cpp line 163 where we use to osgUtil::Optimizer on the node before passing it off, and on line 1456 we changed the geometry to use display lists.  These small changes actually made drastic performance increases for us, as much as 1000% on certain laptops.

 

As far as testing goes, we have tested these changes with at least 5 txp databases on a variety of different computers including Mac OS and Linux.  The base version used is 2.4."
2008-05-27 20:53:43 +00:00
Robert Osfield
7b003b24ea Refactored DatabasePager and related classes to introduce support for
multi-threaded paging, where the Pager manages threads of reading local
and http files via seperate threads.  This makes it possible to smoothly
browse large databases where parts of the data are locally cached while
others are on a remote server.  Previously with this type of dataset 
the pager would stall all paging while http requests were being served,
even when parts of the models are still loadable virtue of being in the 
local cache.

Also as part of the refactoring the DatabaseRequest are now stored in the
ProxyNode/PagedLOD nodes to facilitate quite updating in the cull traversal,
with the new code avoiding mutex locks and searches.  Previous on big 
databases the overhead involved in make database requests could accumulate
to a point where it'd cause the cull traversal to break frame.  The overhead
now is negligable.

Finally OSG_FILE_CACHE support has been moved from the curl plugin into
the DatabasePager.  Eventually this functionality will be moved out into
osgDB for more general usage.
2008-05-21 21:09:45 +00:00
Robert Osfield
6f47d924d6 Changed the include definition so that it works under Cygwin. 2007-11-04 15:21:48 +00:00
Robert Osfield
8e7e6529be From David Callu, warning fixes 2007-09-07 15:03:56 +00:00
Robert Osfield
4328bdacc2 From Luigi Calori, introduction of versioning of dll's and placement of dll and plugins into bin directory during build. 2007-08-30 10:41:15 +00:00
Robert Osfield
4c3a13c3a1 From Andy Skinner, fixes for avoiding warnings about mixing c and c++ versions of c libs. 2007-08-05 14:51:56 +00:00
Robert Osfield
9394238720 From Andy Skinner, addition of standard c library includes to avoid issues with using STLport on some platforms. 2007-07-23 20:10:13 +00:00
Robert Osfield
952e644016 Converted tabs to four spaces 2007-07-23 20:08:16 +00:00
Robert Osfield
9e2fe92ef1 From Rudolf Wiedemann, "I need to link OpenSceneGraph statically to my application, so I
completed the new registration of the plugin-readerwriters
("REGISTER_OSGPLUGIN") according to your osgstaticviewer-example (see
attachment, based on today's svn)."
2007-07-06 13:54:26 +00:00
Robert Osfield
4248c0f8c8 Added osgSim dependency to txp plugin 2007-04-21 12:29:39 +00:00
Robert Osfield
b2261d84fe Added include directory to get txp plugin building 2007-04-21 11:24:26 +00:00
Robert Osfield
3d058d2fcf Added logo and txp CMakeLists.txt files. The txp build is temporarily commented out while the build is fixed. 2007-04-16 18:33:09 +00:00
Robert Osfield
2e6ee4bb39 Removed old gmake and VisualStudio build files 2007-04-10 13:10:25 +00:00
Robert Osfield
c505e3d51e From David Gurhrie, "Here is the updated txp loader code that we modified before to store
some of the material codes in the userdata field.  It now takes an
option string to enable adding the extra data and doesn't add it by
default."
2007-03-01 12:10:52 +00:00
Robert Osfield
8a04605e01 Ran cleanup to fix tabs 2007-02-28 12:15:01 +00:00
Robert Osfield
ad3cac84e9 Moved Block, ReentrantMutex and ReadWriteMutex into OpenThreads. 2007-02-23 16:31:34 +00:00
Robert Osfield
228fd04a19 Removed the exclusion of CullSettings from the genwrapper.conf, and then changed the CullStack RefMatrix& methods to RefMatrix*
as the RefMatrix& versions caused the wrappers to fail.
2007-02-21 13:48:01 +00:00
Robert Osfield
c52207b637 Added new Transform::ReferenceType enum ABSOLUTE_RF_INHERIT_VIEWPOINT to support
internal RTT cameras that wish to use the main cameras view/eye point for LOD and other
distance based tests.
2007-02-07 16:32:14 +00:00
Robert Osfield
e1f4026cf5 Warning fixes 2006-07-19 15:10:50 +00:00
Robert Osfield
e016cdafb2 From Terrex, improvements to handling of layers w.r.t PolygonOffset 2006-07-17 16:36:42 +00:00
Robert Osfield
db395b18af Added getNumLayers method 2006-07-17 11:36:50 +00:00
Robert Osfield
9ae10af995 Fixed warnings 2006-07-05 09:52:03 +00:00
Robert Osfield
4ce0d8af64 From David Callu, compile fix for gcc 4.1 2006-06-29 19:38:07 +00:00
Robert Osfield
a6fbb7a044 Changed _WIN32 to _MSC_VER 2006-06-29 10:17:19 +00:00
Robert Osfield
5acd4f3be1 From Martin Naylor, build fix for windows. 2006-06-28 07:17:56 +00:00
Robert Osfield
95d29db7c5 Removed old #include <vector.h> entries. 2006-06-28 07:14:39 +00:00
Robert Osfield
261f4a3b1c From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
email comments from Andew Sampson,

"I've contacted Terrex, and obtained the 2.2 version
of their trpage library.  The library included a
fork of OSG 0.9.8's txp plugin, modified to load 2.1+
txp DBs.

I've done the work of incorporating the changes made
to OSG's txp plugin since 0.9.8 into Terrex's fork.
The forked version is now up-to-date with the changes
made to OSG 0.9.9 and 1.0.

Terrex made a lot of changes (especially differences
in whitespace), so the diff between the forked version

and OSG 1.0's txp plugin is yucky.  I did my best, but

keep in mind that this is the result of a 4-way merge
(kinda... terrex-0.9.8, stock-0.9.8, stock-0.9.9,
stock-1.0).

I really want to see this forked version merged back
into the main OSG branch.  The new features offered by

this version of the plugin (2.1+ support, variable
LOD support, bug fixes) are worth the trouble."

--

Don Tidrow then took this code and added his work.

--

Robert Osfield then fixed all the warnings that abound in the trpage code base.
2006-06-27 10:07:42 +00:00
Robert Osfield
d43dbaeadd Build fixes 2006-03-14 13:18:21 +00:00
Robert Osfield
d50f2e3add From Andrew Sampson, "The terravista terrain generation tool can insert references to external model files into a terrapage tile. It unfortunately does not update the bounding sphere of that tile to include the extents of the external model. This means that if a large model (such as an airfield model) is attached to a tile, the model will disappear when the tile is off-screen (outside the view volume), even though the model is on-screen." 2006-03-13 21:20:07 +00:00
Robert Osfield
b324156ec8 From Thom DeCarlo, build fix for Cygwin. 2005-12-01 13:38:27 +00:00
Robert Osfield
a44f0cf25a From Eric Wing, warning fixes for gcc4.0/OSX. 2005-11-22 09:51:02 +00:00
Robert Osfield
8289eecb7e From Roger James, reworked the export of std::vector<> on standard types to prevent
problems with .lib being built for all targets under VS7.x
2005-11-21 13:51:24 +00:00
Robert Osfield
71e202cb38 Warning fixes. 2005-11-15 11:39:48 +00:00
Robert Osfield
030fe7d9ea From Steve Lunsford, "Attached is a copy of TXPNode.cpp with the repaired computeBounds call. I
discovered that TXPNodes were being culled out prematurely because the
loaded sub-tiles resulted in a computed bounds that was smaller than the
extents indicated in the archive.  I think this fix should be fine.  I can't
think of any reason why we would want to use anything other than the archive
extents."
2005-10-31 16:40:23 +00:00
Robert Osfield
280f50b3d9 From Don Tidrow, removed unncessary includes. 2005-10-25 09:43:37 +00:00
Robert Osfield
f7bd1fc456 From Don Tidrow, "I discovered that externally-referenced models in the TXP format didn't
get positioned correctly when the TXP database was built using the
'tile-offset' mode.  I've included a tarball with what I believe are the
needed changes - they work for the sample databases I have available,
but not all conditions have been tested.  I've set things up such that
these changes shouldn't affect 'normal' txp databases."
2005-10-24 11:34:12 +00:00