Commit Graph

7835 Commits

Author SHA1 Message Date
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