Commit Graph

6978 Commits

Author SHA1 Message Date
Robert Osfield
f8665ebfdb Refactored the find_last_of to simplify it. 2010-03-10 12:04:14 +00:00
Robert Osfield
6ae2f4c6c6 From Sukender, "Here is my proposal. I fixed what Paul said, added some doxygen comments, added the function I told about, and removed the two "find('/')"-like calls to use only one." 2010-03-10 11:40:17 +00:00
Robert Osfield
1d036c0e8c From Laurens Voerman, "my compiler (VC Express 9) gives some warnings (see below) about not being able to generate an assignment operator. As those assignment operators are not used and problably should never be used, I solved this by creating an private (empty) assingment operator.
"

From Robert Osfield, added "return *this;" to Laurens's addition to prevent them generating a warning under gcc...
2010-03-10 10:32:58 +00:00
Robert Osfield
6dc1ec6c4e From Stephan Huber, "attached you'll find a small bugfix for the 3ds-reader. It allows
reading files with relative paths again. (Hard to explain, easy to see
in the diff)"
2010-03-10 10:10:57 +00:00
Robert Osfield
bafe1d0b94 Added automatic updating of the OpenThreads version number from the CMake version numbers 2010-03-10 09:37:04 +00:00
Robert Osfield
4bc287cedb Added extra ffmpeg version check 2010-03-08 10:20:14 +00:00
Robert Osfield
c765a35650 From Wojcoech Lewandowski, "Attched are aimShadowCastingCamera() call changes, I have described in former post. Basically now MinimalShadowMap overrides first variant and keeps second. So both variants of aimShadowCastingCamera are clearly defined in MinimalShadowMap::ViewData scope. This way compilers have no problem and code looks less obscure. Changes made against the trunk." 2010-03-05 16:17:12 +00:00
Robert Osfield
8743e5d925 From Mathias Froehlich, "Not so long time ago, there was a complaint about the ac3d plugin not honoring
absolute filenames for the texture images.

The attached change should fix this by at first looking at the absolute file
name to load a texture and then, if that fails, strip away any paths to try
that again with the bare file name.
The change also fixes a possible exception that could be triggered by an out
of bounds std::string access which is now avoided by using functions from
osgDB/FileUtils.

The change is based on rev 11161."
2010-03-05 16:08:34 +00:00
Robert Osfield
7db099a9d1 Fixed warning 2010-03-05 16:07:12 +00:00
Robert Osfield
84c0ecadd8 Fixed usage of osg::swapBytes to properly pass in pointer to data that needs swapping. 2010-03-05 16:04:30 +00:00
Robert Osfield
10a2f389d7 From Mathias Froehlich, "If you want to have that qfont plugin loader, this is the updated
implementation which uses osgQt and includes the changes to make fonts load
without a file on disk."
2010-03-05 15:46:17 +00:00
Robert Osfield
737378c967 Replaced find_first_of with find 2010-03-05 15:36:32 +00:00
Robert Osfield
e401fa7461 Replaced find_first_of with find. 2010-03-05 15:17:26 +00:00
Robert Osfield
e77fafcd98 From Sukender, "Here is a tiny fix for getNameLessExtension(). It does now check for the presence of slashes ('/' and '\') to avoid changing the string when having a dot in a directory.
Old behaviour: "abc.d/filename_no_ext" -> "abc"
New behaviour: "abc.d/filename_no_ext" -> "abc.d/filename_no_ext"

Attached file is against rev. 11158."
2010-03-05 15:10:34 +00:00
Robert Osfield
073a60b2a1 Fixes for warning from qt headers 2010-03-05 15:08:03 +00:00
Robert Osfield
f497cd3c24 Fixed warnings 2010-03-05 15:04:36 +00:00
Robert Osfield
86f491e649 Replaced use of unsigned int/enum mask combinations with int/enum mask combinations to avoid the need for casting enums to unsigned ints,
and to avoid associated warnings.

Update wrappers to reflect these changes.
2010-03-05 12:55:08 +00:00
Robert Osfield
3cd0c50df3 From Mourad Boufarguine, "Some others modified CMake scripts :
- OsgMacroUtils.cmake, SETUP_LINK_LIBRARIES macro : allow linking with debug/release external libraries
- osgQt/CMakeLists.txt : fix the linking to Qt librairies + linking to debug Qt librairies if found
- examples/ qt examples :  linking to debug Qt librairies if found"
2010-03-05 12:43:03 +00:00
Robert Osfield
5383297cbe Change Shader::getPCS(..) from protected to public scope to enable isCompiled() method to be accessible in applications.
Updated wrappers
2010-03-05 11:30:50 +00:00
Robert Osfield
c40a4ff9cb Changed Options::setDatabasePath(..) usage to getDatabasePathList().push_front() to paths set by Options to be picked up. 2010-03-05 11:19:34 +00:00
Robert Osfield
e01832763d Fixed warning 2010-03-05 10:58:47 +00:00
Robert Osfield
d52910ff67 Fixed warning 2010-03-05 10:50:50 +00:00
Robert Osfield
7e56f2d258 Fixed warning 2010-03-05 10:48:34 +00:00
Michael PLATINGS
0f58cc2628 Added BlendFunc for transparent materials 2010-03-04 17:01:33 +00:00
Michael PLATINGS
65489693d9 Fix for some FBX files with multiple meshes bound to a bone. 2010-03-04 16:27:19 +00:00
Robert Osfield
ace8dad2c3 Fixed warnings 2010-03-04 13:03:18 +00:00
Robert Osfield
f1dd820a4e From Michael Platings, "Here are a couple more fixes on top of what you've already done." (in reply to fixes submission from Roland Smeenk). 2010-03-04 12:59:53 +00:00
Robert Osfield
225d99c5f1 From Roland Smeenk, "I took a quick look at the warnings and they contain nothing serious.
Attached you will find updates of the files to hopefully solve the warnings (in VS2005 only one warning occured). In addition I fixed a tiny bug that caused a crash with one of my test files."
2010-03-04 12:57:24 +00:00
Robert Osfield
4282b284e5 From Mathias Froehlich, Integration of osgText::Font with QFont to enable use of Qt fonts and selectors in osgText. 2010-03-04 12:43:09 +00:00
Robert Osfield
1a1b7bd7a1 Moved QWebViewImage and QGraphicsViewAdapter into new osgQt utility library. 2010-03-04 12:15:35 +00:00
Robert Osfield
44f8848c9f Removed now redundent call to register PagedLODs 2010-03-04 12:14:39 +00:00
Robert Osfield
5a47744e0d Removed old net plugin that is nolonger used. This plugin can be found in the deprecated/src/osgPlugins/net respository 2010-03-04 11:45:44 +00:00
Robert Osfield
7e5dd8ce17 Ran dos2unix of files to fix issues with file endings 2010-03-03 17:24:04 +00:00
Robert Osfield
9f8a4be2cd Refactored DatabasePager so that it nolonger takes ref_ptr<PagedLOD>, but instead uses a custom version of observer_ptr<>.
This change should make it possible to delete PagedLOD's independantly from the DatabasePager, and also prevent issues of
consistency of the pager when subgraphs when are cached elsewhere in the application such as in the Registry filecache.
2010-03-03 16:40:19 +00:00
Robert Osfield
d3779f0092 Fixed warning 2010-03-03 16:37:45 +00:00
Michael PLATINGS
fd6f3edf15 2010-03-03 16:14:04 +00:00
Michael PLATINGS
2609c4aa02 2010-03-02 18:18:06 +00:00
Robert Osfield
1f4060ead6 Updated wrappers 2010-03-01 13:10:58 +00:00
Robert Osfield
ba3971bb45 Added a ShadowTechnique::computeOrthogonalVector(const osg::Vec3& direction) const method for helping compute an appropriate
up vector to setViewMatrixAsLookAt(..) codes in osgShadow.  This will addresses previous issues that occured when look vectors
co-incided with the hard coded up vectors.
2010-03-01 13:00:04 +00:00
Robert Osfield
42a050e87c From Wojciech Lewandowski, "Here comes a list of small fixes in StandardShadowMap and derived classes affecting LispSM techniques. Changes made against SVN trunk.
Fixes in StandardShadowMap.cpp & MinimalShadowMap.cpp were made for spotlight issues. There were cases when further located spotlights were not shadowing properly.

Small tweak in DebugShadowMap & StandardShadowMap.cpp to not limit shadow maps to texture2D (which should also allow texture2D arrays and cube maps). I simply replaced ptr to osg::Texture2D with pointer to osg::Texture. Interpretation of this member could be now changed with change of shaders in derived classes. This may be useful for guys who override LispSM or MinimalBoundsShadowMaps techniques. Could be useful for implementation of PerspectiveCascadedShadowMaps technique for example.

ConvexPolyhedron.cpp & DebugShadowMap.cpp contain debug HUD tweaks.

Change in ConvexPolyhedron.cpp overcomes the regression problem with color per primitive binding which caused that shadow volume outlines stopped to draw. I simply changed PER_PRIMITIVE to PER_PRIMITIVE_SET and it works again.

Other adition is dump method I added to DebugShadowMap which can be used in shadow debugging mode to dump current frame shadow volumes & scene to osg file. It could be then loaded into viewer and freely examined from different angles (which is difficult inside the application if shadow adopts to view and projection). "
2010-03-01 11:52:44 +00:00
Robert Osfield
3d6b53b218 Updated wrappers 2010-02-26 21:31:13 +00:00
Robert Osfield
15947b4e6a updated wrappers 2010-02-26 16:02:20 +00:00
Robert Osfield
3b43810c66 From Paul Martz, "Regarding the osg-users thread "mergeGeodes crash", I'm submitting this for consideration as a fix for the problem with the FlattenStaticTransformsVisitor. It seems that the additional nested loop over the Transform's parent was not needed. I'm not sure why it was there, and if it really was unnecessary, then it has probably been resulting in many redundant Nodes for quite some time. Perhaps this fix will result in a cull- and draw-time performance boost."
From Robert Osfield, added copying of the UserData and Descriptions from the transform to the new group.
2010-02-26 15:40:19 +00:00
Robert Osfield
dbe854e9b0 From Raymon de Vries, "I've made a small change to DirectShowTexture.cpp: in the options for the directshow plugin it is possible to specify the capture device by number. For instance:
options->setPluginStringData("captureVideoDevice", "0");

Lines added in getDevice() are:
      int deviceId = atoi(name.c_str());
      if(deviceId >= 0 && deviceId < (int)_listDevice.size())
        return _listDevice[deviceId];

This makes it easy to use a capture device without knowing it's name. Attached is the whole file against rev 11044"
2010-02-26 15:01:00 +00:00
Robert Osfield
bbca791251 From Michael Platings, "Here's the all-new, all-dancing DAE plugin, with support for reading
osgAnimation. It's been tested with the majority of the samples in the
COLLADA test repository and works with all of them either as well as, or
better than, the version of the plugin currently in SVN.

Known issue: vertex animation (AKA morphing) doesn't work at present,
but that's a relatively unpopular method of animating so it's not high
on my priority list."

Follow up email:
"I've been informed that the previous DAE submission didn't build on
unix, so here's the submission again with the fixes.  Thanks to Gregory Potdevin and Benjamin Bozou.
Also, my apologies to Roland for not crediting his part in making DAE
animation happen, my work was indeed built on top of his work. Thanks
also to Marius Heise and of course Cedric Pinson."

Changes by Robert Osfield, fixed compile issues when compile without C* automatic conversion enabled in ref_ptr<>
and constructor initialization fixes to address some warnings under gcc.
2010-02-26 14:41:50 +00:00
Robert Osfield
e9fa0bc5e3 Updated wrappers 2010-02-26 14:36:23 +00:00
Robert Osfield
d50eacd07e From Paul Martz, "The changes are very similar to Magne's, except they now take the near plane into account. The changes are:
* Change OcclusionQueryNode::getPassed to take a NodeVisitor rather than the distance from BS center to the eye point. Change where CullVisitor calls this method to use the new parameters.
 * getPassed now exits early and returns true to avoid blinking / blink-in of geometry for the first frame or for out-of-range LOD children coming back into view.
 * getPassed now considers the distance from the near plane to the bounding sphere (rather than eye point to bounding sphere) when determining if the viewer is "inside" the bounding sphere or not."
2010-02-26 10:13:28 +00:00
Robert Osfield
75527fd800 From Paul Martz, "Summary: GL3 deprecates "glGetString(GL_EXTENSIONS)". In GL3, individual extension strings are queried by looping over GL_NUM_EXTENSIONS and calling "glGetStringi(GL_EXTENSIONS,<index>)".
The fix is basically as follows:
 if( GL3 )
   Query indexed extension strings.
 else
   Query the old way.

The "else" branch is re-indented but otherwise shouldn't contain any changes."

From Robert Osfield, added #if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) to new block to prevent it
being compiled under GLES where no glGetStringi exists.
2010-02-26 10:03:01 +00:00
Robert Osfield
0e29cd6971 From Paul Martz, "Summary: GL3 deprecates "glGetString(GL_EXTENSIONS)". In GL3, individual extension strings are queried by looping over GL_NUM_EXTENSIONS and calling "glGetStringi(GL_EXTENSIONS,<index>)".
The fix is basically as follows:
 if( GL3 )
   Query indexed extension strings.
 else
   Query the old way.

The "else" branch is re-indented but otherwise shouldn't contain any changes."
2010-02-26 09:48:22 +00:00
Robert Osfield
eb23514478 From Sukender, "I tried a tiny change in is83() function and had no crash (under Windows). "osgconv cow.osg cow.3ds" exports a black cow and "osgconv lz.osg lz.3ds" exports tree(s) at (0,0,0)... I guess there are still things to do about non-zero-index textures and multiple instanciation of a node, but at least it doesn't crash." 2010-02-26 09:33:48 +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
8c4da68338 From Philip Lownman, "The libpng project decided to rename png_set_gray_1_2_4_to_8() to
png_set_expand_gray_1_2_4_to_8() with the 1.2.9 release.  This
submission fixes builds of the OSG against versions of libpng < 1.2.9
that don't have the new symbol available.  This affects platforms like
Red Hat Enterprise Linux 4 which come with libpng 1.2.7."
2010-02-26 08:55:50 +00:00
Robert Osfield
bc202cd4bb From Terry Welsh, "As discussed on the osg-users list, I have implemented these rules in
Text and Text3D:

1.  A new line should be started after a line's last hyphen or before
its last whitespace.
2.  If no suitable place to break a line is found, just start new line
after the last character that fits on the line.
3.  Whitespace should be removed from the beginning of the new line
(already worked in Text, but not in Text3D).

Line wrapping looks a lot better now with no more lone periods
appearing at the beginning of lines.

Also, right-justified text is more accurate now (slashes would hang
off the end of lines before).  With this new code I spotted one
instance where a hyphen stuck out too far, but in general it looks
better.  Centered text was not perfect before and still isn't, but I
can't see any significant increase or decrease in quality.  The casual
observer would probably never notice a problem.

Also fixed a whitespace problem in Text3D.  Not all whitespace was
being removed from the beginning of lines.  Now it is all being
removed in the same manner as in Text."
2010-02-25 18:17:20 +00:00
Robert Osfield
7ca071192e From Erik Johnson, "There is an issue on win32 if the application hides the cursor using GraphicsWindowWin32::useCursor(false). The cursor has a habit of re-showing itself.
To reproduce, on win32:

-Run osgViewer in a windowed mode, with the cursor off, as such:
    osgViewer::Viewer::Windows windows;
    viewer.getWindows(windows);
    for(osgViewer::Viewer::Windows::iterator itr = windows.begin();
       itr != windows.end();
       ++itr)
    {
       (*itr)->useCursor( false );
    }

-Quickly move the cursor into the window  (cursor it should be hidden)
-Resize the window by dragging the border (notice the cursor changes to "resize" cursor)
-Move the cursor back to the inside of the window (notice the cursor is not hidden anymore)

The attached SVN patch will set the cursor to a "NoCursor" during useCursor(false).  This correctly stores the no cursor state, so it can be rejuvenated after a future cursor change.  This patch also fixes a couple instances where a hidden cursor should show itself, like when it's on the title bar, or the window close button."
2010-02-25 18:05:59 +00:00
Robert Osfield
444361272f From Trajce Nikolov, "attached is some fix for the directshow plugin. Cleans up the build warnings as well makes the code a bit safer" 2010-02-25 18:01:25 +00:00
Robert Osfield
605ad76691 From Wang Rui, "Attached is the osgTerrain wrappers, based on the latest SVN version
of OSG. I modified the osgDB::InputStream and OutputStream and the
PagedLOD wrapper as well. Now all seems to work fine with paged
scenes. I've tested with the puget terrain data and the osgdem
application from VPB:
# osgdem --xx 10 --yy 10 -t ps_texture_4k.tif --xx 10 --yy 10 -d
ps_height_4k.tif -l 8 -v 0.1 -o puget.osgb

As the ive plugin does, The PagedLOD wrapper now automatically add the
latest file path to PagedLODs' databasePath member, to help them find
correct child positions. I also changed the image storage strategy of
the OutputStream class, to store them inline by default. The osgt
extension should also work, in case the image files are also written
to the disk.
"
2010-02-25 17:53:51 +00:00
Robert Osfield
26e68926f7 From J.P. Delport: "by some strange circumstance I've stumbled across the following problem:
I create a compositeviewer with two views that share a context. One view is deleted. Texture::TextureObjectSet::discardAllTextureObjects is called, but this does not reset _tail. Now the texture object is again created and addToBack is called from Texture::TextureObjectSet::takeOrGenerate. In addToBack (line 612) _tail is now not 0 (although the list should be empty) and a loop is created from the texture object to itself. Then when the second view is deleted, Texture::TextureObjectSet::deleteAllTextureObjects loops forever. Setting _tail to 0 fixes it for me (see attached)."
2010-02-25 17:18:46 +00:00
Robert Osfield
e3ad12c4f2 From Simon Buckley, "Attached is a small change to the file src\osgPlugins\dxf\dxfFile.cpp that allows the dxf reader to skip comments in a dxf file. I found with the existing version and a test file I had that the loader failed when comments were present. I made a very minor change to allow "999" comment codes to be skipped rather than causing load failure." 2010-02-25 17:13:15 +00:00
Robert Osfield
590bf9070d From Michael Platings, "There is a function, convertStringFromCurrentCodePageToUTF8() that would be useful outside the FBX plugin so it belongs in osgDB. I've attached ConvertUTF and ConvertUTF.cpp with the function added for you to commit at your convenience.
"
2010-02-25 17:07:34 +00:00
Michael PLATINGS
440bd7c3e3 2010-02-24 10:52:51 +00:00
Michael PLATINGS
6ec0e11b2a 2010-02-24 10:25:50 +00:00
Michael PLATINGS
4f72d66cbe 2010-02-24 10:12:11 +00:00
Michael PLATINGS
14ef0fa930 2010-02-24 10:02:14 +00:00
Robert Osfield
c16d55fa9b From Trajce Nicklov, fixes to warnings 2010-02-22 09:50:37 +00:00
Robert Osfield
e3a1f664b9 Seperated out the #define of GL_PERSPECTIVE_CORRECTION_HINT to fix GL3 build 2010-02-22 08:48:02 +00:00
Robert Osfield
7f454bef3e Converted View across to use ObserverNodePath. 2010-02-20 17:36:55 +00:00
Robert Osfield
4acaaa3274 Build fixes for GLES2 2010-02-19 21:03:33 +00:00
Robert Osfield
46f9e760ee Added include of osg/FrameBufferObject to fix GLES1/GLES2 build issue 2010-02-19 20:43:58 +00:00
Robert Osfield
521ad875cb Build fix for GLES1 and GLES2 2010-02-19 20:40:41 +00:00
Robert Osfield
b1001c2a9c Moved implementation of Observer destructor and constructor from header into .cpp to avoid possible issues with imports/exports under Windows build. 2010-02-19 20:18:48 +00:00
Robert Osfield
1924350e1c Added #include <osg/Notify>, convert osg::notify usage to OSG_NOTICE 2010-02-19 20:11:14 +00:00
Robert Osfield
657c5c4e71 Updated wrappers 2010-02-19 19:00:48 +00:00
Robert Osfield
dc728aa184 Removed no longer defined methods and updated wrappers 2010-02-19 14:05:49 +00:00
Robert Osfield
530c947c94 Added an InitGlobalMutexes to enforce early construction and hence late destruction of singleton mutexes. 2010-02-19 09:02:24 +00:00
Robert Osfield
a023250d07 From Mourad Boufarguine, fixed typo. 2010-02-18 22:20:11 +00:00
Robert Osfield
900ff985a7 Updated wrappers 2010-02-18 22:17:50 +00:00
Robert Osfield
ee09e94559 Updated wrappers 2010-02-18 22:17:35 +00:00
Robert Osfield
424183dd0e Updated version number of OpenThreads to reflect recent changes 2010-02-18 21:24:42 +00:00
Robert Osfield
bff9b565df Completed usage of ObserverNodePath to fix longstanding crash that occurred when nodes in parental chain of a newly loaded node had been deleted. 2010-02-18 21:21:59 +00:00
Robert Osfield
b09757bdb8 Refactored the osg::Referenced observerset code so that it now uses a dedicated ObserverSet class,
which utilises a global recursive mutex that is dedicated to manage Observer and ObserverSet.

The new global mutex for observers avoids problems with deadlocks that were occurring previously when
an osg::Refenced object was being deleted at the same time as on osg::ObserverNodePath.
2010-02-18 21:21:12 +00:00
Robert Osfield
f54b7d6141 Changed controls for changing animation speed to '(' and ')' to avoid overlap with window resize handler. 2010-02-18 21:15:28 +00:00
Robert Osfield
787daeeb93 Refactored the ReentrantMutex support so that it utilises the underling thread implementation for recusive mutex support. 2010-02-18 20:14:41 +00:00
Robert Osfield
8ad7a5c8a2 Fixed double addition of source node when doing ObserverNodPath::setNodePathTo()
Fixed comment in Referenced.cpp
2010-02-17 10:09:31 +00:00
Robert Osfield
dea5265d49 Updated wrappers 2010-02-16 08:53:56 +00:00
Robert Osfield
541c0e397b Upadted wrappers 2010-02-15 20:15:43 +00:00
Robert Osfield
ff38da1290 Refactor various NodeTracker and MatrixManipulator classes to use the osg::ObserverNodePath and osg::oberserver_ptr<> classes 2010-02-15 20:15:32 +00:00
Robert Osfield
4a567d9954 Introduced new osg::ObserverNodePath class that robustly manages a NodePath in a thread safe manner,
making it easier for users to track a NodePath even when nodes in the path get deleted.
2010-02-15 20:14:32 +00:00
Robert Osfield
644b2e15d1 Refactored the osg::Observer to introduce a new bool Observer::objectUnreferenced(void*) method that adds
the extra capability of making it possible for Observers to assume ownership of a object that would otherwsie be deleted.

Added a thread safe ref_ptr<T> observer_ptr<T>::lock() method for robust access to an observed object.  This
makes observer_ptr<> more equivilant to boosts weak_ptr.
2010-02-15 20:12:53 +00:00
Robert Osfield
a673abac3d Introduced OSG_WARN, OSG_NOTICE, OSG_INFO, OSG_DEBUG convinience macros that map to OSG_NOTIFY(osg::WARN) etc.
Introduced the OSG_NOTIFY_DISABLE Cmake variable + include/osg/Config #define to control whether the OpenSceneGraph build
should disable the notification system completely.  By setting OSG_NOTIFY_DISABLE to ON in CMake and then rebuilding the
the OSG you can get a slightly smaller (~1%) and more slightly efficient library which can be good for shipping applications,
but with downside of reduced ability to detect runtime problems and their causes.
2010-02-12 11:45:00 +00:00
Robert Osfield
9434b764a8 From Sukender, "- Added support for extended filenames (=not 8.3) for images: reads without crashing, optionnally write extended filenames (correctly truncate names if option is OFF). Write option is OFF by default.
- Improved identifiers generation in duplicate name handling (was limited to 1000 name collisions, which can be very short for some usages).
- Set all read/write operations use a custom log function that will redirect lib3DS log to osg::notify() (was only used for streams)
- Removed custom code (now uses osgDB::getFilePath())
- Added missing supportsOption() calls
- Cleaned a few minor things"
2010-02-11 11:56:43 +00:00
Robert Osfield
2c63a71694 From Alberto Luaces, "he new GNU linker, "gold", is going to replace soon the current ld in
almost all Linux distributions. Although it is 100% compatible with ld,
by default it gives an error if a library has unresolved symbols at link
time, that is, it has set -Wl,--no-undefined by default. Debian folks
have found that libosg.so and libosgDB.so use some functions belonging
to libdl.so {dlsym,dlopen,dlclose,dlerror} without linking to it.

My changes link those two libraries to libdl.so explicitly in the same
way it is already done for libm.so and librt.so."
2010-02-11 11:17:55 +00:00
Robert Osfield
3ec1a5618f From Wang Rui, "Just a minor fix of the src/osgDB/CMakeLists.txt, change:
SET(COMPRESSION_LIBRARIES ${ZLIB_LIBRARY})
...
LINK_EXTERNAL(${LIB_NAME} ${OSGDB_PLATFORM_SPECIFIC_LIBRARIES})

to

SET(COMPRESSION_LIBRARIES ZLIB_LIBRARY)
...
LINK_EXTERNAL(${LIB_NAME} ${OSGDB_PLATFORM_SPECIFIC_LIBRARIES}
${COMPRESSION_LIBRARIES})
LINK_WITH_VARIABLES(${LIB_NAME} ${COMPRESSION_LIBRARIES})


I notice that the LINK_EXTERNAL macro won't distinguish between debug
and release dependences, which means that osgDB will use the release
version of zlib for all build configurations. Under Win32, this will
cause a manifest problem: all applications using osgDB may complain
"failed to start because msvcr80.dll was not found" or similar
messages.

This change will make it back to normal."
2010-02-11 11:13:01 +00:00
Robert Osfield
653449a6a2 Fixed the rotation of normals 2010-02-11 11:06:12 +00:00
Robert Osfield
eac767d494 Added futher use of readSize/writeSize. 2010-02-11 09:13:33 +00:00
Robert Osfield
725258ea54 replaced reading and writing of std::container.size() using InputStream::readSize() and OutputStream::writeSize() to make
the type writing more explictly tied to the size type, with use of unsigned int as the default size.  This approach
ensures that we get the same results under 32 and 64bit builds.
2010-02-10 19:36:31 +00:00
Robert Osfield
5b1ca779e4 Added OutputStream::writeSize and InputStream::readSize methods to help out with ensure that 32bit and 64bit builds all
use the same 32bit type for sizes.
2010-02-10 17:03:09 +00:00
Robert Osfield
f3ee7fa6ba Fixed automatic loading of plugins 2010-02-10 16:23:27 +00:00
Robert Osfield
4e44073e6b Changed NOTIFY to OSG_NOTIFY 2010-02-10 15:18:20 +00:00
Robert Osfield
f17e401347 Convert NOTIFY to OSG_NOTIFY to avoid problems with polution of users apps with the NOTIFY macro 2010-02-10 12:44:59 +00:00
Robert Osfield
6ab51c7c47 Added pruning of requests that haven't been reissued since the last frame. 2010-02-10 11:21:45 +00:00
Robert Osfield
edd4b2fc84 Added enabling of threadsafe ref/unref in FileCache. 2010-02-09 19:30:52 +00:00
Robert Osfield
8d8037ee12 Converted osg::notify usage to NOTIFY 2010-02-09 18:24:37 +00:00
Robert Osfield
7103707815 From Wang Rui, "I also did a small fix to the ObjectWrapper header, to add a
OSGDB_EXPORT macro to RegisterCompressorProxy, and modified the
findCompressor() method to look for custom compressors in libraries
such like osgdb_compressor_name.so, which was described in the wiki
page chapter 2.4."
2010-02-04 10:20:17 +00:00
Robert Osfield
bdcddc10f8 Added #define for GL3 build 2010-02-03 09:35:36 +00:00
Robert Osfield
f3575e6a40 Added #defines for GL3 build 2010-02-03 09:35:05 +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
a492e2b631 From Serge Lages, build fix 2010-02-01 10:04:56 +00:00
Robert Osfield
380fb17fa9 Build fixes for build without ref_ptr<> automatic type conversion 2010-01-31 18:24:01 +00:00
Robert Osfield
b2270e7f38 From Jan Peciva, "I am sending improved version of Inventor plugin. Attaching just
modified files, while GroupSoLOD.h and .cpp was deleted. Please, delete
it from repository, it is not used any longer and I doubt if it is
probably not used for anything meaningful for a while. In the new code,
there is no GroupSoLOD. Please, delete it.

I am using new plugin version for about 1.5 month so I consider it
stable by myself.

List of changes:
- rewritten Inventor state stack
- shaders support
- light attenuation support
- support for reading from stream (readNode(std::istream& fin, options))
- improved grouping node handling (SoSeparator, SoGroup,...)
- fixed transformation bug when two SoShapes/Drawables with different transformations are placed bellow one grouping node
- introduced preprocessing to handle more advanced usage schemes of SoLOD and SoSwitch nodes
- unused code clean up
- improved notify messages
- animation callbacks fixes
- FindInventor.cmake improved finding routines, support for Coin3 and Coin4"
2010-01-31 12:55:29 +00:00
Robert Osfield
874296cbb3 Changed GeometryTechnique::private to protected, updated wrappers 2010-01-29 17:20:58 +00:00
Robert Osfield
ff5d1fc195 From Trajce Nikolov, bug fixes 2010-01-29 14:55:52 +00:00
Robert Osfield
f02beb657b Removed redudent string; 2010-01-29 11:58:14 +00:00
Robert Osfield
94e3b5a345 From Wang Rui, osgText serializers and support for PagedLOD+ProxyNode 2010-01-29 11:35:09 +00:00
Robert Osfield
4ae1c275f2 Updated wrappers 2010-01-28 12:10:17 +00:00
Robert Osfield
8d614df6b1 Updated wrappers 2010-01-28 11:47:28 +00:00
Robert Osfield
82f49fc566 Fixed typo 2010-01-28 11:44:19 +00:00
Robert Osfield
a5f3d0c661 From Martin Lambers, "Fix static linking with EXR plugin on MinGW" 2010-01-28 10:59:00 +00:00
Robert Osfield
2af633352b Fom Sukender, "Added copyFile() and comments in FileUtils."
From Robert Osfield, build fix for linux/gcc and reformating to keep coding style consistent with rest of OSG
2010-01-28 10:45:40 +00:00
Robert Osfield
56cf703094 Added files back in with the execution bit correctly disabled. 2010-01-28 08:59:23 +00:00
Robert Osfield
91f8306d63 Removed files as they all have the incorrectly have the execution bit enabled, will add back in with this fixed. 2010-01-28 08:58:05 +00:00
Robert Osfield
db275d7c26 From Wang Rui, added osgParticle serializers 2010-01-28 08:53:48 +00:00
Robert Osfield
13531757c4 From Serge Lages, "Here is a fix for the Quicktime plugin, with the previous version, the size for some videos was not correct, using GetMovieBoundsRgn instead of GetMovieBox returns the real movie size.
"
2010-01-27 17:12:40 +00:00
Robert Osfield
0a9263d50e From Wang Rui, "Changes:
1. Rewrite the reading/writing exception handlers to work like the ive
plugin exceptions.
2. Write a header writing/checking function in ReaderWriterOSG2.cpp,
which may help decide if the stream is ascii or binary. The
readInputIterator() function will return null pointer if the input
file is nither osgb nor osgt format, which indicates that the old .osg
format could be used here, in case we've merged the two plugins
together.
3. Add a new ForceReadingImage option in the InputStream, which will
allocate an empty image object with the filename if specifed external
image file is missed. It may be useful for format converting in some
cases.
4. Add new osgParticle wrappers, as well as some modification to the
osgParticle headers, for instance, change isEnabled() to getEnabled().
5. Some fixes to the osg serialization wrappers."
2010-01-27 17:09:05 +00:00
Robert Osfield
00c17c6cff From Trajce Nikolov, improvements to osgWidget::Input including selection support 2010-01-27 16:31:34 +00:00
Cedric Pinson
d730a6bdb5 From Cedric Pinson, remove unused file, fix crash for old files 2010-01-27 15:37:45 +00:00
Robert Osfield
6af9f0819b Updated wrappers 2010-01-27 15:00:01 +00:00
Robert Osfield
23624aad04 Updated wrappers 2010-01-27 13:12:49 +00:00
Robert Osfield
60d7411fdf Updated wrappers 2010-01-27 13:12:26 +00:00
Robert Osfield
db4d58b01d From Cedric Pinson, "Here a list of changes:
Bone now inherit from MatrixTransform. It simplify a lot the update of
Bone matrix. It helps to have the bone system more generic. eg it's now
possible to have animation data with precomputed bind matrix. The other
benefit, is now the collada plugin will be able to use osgAnimation to
display skinned mesh. Michael Plating did a great work to improve this
aspect, he is working on the collada plugin and should be able to submit
a new version soon.
The RigGeometry has been refactored so now it works when you save and
reload RigGeometry because the source is not touched anymore. The
benefit with this update is that it should be now possible to use a
MorphGeometry as source for a RigGeometry.

The bad news is that the format has changed, so i have rebuild osg-data
related to osgAnimation data, updated the blender exporter to export to
the new format.
The fbx plugin could be touched about this commit, i dont compile it so
i can't give more information about it.
The bvh plugin has been updated by Wang rui so this one is fixed with
the new code of osgAnimation.
The examples has been updated to work with the new code too...

The example osg-data/example.osg should be remove, it's an old example
that does not work.

For people using blender the blender exporter up to date is here:
http://hg.plopbyte.net/osgexport2/
it will be merge to http://hg.plopbyte.net/osgexport/ as soon as the
modification will be push in the trunk.
"
2010-01-27 12:24:55 +00:00
Robert Osfield
0abf08b806 Updated wrappers 2010-01-26 17:07:11 +00:00
Robert Osfield
306f45fbf2 From Laurens Voerman, "Wile working with pbuffers I noticed that the Win32 implementation uses the attribute WGL_PBUFFER_LARGEST_ARB.
> quote from http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
>    The following attributes are supported by wglCreatePbufferARB:
>
>      WGL_PBUFFER_LARGEST_ARB     If this attribute is set to a
>                                  non-zero value, the largest
>                                  available pbuffer is allocated
>                                  when the allocation of the pbuffer
>                                  would otherwise fail due to
>                                  insufficient resources.  The width
>                                  or height of the allocated pbuffer
>                                  never exceeds <iWidth> and <iHeight>,
>                                  respectively.  Use wglQueryPbufferARB
>                                  to retrieve the dimensions of the
>                                  allocated pbuffer.

It notifies the user when the size is not as requested, but I could find no way for the program to detect this. I've added two lines to write the new size back into the _traits, I think this is appropriate, but I am not absolutely sure.

In PixelBufferX11 was no support, so I've added GLX_LARGEST_PBUFFER(_SGIX) support, with the same writeback to the _trais.


I have tested the GLX_LARGEST_PBUFFER version on linux and the WGL_PBUFFER_LARGEST_ARB with windows, all tested with the modified autocapture I just submitted.


"autocapture --pbuffer --window 100 100 18192 18192 cow.osg.\[0,0,-22.7\].trans"
gives me a 4096x4096 image on my windows machine,
and a 8192x8192 image on linux."
2010-01-26 17:04:55 +00:00
Robert Osfield
bad5a4d43a From Trajce Nikolov, various improvements of the workings of osgWidget::Input. 2010-01-26 16:59:17 +00:00
Robert Osfield
490f832a28 Updated wrappers 2010-01-26 16:41:53 +00:00
Robert Osfield
6a30b04dd9 From Tony Horrobin, "This fix just makes a couple of calls to ref_ptr<>::get() to satisfy the compiler.
The changes make the build successful under Windows 7/VC2005 and Ubuntu 9.10 with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set to OFF.
"
2010-01-26 16:30:48 +00:00
Robert Osfield
56b384d880 From Jan Peciva, "I am sending one more improvement (separately from Inventor plugin).
I found very useful to have a control whether osgView::setCameraManipulator does or does not reset camera to home position.

I extended method signature as follows:
void setCameraManipulator(osgGA::MatrixManipulator* manipulator, bool resetPosition = true);

keeping the current usage intact (default parameter), while enabling user to disable the position reset. That can be useful in the situation when manipulator position was already loaded, for example from a file (user specification), or defined any other way, while we do not want to be reset to home position. Other usability is usage of two manipulators in a modeling program (orbiting around the model, walking on the model) and changing between them while we want to preserve the position of a camera in the change. Games may benefit from it as well when we change from user-defined helicopter manipulator to soldier manipulator because the user escaped the helicopter. The camera will change manipulator but the position is expected to be kept in the transition (provided that user makes the state transition between the two manipulators himself).
"
2010-01-26 15:08:25 +00:00
Robert Osfield
cb7181b7a5 Removal of redundant spaces at ends of lines 2010-01-26 14:57:44 +00:00
Robert Osfield
6ca22f2904 updated wrappers 2010-01-26 14:54:46 +00:00
Robert Osfield
144d3e7af3 From Lars Nilsson, "Attached is a small program doing intersection calculations, both with and without KdTree. The geometry is a TRIANGLE_STRIP consisting of five vertices, all with the same rather high Z-value. If the intersection calculation uses KdTree, it fails. When I changed osg::Vec3 to osg::Vec3d in a few places in osg::KdTree it finds the correct intersection point."
From Robert Osfield, I didn't merge the change of parameter type of IntersectKdTree::intersect() as the internal maths is all done in Vec3s. Keeping Vec3 here hasn't effected the test results.
2010-01-26 13:05:05 +00:00
Robert Osfield
a08241d481 From Laurens Voerman, "I've removed an underscore in
OpenSceneGraph/src/osgUtil/SceneView.cpp
introduced in svn
10915 (5 Jan 2010): "Added support for call root Camera CullCallbacks"



It causes a segfault in osgViewer based apps on our linux system (OSG_STEREO=ON OSG_STEREO_MODE=QUAD_BUFFER)

Problem does not show when OSG_STEREO=OFF.


< 976        else _cullVisitor->traverse(*_camera);
> 976        else cullVisitor->traverse(*_camera);

Looks like a typo, and removing the _ does fix the problem."
2010-01-26 11:16:38 +00:00
Robert Osfield
27c99ff0c8 Refactored the DotOsgWrapper support in osgDB::Registry so it's now provided by the osgDB::DeprecatedDotOsgWrapperManager. 2010-01-25 17:07:25 +00:00
Robert Osfield
470abf4527 Updated wrappers 2010-01-25 15:25:16 +00:00
Robert Osfield
65127f5b34 Moved the declaration of osgDB::Field, FieldReader and FieldReaderIterator into include/osg/Input to centralise all the deprecated .osg parsing code into one place. 2010-01-25 15:24:47 +00:00
Robert Osfield
5c0e5a5720 Removed deprecated classes 2010-01-25 12:48:25 +00:00
Robert Osfield
a520e8b6bd From Wang Rui, refactored the InputStream/OutputStream operations so that the binar/ascii foramts are implemented via subclasses. 2010-01-25 11:03:21 +00:00
Robert Osfield
f8fc4f66a8 Added RequestQueue destructor and DatabaseRequest::invalidate() and valid() methods to allow the
destruction of RequestQueue to remove any pointers held in DatabaseRequest attached to the scene graph, and to
prevent their subsequent use in cases where the scene graph is attached to a new DatabasePager.
2010-01-22 20:47:39 +00:00
Robert Osfield
40a6a1afd0 Seting the notifcation level of debug message to INFO. 2010-01-22 20:35:11 +00:00
Robert Osfield
16e48d1724 Reverted fixes for Mingw as they break OSX build 2010-01-22 16:13:28 +00:00
Robert Osfield
7ab759c97f Renamed ObjectRegistry to ObjectWrapperManager, and replaced it's instance() method usage with assigning a ObjectWrapperManager
to the osgDB::Registry.  Added a osgDB::Registry::getObjectWrapperManager() for access of this object wrapper manager.  This
change centralises the singleton management in osgDB.

Merged the osgDB::GlobalLookUpTable functionality into ObjectWrapperManger to keep down the number of singletons in use.
2010-01-22 15:16:22 +00:00
Robert Osfield
8839736818 Added extra export for windows build 2010-01-21 16:26:48 +00:00