Commit Graph

43 Commits

Author SHA1 Message Date
Robert Osfield
b4dad9bac3 From David Fries, "Avoid a terrapage crash with outstanding
requests to a removed archive file.  ReaderWriterTXP::getArchiveName
will create an archive if it doesn't exist.  This is causing a crash
if the terrain is removed and there are outstanding database requests
in the database pager.  The request will create a new archive, and as
the archive is newly create doesn't have the materials etc to support
the subtile that was just loaded.  To fix the problem getArchiveName
will only return existing archives.  createArchiveName was added to
create archives.
"
2010-12-12 09:37:14 +00:00
Robert Osfield
cb80a312e1 Converted osg::notify to OSG_INFO etc. 2010-05-28 17:10:57 +00:00
Robert Osfield
2e154d5976 From Ryan Kawicki, "I guess I missed these during my testing, but if the database pager has outstanding requests while the application is shutting down, the archive can become invalidated through unsafe calls to ReaderWriterTXP::getArchive. I've made this function return a ref_ptr and change other locations to as needed to conform to the change. I've tested this and no more crashes.
Following files from revision 11057 have been attached."
2010-02-26 09:23:28 +00:00
Robert Osfield
3a2cd32ea5 From Ryan Kawicki, added removal of TXPArchive from ReaderWriterTXP when the TXPNode destructs to fix memory consumption issue relating to leaving unused archives in memory. 2010-02-02 11:16:10 +00:00
Robert Osfield
2d91b15489 Fixed indentation. 2010-02-02 11:02:42 +00:00
Robert Osfield
06abd75198 From Mathias Froehlich, "We are currently getting issues with locale settings and some osg plugins.
Therefore I have changed all the occurances of atof by asciiToFloat or
asciiToDouble.

I believe that it is safe to do so at least for all the plugins.
Included here are also asciiToFloat conversion of environment variables. One
might argue that these should be locale dependent. But IMO these should be
set and interpreted by osg independent of the current locale.
"
2009-06-25 16:07:49 +00:00
Robert Osfield
734463fcc7 Warning fixes 2009-02-03 15:28:53 +00:00
Robert Osfield
fa499dc55f From Andy Skinner, fixes for Solaris build 2009-01-09 12:17:40 +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
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
8e7e6529be From David Callu, warning fixes 2007-09-07 15:03:56 +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
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
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
2092016c7b From Don Tidrow, Added support for locally referenced origins. 2005-09-27 14:48:09 +00:00
Robert Osfield
6fc00a2613 From Mathia Walker: bug fix to LOD ranges in TXP plugin to avoid cracks:
"I took a closer look at the conditional code in
SeamFinder::seamReplacement().

Because _info.minRange is a double and lod->getMinRange(0) is a float,
the difference will be calculated with double precision. If
_info.minRange is cast as a float it is exactly the same value as
lod->getMinRange(0) and the difference is exactly zero.

So if you change


 if((fabs(_info.minRange-lod->getMinRange(0))<0.001)&&(fabs(_info.lod0Range-lod->getMaxRange(0))<0.001))

to


 if((fabs((float)_info.minRange-lod->getMinRange(0))<0.001)&&(fabs((float)_info.lod0Range-lod->getMaxRange(0))<0.001))

it works a lot better."
2005-06-06 10:18:33 +00:00
Robert Osfield
bdc7e8b4a9 From Don Tidrow, "I added some code to assign the archive pointer in TXPnode
with the archive that ReaderWriterTXP actually loads.  I also added a
function in TXPArchive to help in manipulating the lightpoints."
2005-05-11 19:34:03 +00:00
Robert Osfield
d9b9a6f1f8 Made read/write methods in ReaderWriter all const to facilate multi-threading 2004-11-23 15:29:52 +00:00
Robert Osfield
ce07879e2e Moved plugins across to using ReaderWriter::Options* for search paths in addition
to standard osgDB::DataFilePaths
2004-11-22 23:54:45 +00:00
Robert Osfield
77f9a4d083 Added searching of the filepath. 2004-04-21 13:20:48 +00:00
Robert Osfield
37ec69a397 From Nick, Improved support for 3D labels. 2004-02-05 11:39:12 +00:00
Robert Osfield
4723b8a059 Commented out the PagedLOD priority offset to leave it at its default
values, so not to force the loading of distance children before near ones,
letting PagedLOD set priorities simply on the depth into a child range.
2004-02-01 17:21:12 +00:00
Robert Osfield
dea75f5510 Attempts to fix compile problems under IRIX due to namespace problems. 2004-01-29 15:47:51 +00:00
Robert Osfield
b10393d001 From Nick, added Text support. 2004-01-25 13:52:55 +00:00
Robert Osfield
a5dd1951fc Added back in handling of non seam children in seam subgraphs, now uses
a seperate group to enclose both the seam and the non seam children.
2004-01-22 11:33:40 +00:00
Robert Osfield
2fe34c0b6d Added setName("TileContent") on the subgraphs that represent the contents
of the tiles, this name is then searched for during the TileMapper pre
cull traversal to help cut short traversals, and thereby improve its performance.
2004-01-22 10:43:59 +00:00
Robert Osfield
9d1ace20d9 Added new mechanism for handling Seams. 2004-01-21 17:26:23 +00:00
Robert Osfield
3034112577 Updates to TXP plugin from Nick. 2004-01-02 17:30:05 +00:00
Robert Osfield
5cc98a420d Updates from Nick.
Added support for OSG_TXP_DEFAULT_MAX_ANISOTROPY to override the default make
anistropy in textures.
2003-12-23 13:02:13 +00:00
Robert Osfield
7a5053f81f From Trajce Nikolov, port of TXP plugin across to a pure PagedLOD based
pager, with a little assistance from Robert Osfield.
2003-12-22 06:27:17 +00:00
Robert Osfield
83bf813e58 Moved the responsibility for finding file to load on to the ReaderWriter plugins,
instead of osgDB::Registry where it original lay.  This has been done to allow
fileName strings to be encode data rather than just file names, such as one
requires when using PagedLOD along with plugins for doing dynamic tesselation.
2003-12-08 11:24:43 +00:00
Robert Osfield
fa8a06990d From Trajce Nikolov, support for use of PagedLOD in the txp plugin. 2003-10-19 11:46:34 +00:00
Robert Osfield
0c662e596c Merged changes from Nicklov Trajce and Boris Bralo. 2003-07-23 13:34:48 +00:00
Robert Osfield
eb42926ab1 Changed the remaining #include <> to #include "" to get things compiling under VS. 2002-12-19 10:32:02 +00:00
Robert Osfield
c82927293e Moved the include/osgTXP back into src/osgPlugins/txp as a seperate include directory is no longer required.
Removed the osgtxp demo as it is no longer required.
2002-12-17 16:07:59 +00:00
Robert Osfield
ee3348afc9 Added txp::TerrapageNode to the txp plugin, and implemented the node so that it
automatically assign handles the updates of eye points and database merges.
2002-12-17 15:41:05 +00:00
Don BURNS
12e922bc3c Added Paging TerraPage loader and osgTXP library. 2002-11-24 21:36:05 +00:00
Robert Osfield
6767dd49d0 Rewrote the FileUtils support for data and library file paths, moving the
storage of the path lists into osgDB::Registry, and changed the data
structor from a char* to a std::deque.  Changed a names of couple of the
convinience functions in osgDB/FileUtils to better reflect the two
public FilePathList's - DataFilePathList and the LibraryFilePathList.

Added support into the osgDB::Registry::readNode/Image/Object methods
for pushing and popping the path of the current file being loaded.
2002-06-17 21:50:37 +00:00
Robert Osfield
ab5603e3d4 TXP plugin update from Boris Bralo. 2002-03-09 10:51:09 +00:00
Robert Osfield
61e3e0c693 Clean up of TXP plugin for IRIX build. 2002-02-11 22:53:42 +00:00
Robert Osfield
88b6691369 Added std:: infront of string refrences to solve compile problems under gcc 3.0.3.
Also converted to unix file endings so other the windows style files.
2002-02-09 19:46:44 +00:00
Robert Osfield
4c5fcd3f61 Fixes for IRIX and Boris Bralo's TerraPage loader. 2002-02-08 09:30:02 +00:00