Commit Graph

255 Commits

Author SHA1 Message Date
Robert Osfield
cf2c9da74d Made ReaderWriter and ReaderWriter::Options use thread safe ref counting. 2007-09-24 09:05:42 +00:00
Robert Osfield
7ea3632dfc Added support for bool in ArgumentParser::Parameter.
Added support for using Input::read(...) methods using ArgumentParser::Paramter
to adapter to multiple paramter types.
2007-09-19 15:29:57 +00:00
Robert Osfield
4c787abfd7 Added option for controlling whether output code should write out default values 2007-09-16 17:45:53 +00:00
Robert Osfield
69de74aedf Added TemplateRegisterDotOsgWrapperProxy. 2007-09-14 11:01:48 +00:00
Robert Osfield
b20d542317 From David Callu, improved consistency of Version strings and add version support
for osgIntrospection and osgManipulator.
2007-09-05 17:12:24 +00:00
Robert Osfield
54202aae0d Cleaned up the thread priority management in DatabasePager and added
support for paging stats.
2007-08-24 13:33:35 +00:00
Robert Osfield
0390243ed9 Changed ReadFileCallback and WriteFileCallback to use virtual inhertinace. 2007-08-22 09:05:34 +00:00
Robert Osfield
e3b7b2f617 Added new statc prototype() and create() methods to CullVisitor and DatabasePager to allow overriding of the default implementations 2007-08-08 08:10:38 +00:00
Robert Osfield
a28588a84c Introduce GraphicsOperation subclass from osg::Operation, and osgUtil::GLObjectOperation
for compiling subgraphs.
2007-07-13 17:25:35 +00:00
Robert Osfield
6931ae4878 Added include/osg/GLObjects + .cpp which provide osg::flush*DeletedGLObjects() methods.
Added and cleaned up DeleteHandler calls in osgViewer to help avoid crashes on exit.

Changed DatabasePager across to dynamically checcking osg::getCompileContext(..)

Updated wrappers.
2007-07-06 13:08:51 +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
1b3468413d Added ability to compile OpenGL objects via pbuffers in the DatabasePager/Viewer 2007-06-22 14:48:18 +00:00
Robert Osfield
b48ed1a4d4 Improved the set up of static build, added freetype plugin to plugins that support static usage 2007-06-10 09:51:29 +00:00
Robert Osfield
3b1c5c3b96 Introduced a destruct method to help clean up the Registry. 2007-06-07 11:19:02 +00:00
Robert Osfield
c072e4adac Updated wrappers 2007-05-27 19:35:50 +00:00
Robert Osfield
8a1ac890f3 Introduce C entry point support for plugin setup for better static build support 2007-05-25 15:27:06 +00:00
Robert Osfield
5d23bf7739 From Mike Weiblen, with mods of using references by Robert Osfield for efficiency. Submission notes from Mike:
"By repurpose, I'm creating a new plugin that uses much of the .osg fileformat,
but with some changes.  Specifically, I'm creating a ".osgfs" plugin, which
represents the scenegraph hierarchy as a filesystem of nested subdirectories and
individual files for each node, rather than nested braces with everything in a
single monolithic file.  I intend to incorporate file alteration monitor events
to watch the filesystem for modifications and automatically reload.

The problem I'm running into is osgDB is too tightly coupled to the .osg format.
osgDB::Output::writeObject() contains literal .osg format-specific strings like
"{" to represent the Object hierarchy at too low a semantic level.  I propose
using virtual methods; my plugin can then derive from osgDB::Output and
represent Object hiearchy differently.
"
2007-05-09 10:01:15 +00:00
Robert Osfield
790a1ea66f From Alan Harris, "Registry and Archive
~~~~~~~~~~~~~~~~~~~~~~~~~
This is a simple change to permit databases other than those named
"*.osga" to be used. It is hardcoded in read() at present.

It is non-critical and does not affect existing program functionality.

Registry and Registry.cpp
~~~~~~~~~~~~~~~~~~~~~~~~~
Added a new typedef:      typedef std::vector< std::string>
ArchiveExtensionList;

a list of extensions:     ArchiveExtensionList  _archiveExtList;

and an "add" method:      addArchiveExtension(const std::string ext)

This is initialised by adding "osga" in Registry() and used in
Registry::read() where the list is searched for the extension used.

Archive.cpp
~~~~~~~~~~~
This submission is a little more tentative. openArchive() is modified to
automatically add the filename extension to the Registry extension list.
"
2007-05-09 09:43:18 +00:00
Robert Osfield
5954722c07 From Mike Wittman, fix to CopyOp&. 2007-04-12 09:32:34 +00:00
Robert Osfield
5ba0e5b930 Fixed missing initializer in Options constrctor 2007-03-29 19:39:20 +00:00
Robert Osfield
ad3cac84e9 Moved Block, ReentrantMutex and ReadWriteMutex into OpenThreads. 2007-02-23 16:31:34 +00:00
Robert Osfield
4914d3974a From Paul Martz, "Here's my changes to Registry to allow extension alias mapping via a config file. I also attached a sample file that tests the parsing, but this is just FYI and not for inclusion in CVS.
To set up extension aliases using a config file, an app calls:
osgDB::Registry::instance()->readPluginAliasConfigurationFile(), passing in the file name as the parameter. (Of course this should be done before loading any files whose names depend on the mapping.) osgDB will search for the file using OSG_FILE_PATH.

The file should contain a line for each mapping, with the "map" extension first, followed by a space or tab, then the plugin identifier. For example, a file containing this line:

flt OpenFlight

would map the ".flt" extension to the OpenFlight plugin."
2007-02-05 10:44:10 +00:00
Robert Osfield
35c720420e From Bryan Thrall, "The osgDB::ReaderWriter and osgDB::ReaderWriter::Options classes have
copy constructors that take a const osg::CopyOp rather than a
osg::CopyOp&, forcing an unnecessary copy. The attached header fixes
this, based off OSG 1.2.

Also fixed duplicate "or" openArchive()'s comment."
2007-01-30 14:18:39 +00:00
Robert Osfield
3ebc5efe05 From Joakim Simonsson, added osgDB::concateFile and osgDB::getRealPath.
Tweaks by Robert Osfield - Moved methods to FileNameUtils, added unix
implementation of getRealPath add extern and OSGDB_EXPORT to function declarations.
2007-01-17 15:59:29 +00:00
Robert Osfield
733c6e9e62 Changed the ReadWriteMutex to use standard OpenThreads::Mutex to fix
crashes in osgcatch.
2007-01-04 21:14:29 +00:00
Robert Osfield
9a31b7652e Added mutex to lock of ReentrantMutex 2007-01-04 20:50:35 +00:00
Robert Osfield
d7e3ed3fb2 Updated wrappers 2006-12-27 23:19:37 +00:00
Robert Osfield
30cb8735d3 Added an osgDB::ReadWriteMutex to help manage the ability to have serialize
write to objects but allow multiple threads to read at once in a read only way.
2006-12-27 16:40:34 +00:00
Robert Osfield
3177494aa4 From Bryan Thrall, "Currently, the DatabasePager always loads requested Nodes using the
default Registry Options object, but it would be useful to be able to
request loading with a different Options object. The attached files
allow you to do that (based off the OSG 1.2 source).

For example, I'm implementing a loader that requires context information
when it pages in subgraphs, which becomes significantly complicated when
multiple scenegraphs are requesting subgraph loads with different
contexts (the loader needs to know which context to use, and the
Registry Options needs to be carefully managed so the context settings
don't clobber each other, especially in multithreaded situations). Being
able to pass an Options instance along with the Node request resolves
this problem."
2006-12-05 14:50:46 +00:00
Robert Osfield
530e9e08d4 Added better handling of writeNode operations that arn't successful. 2006-11-07 17:00:56 +00:00
Robert Osfield
553d017fd9 From Daniel Trstenjak, build fixes for Hpux 11.11, Irix 6.5, Solaris 8 and Aix 2006-08-02 10:43:26 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
4431b381d3 From Eric Wing, removed trailing commans from enum lists. 2006-05-15 11:56:59 +00:00
Robert Osfield
83add79c07 From Chris Hanson, added get methods for size of file request and data to compile lists. 2006-02-04 21:06:48 +00:00
Robert Osfield
f77b38ae9c Added DatabasePager::s/getDrawablePolicy() to allow the way that the display list/VBO settings
are applied to loaded databases.
2005-11-22 13:14:00 +00:00
Robert Osfield
9c93332c03 From Rodger James, changed the Win32 static library compilation support to use
OSG_LIBRARY_STATIC to avoid problems with building libs when not required.
2005-11-18 09:52:24 +00:00
Robert Osfield
35fcaf7bde Convert tabs to spaces. 2005-11-17 17:44:48 +00:00
Robert Osfield
258425d649 Bumped the version numbers up to 1.0 in preparation for 1.0-rc1. 2005-11-09 10:49:56 +00:00
Robert Osfield
9bbba5a052 From Don Tidrow, bug fix to setOutputTextureFiles(bool). 2005-10-26 20:30:15 +00:00
Robert Osfield
f26c3da074 From Chris Hanson, "The following files are drop-in replacements for the include/*/Export files to permit
building statically linked osg libraries under Win32."
2005-09-28 14:05:05 +00:00
Robert Osfield
d1108ea862 Added support for "-O OutputTextureFiles" options string in .osg plugin to
allow texture files to be written out when writing out a .osg file.
2005-09-19 14:07:44 +00:00
Don BURNS
5f27216e7e made removeExpiredSubgraphs virtual. 2005-08-25 18:18:27 +00:00
Robert Osfield
d154c2a4cd From Eric Sokolowsky, warning fixes for g++ 4.0 under Fedora Core 4. 2005-08-25 17:53:01 +00:00
Robert Osfield
51faa7e43a Various updates to support the new GraphicsThread class. 2005-08-18 20:17:51 +00:00
Robert Osfield
b9a74c87e1 From Jeremy Bell,
"My patch is a slight refactoring of the mac specific code in
Registry.cpp and FileUtils.cpp, specifically around the library and
resource file path initilialization methods. This patch cleans up a
lot of the mac specific code by moving repeated code into separate
local functions in FileUtils.cpp that are only compiled on mac builds.
It also adds one function to the API,
appendPlatformSpecificResourceFilePaths in FileUtils. This function
will mirror the already existing
appendPlatformSpecificLibraryFilePaths except for resource file paths.
Currently this function is empty except when built on the mac, in
which case it will add the application bundle's internal Resources
folder and the bundle's parent folder. Previously this code was
implemented as a separate mac specific #ifdef block in Registry.cpp
around the initDataFilePathList method. However, it now is implemented
in appendPlatformSpecificResourceFilePaths in FileUtils.cpp and the
initDataFilePathList method is now the same on all platforms. This
patch should behave the same as before on non-mac platforms.

This patch already includes the fix that Eric mentioned earlier. This
patch is based off of the 0.99 release code. I have tested this patch
using the following testing scheme:

Make a proper bundled application.
While Run from the Finder:
   Test that it finds plugins in its internal plugins path.
   Test that it finds resources in its internal resources path.
   Test that it finds resources in the bundle's parent directory
   Test that it finds plugins in the user's Application Support Directory
   Test that it finds plugins in the system's Application Support Directory
   Test that it finds plugins in the Network Application Support Directory
   Check the plugin and resource path lists after they have been
initialized to see if they are in the correct order

While Run from the command line (both from it's parent directory and
from inside the /Contents/MacOS directory) and repeat the above tests.
Check that it also finds plugins and resources within the paths
defined by various environment variables.

Now, Make an application that is NOT bundled/command line only
   Test that it does NOT try to look in an internal bundle
plugin/resource directory for plugins or resources.
   Test that it finds plugins/resources in the paths defined by the
environment variables.
"
2005-07-26 21:07:31 +00:00
Robert Osfield
44b8b0177c Added ability to toggle on/off the pre compile of OpenGL objects in the
DatabasePager via the setDoPreCompile(bool) method or via the env var
OSG_DO_PRE_COMPILE=ON or OFF.
2005-05-31 05:37:13 +00:00
Robert Osfield
cf06b40891 Added pragma to remove warnings under VS.8.0 2005-05-24 18:57:13 +00:00
Robert Osfield
10232cf81a Fixed method signatures. 2005-05-16 11:18:11 +00:00
Robert Osfield
668aada787 From Marco Jez, fixes to/and for osgIntrospection. 2005-05-15 20:32:10 +00:00
Robert Osfield
d1a1b1d95c Added more comprehensive releaseGLObjects(State*=0) throughout Nodes,
Drawables,StateSet, and osgDB::Registry.

Added cleanup_frame() from to osgProducer::OsgCamerGroup to help with proper
clean of OpenGL objects before exit, and modified osgviewer, osghangglider,
osgwindows examples to do the extra frame call to cleanup_frame() before exit.
2005-05-07 20:47:09 +00:00
Robert Osfield
648677ce44 Added next stage of support for osg::Uniform in .osg plugin 2005-04-18 12:34:28 +00:00
Robert Osfield
678b22ce83 Updated Copyright notices to 1998-2005. 2005-04-14 21:41:28 +00:00
Robert Osfield
8bb4649cd5 Added extra controls into osgDB::DatabasePager for customizing how
much time is allocated to compiling and deleting OpenGL objects, also
added support into osgProducer::OsgSceneHandler.cpp for these new parameters.

The new cotrols are:

    DatabasePager::s/getTargetFrameRate(..)
    DatabasePager::s/getMinimumTimeAvailableForGLCompileAndDeletePerFrame()
    DatabasePager::s/getMaximumNumOfObjectsToCompilePerFrame()
2005-03-17 19:32:09 +00:00
Robert Osfield
5684a130b7 From Alberto Farre, addition of ProxyNode, with support in .osg, .ive and .flt loaders 2005-03-07 14:06:09 +00:00
Robert Osfield
dd0c29d19b Added new utilities for handling different '/' and '\' entries. 2005-02-11 09:58:30 +00:00
Robert Osfield
95161cb301 From Tree, removed redundent "inline"s 2005-01-28 16:09:11 +00:00
Don BURNS
463b47f020 Fixes for SOlaris build 2004-11-29 03:05:27 +00:00
Don BURNS
c7e8386707 Fixes for IRIX build 2004-11-29 01:12:25 +00:00
Robert Osfield
c3fd271dc4 Addd high level introductory docs for all the libs 2004-11-26 16:01:04 +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
ffcd95b004 Tripped out experiemental threadSafe_ methods in ReaderWriter 2004-11-23 12:57:00 +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
e54f46f630 Removed the cache hints from registery placing them wholly into ReaderWriter's responsibility. 2004-11-22 14:49:27 +00:00
Robert Osfield
a6369da4f4 Moved Registry::CacheHintOptions into ReaderWriter::Options 2004-11-22 14:10:12 +00:00
Robert Osfield
6fa4eecdd5 Changed ReaderWriter::Options to derive from osg::Object to add clone()
ability.
2004-11-20 13:35:49 +00:00
Robert Osfield
eff3482ec6 Removed the public open methods 2004-11-18 22:13:13 +00:00
Robert Osfield
8cc9d650a1 Added friend usage for inner classes to try and get round compile problems
under Solaris.
2004-11-18 12:07:28 +00:00
Robert Osfield
36661a33d3 Fixed writeImage. 2004-11-18 11:21:51 +00:00
Robert Osfield
70bb34af6a From Stephane Simon, compile fix for VS, change struct to class in forward declaration. 2004-11-18 09:09:22 +00:00
Robert Osfield
e9c403839d Made a few of the public methods virtual, and moved more of the class
methods to protected scope.
2004-11-17 14:25:17 +00:00
Robert Osfield
daaa9f3ba0 Fixed typo of ReadObjectFunctor. 2004-11-16 16:04:05 +00:00
Robert Osfield
e30a534ec9 Adde another friend to remove final VS6.0 compile problem. 2004-11-16 15:36:06 +00:00
Robert Osfield
f99dc8f051 Made the inner helper classes friend to try and get round VS6.0 problems 2004-11-16 14:10:30 +00:00
Robert Osfield
2b310c6926 Added support for serialization of calls to ReaderWriter plugins. 2004-11-15 19:46:10 +00:00
Robert Osfield
4094c3f058 Added osgDB::ReentrantMutex is prep for making osgDB::Registry single threaded. 2004-11-15 11:57:41 +00:00
Robert Osfield
39311cdee3 From Loic Dachary, added getFileName method 2004-11-14 21:08:10 +00:00
Robert Osfield
ddb0d6bd4f Added prelimarny support for reading archives via the .net plugin 2004-11-13 16:21:48 +00:00
Robert Osfield
f30146a9fe From Stephane Simon, added missing OSGDB_EXPORT to osgDB::openArchive functions 2004-11-11 22:26:07 +00:00
Robert Osfield
6f96cf4ad2 Moved the .osga implementation into the src/osgPlugins/osga plugin and made
osgDB::Archive a pure virtual base class.
2004-11-11 13:22:55 +00:00
Robert Osfield
9fcda76143 Fixed uninitialized variable. 2004-11-10 22:11:28 +00:00
Robert Osfield
141c3cadbf Set the pos_type and size_type explictly to 8 byte types. 2004-11-10 21:52:30 +00:00
Robert Osfield
3523577235 Added check for endianess of .osga archives 2004-11-10 21:18:31 +00:00
Robert Osfield
4973824b1d Added new osga plugin for reading OSG native archives 2004-11-10 16:40:08 +00:00
Robert Osfield
2db9dc2e60 Moved the ReadFunctor to protected section. 2004-11-10 13:47:22 +00:00
Robert Osfield
4e19c03de1 Added support for master file and clean up Archive API. 2004-11-10 13:03:52 +00:00
Robert Osfield
564869487a Added support of archiving into osgTerrain::DataSet and osgdem. 2004-11-09 14:18:29 +00:00
Robert Osfield
72b7e08d93 From Stephane ???, fixes for VS.NET build 2004-11-08 16:39:32 +00:00
Robert Osfield
d26c8460dc Updates to osgDB::Archive support, and refactoring of implementation of
reading files in Registry to faciliate the new archiving support.
2004-11-08 16:11:07 +00:00
Robert Osfield
f84f8d87e0 Added support for openArchive into osgDB 2004-11-07 21:17:31 +00:00
Robert Osfield
f44ecb1f65 Fixed insertion of files into an existing archive 2004-11-07 12:13:56 +00:00
Robert Osfield
8d6aa8b405 Further work on osgDB::Archive 2004-11-06 21:18:19 +00:00
Robert Osfield
c691860b5c Improved handling of uflow and underflow() in proxy_streambuf, and change
unsigned char* to char* to avoid stoooopid VS6.0 compile errors
2004-11-02 21:04:14 +00:00
Robert Osfield
ffca165611 Added prelimanary prox stream buffer to fake the ending of file. 2004-11-02 17:05:15 +00:00
Robert Osfield
2b8140e125 Added support for listing contents of archive 2004-10-28 14:27:41 +00:00
Robert Osfield
90e5586777 Updates to osgDB::Archive, and IVE plugin to support usage via the Archive. 2004-10-28 12:16:47 +00:00
Robert Osfield
61b0f5d301 Added IndexBlock inner class to osgDB::Archive 2004-10-27 14:09:24 +00:00
Robert Osfield
676f204cdb Updates to osgDB::Archive 2004-10-26 18:29:27 +00:00
Robert Osfield
1f5b044c71 Made ReaderWriter::className const 2004-10-26 10:26:43 +00:00
Robert Osfield
66836ef3d0 Added new osgDB::Archive class, and osgarchive example. These are both
very early beginnings so do not function yet.
2004-10-25 19:16:38 +00:00
Robert Osfield
d734d6d532 Added osgDB::Archive 2004-10-24 14:24:15 +00:00