<div dir="ltr"><div><div>Hi All,<br><br></div>I have just tagged OpenSceneGaph-3.2.2, the latest maintenance release of the 3.2.x series. This minor point release is binary compatible with 3.2.0 and 3.2.1, features build fixes for recent platform combinations and changes to 3rd party dependencies, and a number of bug fixes.<br><br></div>Source code:<br><div>
<ul style="margin:15px 0px;padding:0px;border:0px;list-style:none;font-family:'Segoe UI',Arial,Helvetica,sans-serif;font-size:13px;line-height:19px"><li style="margin:0px 0px 5px;padding:0px 0px 0px 30px;border:0px;background-image:url('/plugins/system/jat3/jat3/base-themes/default/images/bullet.gif');line-height:20px;overflow:visible;background-repeat:no-repeat no-repeat">Zip file containing source code : <a href="http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.2.zip" style="margin:0px;padding:0px;border:0px;color:#006699;text-decoration:underline"><span class="icon" style="margin:0px;padding:0px;border:0px">OpenSceneGraph-3.2.2.zip</span></a> md5sum <span style="font-family:monospace"><span style="color:#000000;background-color:#ffffff">caa21fe5a1250806ddd372d8b7352b5f</span><br></span></li><li style="margin:0px 0px 5px;padding:0px 0px 0px 30px;border:0px;background-image:url('/plugins/system/jat3/jat3/base-themes/default/images/bullet.gif');line-height:20px;overflow:visible;background-repeat:no-repeat no-repeat">Subversion tag for 3.2.2: svn co <span class="icon" style="margin:0px;padding:0px;border:0px;color:#006699;text-decoration:underline"><a href="http://svn.openscenegraph.org/osg/OpenSceneGraph/tags/OpenSceneGraph-3.2.2" style="margin:0px;padding:0px;border:0px;color:#006699;text-decoration:underline">http://svn.openscenegraph.org/osg/OpenSceneGraph/tags/OpenSceneGraph-3.2.</a>2 </span>OpenSceneGraph</li></ul><p>Thanks to all those that have tested, debugged and helped refine features for this maintenance release.</p><p>Happy coding!<br></p><p>Robert Osfield.<br></p><p><br></p>-- ChangeLog since 3.2.1:<br><br>2015-08-04 10:11 robert<br><br> * CMakeLists.txt: Upated rc number to 4<br><br>2015-08-04 09:35 robert<br><br> * include/osg/GL: Build fix for Mingw<br><br>2015-07-23 14:42 robert<br><br> * include/osgViewer/ViewerBase: From Pjotr Svetachov, buid fixes<br> for VS2015.<br><br>2015-07-21 14:22 robert<br><br> * src/osgPlugins/OpenFlight/PaletteRecords.cpp: Added check for<br> validity of OpenFlight shininess value.<br><br>2015-07-21 13:42 robert<br><br> * include/osg/BoundsChecking: Fixed typo<br><br>2015-07-19 09:51 robert<br><br> * src/osgPlugins/tiff/ReaderWriterTIFF.cpp: Reinstated the<br> TIFFSetField(image, TIFFTAG_ROWSPERSTRIP, rowsperstrip);<br><br>2015-07-17 09:15 robert<br><br> * CMakeLists.txt: Updated release candidate nubmer<br><br>2015-07-17 09:03 robert<br><br> * AUTHORS.txt, ChangeLog: Updated ChangeLog and AURHORS<br><br>2015-07-17 08:35 robert<br><br> * AUTHORS.txt, ChangeLog: Updated ChangeLog and AUTHORS file<br><br>2015-07-17 08:17 robert<br><br> * CMakeLists.txt: Added cmake_policy setting for cmake-3.x to avoid<br> warning with Qt usage.<br><br>2015-07-17 08:13 robert<br><br> * src/osgPlugins/tiff/ReaderWriterTIFF.cpp: From Patrick Neary, "To<br> the tiff plugin, add the capability to write tiff images with<br> unsigned short data"<br><br>2015-07-16 19:19 robert<br><br> * src/osg/Image.cpp: From Patrick Neary, "Added some lesser used<br> tokens that we use from GL_ARB_texture_rg to<br> computeFormatDataType(), and computeNumComponents() in<br> src/osg/Image.cpp"<br><br>2015-06-30 08:38 robert<br><br> * src/osgPlugins/ogr/ReaderWriterOGR.cpp: Build fix for GLDAL>=2.0<br><br>2015-06-19 09:54 robert<br><br> * src/osgUtil/RenderStage.cpp: From Jannik Heller, fix to<br> clearReferencesToDependentCameras().<br><br>2015-06-12 08:04 robert<br><br> * src/osgText/TextBase.cpp: From Farshid Lashkari, "I've modified<br> some setter methods of TextBase to avoid unnecessary calls to<br> computeGlyphRepresentation() if the value has not changed."<br><br>2015-06-10 10:02 robert<br><br> * src/osgGA/NodeTrackerManipulator.cpp: Philippe Renon, "Fixed<br> potential divide by zero in NodeTrackerManipulator : The divide<br> by zero happens when throwing a NodeTrackerManipulator.<br> The infinite result trickles down and later causes NaN in<br> culling.<br> <br> The fix was to use getThrowScale() as done everywhere else."<br><br>2015-06-07 11:13 robert<br><br> * src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp:<br> Fixed setReferenceTime() bug where a * eather than the correct /<br> was being used. Bug and fix suggested Benjamin Richter.<br><br>2015-05-21 14:11 robert<br><br> * src/osgText/Text3D.cpp: Fixed memory error associated with<br> reading over the end of container due to an unbounded while loop.<br><br>2015-05-05 11:04 robert<br><br> * CMakeLists.txt: Changed the CMP0020 check to > 2.8.10<br><br>2015-04-20 10:43 robert<br><br> * src/osgViewer/GraphicsWindowX11.cpp: Merged correction to<br> coordinates from svn/trunk<br><br>2015-04-20 10:42 robert<br><br> * applications/osgversion/Contributors.cpp: Updated contributor<br> fixes<br><br>2015-04-20 09:38 robert<br><br> * src/osg/State.cpp: Moved uniform substitution to infront of<br> vertex attribute substituion to make sure gl_Vertex usage is<br> replaced when required.<br><br>2015-04-01 09:37 robert<br><br> * src/osg/Image.cpp: From Lionel Largarde, "fix for the<br> Image::computeNumberOfMipmapLevels method. The method did use the<br> float version of the log function and the / operator.<br> It works for most of the input sizes, but fails for 8192,<br> 32768...<br> For 8192, the method returns 13 instead of 14."<br><br>2015-03-17 09:10 robert<br><br> * src/osgWrappers/serializers/osg/LibraryWrapper.cpp: Removed<br> unimplemented ComputeBoundingBoxCallback and<br> ComputeBoundingSphereCallback<br><br>2015-03-17 08:26 robert<br><br> * src/osgWrappers/serializers/osg/LibraryWrapper.cpp: Added missing<br> references for static build<br><br>2015-03-16 10:30 robert<br><br> * src/osgAnimation/Animation.cpp: From Konstantin Matveyev, "Last<br> update in the osgAnimation::Animation ONCE mode bug fix"<br><br>2015-03-13 08:13 robert<br><br> * src/osgWrappers/serializers/osg/LibraryWrapper.cpp: Reverted<br> merged from svn/trunk.<br><br>2015-03-13 08:12 robert<br><br> * src/osgWrappers/serializers/osg/LibraryWrapper.cpp: From<br> Konstantin Matveyev, "Small fix for OSG 3.3.6.119 in the<br> attachment.<br> <br> One line added in osg/LibraryWrapper.cpp<br> <br> USE_SERIALIZER_WRAPPER(Callback)<br> "<br><br>2015-03-12 15:12 robert<br><br> * CMakeModules/FindFBX.cmake: From Laurens Voerman, "attached is a<br> zip with a modified version of:<br> OpenSceneGraph\CMakeModules\FindFBX.cmake<br> <br> This version can find fbx sdk 2015.1 and will prefer it over<br> older versions.<br> <br> Tested with Visual Studio Express 2013 on 64bit windows 7"<br><br>2015-03-11 17:47 robert<br><br> * src/osgPlugins/exr/ReaderWriterEXR.cpp: Warning fixes<br><br>2015-03-11 17:37 robert<br><br> * src/osgPlugins/sdl/JoystickDevice.cpp: From Laurens Voerman, "The<br> current version will not compile with SDL version 2, error<br> OpenSceneGraph\src\osgPlugins\sdl\JoystickDevice.cpp(42): error<br> C2664: 'const char *SDL_JoystickName(SDL_Joystick *)' : cannot<br> convert argument 1 from 'int' to 'SDL_Joystick *'<br> due to changes in the SDL api.<br> <br> Tested with Visual Studio Express 2013; SDL 2.0.1"<br><br>2015-03-05 18:00 robert<br><br> * CMakeLists.txt: Updated RC to 2.<br><br>2015-03-05 18:00 robert<br><br> * AUTHORS.txt, ChangeLog, applications/osgversion/Contributors.cpp:<br> Updated AUTHORS file for next release candidate<br><br>2015-03-03 12:56 robert<br><br> * src/osgUtil/Optimizer.cpp: Restructed the checks in the<br> CollectLowestTransformsVisitor::removeTransforms() to avoid<br> benign case being flagged as warning.<br><br>2015-03-03 12:00 robert<br><br> * src/osg/PolygonMode.cpp: Re-organized the #ifdef's to avoid usage<br> of glPolyginMode under GLES<br><br>2015-03-02 11:08 robert<br><br> * examples/osgtessellationshaders/osgtessellationshaders.cpp: From<br> Michael McDonnell, Merged enchancements to osgtesselationshader<br> example from OSG-svn/trunk to OSG-3.2 branch.<br><br>2015-03-01 11:08 robert<br><br> * src/osgGA/OrbitManipulator.cpp,<br> src/osgGA/StandardManipulator.cpp: From Jannik Heller, "I noticed<br> the rotation in the OrbitManipulator depends on the framerate. To<br> reproduce this issue, start the osganimate example, rotate the<br> model with the left mouse button, then let go of the mouse button<br> while still moving. You will notice that with V-Sync enabled, the<br> model rotates slower.<br> <br> The OrbitManipulator calculates a scale to counteract the<br> framerate dependency, but it turns out this scale wasn't used for<br> the rotation yet."<br><br>2015-02-27 10:15 robert<br><br> * AUTHORS.txt, CMakeLists.txt, ChangeLog,<br> applications/osgversion/Contributors.cpp: Updated AUTHROS,<br> Controbitors and rc number in prep for the 3.2.2-rc1<br><br>2015-02-26 20:06 robert<br><br> * AUTHORS.txt, ChangeLog, applications/osgversion/Contributors.cpp:<br> Updated AUTHORS<br><br>2015-02-26 19:13 robert<br><br> * src/osg/Image.cpp: From Bradley Baker Searles, "We had someone<br> replace a DDS texture with a GL_RGB/GL_UNSIGNED_SHORT_5_6_6<br> image, which would trigger a crash in Image.cpp while flipping<br> the mipmap chain. The code was trying to flip the mipmaps using<br> the rowStep for the full-size image (we have "dds_flip" set in<br> the osgDB::ReaderWriter::Options in the osgDB::Registry)."<br><br>2015-02-26 18:07 robert<br><br> * src/osgPlugins/dds/ReaderWriterDDS.cpp: From Bradley Baker<br> Searles, "Small patch attached to handle DDS flip when s=4.<br> Currently it will omit flipping and generate a warning: "Vertical<br> flip was skipped. Image dimensions have to be multiple of 4."."<br><br>2015-02-26 14:16 robert<br><br> * src/osgPlugins/tiff/ReaderWriterTIFF.cpp: Fixed typo<br><br>2015-02-23 20:28 robert<br><br> * src/osg/TransferFunction.cpp: Fixed image allocation operations.<br><br>2015-02-23 11:07 robert<br><br> * src/osgViewer/StatsHandler.cpp: From Arjun Ramamurthy, fix for<br> StatsHandler when being used in multiple view/windows<br><br>2015-02-18 10:23 robert<br><br> * src/osgPlugins/dds/ReaderWriterDDS.cpp: From Sebastian<br> Messerschmidt,"Attached you find a version of the ReaderWriterDDS<br> with info outputs set to OSG_INFO instead of OSG_NOTICE. The old<br> version spams the console for each loaded DDS file."<br><br>2015-01-06 15:10 robert<br><br> * ChangeLog: Updated ChangeLog<br><br>2015-01-06 14:55 robert<br><br> * src/osgVolume/Property.cpp: From Julien Valentin, added missing<br> initializer<br><br>2015-01-06 14:41 robert<br><br> * src/osgWrappers/serializers/osgVolume/VolumeTechnique.cpp: From<br> Julien Valentin, typo fix<br><br>2014-12-22 10:35 robert<br><br> * CMakeLists.txt: Added comment about using<br> -DCMAKE_DISABLE_FINDPACKAGE_* command line.<br><br>2014-12-22 09:50 robert<br><br> * include/osg/ref_ptr: Added doxygen comment for<br> ref_ptr<>::release().<br><br>2014-12-18 15:59 robert<br><br> * CMakeLists.txt: From Mattias Helsing, "CMake have release 3.0 and<br> 3.1 and we have some bad checks for cmake<br> major version when settings cmake policies in CMakeLists.txt.<br> This fixes it"<br><br>2014-12-18 11:37 robert<br><br> * applications/osgversion/Contributors.cpp: Updated AUTHORS<br><br>2014-12-18 09:20 robert<br><br> * PlatformSpecifics/Android/<a href="http://Application.mk.master.in">Application.mk.master.in</a>: From Adrian<br> Clark, "Recently I tried compiling version 3.x of OpenSceneGraph<br> for Android, using a recent Android NDK, only to run into<br> problems with missing dependencies when trying to link my android<br> project against the generated libraries.<br> <br> <br> <br> After some exploration, I found the problem is because the<br> APP_PLATFORM variable in Application.mk is set to a platform<br> number which is no longer compatible with the Android NDK by the<br> OSG CMake toolchain. This causes the Android to compile it using<br> the most recent Android platform libraries which (for reasons I<br> don't know) no longer provide functions which OSG relies (in<br> particular rand and stat64).<br> <br> <br> <br> This bug affects the current SVN repos for OSG 3.3.1, OSG 3.3.0,<br> OSG 3.2.1 and OSG 3.2.0 (and possibly earlier).<br> <br> <br> <br> I posted a longer discussion of what the problem is in this forum<br> thread:<br> <br> <a href="http://forum.openscenegraph.org/viewtopic.php?p=62012#62012">http://forum.openscenegraph.org/viewtopic.php?p=62012#62012</a><br> <br> <br> <br> <br> <br> But essentially the fix is to change one line in<br> OSG/PlatformSpecifics/Android/<a href="http://Application.mk.master.in">Application.mk.master.in</a> from:<br> <br> <br> <br> APP_PLATFORM := ${ANDROID_PLATFORM}<br> <br> <br> <br> To<br> <br> <br> <br> APP_PLATFORM := android-${ANDROID_PLATFORM}<br> <br> <br> <br> <br> <br> The attached file will fix the bug in the 3.2.0 - 3.3.1 SVN repos<br> for OSG.<br> <br> "<br><br>2014-12-10 11:30 robert<br><br> * src/osgPlugins/dae/daeRMaterials.cpp: From Farshid Lashkari, "The<br> Collada loader would crash while processing textures on certain<br> files. I've attached the fix."<br><br>2014-12-08 11:08 robert<br><br> * src/osgUtil/CullVisitor.cpp: Fixed memory leak in<br> RenderStageCache.<br><br>2014-11-26 17:07 robert<br><br> * applications/present3D/Cluster.h: Fixed warnigns<br><br>2014-11-26 17:07 robert<br><br> * applications/present3D/Cluster.cpp,<br> applications/present3D/Cluster.h: Removed redundent line endings<br><br>2014-11-26 16:29 robert<br><br> * src/osgPlugins/ffmpeg/CMakeLists.txt: Fixed deprecated warnings<br><br>2014-11-26 16:15 robert<br><br> * src/osgPlugins/pdf/CMakeLists.txt: Fixed warning<br><br>2014-11-26 16:07 robert<br><br> * examples/osgcluster/osgcluster.cpp: Fixed warnings<br><br>2014-11-26 16:06 robert<br><br> * examples/osgcluster/osgcluster.cpp: Removed redudent spaces<br><br>2014-11-26 16:02 robert<br><br> * src/osgPlugins/lwo/Object.cpp: Fixed warning<br><br>2014-11-24 15:24 robert<br><br> * CMakeLists.txt, CMakeModules/FindAVFoundation.cmake,<br> CMakeModules/FindQuickTime.cmake,<br> src/osgViewer/PixelBufferCocoa.mm: From Jan Klimke, "i noticed,<br> that there are a couple of additional flaws when building osg for<br> Mac OS X 10.10 Yosemite.<br> <br> The mac os sdk version is recognized by the current CMAKE script<br> as 10.1 instead of 10.10 since it cuts the version string from<br> the 4th place. I introduced a more reliable version checking<br> based on splitting the returned version code into MAJOR MINOR and<br> PATCH parts and reassemble the OSG sdk version afterwards.<br> <br> I replaced the existing CMake code against the following<br> (returning now version 10.10 as expected):<br> <br> # Determine the canonical name of the selected Platform SDK<br> EXECUTE_PROCESS(COMMAND "/usr/bin/sw_vers" "-productVersion"<br> OUTPUT_VARIABLE OSG_OSX_SDK_NAME<br> OUTPUT_STRIP_TRAILING_WHITESPACE)<br> STRING(REPLACE "." ";" MACOS_VERSION_LIST ${OSG_OSX_SDK_NAME})<br> LIST(GET MACOS_VERSION_LIST 0 MACOS_VERSION_MAJOR)<br> LIST(GET MACOS_VERSION_LIST 1 MACOS_VERSION_MINOR)<br> LIST(GET MACOS_VERSION_LIST 2 MACOS_VERSION_PATCH)<br> <br> SET(OSG_OSX_SDK_NAME<br> "macosx${MACOS_VERSION_MAJOR}.${MACOS_VERSION_MINOR}")<br> <br> Also i added the check for the new Version to some more find<br> scripts.<br> <br> Additionally the nil object in Objective C now seems to be<br> equivalent with a null_ptr that cannot be passed as GLInt<br> anymore. So i switched this in the PixelBufferCocoa.mm to pass a<br> zero instead of nil.<br> "<br><br>2014-11-24 14:10 robert<br><br> * examples/osgsimplegl3/osgsimplegl3.cpp: Fixed handling of<br> viewer's Camera<br><br>2014-11-21 20:16 robert<br><br> * src/osgDB/CMakeLists.txt, src/osgDB/FileUtils.cpp: From Alberto<br> Luaces,"the current code uses the preprocessor for generating the<br> plugin path in<br> a way that when CMAKE_INSTALL_PREFIX contains something along the<br> lines<br> of<br> <br> /usr/x86_64-linux-gnu/<br> <br> it gets substituted as<br> <br> /usr/x86_64-1-gnu/<br> <br> that is, the string is preprocessed again, thereby making changes<br> to<br> anything that matches any defined symbol, as "linux" in this<br> example<br> (<a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763816">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763816</a>).<br> <br> Quoting that path directly in CMake scripts solves that problem.<br> "<br><br>2014-11-21 10:21 robert<br><br> * CMakeModules/CheckAtomicOps.cmake: From Björn Blissing, fix for<br> ambiguous defines in Atomic.cpp when compiling with MinGW and GCC<br><br>2014-11-21 09:28 robert<br><br> * applications/osgversion/Contributors.cpp: Copied Contributors<br> file from svn/trunk.<br><br>2014-11-20 17:37 robert<br><br> * include/osg/Texture: From Claus Steuer, "XCode 6, IOs 8.1 SDK<br> Compile fix : There are some undefined texture formats when<br> compiling osg for IOs 8.1 with XCode 6 and OpenGLES2 enabled."<br><br>2014-11-20 16:38 robert<br><br> * src/osgPlugins/obj/ReaderWriterOBJ.cpp: From Farshid Lashkari,<br> "The obj loader was overriding the existing database path list<br> with the file path of the model, instead of prepending the file<br> path to the path list. The latter seems to be more common<br> behavior for most of the existing loader plugins. Also, the local<br> options weren't actually being used when processing the scene<br> graph for textures. I've attached the fix for both issues."<br><br>2014-11-20 10:52 robert<br><br> * src/osgPlugins/Inventor/ConvertFromInventor.cpp: From Marc<br> Helbling, "here is a trivial fix in the Inventor plugin. In one<br> code path, the pointer validity is checked after dereferencing a<br> pointer that can be null (image->valid()) instead of calling<br> ref_ptr::valid (image.valid())."<br><br>2014-11-20 10:45 robert<br><br> * src/osgUtil/MeshOptimizers.cpp: From Marc Helbling, "I've come<br> across scenes that contains geometries with initialized but empty<br> vertex arrays and primitives and that would make some optimizers<br> crash.<br> <br> The submission therefore only contains a test on the size of the<br> vertex array for the VertexCacheMissVisitor and the<br> VertexAccessOrderVisitor visitors."<br><br>2014-11-20 09:55 robert<br><br> * src/osgPlugins/3ds/ReaderWriter3DS.cpp: >From Sukender, "Fix for<br> 3DS reader, which may read wrong triangles. Actually, indices may<br> suffer a 'short int' overflow, in two places."<br><br>2014-11-20 09:41 robert<br><br> * src/osg/Texture2DArray.cpp: Fixed segfalt in Texture2DArray copy<br> constructor where it would apply images to an uninitialzed<br> vector.<br><br>2014-11-20 09:32 robert<br><br> * src/osgPlugins/fbx/fbxMaterialToOsgStateSet.cpp,<br> src/osgPlugins/fbx/fbxMaterialToOsgStateSet.h,<br> src/osgPlugins/fbx/fbxRMesh.cpp: From Marc Helbling, "patch<br> adding support for ambient material in the FBX plugin. It's a<br> straightfoward adaptation of the emissive support and has been<br> tested on a proprietary model."<br><br>2014-11-20 09:31 robert<br><br> * CMakeLists.txt: Added default setting of build type to Release<br><br>2014-11-20 09:21 robert<br><br> * src/osgPlugins/gif/ReaderWriterGIF.cpp: From Pjotr Svetachov, fix<br> for build breakage with giflib 5.0.<br><br>2014-11-19 17:31 robert<br><br> * applications/osgversion/Contributors.cpp: Fixed contributors<br> names<br><br>2014-11-19 17:31 robert<br><br> * src/osgPlugins/gif/ReaderWriterGIF.cpp: From Clement Boesch, "Fix<br> remaining bit of Giflib5 usage"<br><br>2014-11-19 11:37 robert<br><br> * src/osgWrappers/deprecated-dotosg/osg/ProxyNode.cpp: From Laurens<br> Voerman, "I found a new way to crach the osgviewer:<br> osgviewer "ProxyNode { FileNameList { cow.osgt } num_children 1<br> }".osgs<br> <br> The proxy node reader wrongly assumes options to be non NULL.<br> <br> fixed in attached zip:<br> src\osgWrappers\deprecated-dotosg\osg\ProxyNode.cpp<br> <br> applies to both the 3.2 branch and svn trunk"<br><br>2014-11-04 16:29 robert<br><br> * src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp,<br> src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp: Build fixes for<br> ffmpeg LIBAVCODEC_VERSION_MAJOR >= 56<br><br>2014-08-19 09:27 robert<br><br> * src/osgPlugins/md2/ReaderWriterMD2.cpp: Fixed MD2 danglng pointer<br> crash.<br><br>2014-08-08 16:42 robert<br><br> * src/osgPlugins/txp/ReaderWriterTXP.cpp: >From Ryan Kawicki, "There<br> is an issue where the model insets of a terrex terrain are being<br> removed during the loading process. The issue is described below.<br> <br> - the issue here is that the plugin is removing group nodes if<br> that group node only has one child. becuase transforms are also<br> group nodes, there were cases when the transform would have only<br> one child under it and would cause it to remove the translation<br> portion. this would cause all the vertex data to be loaded around<br> the last matrix operation, which in our case was the origin<br> (0,0,0).<br> <br> We work off of OSG 2.8.1 but see that this has not been addressed<br> on latest yet. I’ve tested this against 2.8.1 and have cleanly<br> applied it to my local repository off of latest."<br><br>2014-08-08 16:34 robert<br><br> * src/osgUtil/RenderStage.cpp: From Tim George, "Currently there is<br> a problem with using a camera with a viewport with a non 0 offset<br> and also using an FBO. The problem is that only area made up of<br> the viewports width and height is drawn based on an offset of 0,0<br> instead of using the viewports offset.<br> <br> It is caused by line 991 in RenderStage.cpp:<br> <br> <br> Code:<br> fbo_ext->glBlitFramebuffer(<br> 0, 0, static_cast<GLint>(_viewport->width()),<br> static_cast<GLint>(_viewport->height()),<br> 0, 0, static_cast<GLint>(_viewport->width()),<br> static_cast<GLint>(_viewport->height()),<br> blitMask, GL_NEAREST);<br> <br> <br> <br> which is not taking into account the viewport x and y when<br> performing the blit. It probably should be:<br> <br> <br> Code:<br> fbo_ext->glBlitFramebuffer(<br> static_cast<GLint>(_viewport->x()),<br> static_cast<GLint>(_viewport->y()),<br> static_cast<GLint>(_viewport->width()) +<br> static_cast<GLint>(_viewport->x()),<br> static_cast<GLint>(_viewport->height()) +<br> static_cast<GLint>(_viewport->y()),<br> static_cast<GLint>(_viewport->x()),<br> static_cast<GLint>(_viewport->y()),<br> static_cast<GLint>(_viewport->width()) +<br> static_cast<GLint>(_viewport->x()),<br> static_cast<GLint>(_viewport->height()) +<br> static_cast<GLint>(_viewport->y()),<br> blitMask, GL_NEAREST);<br> "<br> <br> Note from Robert Osfield, made small tweak to above on merge,<br> changing the width+x to x+width to make it read more naturally.<br><br>2014-08-08 16:09 robert<br><br> * src/osgUtil/MeshOptimizers.cpp: From Marc Helbling, "please find<br> a fix for the vertex pretransform visitor<br> (VertexAccessOrderVisitor).<br> The issue with current code is that arrays are collected *before*<br> duplicating shared arrays which leads to arrays that are<br> correctly duplicated but that are not reordered.<br> <br> Also the submitted patch contains a small cleaning in<br> GeometryArrayGathrer as the _useDrawElements variable is not<br> used; it is only set in the GeometryArrayGathrer constructor and<br> VertexAccessOrderVisitor already checks that primitives have<br> indexed type."<br><br>2014-08-08 15:45 robert<br><br> * include/osg/Node: Applied fix to<br> Node::remove*Callback(NodeCallback*) inspired by fix from Glen<br> Waldron that was applied to svn/trunk.<br><br>2014-07-29 15:47 robert<br><br> * src/osgUtil/Optimizer.cpp: Added catch for NULL Transform<br> pointers getting into the _transformMap.<br><br>2014-07-22 16:35 robert<br><br> * include/osg/State, src/osg/State.cpp: Removed usage of<br> _appliedProgramObjectSet as it's no longer used by OSG<br> applications and was causing a threading crash.<br><br>2014-07-22 16:34 robert<br><br> * CMakeLists.txt, include/osg/Version: Updated version to 3.2.2<br><br>2014-07-21 13:45 robert<br><br> * src/osgText/Glyph.cpp: Added setting of glPixelStore before<br> glTexSubImage2D call.<br><br>2014-07-21 13:43 robert<br><br> * src/osgText/Glyph.cpp: I want to submit a bugfix for a crash<br> occurring in osgText/Glyph.cpp if<br> the scene tree contains (large) 2D textures from images with<br> STRIDE.<br> <br> ============================================================================<br> #0 0x00007fffe8ea4350 in __memmove_ssse3 () from /lib64/libc.so.6<br> #1 0x00007fffe52ced76 in ?? () from<br> /usr/lib64/libnvidia-glcore.so.310.44<br> #2 0x00007fffe52d8e86 in ?? () from<br> /usr/lib64/libnvidia-glcore.so.310.44<br> #3 0x00007fffe53dd8be in ?? () from<br> /usr/lib64/libnvidia-glcore.so.310.44<br> #4 0x00007fffe53c2643 in ?? () from<br> /usr/lib64/libnvidia-glcore.so.310.44<br> #5 0x00007fffe53c7fdd in ?? () from<br> /usr/lib64/libnvidia-glcore.so.310.44<br> #6 0x00007fffe53cbabf in ?? () from<br> /usr/lib64/libnvidia-glcore.so.310.44<br> #7 0x00007fffe53cc1fa in ?? () from<br> /usr/lib64/libnvidia-glcore.so.310.44<br> #8 0x00007ffff30092fd in osgText::GlyphTexture::apply<br> (this=0x1bb8cf0, state=<br> ...)<br> at<br> /d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/src/osgText/Glyph.cpp:234<br> #9 0x00007ffff56c30b6 in osg::State::applyAttributeOnTexUnit<br> (this=0x125f180,<br> unit=0, attribute=0x1bb8cf0, as=...)<br> at<br> /d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/include/osg/State:1713<br> #10 0x00007ffff56c2f3f in osg::State::applyTextureAttribute<br> (this=0x125f180,<br> unit=0, attribute=0x1bb8cf0)<br> at<br> /d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/include/osg/State:411<br> #11 0x00007ffff30204da in osgText::Text::drawTextWithBackdrop<br> (this=0x1baed70,<br> state=..., colorMultiplier=...)<br> ==============================================================================<br> <br> The crash disappears if I either (1) disable the use of images<br> with stride<br> in the (public) osgGeo-library, or (2) add the following bugfix<br> to Glyph.cpp.<br> This combination gives me the confidence that I understand where<br> this problem<br> originates from, without trying to understand the full OpenGL<br> details.<br> <br> ===============================================================================<br> @@ -221,7 +223,12 @@<br> imageData[i] = 0;<br> }<br> <br> + glPixelStorei(GL_UNPACK_ALIGNMENT,1);<br> <br> + #if !defined(OSG_GLES1_AVAILABLE) &&<br> !defined(OSG_GLES2_AVAILABLE)<br> + glPixelStorei(GL_UNPACK_ROW_LENGTH,getTextureWidth());<br> + #endif<br> +<br> // allocate the texture memory.<br> glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA,<br> getTextureWidth(), getTextureHeight(), 0,<br> ================================================================================<br> <br> I have copied (and adapted) the added lines above from the same<br> source file,<br> where they were used in front of a similar call to<br> glTexSubImage2D(.) around<br> line 515."<br><br></div></div>