Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Commits on Feb 10, 2012
  1. From Stephan Huber, "

    Robert OSFIELD authored
    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)"
  2. From Colin McDonald, "Upgrading to OpenSceneGraph 3.0.1, texture mip …

    Robert OSFIELD authored
    …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
  3. From Domenico Mangieri, "Implementation for MoveRight and MoveUp meth…

    Robert OSFIELD authored
    …ods in FirstPersonManipulator is missing.
    I'm using the manipulator, so I added it."
  4. From Stephan Huber, attached you'll find a compile fix for the new in…

    Robert OSFIELD authored
    …troduced rowlength-feature on IOS/OpenGL ES builds
Commits on Feb 9, 2012
  1. From Luc Frauciel, "osgUtil Tessellator : beginTessellation() made vi…

    Robert OSFIELD authored
    …rtual 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).
  2. From Torben Dannhauer, "Modification to osgfilecache: Now source data…

    Robert OSFIELD authored
    … 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."
  3. Updated ChangeLog, AUTHORS and Contriburos.cpp files

    Robert OSFIELD authored
  4. From Martin von Gagern, "The xine osg plugin won't compile against xi…

    Robert OSFIELD authored
    error: ?video_driver_class_t? has no member named ?get_identifier?
    error: ?video_driver_class_t? has no member named ?get_description?
    This has been reported on Gentoo:
    The relevant commit to the xine-lib repository is
    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)
    I'm assigning my copyright in this change to the osg project leads.
  5. From Olaf Flebbe, "there are two ocurrences where pointer to bool is …

    Robert OSFIELD authored
    …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. From Paul Martz, a simple GL3 example

    Robert OSFIELD authored
  7. From Colin McDonald, "The bounding box returned by getBound() for Tex…

    Robert OSFIELD authored
    …t 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."
  8. From Colin McDonald, fix for Solaris build.

    Robert OSFIELD authored
  9. From Filip Arlet,"I ran into problem with osg::Text _BASE_LINE alignm…

    Robert OSFIELD authored
    …ent. 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)"
  10. Added back in support for checking the current working directory by d…

    Robert OSFIELD authored
    …efault, 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.
  11. From Chris Denham, "This is a submission to fix a problem with use of…

    Robert OSFIELD authored
    … 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:
           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);
               // 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);
  12. From Thorsten Brehm, "attached update changes OSG's src/osgDB/Registr…

    Robert OSFIELD authored
    …y.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.
Commits on Feb 8, 2012
  1. From Hartmut Seichter, "attached a revised CMakeLists.txt file for An…

    Robert OSFIELD authored
    …droid 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."
  2. From Paul Martz, "This change clarifies the description for OSG_GL_VE…

    Robert OSFIELD authored
  3. From Leandro Motto Barros,

    Robert OSFIELD authored
    "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
  4. From Claus Scheiblauer, "in GraphicsWindowQt.cpp the GLWidget::keyRel…

    Robert OSFIELD authored
    …easeEvent 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."
Commits on Feb 7, 2012
  1. Fixed build issues when compile with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_…

    Robert OSFIELD authored
    …CONVERSION set to OFF.
  2. From Alexander Irion, "Added missing format GL_ALPHA to Image::comput…

    Robert OSFIELD authored
  3. From Johannes Baeuerle, "The first problem is wrong value of the bloc…

    Robert OSFIELD authored
    …k 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."
  4. From Nico Kruithof, "I found that Collada wasn't found correctly with…

    Robert OSFIELD authored
    … visual studio 2010."
  5. From Marius Kintel, "GraphicsWindowQt::WindowData no longer requires …

    Robert OSFIELD authored
    …the parent widget of a graphics window to be of type GLWidget."
  6. From David Fries, "Of the two ways to use the Tessellator object, only

    Robert OSFIELD authored
    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.
    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."
  7. From Lionel Lagarde, "The setNormal method of osg::Billboard has side…

    Robert OSFIELD authored
    … 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."
  8. From Wojciech Lewandowski, "This is a one line modification of StatsH…

    Robert OSFIELD authored
    …andler.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.
  9. From Tamer Fahmy, Fix for bug when scrolling down and using render on…

    Robert OSFIELD authored
    … demand.
    "Currently issuing a mouse scroll DOWN event would stop updating
    animations in progress.
    The fix consists of changing the line
     us.requestContinuousUpdate( false );
     us.requestContinuousUpdate( isAnimating() || _thrown );
    in OrbitManipulator::handleMouseWheel() as has been done for the
    GUIEventAdapter::SCROLL_UP case a couple of lines earlier or in
  10. From Rudolf Wiedemann, "the file attached fixes the incomplete implem…

    Robert OSFIELD authored
    …entation of "osg::DefaultUserDataContainer"'s copy constructor.
    Copying user objects was missing."
    Note from Robert Osfield, in submission changed
  11. From Sukender, "I just fixed using UTF8 paths in JP2 readerwriter und…

    Robert OSFIELD authored
    …er 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).
Commits on Feb 6, 2012
  1. From Mathias Froehlich, "In Optimizer.cpp a nodes update callback is …

    Robert OSFIELD authored
    …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
  2. From Mathias Froehlich, "Attached is a change to the stats handler so…

    Robert OSFIELD authored
    … 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."
  3. From Mathias Froehlich, "The attached change to the default font make…

    Robert OSFIELD authored
    …s 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.
  4. From Cory Riddell, "I've been using the dot plugin and found that our…

    Robert OSFIELD authored
    … 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."
Something went wrong with that request. Please try again.