Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tag: OpenSceneGraph…
Commits on Dec 17, 2007
  1. Release OpenSceneGraph-2.3.0

    Robert OSFIELD authored
  2. Updated AUTHORS files

    Robert OSFIELD authored
  3. Updated ChangeLog for 2.3.0 release

    Robert OSFIELD authored
  4. Updated version number for 2.3.0 dev release

    Robert OSFIELD authored
  5. From Paul Obermeier, "Please find enclosed the following 2 bug fixes:

    Robert OSFIELD authored
    File osgShadow/Version.cpp, Line 25:
    const char* osgShaodowGetLibraryName()
    should be:
    const char* osgShadowGetLibraryName()
    File CMakeModules/OsgMacroUtils.cmake, Line 224:
    should be:
    Otherwise setting CMAKE_DEBUG_POSTFIX to an empty string instead of "d" in
    the main CMakeLists.txt does not work under Linux.
  6. From David Cullu, added various mathematical operators

    Robert OSFIELD authored
  7. From Stephan Huber, "attached you'll find an updated carbon-implement…

    Robert OSFIELD authored
    …ation, which implements
    the missing functionality for setWindowName and useCursor
  8. Updated wrappers

    Robert OSFIELD authored
  9. From Wojiech Leandowski, "I earlier wrote about my hassles with archi…

    Robert OSFIELD authored
    …ves under Windows. I implemented
    64 bit binary compatible OSGA archive reader/writer using mixed
    stdio/iostream calls. But during this work I learned that it can be made in
    much simpler way.
    Attached is result of this new attempt. I hope its appropriate for inclusion
    into OSG codebase. It was compiled and tested with latest SVN OSG, Windows
    XP 32 bit and Windows Vista business 64 bit. OSG was built using VS 2005
    Express SP1 for 32 bit environment and VS 2005 Std for 64 bit.
    Solution description (there were two problems involved):
    Problem 1: implicit conversions beetween file positions and 32 bit int. This
    could be considered a MS compiler bug because this 32 bit int was
    additionally implicitly converted to/from 64 bit. As far as I know compiler
    is allowed to make only one implict conversion (but maybe this rule does not
    refer to simple types).
    Its actually possible to address OSGA files above 4 GiB range using 32 bit
    windows iostreams. MS Iostreams in practice offer the same level of
    functionality as stdio functions. There are functions fsetpos and fgetpos in
    stdio lib which use 64 bit file pointers (fpos_t). These functions are
    internally called by seekp( streampos ), seekg( streampos ), tellp(), and
    tellg() methods. So its also possible to change and retrieve file postions
    using iostream calls. But the problem lies in implicit handling of streampos
    streampos type is actually a template class used as seekp, seekg parameter
    and returnd from tellp, tellg. Its capable of storing 64 bit file pointers.
    But streampos can be also converted to/from simple type streamoff. It has
    proper constructor and cast operator. In Win 32 environment streamoff is
    defined as long (~32 bit int). So when seekp, and tellp arent used with
    exact streampos objects but OSGA_Archive::pos_type complier makes implicit
    casts to 32 bit int types loosing important bits of information.
    So above problem could be easily handled by making conversion calls
    explicit. My code defines 2 functions used to convert back and forth beetwen
    64 bit OSGA_Archive::pos_type and std::streampos objects:
           OSGA_Archive::pos_type ARCHIVE_POS( const std::streampos & pos );
           std::streampos STREAM_POS( OSGA_Archive::pos_type & pos );
    Rest of the OSGA implementation code was modified to call these conversions
    explicitly with seekp, seekg, tellp, tellg.
    Problem 2: seekp and seekg have two variants. Only one of these variants is
    actually 64 bit proof.
    When I solved my first problem and made use of explicit streampos conversion
    functions, OSGA archive was able to read my example 11 GiB archive. But
    there were still problems with write and append. I found that the reason for
    this was pair of seekp( 0, std::ios_base::end ) and tellp() calls. It turned
    out that use of seekp, seekg( offset, direction ) function variants was
    setting file pos pointer to EOF when file was larger than 4GiB. But I
    noticed that one arg seekp, seekg ( streampos ) versions worked correctly.
    So the solution was to change OSGA write logic a little, and replace
    seekp( offset, direction ) with seekp( absolute_pos ) calls.
    I achieved this by modifing IndexBlock write method to record and restore
    file pos after IndexBlock was written. This modification has the effect that
    put pointer is generally kept at the end of file, so there is no need to
    repostion to the end before writing the files. This allowed me to get rid of
    those problematic seekp( 0, std::ios_base::end ) calls.
    There was one place where I could not easily get rid of seekp( 0,
    std::ios_base::end ). It was situation where existing OSGA was opened for
    appending. I resolved this by computing file length by finding max position
    from index block and file block endings. Then I replaced former seekp( 0,
    std::ios_base::end ) with  seekp( STREAM_POS( found_file_length ).
    Description of these changes may sound bit hacky but in practice these were
    fairly simple and straightforward modifications. I hope they pass your
    review. There is one complex preprocessor condition which I based on few
    lines taken from boost positioning.hpp. Boost licence does allow such
    reproduction. In case of problems this condition may be easily simplified to
    windows only implementation.
Commits on Dec 16, 2007
  1. From Jean-Sebastien Guay, "Some clients at my new job noticed that pi…

    Robert OSFIELD authored
    …cking did not work with the
    osg::Capsule subclass of osg::Shape in an osg::ShapeDrawable. Other
    shapes worked fine. So I have fixed this. Code attached.
    My modification is in the PrimitiveShapeVisitor, and is based on the
    DrawShapeVisitor - I added methods called createCylinderBody and
    createHalfSphere, and used them in apply(Cylinder&) and
    apply(Capsule&). In my testing they work fine, tested even with
    transforms and moving around the scene.
  2. From Wojciech Lewandowski, "osgSim::BlinkSequence has sequenceGroup u…

    Robert OSFIELD authored
    …nitialized by default (=NULL ref_ptr). By looking at the code I figured out that unset sequenceGroup is completely correct and thus allowed.
    But writing BlinkSequence with empty sequence group caused a crash when IVE was accessing baseTime from NULL address.
    Atttached is a fix for this situation.
  3. From Wojiech Lewandowski, "There was a bug in ShadowMap camera view m…

    Robert OSFIELD authored
    …atrix computation. View matrix was wrong when light was directional and shadowed scene was not centered at zero coord. I fixed that and also modified cast distance to much smaller value. With former range it was possible to generate shadows with lowest LODs. "
  4. Fixed HeightField coordinates set up

    Robert OSFIELD authored
  5. Added intializers.

    Robert OSFIELD authored
  6. Added support for automatically setting the coordinate system of a sh…

    Robert OSFIELD authored
    …apefile by reading associate .prj file
  7. Added parsing of parameters to Viewer constructor.

    Robert OSFIELD authored
  8. Removed used of ref_ptr<>'s internally to avoid ciricular calls on de…

    Robert OSFIELD authored
  9. Added initilizers of variables to FreeTypeFont3D constructors.

    Robert OSFIELD authored
    Removed unused FreeTypeFontBase class
Commits on Dec 15, 2007
  1. Fixed handling of DISPLAY variable, and mapped the rest of Producer c…

    Robert OSFIELD authored
    …onfig settings
  2. Commented out rendendent warnings

    Robert OSFIELD authored
  3. commented out rendudent warning

    Robert OSFIELD authored
  4. Added setting of ambient bias uniform

    Robert OSFIELD authored
  5. Tweaked the abmient lighting contribution so that the OpenGL vertex l…

    Robert OSFIELD authored
    …ighting has
    the ambient light source switched off, and use the fragment shader to add this
    contribution back in.
Commits on Dec 14, 2007
Commits on Dec 13, 2007
  1. Added Locator::s/getTransformScaledByResolution(bool) to assist with …

    Robert OSFIELD authored
    …VPB integration
  2. Warning fixes

    Robert OSFIELD authored
  3. From Andy Skinner, build fixes for Solaris

    Robert OSFIELD authored
  4. Convert tabs to four spaces

    Robert OSFIELD authored
  5. Fixed memory leak

    Robert OSFIELD authored
  6. Added copy operator to ShapeAttribute to prevent problems when assign…

    Robert OSFIELD authored
    …ed them or use within a vector
Commits on Dec 12, 2007
  1. Added a osgViewer::setSceneData(ref_ptr<Node>) method.

    Robert OSFIELD authored
Something went wrong with that request. Please try again.