Commit Graph

6063 Commits

Author SHA1 Message Date
Robert Osfield
df14b9980a From Jason Daly, "These are some fixes to the mdl and bsp plugins to handle transparency and lighting better, plus a few other tweaks." 2009-07-16 11:42:08 +00:00
Robert Osfield
7ba85b16db From Colin MacDonald, "The Optimizer Merge Geometry visitor is always merging geometries,
even if they have had DataVariance DYNAMIC explicitly specified.  Then
when an application attempts to dynamically update the geometry in the
frame loop the primitive sets and data arrays are no longer as
expected, leading to display and/or memory corruption.

Attached is a simple fix."

Note from Robert Osfield, tweaked Colin's changes so that it uses != DYNAMIC rather == STATIC in the additional test.

Merged from svn/trunk using:

   svn merge -r 10479:10480 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgUtil/Optimizer.cpp
2009-07-16 11:09:16 +00:00
Robert Osfield
e89336a306 From Cory Riddell based on suggestion from Robert Osfield, "I've been running with your suggested changes for a few days now and it
has been working perfectly. I'm still not entirely clear why adding a
slave/subgraph causes the problem."
2009-07-13 16:45:06 +00:00
Robert Osfield
9a8abe7fee From David Fries, "Here is a fix for a deadlock seen under Windows using OpenThreads
Barrier operations.  The error is with atomic operations in the
win32 condition implementation.  The attached sample program will
reliably trigger with as few as three threads and a dual core system,
though sometimes it will take 65,000 iterations.

2.8.1 was the base for these changes

Win32ConditionPrivateData.h
Win32ConditionPrivateData::wait does two operations to decrement
waiters_ then read, when InterlockedDecrement decrements and returns
the value in one operation.  The two operations allows another thread
to also decrement with both getting 0 for an answer.

Win32ConditionPrivateData::broadcast is using waiters_ directly
instead of using the w value read earlier, if it was safe to use
waiters_ directly there would be no need for InterlockedGet or w.

overview of deadlock in barrier with three threads
one thread in broadcast, 2 threads in wait,
release semaphore 2, waits on waiters_done_
both threads wake, decrement waiters_, get 0 for w,
       <logic error here>
one calls set waiters_done_,
broadcast thread comes out of waiters_done_,
other thread calls waiters_done_, (which leaves waiters_done_ in the
signaled state)
       <sets the trap>
broadcast thread returns releases mutex, other threads get
mutex and also return,
next barrier, first two threads enter wait, one goes to broadcast, release
semaphore 2, skips waiters_done_ as it had been released last time
returns, processes, enters the barrier for the next barrier operation
and waits,
three threads are now in wait, two have the previous barrier phase,
one the current phase, there's one count left in the semaphore which a
thread gets, returns, enters the barrier as a waiter, sleeps, and the
deadlock is completed"

Merged from svn/trunk using:

svn merge -r 10456:10457 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/OpenThreads/win32
2009-07-13 16:07:47 +00:00
Robert Osfield
01b27a9fb2 From Paul Fotheringham, fixed linux build error when compiling dicom plugin against ITK by adding define VCL_CAN_STATIC_CONST_INIT_FLOAT to be zero.
From Robert Osfield, general clean up of CMakeLists.txt under ITK side
2009-07-03 19:08:55 +00:00
Robert Osfield
21f735d653 From Bryan Thrall, "The OpenFlight plugin doesn't handle unrecognized options or extra
whitespace in all cases, causing it to crash."
2009-07-01 15:39:48 +00:00
Robert Osfield
44da3958c3 From Mathias Froehlich, changes from atof to use osg::asciiToFloat() to avoid locale issues with atof 2009-06-25 14:06:29 +00:00
Robert Osfield
fb6e1d4d9f Fixed swap size error.
Merged from svn/trunk using:

  svn merge -r 10386:10387 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgPlugins/txp/
2009-06-22 16:04:46 +00:00
Robert Osfield
a9c1dd1a4a Merged from svn/trunk fix to initGLNames() which addressed thread safety issue 2009-06-22 07:42:57 +00:00
Robert Osfield
102e5c2439 From Farshid Lashkari, "I found a bug in the osgText library in version 1.2 that I believe still exists in the latest version.
I found that changing the alignment of a text object does not work properly if the text contains newline characters. I've attached a simple test case that shows the problem. If I set the text AFTER setting the alignment, everything works fine. But if I set the text BEFORE setting the alignment then the text is displayed incorrectly.

The fix is very simple. Instead of calling computePositions() in TextBase::setAlignment(), it calls computeGlyphRepresentation(). I've attached the modified TextBase.cpp."

Merged from svn/trunk using:

  svn merge -r 10375:10376 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgText/TextBase.cpp
2009-06-20 11:38:22 +00:00
Robert Osfield
264746a5c2 Added clears of input vectors in various get*() methods 2009-06-19 11:02:15 +00:00
Robert Osfield
b795e65a39 From Rene Molenaar, "The bug is as described above:
"The dragger's corner tabs are no longer in the corners."

this fix places the cornertabs back in the corners.
(the manipulator does not make sense otherwise)."
2009-06-18 08:19:37 +00:00
Robert Osfield
edb1eede40 From Konstantin Sinitsyn, "I've fixed bug with loading of compressed texture to texture array!"
Merged from svn/trunk using:

svn merge -r 10336:10337 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osg
2009-06-12 09:53:42 +00:00
Robert Osfield
1bf529b391 From Lionel Largade, "this correction makes the intensity interpolated in the correct direction when the angle is between _cosFadeAngle and _cosAngle."
Merged from svn/trunk using:

   svn merge -r 10320:10321 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgSim
2009-06-08 11:14:37 +00:00
Robert Osfield
83b84eb2f4 Introduced depend_on template and usage in RenderBin.cpp's singleton to solve crash on exit in static builds. 2009-06-06 10:08:43 +00:00
Robert Osfield
5b439806ce Merged from svn/trunk : "Moved assigned of texture object to
_textureObjectBuffer to earlier in Texture2D::apply() to prevent
problems with non power of two texture mipmap generation."
2009-06-02 14:44:33 +00:00
Robert Osfield
3326c26a60 Merged from svn/trunk : "Fixed handling of case where the
master and the slave camera are placed on the same
          GraphisContext, or when the master camera and slave camera are
          assigned to different Camers. Note normally one doesn't mix
          master with GraphicsContexts and slave cameras so neither case is
          common."
2009-06-02 09:20:20 +00:00
Robert Osfield
8d70cc0b0f Merged from svn/trunk: "Added initializer of ParticleSystemUpdater::_frameNumber" 2009-06-02 09:17:48 +00:00
Robert Osfield
3558d1d010 Merged from svn/trunk two submissions:
"Refactored the adaption of X11 key symbols into OSG key events to fix problems with handling wide range of locales."

From Mathias Froehlich, "This frees some memory that is allocated by the X11 functions."
2009-06-02 09:16:11 +00:00
Robert Osfield
be47c9f44a Merged from svn/trunk. 2009-06-02 09:15:03 +00:00
Robert Osfield
6dab8c3380 From Emmanuel Roche, "I've also updated
the computeBound() method from the osg::Transform class : this
          method was using float based temporary variables and thus the
          double precision is lost here. I've changed that to use the
          generic types osg::BoundingSphere::vec_type and
          osg::BoundingSphere::value_type instead."

Merged from svn/trunk.
2009-06-02 09:14:04 +00:00
Robert Osfield
bbc8e7b58c Fixed glStencilMask setting. 2009-05-27 12:11:58 +00:00
Robert Osfield
9d8c98395e Refactored the GraphicsWindowX11::adaptKey() implementation so that it always uses the reampX11Key(ks) method, and for the mapping to handle case correctly. Merged from svn/trunk revision. 2009-05-25 16:36:11 +00:00
Robert Osfield
62f5a4d3bc Merged changed from svn/trunk, improving the reliability of the clear of the stencil and depth buffer. 2009-05-18 15:49:19 +00:00
Robert Osfield
0c345e76d4 From Paul Obermeier, "Please find enclosed some changed OSG header files.
The changes are more or less just beautifications
(when looked at them from the C++ view), but make
wrapping OSG with SWIG easier.
I have tested the changes with both 2.8.1-rc4 and the
current head and would appreciate to incorporate the
changes in both branches.

Here is a description of the changes:

osg/BoundingSphere:
   Use the following typedef (like used in BoundingBox)
       typedef typename VT::value_type value_type;
   instead of
       typedef typename vec_type::value_type value_type;

   SWIG reports errors on the latter construct.
   Also makes it consistent with BoundingBox.


osg/Vec4ub:
   Consistent use of "value_type" throughout the file.


osg/Vec?b:
   Consistent use of "value_type" throughout the files.

   Also changed
       typedef char value_type;
   to
       typedef signed char value_type;

   In the case of a simple "char", SWIG assumes a string.
   Using "signed char" instead of "char" does not change
   the behaviour of the class."
2009-05-18 14:53:11 +00:00
Robert Osfield
d4ec341573 From Ross Anderson, "Symptom: The computation of TerrainTiles containing only image layers (no elevation layer) is incorrect. The resulting bounding sphere will always have a radius of zero.
The fix is to remove the call to bs.expandBy(v) and compute the radius directly. I believe this call was intended to be bs.expandRadiusBy(v), but it is superfluous when the radius is computed directly.
"

Merged from svn/trunk using:

   svn merge -r 10229:10230 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgTerrain
2009-05-18 12:56:29 +00:00
Robert Osfield
371778e0e7 Merged from svn/trunk libcurl version checks to enable build against older versions of libcurl.
svn merge -r 10221:10222 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgPlugins/curl/
2009-05-15 15:13:17 +00:00
Robert Osfield
ca58e0db21 Removed redundent errno and version string declaration 2009-05-15 12:37:31 +00:00
Robert Osfield
285240fd2d From Thibault Genessay, "On Windows, when a process tries to spawn one too many thread,
_beginthreadex() fails but OpenThreads still waits on the startup
Block before returning to the caller of OpenThreads::Thread::start().
This causes a deadlock. The return value of _beginthreadex() is
actually checked, but after the call to OpenThreads::Block::block() so
it is basically useless.

Attached is a fix to move the check for the return value of
_beginthreadex() before the call to block(), so that start() can
return to the caller with a non-zero error code. This solves the
problem for me."

Merged from svn trunk using:

  svn merge -r 10190:10191 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/OpenThreads/win32
2009-05-13 08:35:45 +00:00
Robert Osfield
c81ba225c9 Updated wrappers 2009-05-12 11:12:11 +00:00
Robert Osfield
79967399fe From Fajran Iman Rusadi, fixed to handling of widget indices in insert and remove methods. Merged from svn/trunk using:
svn merge -r 10181:10182 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgWidget
2009-05-12 10:49:16 +00:00
Robert Osfield
adced1b3dc Added initializer for _mouseCursor 2009-05-08 12:38:26 +00:00
Robert Osfield
0e64a4773a From Neil Groves, fixed unitialized variable 2009-05-08 07:49:54 +00:00
Robert Osfield
6612b98ddb From Frederic Bouvier, workaround of setCursor problems under Windows. 2009-05-07 15:14:59 +00:00
Robert Osfield
67ef3fd2c5 Fixed ABSOLUTE_RF slave camera resize policy, merged from svn trunk using:
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/
2009-05-07 14:58:22 +00:00
Robert Osfield
4ae4b9fdf5 From Stephan Huber, "while debugging a problem in finding plugins on OS X I discovered, that
the conditional directives for setting the prepend-string in
createLibraryNameForExtension were not in effect, because of the mixture
of different #ifdef styles.

I removed the conditional part for __APPLE__ completely to be more
standard-conform with other platforms (plugins should be located in
osgPlugins-X.X.X/). Because of the wrong syntax of the conditional
compile the old code was not used anyway -- so no functional change.
"

Merged from svn/trunk using:

svn merge -r 10149:10150 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgDB
2009-05-07 13:24:49 +00:00
Robert Osfield
e1c5969b0e From Chris Denham, fix for swapBuffers warning when window is minimized under Windows.
svn merge -r 10146:10147 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgViewer/
2009-05-07 13:18:35 +00:00
Robert Osfield
029c114c4c Fixed name of POPPLER_LIBRARY_DIRS, merged from svn trunk using svn merge -r 10143:10144 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgPlugins/pdf 2009-05-07 09:47:20 +00:00
Robert Osfield
bc7f1cf5ac Merged from svn/trunk support for searching for imagery in path relative to the .osg file being loaded. Merged using:
svn merge -r 10100:10137 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgPlugins/osgVolume
2009-05-05 12:56:30 +00:00
Robert Osfield
34c458f075 Merged improvements to osgVolume from svn/trunk using :
svn merge -r 10100:10137 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgVolume
2009-05-05 12:54:16 +00:00
Robert Osfield
aab533c046 From Jason Daly, "Currently, the .mdl plugin loads vertices in the native DirectX order, which is the reverse of OpenGL order. This means that the back faces are currently rendered as front faces, and vice versa.
This fix reverses the vertex order and sets up proper OpenGL facing.  I didn't notice this problem until I started using the plug-in in my own code (osgviewer seems to not enable backface culling)."

merged from svn/trunk using:

svn merge -r 10092:10093 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgPlugins/mdl/
2009-04-24 10:56:45 +00:00
Robert Osfield
aa7b0becf7 Fix to handling of subsurface layers so that more appropriate PolygonOffset values are chosen. Merged from svn/trunk using:
svn merge -r 10083:10084 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgPlugins/OpenFlight/
2009-04-23 11:08:36 +00:00
Robert Osfield
4f3e2c2e82 Merged from svn trunk using:
svn merge -r 10082:10083 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osg/PolygonOffset.cpp
2009-04-23 11:07:14 +00:00
Robert Osfield
e383ef95bc From Bob Kuehne, "fix for failing collada builds on osx due to not being able to stringstreamify osg::Vec3 without io_utils included." 2009-04-22 13:09:45 +00:00
Robert Osfield
a15b93432a From Eric Sokolowsky, "src/osg/Image.cpp is missing the GL_RGBA8 image type when calculating the number of components in an image. It is added here."
Merged from svn trunk using:

svn merge -r 10061:10062 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osg/Image.cpp
2009-04-22 10:49:56 +00:00
Robert Osfield
3d4ff7ae02 Fix for handling case of no graphics contexts being registered.
Merged from svn/trunk using:
    svn merge -r 10053:10054 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgDB/DatabasePager.cpp
2009-04-21 10:20:56 +00:00
Robert Osfield
98c3d362e5 Added release from svn/trunk to enable osgCompute. 2009-04-12 10:29:10 +00:00
Robert Osfield
d3d0c28f61 From Glen Waldron, "Attached is a patch for osgUtil::Optimizer. If you run the SpatializeGroupsVisitor on a scene graph containing Geodes, StateSets attached to Geodes can be lost.
The problem is in SpatializeGroupsVisitor::divide(osg::Geode*, unsigned int) where the code creates a new Group and divides up the input Geode into one Geode per Drawable.

I fixed the problem by assigning the Geode's stateset to the new parent group.

To replicate the bug, see attached osg/dds files:

osgviewer b.osg -- model renders correctly
set OSG_OPTIMIZER="SPATIALIZE_GROUPS"
osgviewer b.osg -- textures are missing."

Merged from svn/trunk using:

svn merge -r 9986:9987 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgUtil/Optimizer.cpp
2009-04-08 10:50:30 +00:00
Robert Osfield
c78d065d51 Added disabling of mipmapping for non power of two textures 2009-04-06 12:29:17 +00:00
Robert Osfield
171bc9da21 Merged from svn/trunk disabling of use of display lists and a extra check against NULL to prevent a crash when NULL colour layers are assigned 2009-04-06 11:27:28 +00:00