Commit Graph

128 Commits

Author SHA1 Message Date
Robert Osfield
c7b9a07758 Added checks against Options to osga plugin to ensure archives are only cached
when requested, cleaned up the Registry::openArchiveImplementation function.
2007-05-10 08:20:33 +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
4371d22682 Added compile path support for XINE, Inventor and LibXML 2007-04-24 12:59:23 +00:00
Robert Osfield
f43cd7332c Further work on add serialization support for osgViewer configurations 2007-02-25 20:05:23 +00:00
Robert Osfield
dbb7c3c74c Added support for using the new osgShadow plugin as a psuedo loader such that:
osgviewer cow.osg.shadow

Or to ShadowVolume rechnique specifically:

  osgviewer cow.osg.sv.shadow
2007-02-15 22:28:32 +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
7626169283 From Jan Ciger, Tolga Abaci, Bruno Herbelin : OpenVRML 0.14.3 based .wrl/VRML plugin 2007-01-09 14:35:59 +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
7e0a183032 Added fix to code catching error results ReadResult's to first instance of checking the
value of ReadResult.
2006-08-05 20:39:47 +00:00
Robert Osfield
6c419af79c From Jeremy Moles, refactored by Robert Osfield.
Fixed bug osgDB::Registry::Registry::read(const ReadFunctor& readFunctor) relating to
the handling of failed loads with the ReadResult::_message value being lost, this changes
ensure that the original ReadResult from the plugin, with message intact, is returned correctly.
2006-08-05 20:36:49 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
7511fce540 Fix to Registry::read(ReadFunctor) to better handle reporting of errors 2006-07-04 12:57:59 +00:00
Robert Osfield
c3548195f7 Made the new OpenFlight plugin the default. 2006-06-28 10:22:04 +00:00
Robert Osfield
3246dde716 From Brede Johansen, new OpenFlight plugin!!!!!
By default the original flt plugin is still used, to select at runtime
the new plugin set the env OSG_OPEN_FLIGHT_PLUGIN=new
2006-03-08 21:38:37 +00:00
Robert Osfield
7604146d3f From Farshid Lashkari, "A while back the behaviour of extension alias' was modified so that
the user can override existing alias'. The change allowed for circular
references, so the createLibraryNameForExtension would get caught in
an endless loop. The following fix will catch circular references."
2006-03-08 15:30:07 +00:00
Robert Osfield
c465036a7c Removed "if (mapExt!=toExt)" from alias map assignement to allow aliases to
be overriden for all cases.
2005-12-20 09:29:26 +00:00
Robert Osfield
197b68ecb8 Removed the closeLibraries call from the registry singleton desctuction. 2005-12-05 10:23:37 +00:00
Robert Osfield
4e580f46cf From Gideon May, "I've added an alias for the new mpeg 4 format used by quicktime and
podcasts."
2005-11-15 21:24:35 +00:00
Robert Osfield
4ea3956fda From Norman Vine, "Cygwin uses unix style path separators" 2005-11-07 11:09:59 +00:00
Robert Osfield
0956f3cdb4 From Marco Jez, Fix for the class name lookup in osgDB::Registry::writeObject(), which can silently fail when a NodeKit's class (for example osgNVCg::Program) has the same name as that of an OSG's class (for example osg::Program). 2005-10-28 18:39:14 +00:00
Robert Osfield
032b7484d4 From Markus Trenkwalder, added meanigful return types in
Registry::read(const ReadFunctor& readFunctor) for ERROR_IN_READING_FILE and
FILE_NOT_FOUND cases.
2005-10-25 09:54:15 +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
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
07af23e280 From Eric Wing, fix to be able to handle "spacial" characters under OSX. 2005-07-26 20:31:43 +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
9534cd8638 Removed rgb alias for Quicktime mapping since the Quicktime is not reliable
at loading all rgb files that the standard OSG rgb reader can read.
2005-05-05 20:05:11 +00:00
Robert Osfield
483242c9db Cleaned up the xine plugin to better handle unsupported video files. 2005-04-22 13:32:46 +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
72a0e38ed0 From Stephan Huber, changed fixed string sizes for dynamically allocated ones in OSX file system gets. 2005-04-08 18:46:51 +00:00
Robert Osfield
cd8634776d From Stephan Huber (contains Registry.cpp changes from David Guthrie):
"Attached is the new source for the Quicktime-Plugin which adds the
ability to write pictures in various formats (tested: jpg, png, tif,
psd) (24bit + 32bit only, 8bit not tested)

There are changes in the attached osgDB::Registry, which allows osg to
find resources/plugins in the right folders under OS X"

Note, from Robert Osfield, changed the FilePathList* filepath + delete to a
FilePathList filepath to avoid possible memory leaks when expections are thrown/
make it more maintainable.  Also didn't merge the automatic playing of movies.
2005-04-08 13:52:03 +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
7fca7456ce Added video aliases to xine plugin 2005-03-03 12:35:07 +00:00
Robert Osfield
3ff22d526c From Tree, change to naming of plugins when building OSG with Java to avoid
conflicts.
2005-01-07 20:01:06 +00:00
Robert Osfield
c0c02d6c24 Fixed caching of archives 2004-11-25 15:09:56 +00:00
Robert Osfield
46c46fba78 Fixed VS.NET warnings 2004-11-23 23:47:25 +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
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
2b310c6926 Added support for serialization of calls to ReaderWriter plugins. 2004-11-15 19:46:10 +00:00
Robert Osfield
06f1b602e7 Fixed the passing of the parsed server name/server file when handling files
via the .net plugin
2004-11-13 16:18:15 +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
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
2027011beb Added support for http reading into the readObject, readImage and readHeightField methods
complimenting the previously checked in readNode supoort.
2004-10-06 15:15:01 +00:00
Robert Osfield
38a0e6bf4e Added support for parsing http:// names and mapping automatically to use
the .net plugin
2004-10-06 13:11:04 +00:00
Robert Osfield
9dc35ce47a Added mutex to access to the Registry::_objectCache. 2004-09-06 18:20:38 +00:00