openscenegraph:felimons-osg.git
6 years agoRelease OpenSceneGraph-3.1.1 OpenSceneGraph-3.1.1
Robert OSFIELD [Fri, 9 Mar 2012 13:41:39 +0000 (13:41 +0000)]
Release OpenSceneGraph-3.1.1

6 years agoUpdated ChangeLog and AUTHORS file for 3.1.1 dev release
Robert OSFIELD [Fri, 9 Mar 2012 13:16:39 +0000 (13:16 +0000)]
Updated ChangeLog and AUTHORS file for 3.1.1 dev release

6 years agoFrom Chuck Seberino, "Attached are modified versions of RotateCylinderDragger and...
Robert OSFIELD [Fri, 9 Mar 2012 10:20:23 +0000 (10:20 +0000)]
From Chuck Seberino, "Attached are modified versions of RotateCylinderDragger and Projector files that clean up the use of _onCylinder / isProjectionOnCylinder().

I have also made changes to the RotateCylinderDragger to provide a cylinder ring with a thickness.   It is totally optional, but IMHO makes the default behavior work better than a solid cylinder (which typically obscures the geometry you are trying to drag).  Gives it a bit more to grab, especially in the case where eyepoint and cylinder axis are near parallel.
"

6 years agoUpdated version number for 3.1.1 dev release
Robert OSFIELD [Thu, 8 Mar 2012 16:33:44 +0000 (16:33 +0000)]
Updated version number for 3.1.1 dev release

6 years agoFrom Farshid Lashkari, "I've added support for reading contents of cubemap textures...
Robert OSFIELD [Thu, 8 Mar 2012 16:05:17 +0000 (16:05 +0000)]
From Farshid Lashkari, "I've added support for reading contents of cubemap textures to the osg::Image::readImageFromCurrentTexture method. I added a new parameter to the method for specifying which face of the cubemap to read."

6 years agoFrom Olaf Flebbe, "Appended now a bugfixed proposition for the Win7 Multitouch Support.
Robert OSFIELD [Wed, 7 Mar 2012 09:32:38 +0000 (09:32 +0000)]
From Olaf Flebbe, "Appended now a bugfixed proposition for the Win7 Multitouch Support.

Now examples/osgmultitouch really works ;-)

Based on yesterdays trunk.

* It should now work with all Visual Studio Versions.
* WIN_VER is left as-is
* I added the missing declarations from a recent SDK, if not supplied by the SDK
* If someone chooses to update WIN_VER, the declarations should not break.
* All API Calls are runtime detected.
* No CMake Variable, Support is enabled automatically ."

6 years agoFrom Guillaume Millet, "Please find a small fix to avoid crash of texture Atlas build...
Robert OSFIELD [Tue, 6 Mar 2012 10:35:57 +0000 (10:35 +0000)]
From Guillaume Millet, "Please find a small fix to avoid crash of texture Atlas builder in case of textures with NULL image.

If an object is comming with texture and NULL image, the texture atlas builder crash when sorting textures according to texture height.
The fix is to skip textures with NULL image when inserting textures in the builder texture list.
"

6 years agoFrom Farshild Laskari, "The vertex shader for the point stateset of PrecipitationEffe...
Robert OSFIELD [Tue, 6 Mar 2012 10:33:20 +0000 (10:33 +0000)]
From Farshild Laskari, "The vertex shader for the point stateset of PrecipitationEffect was not properly computing the clip vertex. It needed to apply a modelview transformation to the clip vertex. Attached is the fix."

6 years agoFrom Christian Buchner, "The attached openscenegraph example is much simpler than
Robert OSFIELD [Tue, 6 Mar 2012 10:29:47 +0000 (10:29 +0000)]
From Christian Buchner, "The attached openscenegraph example is much simpler than
osgshaders.cpp and demonstrates the use of GLSL vertex and fragment
shaders with a simple animation callback. I found the osgshaders.cpp
too complex to serve as a starting point for GLSL programming"

6 years agoFrom Chuck Seberino, "Here is a fix for the RotateCylinderDragger. This patch fixes...
Robert OSFIELD [Tue, 6 Mar 2012 10:08:49 +0000 (10:08 +0000)]
From Chuck Seberino, "Here is a fix for the RotateCylinderDragger.  This patch fixes the case where the picking direction is close to the cylinder axis.  The current behavior is this:

* If the eyepoint and cylinder axis are close to parallel (given some tolerance), then it uses a plane perpendicular to the cylinder axis.
* Otherwise it uses a plane parallel to the cylinder axis oriented towards the eyepoint (previous behavior).  This gives decent behavior and is the only path that was taken in the previous code.   I kept with previous behavior and that allowed a good bit of code to be removed, simplifying things.  There is now no need for the _onCylinder flag, but since there is a public accessor, I wasn't sure how to handle it for backwards compatibility, so I left it in.  NOTE - there is no default initialized value, so if it is kept in, it should be set to 'false' to keep same behavior as before.  I am not quite sure how the _onCylinder case was supposed to behave as even forcing that path gave undesirable behavior, even with carefully controlled dragging.
"

6 years agoAdded RotateCylinderDragger and RotateSphereDragger to list of manipulators for testi...
Robert OSFIELD [Tue, 6 Mar 2012 10:06:00 +0000 (10:06 +0000)]
Added RotateCylinderDragger and RotateSphereDragger to list of manipulators for testing purposes

6 years agoFrom Paul Martz, "Just a minor update and typo fix.
Robert OSFIELD [Mon, 5 Mar 2012 14:17:01 +0000 (14:17 +0000)]
From Paul Martz, "Just a minor update and typo fix.
"

6 years agoFrom Luc Frauciel, "I've modified dxf writer :
Robert OSFIELD [Thu, 1 Mar 2012 11:33:31 +0000 (11:33 +0000)]
From Luc Frauciel, "I've modified dxf writer :

- correction to writeFace : the fourth point was defined with an incorrect code (http://www.autodesk.com/techpubs/autocad/acad2000/dxf/3dface_dxf_06.htm)
- if no layer name was found, an empty string was used, with is incorrect according to dxf specifications and was rejected by Autodesk DWG TrueView
- the plugin was writting polygons and triangles as LINE, as if PolygonMode GL_LINE was active, and didn't use 3DFACE primitive.
   I changed this behaviour to write 3DFACE  as default, and LINE when  PolygonMode GL_LINE is active.
  when reading back the file with osg, the result is now consistent with the source

Tested with osg plugin, FME (Safe software), Autodesk DWG TrueView
"

6 years agoFrom Luc Frauciel, "In 3ds plugin, asGeometry() is used on a drawable but the resulti...
Robert OSFIELD [Thu, 1 Mar 2012 11:03:18 +0000 (11:03 +0000)]
From Luc Frauciel, "In 3ds plugin, asGeometry() is used on a drawable but the resulting pointer is not tested for nullity.
It leads to a crash when writing osgText::Text or Shapes"

6 years agoFrom David Callu, "I found a bug in osg::Program.
Robert OSFIELD [Thu, 1 Mar 2012 10:38:28 +0000 (10:38 +0000)]
From David Callu, "I found a bug in osg::Program.

in osg::Program::PerContextProgram :

typedef std::vector<UniformModifiedCountPair> LastAppliedUniformList;
should be
typedef std::map<unsigned int, UniformModifiedCountPair> LastAppliedUniformList;

Intel driver can use index uniform value > 200000.
With a std::vector, this index uniform value generate an out of memory error

Nothing in OpenGL or GLSL specification define index uniform value rules.
And all other implementation that deal with uniform index in osg::Program
use a std::map.
This fix could have a little performance impact but this is the cost
to pay to work with
all driver."

6 years agoRemoved redudent spaces at ends of lines
Robert OSFIELD [Thu, 1 Mar 2012 10:14:55 +0000 (10:14 +0000)]
Removed redudent spaces at ends of lines

6 years agoUpdated ChangeLog and AUTHORS for dev release
Robert OSFIELD [Wed, 29 Feb 2012 14:01:44 +0000 (14:01 +0000)]
Updated ChangeLog and AUTHORS for dev release

6 years agoImproved the handling of endian swap of osg::Array
Robert OSFIELD [Wed, 29 Feb 2012 10:22:56 +0000 (10:22 +0000)]
Improved the handling of endian swap of osg::Array

6 years agoFrom Glenn Waldron, "Attached are modifications to ZipArchive to make it safe for...
Robert OSFIELD [Wed, 29 Feb 2012 10:22:18 +0000 (10:22 +0000)]
From Glenn Waldron, "Attached are modifications to ZipArchive to make it safe for mutli-threaded access.
Here's a summary:

* Uses a separate ZIP file handle per thread
* Maintains a single shared (read-only) index, created the first time through
* Stress-tested with the DatabasePager using 24 threads under osgEarth

I also updated the member variables to use OSG's leading-underscore convention."

6 years agoFrom Guillaume Millet, "When using the texture Atlas builder, it will convert from...
Robert OSFIELD [Tue, 28 Feb 2012 12:03:48 +0000 (12:03 +0000)]
From Guillaume Millet, "When using the texture Atlas builder, it will convert from REPEAT to
CLAMP all textures using only texcoord between [-0.001 1.001] to give a
chance to create an Atlas.
If the atlas creation failed for other reason (texture size, only one
compatible texture, ...) the texture remain modified in CLAMP mode.

But if you use texcoords between [0.0 1.0] using CLAMP mode instead
REPEAT it is not safe because you will have a blend to the border color
at extremities.
If we want to have exactly the same rendering after changing mode from
REPEAT to CLAMP we should use the CLAMP_TO_EDGE mode instead of CLAMP to
avoid blending to border color at extremities.

Please find as attachment the proposed patch against latest svn version.
"

6 years agoAdded build problem with using float Matrix.
Robert OSFIELD [Tue, 28 Feb 2012 11:37:09 +0000 (11:37 +0000)]
Added build problem with using float Matrix.

6 years agoFrom Thomas Hogarth, build fix for IOS build
Robert OSFIELD [Tue, 28 Feb 2012 10:21:21 +0000 (10:21 +0000)]
From Thomas Hogarth, build fix for IOS build

6 years agoAdded fin.imbue(std::locale::classic()); to avoid problems with parsing of .obj files
Robert OSFIELD [Mon, 27 Feb 2012 09:50:47 +0000 (09:50 +0000)]
Added fin.imbue(std::locale::classic()); to avoid problems with parsing of .obj files

6 years agoAdded s/getByteSwap to teh InputStreamOperator base class and use of this method...
Robert OSFIELD [Fri, 24 Feb 2012 21:07:02 +0000 (21:07 +0000)]
Added s/getByteSwap to teh InputStreamOperator base class and use of this method in the InputStream::start(InputStreamOperator*) method to ensure the bytes are swapped consistently.

6 years agoAdded support for using glGenerateMipmap instead of GL_GENERATE_MIPMAP_SGIS on GLES2
Robert OSFIELD [Fri, 24 Feb 2012 12:15:15 +0000 (12:15 +0000)]
Added support for using  glGenerateMipmap instead of GL_GENERATE_MIPMAP_SGIS on GLES2

6 years agoAdded support for checking the possible endian reversal the OSG_HEADER_LOW and OSG_HE...
Robert OSFIELD [Fri, 24 Feb 2012 11:43:35 +0000 (11:43 +0000)]
Added support for checking the possible endian reversal the OSG_HEADER_LOW and OSG_HEADER_HIGH when reading binary files written out from systems that have a different endian to the system reading it.

6 years agoCleaned up CMake warning
Robert OSFIELD [Fri, 24 Feb 2012 10:56:48 +0000 (10:56 +0000)]
Cleaned up CMake warning

6 years agoMoved the
Robert OSFIELD [Thu, 23 Feb 2012 17:51:40 +0000 (17:51 +0000)]
Moved the

    state.applyTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::ON);

into the #if defined(OSG_GL_FIXED_FUNCTION_AVAILABLE) block to solve problems under GLES and GL3.x/GL4.x

6 years agoFrom Mathieu Marache, "I was trying to play with the configuratiion files from the...
Robert OSFIELD [Thu, 23 Feb 2012 15:55:30 +0000 (15:55 +0000)]
From Mathieu Marache, "I was trying to play with the configuratiion files from the data but
couldn't load them with osgviewer's -c CLI switch, this correction
should make the alias work :-)
"

6 years agoFrom Sergey Polischuk, "In and Out control points were computed incorrectly for some...
Robert OSFIELD [Wed, 22 Feb 2012 10:50:38 +0000 (10:50 +0000)]
From Sergey Polischuk, "In and Out control points were computed incorrectly for some animation channels with cubic bezier interpolation"

6 years agoFrom Miha Ravsel, "While trying to create my custom serializer class, i created some...
Robert OSFIELD [Wed, 22 Feb 2012 10:46:35 +0000 (10:46 +0000)]
From Miha Ravsel, "While trying to create my custom serializer class, i created some dummy data which accidentally popped-up bug in InputStream readObjectFields function.

Bug description:
 Let's say we have class A
namespace Bug
{
class A : public osg::Object
{
public:
  //...
  typedef std::vector<osg::ref_ptr<A> > AList;

protected:
  AList _alist;
  //...
}
}

REGISTER_OBJECT_WRAPPER( A,
                        new Bug::A,
                        Bug::A,
                        "osg::Object Bug::A" )
{
       ADD_LIST_SERIALIZER(A,Bug::A::AList);
}

Bug:
We create say 3 instances of class A: A1,A2,A3 and then we add A2 and A3 and A1 as child instances of A1 so we get next structure:
A1
 |- A2,A3,A1

we call osgDB::writeObjectFile(A1,"/data/a.osgt") -> saved correctly( third element in list is saved as unique id that references parentClass

now we call
A1 = osgDB::readObjectFile("/data/a.osgt");

Everything is deserialized correctely except last element in list which should be same instance as parent A1.

The attached code resolves this issue by passing UniqueID in readObjectFields method and saving object in _identifierMap as soon as we have valid object instance so we can make reference to parent object from any child instance.
"

6 years agoFrom Paul Martz, "The attached fixes a few issues that are present when ref_ptr impli...
Robert OSFIELD [Tue, 21 Feb 2012 17:20:58 +0000 (17:20 +0000)]
From Paul Martz, "The attached fixes a few issues that are present when ref_ptr implicit casting is disabled."

6 years agoFrom Olaf Flebbe, "Macos X cleanup:
Robert OSFIELD [Tue, 21 Feb 2012 11:30:07 +0000 (11:30 +0000)]
From Olaf Flebbe, "Macos X cleanup:
I added AFAIK proper defaults for several Macos X Version API targets.

* In order to determine which defaults to apply, consult the  CMAKE_OSX_SYSROOT variable pointing to the used SDK, not the pure existence of an SDK.

* Defaults are now:
10.7: Support Intel 32 and 64 Bit Cocoa with imageio picture reader
10.6 + 10.5: Support Cocoa with imageio on Intel and PowerPC
10.4: Carbon, Quicktime and PowerPC

Now OSG compiles out of the box for MacOSX  10.7. , tested with gcc and clang with FlightGear."

6 years agoFrom Chris Denham, "ReaderWriter3DS smoothing group handling corrections"
Robert OSFIELD [Tue, 21 Feb 2012 11:13:25 +0000 (11:13 +0000)]
From Chris Denham, "ReaderWriter3DS smoothing group handling corrections"

6 years agoFixed warnings
Robert OSFIELD [Tue, 21 Feb 2012 10:42:59 +0000 (10:42 +0000)]
Fixed warnings

6 years agoFixed erroneous use #if !defined(OSG_GLES1_FEATURES) && !defined(OSG_GLES2_FEATURES...
Robert OSFIELD [Tue, 21 Feb 2012 10:38:12 +0000 (10:38 +0000)]
Fixed erroneous use #if !defined(OSG_GLES1_FEATURES) && !defined(OSG_GLES2_FEATURES) which should have been #if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)

6 years agoFrom Luc Frauciel, "When dae plugin is used with daeUseSequencedTextureUnitsoption...
Robert OSFIELD [Mon, 20 Feb 2012 16:00:46 +0000 (16:00 +0000)]
From Luc Frauciel, "When dae plugin is used with  daeUseSequencedTextureUnitsoption, the transparency processing is done with the wrong texture unit
I've remplaced the unused parameter diffuseColorName by the diffuseTextureUnit effectively used."

6 years agoFrom Alexander Sinditskiy, "Fix loading small monochrome bmp images"
Robert OSFIELD [Mon, 20 Feb 2012 12:36:53 +0000 (12:36 +0000)]
From Alexander Sinditskiy, "Fix loading small monochrome bmp images"

6 years agoFrom Dietmar Funck, "in order to use a customized database thread it's necessary...
Robert OSFIELD [Mon, 20 Feb 2012 12:33:17 +0000 (12:33 +0000)]
From Dietmar Funck, "in order to use a customized database thread it's necessary to use a customized database pager, which creates such customized database threads, too.
I think the best way to achieve this is to overwrite the DatabasePager::addDatabaseThread() method within the customized database pager. However this method is not 'virtual' yet, so I propose to make the method 'virtual'."

6 years agoFrom Farshid Lashkari, "I've attached a small optimization to osgDB::Registry::remove...
Robert OSFIELD [Mon, 20 Feb 2012 12:23:36 +0000 (12:23 +0000)]
From Farshid Lashkari, "I've attached a small optimization to osgDB::Registry::removeExpiredObjectsInCache that removes the expired items while iterating over the cache, instead of saving to a temporary vector and then removing."

6 years agoFrom Riccardo Corsi, Added passing of EventVisitor pointer to event handlers.
Robert OSFIELD [Mon, 20 Feb 2012 12:18:50 +0000 (12:18 +0000)]
From Riccardo Corsi, Added passing of EventVisitor pointer to event handlers.

6 years agoFrom Riccardo Corsi, "please find attached a small patch for HDR plugin,
Robert OSFIELD [Mon, 20 Feb 2012 12:12:43 +0000 (12:12 +0000)]
From Riccardo Corsi, "please find attached a small patch for HDR plugin,
which simply set by default the internal pixel format to GL_RGB32F_ARB where appropriate.

In the current version there's a comment saying that the plugin set it to GL_RGB8 (even when reading from float) to support old graphics cards,
but the comment dates back to 2004...
What's more I believe that it's correct to expect a floating texture format if you're loading an hdr image.
It was quite troublesome for us to discover why our background image wasn't showing hdr data...

In case you accept the submission, I've removed the comment as it would be misleading to leave it there."

6 years agoFrom Johannes Baeurele, "The osg::Image class now contains a 'supportsTextureSubloadi...
Robert OSFIELD [Mon, 20 Feb 2012 12:03:14 +0000 (12:03 +0000)]
From Johannes Baeurele, "The osg::Image class now contains a 'supportsTextureSubloading()' method that is used inside the Texture2D::apply method. For now it only checks for the etc1 format in which case it returns 'false'. All other formats lead to a return value of 'true'.

Without the change the application does not work properly. First I get the notification that an OpenGL error occured. After some more of this error messages I see broken textures on the screen. With the changes attached to this message my application works as intended."

Note from Robert Osfield, changed the Image::supportsTextureSubloading() to be const and to be implemented in the .cpp rather than inline.

6 years agoFrom Kim Bale, "The application description for osg2cpp was cut and pasted from osgco...
Robert OSFIELD [Fri, 17 Feb 2012 16:51:10 +0000 (16:51 +0000)]
From Kim Bale, "The application description for osg2cpp was cut and pasted from osgconv and not changed.

I've added a more relevant description."

6 years agoFrom Martin Lambers, "It adds a new ReaderWriter plugin for the GTA file format
Robert OSFIELD [Fri, 17 Feb 2012 16:45:49 +0000 (16:45 +0000)]
From Martin Lambers, "It adds a new ReaderWriter plugin for the GTA file format
(http://gta.nongnu.org). This allows to read and write floating point
image data. Unlike other formats, GTA also allows very good compression
ratios for floating point data. The compression method can be selected
with the COMPRESSION option of the plugin.
"

6 years agoAdded usage of OSG_CPP_EXCEPTIONS_AVAILABLE for plugins that use std::exceptions.
Robert OSFIELD [Fri, 17 Feb 2012 16:13:16 +0000 (16:13 +0000)]
Added usage of OSG_CPP_EXCEPTIONS_AVAILABLE for plugins that use std::exceptions.

6 years agoFrom Stephan Huber, "
Robert OSFIELD [Fri, 10 Feb 2012 17:24:08 +0000 (17:24 +0000)]
From Stephan Huber, "
Here's another small submission for IOS, which adds unique ids to the
touchpoints, so the ids stay the same during a touch-sequence.

(and some minor code enhancements)"

6 years agoFrom Colin McDonald, "Upgrading to OpenSceneGraph 3.0.1, texture mip mapping stopped
Robert OSFIELD [Fri, 10 Feb 2012 17:20:43 +0000 (17:20 +0000)]
From Colin McDonald, "Upgrading to OpenSceneGraph 3.0.1, texture mip mapping stopped
working on some junk low-end graphics cards which I still have to
support.  They worked ok with osg 2.8 and earlier.

The problem turned out to be with gl proxy textures, which are
unreliable on those devices.  Proxy textures are used by the glu
mipmap build routines to determine if a texture size is
supported. The external glu library had a nice fallback
behaviour, so that if proxy textures didn't work then the mipmap
texture was still created.  But in the work on the new embedded
glu routines that fallback behaviour has been inadvertently
lost.  I have restored the fallback in
src/osg/glu/libutil/mipmap.cpp.  It doesn't add any extra
complexity."

6 years agoFrom Domenico Mangieri, "Implementation for MoveRight and MoveUp methods in FirstPe...
Robert OSFIELD [Fri, 10 Feb 2012 16:12:28 +0000 (16:12 +0000)]
From Domenico Mangieri, "Implementation for MoveRight and MoveUp  methods in  FirstPersonManipulator is missing.

I'm using the manipulator, so I added it."

6 years agoFrom Stephan Huber, attached you'll find a compile fix for the new introduced rowleng...
Robert OSFIELD [Fri, 10 Feb 2012 15:57:51 +0000 (15:57 +0000)]
From Stephan Huber, attached you'll find a compile fix for the new introduced rowlength-feature on IOS/OpenGL ES builds

6 years agoFrom Luc Frauciel, "osgUtil Tessellator : beginTessellation() made virtual to allow...
Robert OSFIELD [Thu, 9 Feb 2012 18:10:52 +0000 (18:10 +0000)]
From Luc Frauciel, "osgUtil Tessellator : beginTessellation() made virtual to allow configuration of tessellation:

The initialisation of glu low level tessellator is done in  osgUtil::Tessellator::beginTessellation()
This function is not virtual, preventing any customization of the tesselation.
In particular, there in an option in glu tesselator that force the generated primitives to be triangles and that I'd like to use (GLU_TESS_EDGE_FLAG).
"

6 years agoFrom Torben Dannhauer, "Modification to osgfilecache: Now source data can also be...
Robert OSFIELD [Thu, 9 Feb 2012 17:52:13 +0000 (17:52 +0000)]
From Torben Dannhauer, "Modification to osgfilecache: Now source data can also be local.:

find attached my modifications to osgfilecache.

It now allows also the caching of LOCAL terrain databases. In combination with the extends and level cmd parameter it allows to extract parts of terrain databases and write it in a new "Sub database".
I also modified osgDB::FileCache to create correct filenames if the data source is local."

6 years agoUpdated ChangeLog, AUTHORS and Contriburos.cpp files
Robert OSFIELD [Thu, 9 Feb 2012 17:45:23 +0000 (17:45 +0000)]
Updated ChangeLog, AUTHORS and Contriburos.cpp files

6 years agoFrom Martin von Gagern, "The xine osg plugin won't compile against xine-lib-1.2.0:
Robert OSFIELD [Thu, 9 Feb 2012 16:42:47 +0000 (16:42 +0000)]
From Martin von Gagern, "The xine osg plugin won't compile against xine-lib-1.2.0:

OpenSceneGraph-3.0.1/src/osgPlugins/xine/video_out_rgb.c:2772:25:
error: ?video_driver_class_t? has no member named ?get_identifier?
OpenSceneGraph-3.0.1/src/osgPlugins/xine/video_out_rgb.c:2773:25:
error: ?video_driver_class_t? has no member named ?get_description?

This has been reported on Gentoo: https://bugs.gentoo.org/397643
The relevant commit to the xine-lib repository is
http://anonscm.debian.org/hg/xine-lib/xine-lib-1.2/diff/806b590a4d38/src/xine-engine/video_out.h

This change addresses the issue. I'm sending the full modified file as
an attachment. It is based on the 3.0.1 release of OSG. I'll also paste
a diff below. You will find a colorized view in the Gentoo bugzilla.

The xine-lib API changed in the following way: the identifier and
description members are now "const char*" strings instead of "char*
(*)(video_driver_class_t*)" getter function. As the functions in the osg
plugin will always simply return a string literal, without accessing
their argument, it is safe to simply call them with a NULL argument and
use the returned string. This makes it easy to support both API
versions. When you drop support for older xine one day, you might want
to move the string literals to the assignment, getting rid of the
functions in the process.

The modified code compiles for me. I'm not sure how to test it, as I've
only got OSG around in order to build (and hopefully one day even use)
Flightgear.

I'm assigning my copyright in this change to the osg project leads.
"

6 years agoFrom Olaf Flebbe, "there are two ocurrences where pointer to bool is mixed with bool...
Robert OSFIELD [Thu, 9 Feb 2012 15:54:13 +0000 (15:54 +0000)]
From Olaf Flebbe, "there are two ocurrences where pointer to bool is mixed with bool. Fixes warnings on MacOSX with llvm.

diff --git a/src/osg/State.cpp b/src/osg/State.cpp
index 0b88d63..2137bbd 100644
--- a/src/osg/State.cpp
+++ b/src/osg/State.cpp
@@ -109,7 +109,7 @@ State::State():
        }
    }

-    _abortRenderingPtr = false;
+    _abortRenderingPtr = NULL;

    _checkGLErrors = ONCE_PER_FRAME;

@@ -689,7 +689,7 @@ bool State::getLastAppliedTextureMode(unsigned int unit,Stat

 const StateAttribute* State::getLastAppliedTextureAttribute(unsigned int unit,S
 {
-    if (unit>=_textureAttributeMapList.size()) return false;
+    if (unit>=_textureAttributeMapList.size()) return NULL;
    return getLastAppliedAttribute(_textureAttributeMapList[unit],type,member);
 }

"

6 years agoFrom Paul Martz, a simple GL3 example
Robert OSFIELD [Thu, 9 Feb 2012 15:51:20 +0000 (15:51 +0000)]
From Paul Martz, a simple GL3 example

6 years agoFrom Colin McDonald, "The bounding box returned by getBound() for Text which is not
Robert OSFIELD [Thu, 9 Feb 2012 15:08:30 +0000 (15:08 +0000)]
From Colin McDonald, "The bounding box returned by getBound() for Text which is not
auto-rotated (e.g. HUD text) is not always correct, because it
doesn't take account of the base line offsets added by the
various alignment options such as CENTER_TOP, CENTER_BOTTOM etc.

The attached src/osgText/TextBase.cpp fixes the problem."

6 years agoFrom Colin McDonald, fix for Solaris build.
Robert OSFIELD [Thu, 9 Feb 2012 14:40:07 +0000 (14:40 +0000)]
From Colin McDonald, fix for Solaris build.

6 years agoFrom Filip Arlet,"I ran into problem with osg::Text _BASE_LINE alignment. It didn...
Robert OSFIELD [Thu, 9 Feb 2012 14:33:13 +0000 (14:33 +0000)]
From Filip Arlet,"I ran into problem with osg::Text _BASE_LINE alignment. It didn't account line spacing. Btw. same problem in 3D text

Changed _offset from: -_characterHeight*(_lineCount-1)
to: -_characterHeight*(1.0 + _lineSpacing)*(_lineCount-1)"

6 years agoAdded back in support for checking the current working directory by default, but...
Robert OSFIELD [Thu, 9 Feb 2012 14:28:39 +0000 (14:28 +0000)]
Added back in support for checking the current working directory by default, but now do the check
after the Options and Registry DataFilePathLists have been checked, which will allow users to better control
over where files are searched for.

6 years agoFrom Chris Denham, "This is a submission to fix a problem with use of mode GL_RESCALE...
Robert OSFIELD [Thu, 9 Feb 2012 14:11:36 +0000 (14:11 +0000)]
From Chris Denham, "This is a submission to fix a problem with use of mode GL_RESCALE_NORMAL for geometries below a scaling transform which is not equal in X, Y & Z components. In this case, the 'slow' method of mode GL_NORMALIZE should be used to perform the normalization.

I have attached a correction to daeRTransforms.cpp based on trunk at [12892] which corrects this problem.

This is the changed section:

Code:
       if (scale.x() == scale.y() && scale.y() == scale.z())
       {
           // This mode may be quicker than GL_NORMALIZE, but ONLY works if x, y & z components of scale are the same.
           ss->setMode(GL_RESCALE_NORMAL, osg::StateAttribute::ON|osg::StateAttribute::OVERRIDE);
       }
       else
       {
           // This mode may be slower than GL_RESCALE_NORMAL, but does work if x, y & z components of scale are not the same.
           ss->setMode(GL_NORMALIZE, osg::StateAttribute::ON|osg::StateAttribute::OVERRIDE);
       }"

6 years agoFrom Thorsten Brehm, "attached update changes OSG's src/osgDB/Registry.cpp, so it...
Robert OSFIELD [Thu, 9 Feb 2012 12:50:42 +0000 (12:50 +0000)]
From Thorsten Brehm, "attached update changes OSG's src/osgDB/Registry.cpp, so it doesn't (accidentally) resolve relative paths against the current working directory when searching for resources. So far, such paths were always resolved against the cwd first.

I guess the previous behaviour of giving the cwd precedence over any path configured in the "database path list" (osgDB::Options) wasn't intentional. Otherwise, if it was intentional after all, it'd be good to add another feature instead, to make this configurable - e.g. a flag in osgDB::Options to disable this, if an application doesn't want the cwd being considered.
"

Note from Robert Osfield, this submission will change the default behaviour of searching for files so can potentially break existing applications as it
won't search the current working direction unless it's included in the DataFilePathList entry in the Options or Registy.  I'll add a follow
up submission to add back in this feature.

6 years agoFrom Hartmut Seichter, "attached a revised CMakeLists.txt file for Android that avoid...
Robert OSFIELD [Wed, 8 Feb 2012 17:12:58 +0000 (17:12 +0000)]
From Hartmut Seichter, "attached a revised CMakeLists.txt file for Android that avoids the problems with a ARM gcc bug that appears in the NDK. It only overrides the optimization level for one file. As it resides only in the cfg parser this should not have side effects on performance."

6 years agoFrom Paul Martz, "This change clarifies the description for OSG_GL_VERTEX_ARRAY_FUNCS...
Robert OSFIELD [Wed, 8 Feb 2012 10:50:04 +0000 (10:50 +0000)]
From Paul Martz, "This change clarifies the description for OSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE."

6 years agoFrom Leandro Motto Barros,
Robert OSFIELD [Wed, 8 Feb 2012 10:06:58 +0000 (10:06 +0000)]
From Leandro Motto Barros,

"I've made a few changes to osgUtil::PolytopeIntersector so that it
actually uses double precision floating point numbers everywhere (as
long as OSG_USE_FLOAT_PLANE is not defined).

I needed double precision intersections in a project I am working on.
These changes fixed the problems I was having -- this is all testing I
have done.

Notice that I have changed
osgUtil::PolytopeIntersector::Intersection's members to use doubles
(osg::Vec3d, instead of osg::Vec3). I could have added #ifdef's there
too, but I think it is better to not change the types of stuff in the
public interface depending on some preprocessor definition.

The modified files are attached. A diff also follows, for those who like it."

With the following changes from Robert Osfield:

"I've just reviewed your changes and have just tweaked them a little to
streamline them.  What I have done in the PolytopeIntersector header
is add:

       typedef osg::Plane::Vec3_type Vec3_type;

And then use this typedef in the definition of the vertices rather
then Vec3d as you did.  Next changes were to PolytopeInteresector.cpp
where to the PolytopeIntersectorUtils defintions of the Vec3_type, and
value_type which now simply read:

   typedef osg::Plane::Vec3_type Vec3_type;
   typedef Vec3_type::value_type value_type;

This way I was able to complete avoid any if def's and have essential
the same implementation as you achieved.  Changes now checked into
svn/trunk."

6 years agoFrom Claus Scheiblauer, "in GraphicsWindowQt.cpp the GLWidget::keyReleaseEvent was...
Robert OSFIELD [Wed, 8 Feb 2012 09:34:44 +0000 (09:34 +0000)]
From Claus Scheiblauer, "in GraphicsWindowQt.cpp the GLWidget::keyReleaseEvent was implemented slightly different to the GLWidget::keyPressEvent, which caused the cursor keys values to be not correctly mapped from an QKeyEvent value to an osg key value when releasing a cursor key."

6 years agoFixed build issues when compile with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set...
Robert OSFIELD [Tue, 7 Feb 2012 16:14:13 +0000 (16:14 +0000)]
Fixed build issues when compile with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set to OFF.

6 years agoFrom Alexander Irion, "Added missing format GL_ALPHA to Image::computeFormatDataType()."
Robert OSFIELD [Tue, 7 Feb 2012 12:37:48 +0000 (12:37 +0000)]
From Alexander Irion, "Added missing format GL_ALPHA to Image::computeFormatDataType()."

6 years agoFrom Johannes Baeuerle, "The first problem is wrong value of the block size of etc1...
Robert OSFIELD [Tue, 7 Feb 2012 12:02:04 +0000 (12:02 +0000)]
From Johannes Baeuerle, "The first problem is wrong value of the block size of etc1 textures in the getCompressedSize call in Texture.cpp. With the current block size of 16 the target application crashes with a GL_INVALID_VALUE.  The reason is that the calculated size passed to OpenGL does not match the size of the passed data(data pointer,texture width,texture height,spec of etc1).
With a block size of 8 in the getCompressedSize call this error dissapears."

6 years agoFrom Nico Kruithof, "I found that Collada wasn't found correctly with visual studio...
Robert OSFIELD [Tue, 7 Feb 2012 11:43:42 +0000 (11:43 +0000)]
From Nico Kruithof, "I found that Collada wasn't found correctly with visual studio 2010."

6 years agoFrom Marius Kintel, "GraphicsWindowQt::WindowData no longer requires the parent widge...
Robert OSFIELD [Tue, 7 Feb 2012 11:41:20 +0000 (11:41 +0000)]
From Marius Kintel, "GraphicsWindowQt::WindowData no longer requires the parent widget of a graphics window to be of type GLWidget."

6 years agoFrom David Fries, "Of the two ways to use the Tessellator object, only
Robert OSFIELD [Tue, 7 Feb 2012 11:29:47 +0000 (11:29 +0000)]
From David Fries, "Of the two ways to use the Tessellator object, only
retessellatePolygons was applying the winding and boundary option.
Moved the gluTessProperty calls into beginTessellation().

There's a comment typo fix, removing an unused VertexPointList
typedef, and allocates one _tobj instead of one per tesellation.
Protections were added to check that _tobj was allocated in the few
remaining places it wasn't being checked.

---
On a side note, I would like to avoid the 'new Vec3d' in
Tessellator::addVertex for each call to
gluTessVertex(tess, location, data).
The RedBook leaves it ambiguous if the location pointer must
remain valid after gluTessVertex or not.
http://www.opengl.org/sdk/docs/man/xhtml/gluTessVertex.xml
says that changing location is not safe, so being conservative, I'll
leave it as is, even though the Mesa GLU library copies the data not
the pointer, so it is currently safe."

6 years agoFrom Lionel Lagarde, "The setNormal method of osg::Billboard has side effects (it...
Robert OSFIELD [Tue, 7 Feb 2012 11:21:11 +0000 (11:21 +0000)]
From Lionel Lagarde, "The setNormal method of osg::Billboard has side effects (it calls updateCache and update the normal to Z rotation matrix). When cloning billboards, copying the normal vector is not enough. In the correction, the copy constructor calls setNormal to update the internal members."

6 years agoFrom Wojciech Lewandowski, "This is a one line modification of StatsHandler.cpp to...
Robert OSFIELD [Tue, 7 Feb 2012 10:57:19 +0000 (10:57 +0000)]
From Wojciech Lewandowski, "This is a one line modification of StatsHandler.cpp to work correctly while dumping states to console when ViewerStats getEarliesFrameNumber() and getLatestFrameNumber() return zeroes. If that happened in current version, printing loop was iterating between 0 and 0xFFFF FFFF indices and that was hanging our system.
"

6 years agoFrom Tamer Fahmy, Fix for bug when scrolling down and using render on demand.
Robert OSFIELD [Tue, 7 Feb 2012 10:51:22 +0000 (10:51 +0000)]
From Tamer Fahmy, Fix for bug when scrolling down and using render on demand.

"Currently issuing a mouse scroll DOWN event would stop updating
animations in progress.

The fix consists of changing the line
 us.requestContinuousUpdate( false );
to:
 us.requestContinuousUpdate( isAnimating() || _thrown );

in OrbitManipulator::handleMouseWheel() as has been done for the
GUIEventAdapter::SCROLL_UP case a couple of lines earlier or in
src/osgGA/FirstPersonManipulator.cpp."

6 years agoFrom Rudolf Wiedemann, "the file attached fixes the incomplete implementation of...
Robert OSFIELD [Tue, 7 Feb 2012 10:40:04 +0000 (10:40 +0000)]
From Rudolf Wiedemann, "the file attached fixes the incomplete implementation of "osg::DefaultUserDataContainer"'s copy constructor.
Copying user objects was missing."

Note from Robert Osfield, in submission changed
    _objectList.push_back((*itr)->clone(copyop));
to
    _objectList.push_back(copyop(*itr));

6 years agoFrom Sukender, "I just fixed using UTF8 paths in JP2 readerwriter under Windows....
Robert OSFIELD [Tue, 7 Feb 2012 10:33:09 +0000 (10:33 +0000)]
From Sukender, "I just fixed using UTF8 paths in JP2 readerwriter under Windows. Jpeg2000 plugin could not handle UTF8 paths as it was using an Japser open() function which seems to be based on the standard fopen(). The fix simply opens the file beforehand and only gives a FILE* to the Jasper lib (and then closes the file, of course).
"

6 years agoFrom Mathias Froehlich, "In Optimizer.cpp a nodes update callback is checked twice...
Robert OSFIELD [Mon, 6 Feb 2012 13:45:20 +0000 (13:45 +0000)]
From Mathias Froehlich, "In Optimizer.cpp a nodes update callback is checked twice and the cull
callback is checked never for the decision of a node being redundant.
The change replaces one of the update callback tests with a cull callback
test."

6 years agoFrom Mathias Froehlich, "Attached is a change to the stats handler so that the aspect...
Robert OSFIELD [Mon, 6 Feb 2012 13:40:01 +0000 (13:40 +0000)]
From Mathias Froehlich, "Attached is a change to the stats handler so that the aspect ratio of the
viewer stats coordinates always stay about 1:1 to the pixels.
This helps for more readable stats with very wide windows for example."

6 years agoFrom Mathias Froehlich, "The attached change to the default font makes the baseline...
Robert OSFIELD [Mon, 6 Feb 2012 13:35:45 +0000 (13:35 +0000)]
From Mathias Froehlich, "The attached change to the default font makes the baseline correctly working
and makes the glyphs aspect ratio match their 12x8 bitmaps.
I am not exactly sure about osgTexts current internals but it matches the
changes that happened lately to the txf font.
"

6 years agoFrom Cory Riddell, "I've been using the dot plugin and found that our application...
Robert OSFIELD [Mon, 6 Feb 2012 13:29:38 +0000 (13:29 +0000)]
From Cory Riddell, "I've been using the dot plugin and found that our application which sets
the global locale was generating bad dot files. Specifically, the node
numbers had comma separators in them (like 1,234 rather than 1234).

The attached file simply forces the stringstreams used to build up the
dot file to use the "C" locale."

6 years agoFrom Robert Milharcic, "In attached file I implemented LOAD_IMMEDIATELY mode for...
Robert OSFIELD [Mon, 6 Feb 2012 13:27:25 +0000 (13:27 +0000)]
From Robert Milharcic, "In attached file I implemented LOAD_IMMEDIATELY mode for new osg ProxyNode wrapper. Current version of proxynode loading uses DatabasePager for both modes(DEFER_LOADING_TO_DATABASE_PAGER and LOAD_IMMEDIATELY).

Immediate loading of external references begins after ProxyNode has been deserialized in ProxyNodeFinishedObjectReadCallback."

6 years agoFrom Paul Palumbo, "This change seems to fix a problem reading 32-bit Floating point...
Robert OSFIELD [Mon, 6 Feb 2012 12:42:52 +0000 (12:42 +0000)]
From Paul Palumbo, "This change seems to fix a problem reading 32-bit Floating point tiff images.  Without this fix, I'm only getting half my image displayed in "osgviewer --image"."

6 years agoFrom Jason Beverage, "Attached is a patch to the SVG plugin to use cairo_surface_destroy
Robert OSFIELD [Mon, 6 Feb 2012 12:38:11 +0000 (12:38 +0000)]
From Jason Beverage, "Attached is a patch to the SVG plugin to use cairo_surface_destroy
instead of free.  This was causing a crash on Windows.
"

6 years agoFrom Jan Peciva, "attaching improved StatsVisitor. Changes:
Robert OSFIELD [Mon, 6 Feb 2012 12:36:25 +0000 (12:36 +0000)]
From Jan Peciva, "attaching improved StatsVisitor. Changes:
- apply() and reset() methods made virtual to allow overriding
- added apply(StateSet&) to make more easier to gather StateAttribute
statistics in user-derived classes
"

6 years agoFixed indendation and line endings
Robert OSFIELD [Mon, 6 Feb 2012 12:29:29 +0000 (12:29 +0000)]
Fixed indendation and line endings

6 years agoFrom Brad Christiansen, "The attached files add the ability to control when a paged...
Robert OSFIELD [Mon, 6 Feb 2012 12:06:40 +0000 (12:06 +0000)]
From Brad Christiansen, "The attached files add the ability to control when a paged child becomes eligible for expiry based on time and/or elapsed frames.

I found that some of the items that had been paged in were being expired on the first frame that they were not visible (as the cache was full). This resulted in excessive paging every time the view was moved. With the following changes I could only allow children to be expired if they had not been used for e.g. 30 seconds or 60 frames."

6 years agoFixed silly compiler warning that was being produced in error.
Robert OSFIELD [Mon, 6 Feb 2012 12:05:36 +0000 (12:05 +0000)]
Fixed silly compiler warning that was being produced in error.

6 years agoFrom Alexander Sinditskiy, "looks like GlyphGeometries _glyphGeometries; should be...
Robert OSFIELD [Mon, 6 Feb 2012 11:17:12 +0000 (11:17 +0000)]
From Alexander Sinditskiy, "looks like GlyphGeometries _glyphGeometries; should be removed because Glyph3D have the same named local variable."

6 years agoFrom Stephan Huber, "attached you'll find a first version of multi-touch-support...
Robert OSFIELD [Fri, 3 Feb 2012 15:15:37 +0000 (15:15 +0000)]
From Stephan Huber, "attached you'll find a first version of multi-touch-support for OS X (>=
10.6), which will forward all multi-touch events from a trackpad to the
corresponding osgGA-event-structures.

The support is switched off per default, but you can enable multi-touch
support via a new flag for GraphicsWindowCocoa::WindowData or directly
via the GraphicsWindowCocoa-class.

After switching multi-touch-support on, all mouse-events from the
trackpad get ignored, otherwise you'll have multiple events for the same
pointer which is very confusing (as the trackpad reports absolute
movement, and as a mouse relative movement).

I think this is not a problem, as multi-touch-input is a completely
different beast as a mouse, so you'll have to code your own
event-handlers anyway.

While coding this stuff, I asked myself if we should refactor
GUIEventAdapter/EventQueue and assign a specific event-type for
touch-input instead of using PUSH/DRAG/RELEASE. This will make it
clearer how to use the code, but will break the mouse-emulation for the
first touch-point and with that all existing manipulators. What do you
think? I am happy to code the proposed changes.

Additionally I created a small (and ugly) example osgmultitouch which
makes use of the osgGA::MultiTouchTrackballManipulator, shows all
touch-points on a HUD and demonstrates how to get the touchpoints from
an osgGA::GUIEventAdapter.

There's even a small example video here: http://vimeo.com/31611842"

6 years agoFrom Stephan Huber, "attached you'll find a first version of multi-touch-support...
Robert OSFIELD [Fri, 3 Feb 2012 14:25:08 +0000 (14:25 +0000)]
From Stephan Huber, "attached you'll find a first version of multi-touch-support for OS X (>=
10.6), which will forward all multi-touch events from a trackpad to the
corresponding osgGA-event-structures.

The support is switched off per default, but you can enable multi-touch
support via a new flag for GraphicsWindowCocoa::WindowData or directly
via the GraphicsWindowCocoa-class.

After switching multi-touch-support on, all mouse-events from the
trackpad get ignored, otherwise you'll have multiple events for the same
pointer which is very confusing (as the trackpad reports absolute
movement, and as a mouse relative movement).

I think this is not a problem, as multi-touch-input is a completely
different beast as a mouse, so you'll have to code your own
event-handlers anyway.

While coding this stuff, I asked myself if we should refactor
GUIEventAdapter/EventQueue and assign a specific event-type for
touch-input instead of using PUSH/DRAG/RELEASE. This will make it
clearer how to use the code, but will break the mouse-emulation for the
first touch-point and with that all existing manipulators. What do you
think? I am happy to code the proposed changes.

Additionally I created a small (and ugly) example osgmultitouch which
makes use of the osgGA::MultiTouchTrackballManipulator, shows all
touch-points on a HUD and demonstrates how to get the touchpoints from
an osgGA::GUIEventAdapter.

There's even a small example video here: http://vimeo.com/31611842"

6 years agoImproved handling of archives
Robert OSFIELD [Fri, 3 Feb 2012 11:10:17 +0000 (11:10 +0000)]
Improved handling of archives

6 years agoFrom Terry Welsh, improved support for handling archives
Robert OSFIELD [Fri, 3 Feb 2012 11:09:45 +0000 (11:09 +0000)]
From Terry Welsh, improved support for handling archives

6 years agoFrom Colin McDonald, "I have an application with multiple windows. They share GL...
Robert OSFIELD [Wed, 1 Feb 2012 17:42:42 +0000 (17:42 +0000)]
From Colin McDonald, "I have an application with multiple windows.  They share GL objects
between the contexts, using the GraphicsContext::Traits sharedContext
and setting the same contextID.

When one of these shared contexts is closed, GraphicsContext::close
deletes all GLObjects for that contextID, regardless of the fact that
they are shared.  This means that all of the other contexts sharing the
objects have to recompile them.

The attached tweak makes GraphicsContext::close a bit less brutal for
shared contexts.  I have also changed a misleading diagnostic message.
"

6 years agoFrom Luc Frauciel, "FBX plugin was locked on version 2012.1 of FBX SDK which is not...
Robert OSFIELD [Wed, 1 Feb 2012 17:38:37 +0000 (17:38 +0000)]
From Luc Frauciel, "FBX plugin was locked on version 2012.1 of FBX SDK which is not available anymore on Autodesk website.
This patch allows version of FBX >= 2012.1, which includes current one : 2012.2
"

6 years agoRenamed selection to transform to make it clear to understand what is being done.
Robert OSFIELD [Wed, 1 Feb 2012 17:16:44 +0000 (17:16 +0000)]
Renamed selection to transform to make it clear to understand what is being done.

6 years agoAdded example usage of teh new DraggerTransforCallback's HandleCommandMask which...
Robert OSFIELD [Wed, 1 Feb 2012 17:10:48 +0000 (17:10 +0000)]
Added example usage of teh new DraggerTransforCallback's HandleCommandMask which is tied to the TabPlaneDragger example.

6 years agoAdded DraggerTransformCallback::HandleCommandMask to DraggerTransformCallback to...
Robert OSFIELD [Wed, 1 Feb 2012 13:55:38 +0000 (13:55 +0000)]
Added DraggerTransformCallback::HandleCommandMask to DraggerTransformCallback to allow applications to select which
commands they want the dragger callback to respond to why updating the transform.

6 years agoImproved the handling of osgManipulator::Constraint, DraggerCallbacks and Command...
Robert OSFIELD [Tue, 31 Jan 2012 10:56:52 +0000 (10:56 +0000)]
Improved the handling of osgManipulator::Constraint, DraggerCallbacks and Command so that they now use a Visitor Pattern
 to ensure the correct methods on constraints and callbaks are called for each Command.  Also fixed the handling of
Constraints when applied to composite Draggers.

6 years agoAdded support for Scale1DDragger, Scale2DDragger and TranslatePlaneDragger to --dragg...
Robert OSFIELD [Mon, 30 Jan 2012 12:26:28 +0000 (12:26 +0000)]
Added support for Scale1DDragger, Scale2DDragger and TranslatePlaneDragger to --dragger command line option