Commit Graph

440 Commits

Author SHA1 Message Date
Robert Osfield
38542c3986 Removed double return error 2007-10-03 19:54:30 +00:00
Robert Osfield
c40f395e22 Refactored the plugin and library naming to fix Cygwin plugin loaded issues. 2007-10-03 12:04:47 +00:00
Robert Osfield
55d5a4d28a Introduced a OSG_PLUGIN_PREFIX variable into CMake build system with it set to
"" for all platforms except Cygwin where its set to "cygwin_" and Mingw where
it is set to "mingw_".  Updated osgDB::Registry to look for these for the plugins.
Updated the osgintrospection example to search for these names as well.
2007-10-02 21:26:22 +00:00
Robert Osfield
38d33c7685 From Paul Martz, "here's the osgDB::Registry changes to add Options to the read*File() interface. As we discussed, this preserves the old interface for backwards compatibility.
osgconv also changed to use the new Registry::writeNode() interface. No other applications or examples were affected."
2007-09-30 19:53:02 +00:00
Robert Osfield
63789c81b9 From Mathias Froehlich, compile fix for HP-UX without large file support 2007-09-27 12:15:39 +00:00
Robert Osfield
2640fd1456 Added IntensityMap reading in .view files 2007-09-26 14:02:40 +00:00
Robert Osfield
9f3783929a Changed iterator name to avoid warning 2007-09-24 10:31:35 +00:00
Robert Osfield
5fb9673382 Added supoort for OSG_WRITE_OUT_DEFAULT_VALUES env var 2007-09-19 16:53:40 +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
41dc911166 Setting for new option for hinting whether to write out default values 2007-09-16 17:46:33 +00:00
Robert Osfield
8e7e6529be From David Callu, warning fixes 2007-09-07 15:03:56 +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
92b1e7d53f Changed tabs to four spaces to make merges more straight forward 2007-09-05 17:03:43 +00:00
Robert Osfield
06a0ca8d06 From Jean-Sebastien Guay, fixed comment 2007-08-26 10:24:18 +00:00
Robert Osfield
09f63eebbb Added support for reading a .osg style data from a file string when trailed by a .osgs extension i.e.
osgviewer "osgTerrain::Terrain { ElevationLayer { CartesianLocator 0 0 1000000 1000000 Image ps_height_512.tif } ColorLayer { CartesianLocator 0 0 1000000 1000000 Image ps_texture_1k.tif } }".osgs
2007-08-24 19:16:02 +00:00
Robert Osfield
056a9bc491 Added support for setting DatabasePager thread priority via OSG_DATABASE_PAGER_PRIORITY. 2007-08-24 14:00:44 +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
616f64cf2c From Jean-Sebastien Guay,"As discussed yesterday on the osg-users list, I have altered
src/osgDB/FileUtils.cpp to implement the official Windows DLL search
order as described on the page
http://msdn2.microsoft.com/en-us/library/ms682586.aspx . As mentioned,
the search order is now:
    1. The directory from which the application loaded.
    2. The system directory. (C:\Windows\System32 by default, gotten using the
       GetSystemDirectory function)
    3. The 16-bit system directory. (C:\Windows\System by default, gotten by
       adding "\System" to the path gotten in the next step...)
    4. The Windows directory. (C:\Windows by default, gotten using the
       GetWindowsDirectory function)
    5. The current directory. (".")
    6. The directories that are listed in the PATH environment variable. (as
       before)

The first four directories are obtained using Win32 API calls, so they
should work correctly even on non-standard Windows installs.

The changes are well commented and should be clear, even to someone
not familiar with the Win32 API.

I have tested in a few scenarios and it works as expected. Serge Lages
has also tested the changes and confirmed they worked as described. I
have not had any other reports though (positive or negative).

I also fixed the issue with a trailing semicolon on the PATH adding an
empty string to the end of the search paths, as this was an
inconsistent side effect rather than a desirable effect. This change
will take effect on other platforms as well, but since it tests for an
empty string in the last item added to the search paths, it should
have no adverse effect.
"
2007-08-23 14:10:31 +00:00
Robert Osfield
cde5e45ac7 From Antione Hue and Robert Osfield, moved prepend in front of lib entry. 2007-08-19 19:22:14 +00:00
Robert Osfield
ffc8123a73 Changed the tolower of the file extension into the plugin name construction code.
Added support for CompositeLayer.
2007-08-16 18:49:46 +00:00
Robert Osfield
babe9f6de0 Added preprending of osgPlugins-version to plugin names 2007-08-11 17:44:06 +00:00
Robert Osfield
d57a16e023 Added DisplaySetting::s/getCompileContextHint() and use of this hint in osgViewer::Viewer/CompositeViewer.
Removed the CustomViewer in osgterrain example as the above now removes the need for it.
2007-08-11 14:49:14 +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
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
a28588a84c Introduce GraphicsOperation subclass from osg::Operation, and osgUtil::GLObjectOperation
for compiling subgraphs.
2007-07-13 17:25:35 +00:00
Robert Osfield
ecf0b58a19 Renamed include/osg/OperationsThread to OperationThread.
Created a new GraphicsThread subclass from OperationThread which allows the
GraphicsContext specific calls to be moved out of the base OperationThread class.

Updated the rest of the OSG to respect these changes.
2007-07-12 15:54:45 +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
3b1c5c3b96 Introduced a destruct method to help clean up the Registry. 2007-06-07 11:19:02 +00:00
Robert Osfield
9497d75cc9 Added support for version of the osgPlugins directory, which now gets versioned
according to the OpenSceneGraph/CMakeLists.txt and the include/osg/Version settings.
These changes mean that the 1.9.5 release will have a libs/osgPlugins-1.9.5 directory.
2007-05-20 12:29:11 +00:00
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
52b5b468d5 Added OpenVRML support 2007-05-05 16:11:30 +00:00
Robert Osfield
3809d0dad0 Moved the OpenThreads link locally to each lib 2007-05-03 10:06:38 +00:00
Robert Osfield
20f8fedfcc From Jeremy Moles, Added check for image transluceny to image loaded code, placing
the image quad into the transparent bin for images with alpha values.
2007-04-24 19:08:52 +00:00
Robert Osfield
4371d22682 Added compile path support for XINE, Inventor and LibXML 2007-04-24 12:59:23 +00:00
Robert Osfield
f242570269 Unified the setup of version numbers so that they all are based on the version
number setup in the include/osg/Version header file.
2007-04-22 20:19:43 +00:00
Robert Osfield
68a6882d04 Bumbped the version number up to 1.9, in preperation for using odd release numbers
for development releases, odd versions for stable releases.
2007-04-16 06:03:22 +00:00
Robert Osfield
2e6ee4bb39 Removed old gmake and VisualStudio build files 2007-04-10 13:10:25 +00:00
Robert Osfield
b419fa93ef From Luigi Calori, "when we link against something that comes out from a Find... we ususally have a variable <LINK_VAR_NAME>available like OPENTHREADS_LIBRARY,
so I' ve set up a macro that uses the variable name expanded for linking, and  test if a variable ${LINK_VAR_NAME}_DEBUG
like OPENTHREADS_LIBRARY_DEBUG exists and in case uses it for linking in debug mode.
I' ve also set up FindOpenThreads to set up these variables.
I had to edit the core libraries CMakeLists to add the calls to the macros used.
I' ve tested under MSVC"
2007-03-26 13:02:38 +00:00
Robert Osfield
db6f07f1d6 Ran dos2unx of CMakeLists.txt files 2007-03-08 15:31:36 +00:00
Robert Osfield
f50ed9667a From Eric Wing and others, first cut of CMake build support 2007-03-04 13:05:33 +00:00
Robert Osfield
42689e83ef Removed ReentrantMutex 2007-02-26 11:23:55 +00:00
Robert Osfield
f43cd7332c Further work on add serialization support for osgViewer configurations 2007-02-25 20:05:23 +00:00
Robert Osfield
ad3cac84e9 Moved Block, ReentrantMutex and ReadWriteMutex into OpenThreads. 2007-02-23 16:31:34 +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
2f1bad5b2b From Brian Keener, fixes for Cygwin filename handling 2007-02-08 22:31:02 +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
fdc5ebc900 Build fix for Win32 2007-01-18 09:03:08 +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
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
9a31b7652e Added mutex to lock of ReentrantMutex 2007-01-04 20:50:35 +00:00
Robert Osfield
4f87afdbf5 Improved the robustness of thread start and cancellation 2007-01-03 16:06:12 +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
d0cc014f1b Further migration to using RenderInfo 2006-11-14 12:51:31 +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
fa76f7e973 Added a _threadHoldingMutex = 0; to ReentrantMutex::unlock() to avoid a potential
bug with the mutex being aquired by two threads.
2006-09-15 10:21:24 +00:00
Robert Osfield
87a221445e Updated version numbers of the up comming 1.2 release 2006-08-31 20:54:28 +00:00
Robert Osfield
71c79506e9 From Eric Wing, compile fix for OSX 2006-08-21 21:09:40 +00:00
Robert Osfield
132f9ead45 Updated version number for 1.1.1 release 2006-08-12 08:29:16 +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
43e65c11b1 Added if search for the current databaseRequest in the _fileRequestList to handle
cases when the request is moved back in the list, or when the _fileRequestList is cleared
by an asyncronous call to DatabasePager::clear().
2006-08-03 19:14:52 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
88609a5eee Updated version numbers for 1.1 release 2006-07-06 10:28:12 +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
16d844090f From Joan Abadie: patch fixes : "osgDB::makeDirectory doesn't work on win32 when using full path name like : "d:/demo"
it tryes a mkdir("d:")."
2006-06-08 11:22:45 +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
1c83e3ecfb From Ed Ralston, "According to the OSX Developer Documentation, CFRelease
cannot be called with a NULL argument.

This patch prevents osgDB::FileUtils from doing this."
2006-02-20 16:20:50 +00:00
Robert Osfield
4bc13ec71b From David Guthrie, OSX marco reworking to better handling different OSX versions. 2006-02-05 21:53:37 +00:00
Robert Osfield
f09259f4f9 Improved the env var reporting to avoid the overlong lines. 2006-01-23 20:38:28 +00:00
Robert Osfield
4167bc3673 Standardised compile code to use _maximumNumOfObjectsToCompilePerFrame. 2006-01-02 12:03:18 +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
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
0e16b64665 Coverted tabs to space in core libraries. 2005-11-17 13:35:53 +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
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
6ed9cb40cc From Colin McDonald, fixed image size calculation in getTotalSizeInBytesIncludingMipmaps(),
added checks on success of opening files for writing in the .ive plugin.
2005-11-08 13:51:28 +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
fe1536ebd6 Fixed compile warnings. 2005-10-24 13:46:31 +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
Robert Osfield
3810d3b850 From Norman Vine, fixed small typo. 2005-08-30 09:33:42 +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
07af23e280 From Eric Wing, fix to be able to handle "spacial" characters under OSX. 2005-07-26 20:31:43 +00:00
Robert Osfield
0d8e38f9ee Tweaks for better OSX paging support, 6 and 9 keys for control drive manipulator
up and down looking, and removed redundent API from osg::Geometry.
2005-07-07 14:14:38 +00:00
Robert Osfield
bad47e0fe0 From David Guthrie, "The call NSLookupAndBindSymbol was changed to
NSLookupSymbolInModule.  The former call would lookup the named
symbol NOT in the current dynamic library, but in the entire running
program while the call NSLookupSymbolInModule, takes the handle to
the library the symbol should be found in.  This means the current
code will fail if one loads multiple bundles at runtime and attempts
to load the same named symbol from each one."
2005-06-24 15:30:11 +00:00
Robert Osfield
80a99a2559 From Ken Sewell, fixed for x86_64 build. 2005-06-13 11:14:42 +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
ac5ffa2bec Added support for reading:
OSG_MINIMUM_COMPILE_TIME_PER_FRAME <float>

and

   OSG_MAXIMUM_OBJECTS_TO_COMPILE_PER_FRAME <int>

environmental variable during the initialization of the DatabasePager
to allow apps to be tweaked for best database pager behavior.
2005-05-30 16:15:11 +00:00
Robert Osfield
fcd2f504e6 Added check for an empty compile lists. 2005-05-24 10:46:21 +00:00