2015-08-12 10:44 robert * include/osg/State: Added initializer 2015-08-12 10:30 robert * ChangeLog: Updated ChangeLog 2015-08-12 10:19 robert * src/osgVolume/Shaders/volume_frag.cpp, src/osgVolume/Shaders/volume_iso_frag.cpp, src/osgVolume/Shaders/volume_lit_frag.cpp, src/osgVolume/Shaders/volume_lit_tf_frag.cpp, src/osgVolume/Shaders/volume_mip_frag.cpp, src/osgVolume/Shaders/volume_tf_frag.cpp, src/osgVolume/Shaders/volume_tf_iso_frag.cpp, src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Merged shaders from svn/trunk that refactor the workaround to the NVidia driver bug 2015-08-12 10:06 robert * ChangeLog: Update ChangeLog 2015-08-12 06:38 robert * CMakeLists.txt, ChangeLog, README.txt: Change RC number to 0 for 3.4.0 stable release. Updated ChangeLog Updated the release data in the README 2015-08-11 20:12 robert * CMakeLists.txt, ChangeLog: Updated ChangeLog and RC nubmer to 13, and added GL1 to the docs on the GL_PROFILE usage 2015-08-11 20:08 robert * src/osgVolume/Shaders/volume_frag.cpp, src/osgVolume/Shaders/volume_iso_frag.cpp, src/osgVolume/Shaders/volume_lit_frag.cpp, src/osgVolume/Shaders/volume_lit_tf_frag.cpp, src/osgVolume/Shaders/volume_mip_frag.cpp, src/osgVolume/Shaders/volume_tf_frag.cpp, src/osgVolume/Shaders/volume_tf_iso_frag.cpp, src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Refactored workaround of NVidia nan length bug. 2015-08-11 08:44 robert * CMakeLists.txt, CMakeModules/FindAsio.cmake, CMakeModules/FindLIBLAS.cmake, src/osgPlugins/CMakeLists.txt: Moved the FIND_PACKAGE(Boost) from the root CMakeLists.txt into the local Find scripts to avoid Boost check when not neccessary. 2015-08-10 19:58 robert * ChangeLog: Updated ChangeLog 2015-08-10 19:56 robert * src/osg/State.cpp: From svn/trunk merged support for passing the GL_VENDOR string into the #pragma(tic) shader compositions defines 2015-08-10 19:46 robert * CMakeLists.txt, ChangeLog: Update RC number to 12, and updated ChangeLog 2015-08-10 19:40 robert * CMakeLists.txt: Fixed line endings 2015-08-10 19:39 robert * src/osgVolume/Shaders/volume_frag.cpp, src/osgVolume/Shaders/volume_iso_frag.cpp, src/osgVolume/Shaders/volume_lit_frag.cpp, src/osgVolume/Shaders/volume_lit_tf_frag.cpp, src/osgVolume/Shaders/volume_mip_frag.cpp, src/osgVolume/Shaders/volume_tf_frag.cpp, src/osgVolume/Shaders/volume_tf_iso_frag.cpp, src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Updated built-in shaders from OpenSceneGraph-Data vesion that introduce #pragma(tic) shaders that resolve the NVidia loop iteration bug. 2015-08-10 19:19 robert * src/osg/Shader.cpp: Quietened down #pragma(tic) shader composition messages 2015-08-10 05:04 robert * include/osg/Types, src/osg/CMakeLists.txt: Build fix for VS and installing TYpes 2015-08-09 10:20 robert * AUTHORS.txt, ChangeLog: Update ChangeLog and AUTHORS for rc11 2015-08-09 10:16 robert * CMakeLists.txt: Updated RC number to 11. 2015-08-09 10:16 robert * src/osg/GL.in: Changed GLint64 and GLuint64 to use int64_t and uint64_t (pulled in via include/osg/Types) to avoid conflict with Qt5 definitions 2015-08-09 09:40 robert * include/osgViewer/api/X11/PixelBufferX11, src/osgViewer/PixelBufferX11.cpp: Added #idef guards for SGIX usage 2015-08-08 08:49 robert * src/osgPlugins/zip/ZipArchive.cpp: From Glenn Waldron, fix error in ZIP plugin handling of memory buffer 2015-08-06 15:10 robert * CMakeLists.txt, ChangeLog: Updated rc number and ChangeLog for 3.4.0-rc10 2015-08-06 15:04 robert * src/osgVolume/Shaders/volume_frag.cpp, src/osgVolume/Shaders/volume_iso_frag.cpp, src/osgVolume/Shaders/volume_lit_frag.cpp, src/osgVolume/Shaders/volume_lit_tf_frag.cpp, src/osgVolume/Shaders/volume_mip_frag.cpp, src/osgVolume/Shaders/volume_tf_frag.cpp, src/osgVolume/Shaders/volume_tf_iso_frag.cpp, src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Merged workaround for NVidia driver/GPU bug by updating shaders from svn/trunk that change float to int usage. 2015-08-06 15:03 robert * src/osgText/Text.cpp: Added checks for the validity of chached coordinate arrays. 2015-08-03 19:38 robert * AUTHORS.txt, CMakeLists.txt, ChangeLog: Updated rc number to 9, and updated ChangeLog and AUTHORS.txt 2015-08-03 19:14 robert * include/osgViewer/api/X11/PixelBufferX11, src/osgViewer/PixelBufferX11.cpp: From Andy Skinner, "Someone was using our code on a system that does not seem to have the SGIX symbols used in osgViewer.cpp. I used osgSetGLExtensionsFuncPtr to remove the symbols. I don't know how to test this path, but it did remove the symbols from libosgViewer.so. I have also not been able yet to see if that was sufficient for our customer. I did this by looking at other cases, and I tried to follow some of the same practices in PixelBufferX11, like using _useSGIX in a similar way to the previous _useGLX1_3." 2015-07-31 15:12 robert * AUTHORS.txt, ChangeLog: Update ChangeLog and AUTHORS 2015-07-31 15:01 robert * CMakeLists.txt: Updated rc number to 8 for 3.4.9-rc8 2015-07-31 13:47 robert * CMakeModules/OsgAndroidMacroUtils.cmake: From Terry Welsh, "I downloaded the Android 3rdparty deps from here http://www.openscenegraph.org/index.php/download-section/dependencies but was not able to use them for a while. Attached are changes to OsgAndroidMacroUtils.cmake that allow the deps to be found by cmake. Specifically, all FIND_PATH commands require the NO_CMAKE_FIND_ROOT_PATH option to actually find paths. This is odd because if you inspect CMAKE_FIND_ROOT_PATH it appears to be empty. I would expect it to have no effect at all. I also needed to remove quotes from this line in order for headers to be found: set(FREETYPE_INCLUDE_DIRS "${FREETYPE_DIR}/include ${FREETYPE_DIR}/include/freetype/config") Assuming this script worked in the past, it seems like cmake behavior may have changed at some point. I'm using cmake version 2.8.12.2." 2015-07-31 13:44 robert * src/osg/GLExtensions.cpp: From Jannik Heller, "Here is a patch for the S3TC capability check. On a Intel HD graphics Linux system with Mesa 10.1.3, I found that osg's Extensions::isTextureCompressionS3TCSupported() returned false, even though S3TC compressed textures *are* in fact working. I tested this by loading and rendering various DXT1, DXT3 and DXT5 compressed textures in the OSG. "glxinfo | grep s3tc" gives: GL_S3_s3tc Note, if I install the package "libtxc-dxtn-s2tc0", I get in addition: glxinfo | grep s3tc GL_EXT_texture_compression_s3tc GL_S3_s3tc However, S3TC compressed textures worked correctly within the OSG even without libtxc-dxtn-s2tc0 installed. I'm not sure what the differences between these extensions are, but based on the description at https://www.opengl.org/registry/specs/S3/s3tc.txt I would assume that both will work for OSG's purposes. The attached patch changes isTextureCompressionS3TCSupported() to accept either extension." 2015-07-31 10:59 robert * include/osgText/Text: Warning fix 2015-07-31 10:54 robert * src/osg/Image.cpp, src/osgPlugins/3ds/ReaderWriter3DS.cpp, src/osgPlugins/lua/LuaScriptEngine.cpp, src/osgViewer/ViewerEventHandlers.cpp: From Kristofer Tingdahl, warning fixes. 2015-07-31 10:27 robert * src/osg/GL.in: Compile fix for Mingw. 2015-07-23 21:32 robert * AUTHORS.txt, CMakeLists.txt, ChangeLog: Update version and rc number of 3.4.0-rc7. 2015-07-23 15:46 robert * examples/osganalysis/osganalysis.cpp, examples/osgcatch/osgcatch.cpp, examples/osggraphicscost/osggraphicscost.cpp, examples/osgmotionblur/osgmotionblur.cpp, examples/osgshaderterrain/osgshaderterrain.cpp, examples/osgtext/osgtext.cpp, examples/osgthreadedterrain/osgthreadedterrain.cpp, examples/osgvolume/osgvolume.cpp, include/osg/GraphicsThread, include/osg/OperationThread, src/osg/GraphicsThread.cpp, src/osg/OperationThread.cpp, src/osgUtil/GLObjectsVisitor.cpp, src/osgUtil/IncrementalCompileOperation.cpp, src/osgUtil/RenderStage.cpp, src/osgViewer/Renderer.cpp: Added explicit initialization of osg::Referenced(true) to osg::Operation subclasses as it uses virtual inhertiance from osg::Referenced. 2015-07-23 14:37 robert * include/osg/Types, include/osgViewer/ViewerBase: From Pjotr Svetachov, buid fixes for VS2015. 2015-07-23 14:30 robert * src/osgPlugins/osc/osc/OscOutboundPacketStream.cpp: Fixed indentation 2015-07-23 14:03 robert * src/osgPlugins/osc/osc/OscOutboundPacketStream.cpp: 2015-07-23 11:14 robert * examples/osgSSBO/osgSSBO.cpp, examples/osgcluster/osgcluster.cpp, examples/osggpucull/AggregateGeometryVisitor.h, examples/osgoit/DepthPeeling.cpp, examples/osgoit/DepthPeeling.h, examples/osgparticleeffects/osgparticleeffects.cpp, examples/osgshadow/osgshadow.cpp, examples/osgspotlight/osgspotlight.cpp, examples/osgwidgetnotebook/osgwidgetnotebook.cpp, src/osg/glu/libutil/mipmap.cpp, src/osgDB/ConvertBase64.cpp, src/osgPlugins/3ds/WriterNodeVisitor.cpp, src/osgPlugins/OpenFlight/FltExportVisitor.cpp, src/osgPlugins/OpenFlight/LightSourcePaletteManager.cpp, src/osgPlugins/OpenFlight/LightSourcePaletteManager.h, src/osgPlugins/OpenFlight/PrimaryRecords.cpp, src/osgPlugins/OpenFlight/expPrimaryRecords.cpp, src/osgPlugins/freetype/FreeTypeLibrary.cpp, src/osgPlugins/osc/OscReceivingDevice.cpp, src/osgPlugins/osc/osc/OscHostEndianness.h, src/osgPlugins/osga/OSGA_Archive.h, src/osgShadow/ConvexPolyhedron.cpp, src/osgShadow/DebugShadowMap.cpp, src/osgShadow/OccluderGeometry.cpp, src/osgShadow/ShadowMap.cpp, src/osgSim/SphereSegment.cpp, src/osgUtil/DelaunayTriangulator.cpp, src/osgUtil/Optimizer.cpp, src/osgUtil/SceneView.cpp, src/osgViewer/View.cpp, src/osgWrappers/deprecated-dotosg/osg/NodeCallback.cpp: Warning fixes for Clang-3.6 2015-07-23 09:23 robert * src/osgFX/BumpMapping.cpp, src/osgFX/Cartoon.cpp: Added missing handling of lightnumber and associate lights 2015-07-23 07:39 robert * src/osg/GL.in: Changed the GL_HEADER_HAS_GLINT64 and GL_HEADER_HAS_GLUINT64 to use cmakedefine to improve handling of when cmake doesn't find GLint64 and GLuint64. 2015-07-22 14:55 robert * applications/osgversion/Contributors.cpp: Fixed Contributors list 2015-07-22 14:51 robert * ChangeLog: Updated ChangeLog 2015-07-22 14:41 robert * CMakeLists.txt: Update rc to 6. 2015-07-22 14:30 robert * include/osg/AlphaFunc, include/osg/GLDefines: Moved from svn/trunk, moved GL_ALPHA_TEST from AlphaFunc to GLDefines 2015-07-22 14:27 robert * CMakeLists.txt, src/osg/GL.in: From svn/trunk merged automatic detection of GLint64 + GLuint64 in GL headers 2015-07-21 14:22 robert * src/osgPlugins/OpenFlight/PaletteRecords.cpp: Added check for validity of OpenFlight shininess value. 2015-07-21 13:42 robert * include/osg/BoundsChecking: Fixed typo 2015-07-20 13:23 robert * src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp: Reduced debug message verbosity. 2015-07-20 07:53 robert * CMakeLists.txt: Updated RC to 5 for 3.4.0-rc5 release 2015-07-20 07:46 robert * ChangeLog: Updated ChangeLog for rc 2015-07-20 07:42 robert * src/osgPlugins/osgjs/json_stream: Changed the _MSC_VER check to <= 1700 to support VS2012. 2015-07-19 09:51 robert * src/osgPlugins/tiff/ReaderWriterTIFF.cpp: Reinstated the TIFFSetField(image, TIFFTAG_ROWSPERSTRIP, rowsperstrip); 2015-07-17 18:31 robert * CMakeModules/FindGStreamer.cmake: From KOS, "I've mentioned in the "osg-users" ML about build error with the newest GStreamer 1.5 Please, have a look at the attached patch." CMakeModules/FindGStreamer.cmake 2015-07-17 09:16 robert * CMakeLists.txt: Updated release candidate number 2015-07-17 09:06 robert * AUTHORS.txt, ChangeLog: Updated ChangeLog and AUTHORS 2015-07-17 08:21 robert * CMakeLists.txt: Added cmake version checked for cmake_policy setting 2015-07-17 08:12 robert * src/osgPlugins/tiff/ReaderWriterTIFF.cpp: From Patrick Neary, "To the tiff plugin, add the capability to write tiff images with unsigned short data" 2015-07-16 19:16 robert * src/osg/Image.cpp: From Patrick Neary, "Added some lesser used tokens that we use from GL_ARB_texture_rg to computeFormatDataType(), and computeNumComponents() in src/osg/Image.cpp" 2015-07-16 15:56 robert * src/osgQt/GraphicsWindowQt.cpp: From Cory Slep and Robert Osfield, "When using Open Scene Graph and Qt on Android, the resulting thread that an application developer’s Q*Application is run on is different than what Qt considers the “main” thread, which can cause subtle problems. This is because Qt loads native libraries in one thread, and later runs the application in a different thread. They delay running in the second thread as long as possible as they have a nontrivial bootstrapping process. The motivation for Qt having this second thread is to allow them to remain responsive to both Java and native events, and capture events that would otherwise be “missed” 2015-07-16 11:01 robert * src/osgText/Text.cpp: Added check to catch cases where the backdrop coordinate cache is too small for the number of contexts being computed. 2015-07-15 10:02 robert * src/osgPlugins/ive/DataInputStream.cpp: Added initializers and reverted OSX workaround from 2013. 2015-07-14 16:55 robert * CMakeLists.txt: Fixed source of 3.4.0-rc tags to branches so that release candidates are made from the correct 3.4 branch. 2015-07-14 16:37 robert * CMakeLists.txt, ChangeLog: Updated ChangeLog and Release Candidate number of 3.4-rc2 2015-07-14 13:33 robert * CMakeLists.txt: Moved the cmake_policy(SET CMP0043 NEW) to work for all script paths that Qt5 usage could pass through. 2015-07-14 13:26 robert * CMakeLists.txt: Added cmake_policy(SET CMP0043 NEW) usage when compiling against Qt5 as it was causing a warning we couldn't fix on the OSG side otherwise. 2015-07-14 08:25 robert * src/osg/StateSet.cpp: Added _defineList into the osg::StateSet::compare() implementation to address issues with osgUtil::Optimizer ignoring defines. 2015-07-13 16:09 robert * include/osgText/Text, src/osgText/Text.cpp: Added Text::GlyphQuads::release/resizeGLObjects() and handling of inconsistent contextID sizes to avoid crashes when viewers and scene graphs aren't initialized correctly to the right number of contexts. 2015-07-13 16:04 robert * src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp, src/osgViewer/ViewerBase.cpp: Standardize the call to setUpThreading() in CompositeViewer/Viewer::realize(). Standardize the call to scene->resizeGLObjects(). 2015-07-13 08:48 robert * include/osg/GLDefines: From Terry Welsh, "fThis fixes problem where new glClipControl feature would not compile for GLES2 profile" 2015-07-03 06:50 robert * AUTHORS.txt, ChangeLog: Updated ChangeLog and AUTHORS for 3.4-rc1 2015-07-03 06:30 robert * .: Branch OpenSceneGraph-3.4 2015-07-03 06:28 robert * Updated for 3.4 branch. 2015-07-02 11:58 robert * Fixed repeated name in SETUP_PLUGIN. 2015-07-02 10:25 robert * Updated ChangeLog and AUTHORS file in prep for 3.4 branch. 2015-07-02 08:57 robert * Build fix 2015-07-02 08:52 robert * Moved the defination of GL_MAX_VARYING_COMPONENTS to GL_3_0 block to avoid warnings of redefinition. 2015-07-01 05:32 robert * Updated ChangeLog 2015-07-01 05:10 robert * From Mathias Froehlich, added seriliazers for new osg::ClipControl 2015-06-30 09:51 robert * Updated ChangeLog and AUTHORS files 2015-06-30 09:11 robert * From Mathias Froehlich, "Attached a new state attribute implementing the glClipControl that appeared with GL4.5." 2015-06-30 08:39 robert * Quitened down debug for ViewConfig argument parsing 2015-06-30 08:38 robert * Build fix for GLDAL>=2 2015-06-26 09:40 robert * From Christian Kehl, added Vec2::set(const Vec2) method 2015-06-19 09:51 robert * From Jannik Heller, fixed clearReferencesToDependentCameras() calls 2015-06-17 16:25 robert * Fixed handling of use GLObjectsVisitor for modifying scene graph state without compiling to OpenGL so that the visitor can be run safely without a graphics context being current. 2015-06-16 17:18 robert * Small tidy up to make script more readable. 2015-06-16 17:17 robert * Added QT_QTCORE_INCLUDE_DIR entry to qfont plugin build to fix Qt4 build under Linux 2015-06-15 19:59 robert * From Jannik Heller, "I've added the check for Qt version mismatches into osgQt as suggested in http://forum.openscenegraph.org/viewtopic.php?t=14999. When an application is built with Qt4, but osgQt was built with Qt5 (or vice versa), upon #includeing osgQt users will receive an #error aborting the build. This at least provides a proper error message rather than a crash, while we are working on better fixes for the problem." 2015-06-15 13:51 robert * Experiment with how to define GLsizeiptr. 2015-06-15 13:51 robert * Upated version number 2015-06-12 20:23 robert * Removed old and unused windows code path to avoid confusion 2015-06-12 11:28 robert * Updated ChangeLog 2015-06-12 08:04 robert * From Farshid Lashkari, "I've modified some setter methods of TextBase to avoid unnecessary calls to computeGlyphRepresentation() if the value has not changed." 2015-06-11 08:44 robert * Reverted the typdef GLfloat GLdouble for Andoid as this was causing conflicts. 2015-06-10 18:22 robert * Updated ChangeLog and AUTHORS file for 3.3.8 dev release 2015-06-10 16:48 robert * From Laurens Voerman, "attached is a zip with the files: OpenSceneGraph\CMakeModules\FindOpenEXR.cmake I introduced a bug in the previous submission pointed out by Dmitry Marakasov: looking for IlmIlf instead of IlmImf (as the previous version did - but using variable OPENEXR_IlmIlf_LIBRARY) For some reason google decided his message was spam, so I just noticed it, and I reply to confirm his remarks and attach a full file. " 2015-06-10 16:47 robert * From Colin McDonald, "An earlier fix in OSG 3.2 has been inadvertently lost in 3.3.x. The glGenerateMipMap function is part of the GL_EXT_framebuffer_object extension. Just checking if the function is present before using it for texture mipmaps is not sufficient, as on remote X-windows displays the client side capability may be different from the display server. This can lead to mipmapped textures failing to render. I've restored a fbo extension check. I've also tided up the GL version checking a little." 2015-06-10 10:00 robert * From Philippe Renon, "Fixed potential divide by zero in NodeTrackerManipulator : The divide by zero happens when throwing a NodeTrackerManipulator. The infinite result trickles down and later causes NaN in culling. The fix was to use getThrowScale() as done everywhere else." 2015-06-09 16:49 robert * Added supoort for osg::CullSettings/Camera::InheritanceMaskActionOnAttributeSetting and InheritanceMask properties. 2015-06-09 12:51 robert * Added namespace around typedef to avoid conflict issues 2015-06-09 10:49 robert * Introduce osg::Object::asNode(), asNodeVisitor(), asStateAttribute() and asUniform() to replace dynamic_cast<> usage in Callback.cpp. 2015-06-09 09:44 robert * Added output of HUD scene graph to hud.osgt and hud.osgb for testing purposes. 2015-06-08 11:33 robert * Updated AUTHORS and ChangeLog for dev release 2015-06-08 11:18 robert * From Mike Connell, "Give ReadFileCallback access to parent location : These small changes to the database pager allow user code in the ReadFileCallback to safely determine where the file being loaded is destined to be inserted into the scenegraph. " 2015-06-08 10:20 robert * Addressed race condition where SceneView::setLightingMode() was setting a shread Master Camera's StateSet. 2015-06-07 11:13 robert * Fixed setReferenceTime() bug where a * eather than the correct / was being used. Bug and fix suggested Benjamin Richter. 2015-06-04 09:35 robert * Updated AUTHORS for dev release 2015-06-04 09:13 robert * From Jannik Heller, Transform::computeBound() optimization. 2015-06-04 09:05 robert * From Jannik Heller, Removed unused StatsHandler::_keyEventToggleVsync 2015-06-04 09:00 robert * From Jannik Heller, "In the attachment you will find a build fix for the latest trunk. osgAnimation failed to compile when using OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION=OFF ." 2015-06-03 10:28 robert * Removed export that was breaking windows build 2015-06-03 09:14 robert * From KOS, "New classes for osgAnimation presented: UpdateFloatUniform, UpdateVec3fUniform and UpdateMatrixfUniform (based on UpdateUniform template) Classes operate like osgAnimation::UpdateMaterial for Material's diffuse component, but change Uniform." 2015-06-03 09:07 robert * From KOS, build fix for osg::Uniform::Callback to osg::UniformCallback change 2015-06-03 09:06 robert * Added doxygen comment for typedef 2015-06-03 08:38 robert * Build fix for when Uniform::Callback isn't defined 2015-06-02 10:25 robert * From Konstantin Matveyev, serializer support for UniformCallback 2015-06-02 09:33 robert * From Konstantin Matveyev, "I've changed osg::Uniform::Callback to osg::UniformCallback. osg::UniformCallback inherits osg::Callback now. I don't really now if this class should be inside osgWrappers/serializers because StateAttributeCallback is not presented there, but i've included it in the patch. Please see archive in the attachment. PS DEEP_COPY_UNIFORMS works for me. " Note from Robert Osfield, added typedef UniformCallback Callback for backwards compatibility. 2015-06-02 09:18 robert * Changed name of UniformCallback to UniformBufferCallback to avoid conflict with changes to come to the osg::Uniform::Callback -> osg::UniformCallback. 2015-06-01 13:40 robert * From Albert Luaces, typo fixes. 2015-06-01 13:11 robert * From Jannik Heller, typo fixes 2015-06-01 12:14 robert * From Jannik Heller, "This patch adds a missing initialization of osgParticle::ParticleProcessor::_frameNumber in the copy constructor. I noticed this because valgrind was complaining about use of uninitialized memory." 2015-06-01 12:07 robert * From Frashud Lashkari, "I was getting "Unsupported wrapper class..." error messages when attempting to load osgb models simultaneously from multiple threads. I believe the problem is caused by un-synchronized access to the global osgDB::ObjectWrapperManager class. I've attached a change that adds a mutex to the class and uses it when accessing the internal wrapper/compress maps. This appears to fix the issues I was having." 2015-06-01 10:50 robert * From Jannik Heller, "I have added new functions Texture::generateAndAssignTextureObject mirroring the Texture::generateTextureObject functions. I have left the Texture::generateTextureObject functions intact as I'm not sure if/how it's used outside the core OSG. If you feel that compatibility isn't important in that area feel free to drop it. While testing the build with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION=OFF I found a compile error in GlyphGeometry.cpp that was entirely unrelated to the changes I've made. The fix is included in the patch. There is one thing left to fix and that is Texture2D::SubloadCallback: class OSG_EXPORT SubloadCallback : public Referenced { public: .... virtual TextureObject* generateTextureObject(const Texture2D& texture, State& state) const { return osg::Texture::generateTextureObject(&texture, state.getContextID(), GL_TEXTURE_2D); } ... }" 2015-06-01 10:41 robert * From Jannik Heller, build fix 2015-05-29 07:52 robert * From Jannik Heller, fix for race condition in orphanded BufferObject handling. 2015-05-26 17:24 robert * From Colin McDonald, "rc/osgUtl/MeshOptimizers.cpp won't compile on some systems due to a missing std:: namespace prefix." 2015-05-26 17:22 robert * From Farshid Lashkari, "attached a small change to osgUtil::SceneView that prevents unnecessary calls to glClear when the split stereo separation is 0." 2015-05-26 17:17 robert * From Thomas Hogarth, "Little fix for ClassInterface::getSupportedProperties, before if you set searchAssociates to false then it would return the same BaseSerialiser::Type for every entry in the PropertyMap as i was not being incremented on line 539. Fix attached." 2015-05-26 17:12 robert * From We See, "I found a small bug in osgUtil::RenderStage::draw() (osg 3.3.7), which crashes osg. The problem was caused by an access to the object _camera without checking whether the object is valid. So I changed the line: Code: if (_cameraRequiresSetUp || (_cameraAttachmentMapModifiedCount!=_camera->getAttachmentMapModifiedCount())) to Code: if (_cameraRequiresSetUp || (_camera.valid() && _cameraAttachmentMapModifiedCount!=_camera->getAttachmentMapModifiedCount())) " 2015-05-26 17:09 robert * From Farshid Lashkari and Robert Osfield, "a small change to the CullVisitor class, which will use cloneType() on the root render stage when creating children render stages. This allows us to pass a custom RenderStage object to the SceneView and have it used for all sub-stages." 2015-05-26 10:05 robert * Rewrote the Text3D bevel implementation to automatically adjust bevel thickness to avoid overalapping and erronous tesselation. Added osgText::Bevel::s/getRoundedConcaveJunctions(bool) to control how the bevel should be tessellated around concave junctions on the glyph boundary. 2015-05-26 08:48 robert * Added use of ref_ptr<> 2015-05-25 12:39 robert * Changed the EventQueue::frame() event generation to use the generatePointerData/reprojectPointerData() methods in the same way that other events are handled. 2015-05-25 11:33 robert * Added osgGA::GUIEventAdapter* returns from various EventQueue event generation methods. 2015-05-21 14:11 robert * Fixed memory error associated with reading over the end of container due to an unbounded while loop. 2015-05-06 18:39 robert * Update ChangeLog and AUTHORS file 2015-05-05 11:05 robert * Changed the CMP0020 check to > 2.8.10 Updated SO version number 2015-04-30 14:04 robert * From Christian Kehl, changes for making osgAndroid working with GLES1 enabled 2015-04-30 13:59 robert * From Dmitriy Ogalcev, fix for crash when calling setCursor from a non GUI thread 2015-04-28 16:12 robert * Replaced attempt at passing NULL Matrix with two specialized methods. 2015-04-27 19:31 robert * Renamed LineSegment::intersect(BoundingSphere/Box, double/float&, double/float&) methods to LineSegment::intersectAndComputeRations(..) to avoid confusion with the change in convention for the old intersect(BoundingBox&, float/double&, float/double&) method as it was inconsitent with the rest of the OSG including the intersect(BoundingSphere) method in how the ratio for the second intersection was measure from - original from the end point, but now made consistent with other places in the OSG so be based on ration from start to end of segment. 2015-04-23 14:44 robert * Refactoring GlyphGeometry Boundary class to facilate better bevel overlap detection 2015-04-23 12:58 robert * Comment out debug notification 2015-04-23 09:49 robert * Removed unused method 2015-04-22 14:25 robert * From Giampaolo Vigano, "please find attached a further fix for 3ds plugin: now reflection map works also with transparent objects (I also removed a redundant setting of BlendFunc)." 2015-04-21 17:29 robert * From Chris Denham, "I found a couple of memory leaks in 3DS reader plugin and I have attached corrected files. I have attached an example 3DS file I used to test the leaks/fixes using osgviewer for trunk at rev [14853] and the tagged version 3.2.1. The first leak is in the lib3ds module (yeah, I know that probably should be corrected at http://code.google.com/p/lib3ds/ but I'm assuming that as no commits have happened there since 2011 that it may be better to fix the copy we have in the OSG of that project) The leak is caused by lib3d's use of realloc(ptr, 0) to free up memory allocations, but realloc, when ptr==NULL returns malloc(0) rather than NULL and thus leaks a zero byte allocation. The solution here was to adjust the 'lib3ds_util_reserve_array' function so that it realloc is not used to release a NULL pointer. The second leak is in ReaderWriter3DS.cpp and arises when any of the created StateSet objects added to the StateSetMap don't subsequently get applied to a Node. The solution here was just to simply use the osg::ref_ptr around the raw StateSet pointer that was used in the locally defined StateSetInfo struct." 2015-04-20 10:41 robert * Updated AUTHORS 2015-04-20 10:36 robert * Build fix 2015-04-20 10:19 robert * Build fix 2015-04-20 09:39 robert * Moved uniform substitution to infront of vertex attribute substituion to make sure gl_Vertex usage is replaced when required. 2015-04-20 09:08 robert * From Tim Moore, "The order_by_primitive_mode comparer was not providing a strict weak ordering, which was causing a crash in the sort() call in VertexAccessOrderVisitor::optimizeOrder (gcc 4.9, Fedora 21)." 2015-04-17 14:36 robert * Updated dev release number 2015-04-17 13:33 robert * Added implementations for the libraryName and className for the AntiSquish node. 2015-04-17 13:24 robert * Fixed CollectParentPaths visitor so that it sets the setNodeMaskOverride(0xffffffff) to make sure all parents are traversed to find parents, even ones that have their NodeMask set to 0x0. 2015-04-17 13:22 robert * Added --test-NodeMask option to test crash when a parent of osgmanipulator::AntiSquish node has a NodeMask set to 0x0. 2015-04-16 11:19 robert * Changed MSVC version test to <= to enable fallback for VS2010. 2015-04-16 10:07 robert * Fixed crash when AntiSquish node is the root of the scene graph. 2015-04-15 18:34 robert * Updated ChangeLog 2015-04-15 18:05 robert * Updated version number of dev release 2015-04-15 17:12 robert * Added missing const to find VS2005 build 2015-04-14 18:16 robert * Added check for changes to window size during GraphicsWindowWin32::init() to fix bug that occurs when the window manage resizes the window automatically on creation. 2015-04-14 15:50 robert * From Philippe Renon, MingW build fix 2015-04-13 11:48 robert * Fixed typo of SEPARATE enums 2015-04-13 10:43 robert * From Jannik Heller, typo fixes 2015-04-13 10:11 robert * From Konstantin Matveyev, "I've added GLES3 profile, which also enables GLES2 features (OSG_GLES3_AVAILABLE=true => OSG_GLES2_AVAILABLE=true). If OSG_OPENGL_PROFILE="GLES3" => GraphicsWindowIOS will create gles3 context. If failed, GraphicsWindowIOS will create gles2 context. Multisampling also working. " 2015-04-13 09:50 robert * From Laurens Voerman, I have modified the FindOpenEXR.cmake to find the debug libraries, and to define a variable (OPENEXR_LIBRARIES_VARS) with the variable names that might have a _DEBUG version defined. 2015-04-13 08:55 robert * Added passing of command line arguments to viewer construction to allow one to specify extra controls for the viewer such as window size etc. 2015-04-09 18:42 robert * Refactored AntiSquish::computeUnSquishedMatrix() method to use the parent node path of the AntiSquish node to compute the required matrix rather than using the NodePath provided by the NodeVistor. This is required as in osg::computeLocalToWorld() usage case the NodeVisitor pointer is NULL, so the correct matrix isn't possible to compute. 2015-04-09 18:38 robert * Added WindowSizeHandler to osgmanipulator example 2015-04-07 18:01 robert * From Jannik Heller, typo fixes 2015-04-07 16:58 robert * From Giampaolo Viganò, "you can find in the attached ZIP archive a fix for 3ds plugin transparent/diffuse textures and opacity maps and the support for reflection map" 2015-04-07 15:53 robert * From Janik Heller, clean up of drawable/node usage 2015-04-07 15:52 robert * Removed unused ShapesToGeometriesVisitor. 2015-04-07 15:49 robert * Cleaned up handling of Drawables so it utilizes the Node inheritance properly. 2015-04-03 15:43 robert * Build fix for VS2005. 2015-04-03 13:34 robert * Improved the doxygen comment for the new createImageWithOrientationConversion(..) function. 2015-04-03 13:29 robert * Added automatic rotation of jpeg image based on EXIF rotation information provided in the header. 2015-04-03 13:19 robert * Implemented an osg::createImageWithOrientationConversion(...) method to aid for changing orientation of images. 2015-04-02 16:11 robert * Added reading of EXIF_Orientation tags when present in a jpeg file. 2015-04-02 10:12 robert * From Wojciech Lewandowski, Windows build fixes, "These are the tweaks I had to make. JSON_Objects / json_stream headers attached. I am not sure how these will behave on VS 2010. Someone with VS 2010 should test it. Should be okay on VS 2008 and below + VS 2012 and above, though." 2015-04-01 09:37 robert * From Lionel Largarde, "fix for the Image::computeNumberOfMipmapLevels method. The method did use the float version of the log function and the / operator. It works for most of the input sizes, but fails for 8192, 32768... For 8192, the method returns 13 instead of 14." 2015-03-31 19:31 robert * Fixed crash when using a subload callback, where the _images array is empty by _images[0] was still being accessed. 2015-03-31 19:29 robert * Added --subload command line option and test subload callback for testing purposes 2015-03-31 16:23 robert * Introduced osg::Camera::resize(..) method and associated enum thus: enum ResizeMask { RESIZE_VIEWPORT=1, RESIZE_ATTACHMENTS=2, RESIZE_PROJECTIONMATRIX=4, RESIZE_DEFAULT=RESIZE_VIEWPORT|RESIZE_ATTACHMENTS }; /** Resize, to the specified width and height, the viewport, attachments and projection matrix according to the resizeMask provided. * Note, the adjustment of the projection matrix is done if the RESIZE_PROJECTIONMATRIX mask to set and according to the rules specified in the ProjectionResizePolicy. */ void resize(int width, int height, int resizeMask=RESIZE_DEFAULT); 2015-03-31 15:08 robert * Introduced Camera::resizeAttachments(int width, int height) to resize all the Texture and Image assigned the the Camera attachments. 2015-03-31 10:41 robert * Refactor the RTT Camera resize code into a seperate Callback method in prep for this all being done by a single Camera API call. 2015-03-31 10:36 robert * Added Camera::dirtyAttachmentMap(), Camera::s/getAttachmentMapModified() value and usage of this in RenderStage as a new mechanism for telling the rendering backend to update itself to reflect new values in the attachments such as new texture or image sizes. 2015-03-23 11:36 robert * Added StatsHandler to osgtessellationshaders example to test out rendering bug associated with stats rendering. 2015-03-20 17:58 robert * Added event handle to alter the RTT Camera's dimensions to follow the windows resizes. 2015-03-20 15:49 robert * Fixed resize dimensions of X11 window 2015-03-20 11:48 robert * From Jannik Heller, "Fix for Qt4 multi-threaded crash. This patch adds the AA_X11InitThreads flag to the QApplication setup, meaning QT will call XInitThreads for us. This also bumps the required QT version to 4.8+, because the AA_X11InitThreads flag was introduced in that version. If that is not acceptable, we could add a QT_VERSION >= 0x040800 guard, or manually call XInitThreads() instead. Let me know what you think." 2015-03-19 10:49 robert * Added Texture wrap setting to CLAMP_TO_EDGE to fix rendering problem when running the default osgdistortion example 2015-03-17 18:10 robert * Fixed VisualStudio warning 2015-03-17 14:50 robert * From Konstantin Matveyev, "Added ComputeBoundingBoxCallback, ComputeBoundingSphereCallback and UpdateCallback implmenentations to serializers" 2015-03-17 09:40 robert * Updated ChangeLog and AUTHORS file for dev release 2015-03-17 09:09 robert * Fixed library wrapper 2015-03-17 08:25 robert * Added ComputeBoundingSphereCallback reference 2015-03-17 08:24 robert * From Konstantin Matveyev, "More "LibraryWrapper" fixes for osg and osgAnimation NodeKits in the attachment (for 3.3.6 version :) Fixes: osg: Unsupported associated class osg::UpdateCallback (osg_Drawable_UpdateCallback); ComputeBoundingBoxCallback osgAnimation: Unsupported wrapper class osgAnimation::RigComputeBoundingBoxCallback " 2015-03-17 08:19 robert * Changed to using osgDB::ofstream to work around Windows build issue 2015-03-16 17:01 robert * Removed unneccessary library link line. 2015-03-16 14:16 robert * Removed the using namespace std and replaced with local std:: to make the code clearer 2015-03-16 12:13 robert * Refactored the command line setup to enable better control of set up. Added WindowSizeHandler to allow for adjustment of window size. 2015-03-16 10:30 robert * From Konstantin Matveyev, "Last update in the osgAnimation::Animation ONCE mode bug fix" 2015-03-16 10:07 robert * Added --play-mode [ONCE, STAY, LOOP, PPONG] to help with testing. 2015-03-13 08:12 robert * From Konstantin Matveyev, "Small fix for OSG 3.3.6.119 in the attachment. One line added in osg/LibraryWrapper.cpp USE_SERIALIZER_WRAPPER(Callback) " 2015-03-12 17:11 robert * Refactored how the callbacks for updating geometry are managed in MorphGeometry and RigGeometry to address bugs in serialization. 2015-03-12 15:12 robert * From Laurens Voerman, "attached is a zip with a modified version of: OpenSceneGraph\CMakeModules\FindFBX.cmake This version can find fbx sdk 2015.1 and will prefer it over older versions. Tested with Visual Studio Express 2013 on 64bit windows 7" 2015-03-12 13:41 robert * From Mattias Helsing, add copyright notice from other osgjs header to the json_stream header 2015-03-12 13:37 robert * Added using namespace std and removed the std:: prefixes before the std::isfinte and std::isinf function calls to avoid problems with Android builds against older NDK's. 2015-03-11 17:47 robert * From Laurens Voerman, warning fixes 2015-03-11 17:36 robert * From Laurens Voerman, "The current version will not compile with SDL version 2, error OpenSceneGraph\src\osgPlugins\sdl\JoystickDevice.cpp(42): error C2664: 'const char *SDL_JoystickName(SDL_Joystick *)' : cannot convert argument 1 from 'int' to 'SDL_Joystick *' due to changes in the SDL api. Tested with Visual Studio Express 2013; SDL 2.0.1" 2015-03-11 17:27 robert * Completed support for assigning 3D osg::Image to osg::Texture2DArray. Improved the osgtexture2DArray example to add --mipmap and --packed command line options to help with testing. 2015-03-11 15:44 robert * Updated the comments to be more relevant 2015-03-10 18:15 robert * Work in progress to allow osg::Texture2DArray to be set up with a single osg::Image containing 3D image data. 2015-03-10 18:07 robert * Work in progress on new osgtexture2DArray example 2015-03-09 11:27 robert * From Cedric Pinson, gles and osgjs plugins that support conversion of OSG loaded models into a form that can be used with osgjs JavaScript library 2015-03-05 19:53 robert * Update AUTHORS file for 3.3.6 dev release 2015-03-05 19:33 robert * Updated dev release number 2015-03-05 19:26 robert * Updated ChangeLog for dev release 2015-03-05 10:53 robert * Added check for newline at end of version line, and of it's not add a '\n' 2015-03-04 18:39 robert * Updated SO_VERSION after changes to osgPresentation 2015-03-04 18:36 robert * Restructed the osgPresentation and present3D directories back to the structure that was present in OSG-3.2 2015-03-04 17:42 robert * Removed the experiemental osgPresentation classes. These are only partially functional and not appropriate for the stable OSG-3.4 release 2015-03-03 15:26 robert * Updated AUTHORS for 3.3.5 dev release 2015-03-03 14:59 robert * Fixed ClusterCullingCallback parser problem due to osg::Callback not being included in inheritance list 2015-03-03 12:56 robert * Restructed the checks in the CollectLowestTransformsVisitor::removeTransforms() to avoid benign case being flagged as warning. 2015-03-03 12:03 robert * From Miha Ravselj, "Regarding previous submission it was only partial solution. After further testing I found similar bug also in ClearNode serializer. //GLbitfield mask = GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT; This line was problematic since it produced incorrect result when let's say COLOR flag is serialized it should be null as in Camera serializer or in a proposed BitFlagsSerializer This line of code caused that whenever only GL_COLOR_BUFFER_BIT bit was written and on value read GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT was restored instead of GL_COLOR_BUFFER_BIT only. //GLbitfield mask = 0; //this resolves the issue same as in camera Also same bit-wise comparison bug was also present in write method. ------------------------------------------------------------------------------------- As you can see there are total 3 bit mask serializers in OSG and all 3 had bugs so I decided to add ADD_BITFLAGS_SERIALIZER and replace USER serializers in osg::Camera, osg::ClearNode and osgText::TextBase. I have made sure that bitflags serializer does not break backwards-compatibility since it uses same code as user serializer does in all 3 cases. (see tester.cpp on how compatibility test was performed)" 2015-03-03 12:00 robert * Re-organized the #ifdef's to avoid usage of glPolyginMode under GLES 2015-03-02 14:38 robert * Updated SO_VERSION to take account of API changes in osgDB 2015-03-02 12:11 robert * From Johannes Scholz, "Attached you find a patch for osgDB::OutputStream and osgDB::InputStream to include osg::Image::data() using Base64 encoding inside the ASCII OSGT, if WriteImageHint=IncludeData is set, only." 2015-03-02 12:09 robert * From Michael McDonnel, "The tessellation shader example has a small bug.The middle of the geometry is clipped as soon as it is tessellated. The clipping is probably caused by rounding errors because it is only in one spot. The clipping disappears when the camera is moved, and reappears when it is moved back. Expanding the the bounding box fixed the clipping bug." Tweaked by Robert Osfield to expand it to a -1 to 1 unit box. Actual clipping bug is not due to rounding errors but the shaders creating vertices outside the bounding box of the original input vertices 2015-03-01 15:20 robert * Fixed StateSet::Define names to match OpenSceneGraph-Data/shaders. 2015-03-01 11:08 robert * From Jannik Heller, "I noticed the rotation in the OrbitManipulator depends on the framerate. To reproduce this issue, start the osganimate example, rotate the model with the left mouse button, then let go of the mouse button while still moving. You will notice that with V-Sync enabled, the model rotates slower. The OrbitManipulator calculates a scale to counteract the framerate dependency, but it turns out this scale wasn't used for the rotation yet." 2015-02-27 10:01 robert * Updated version number after dev release. 2015-02-27 09:47 robert * Updated ChangeLog and Contributors to fix trailing spaces 2015-02-27 09:05 robert * Fixed Windows warnings 2015-02-27 04:29 robert * Fixes for warnings 2015-02-26 20:15 robert * Fixed build with auto ptr conversion switched off 2015-02-26 19:51 robert * Updated AUTHORS 2015-02-26 19:14 robert * From Bradley Baker Searles, "We had someone replace a DDS texture with a GL_RGB/GL_UNSIGNED_SHORT_5_6_6 image, which would trigger a crash in Image.cpp while flipping the mipmap chain. The code was trying to flip the mipmaps using the rowStep for the full-size image (we have "dds_flip" set in the osgDB::ReaderWriter::Options in the osgDB::Registry)." 2015-02-26 18:06 robert * From Bradley Baker Searles, "Small patch attached to handle DDS flip when s=4. Currently it will omit flipping and generate a warning: "Vertical flip was skipped. Image dimensions have to be multiple of 4." 2015-02-26 17:49 robert * From Julien Valentin and Alberto Luaces, added support for transform feedback extensions 2015-02-26 17:18 robert * Update AUTHORS file 2015-02-26 14:16 robert * Fixed typo 2015-02-26 13:52 robert * Regenerated AUTHORS.txt to fix missing special characters 2015-02-25 19:59 robert * Updated AUTHORS file 2015-02-25 19:52 robert * Updated ChangeLog 2015-02-25 19:38 robert * From Aitor Moreno, "Attached you will find the modified file without the lines which raises the exception. " 2015-02-25 19:31 robert * From Jamie Robertson, "I've been using osgSim::ScalarBar to display fixed range color values (e.g. red from 1-2, green from 3-4 etc), by setting the _numColors the same as the number of actual colors in the ColorRange. Currently if you do this you get strange looking results as the colors are calculated for values in the centre of each color step, so if your steps are large, the colors are interpolated sigificantly (see screen grab of red, green and blue colors for illustration). I've attached a fix which just uses the original color values whenever _numColors equals the number of actual defined colors in the ColorRange. I doubt anyone would want interpolated colors in these circumstances." 2015-02-25 19:25 robert * From Dmitry Marakasov, "While packaging osg-3.3.3 I've discovered that gstreamer detection is broken: -- Could NOT find GStreamer (missing: GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_GSTREAMER-APP_INCLUDE_DIRS GSTREAMER_GSTREAMER-APP_LIBRARIES GSTREAMER_GSTREAMER-PBUTILS_INCLUDE_DIRS GSTREAMER_GSTREAMER-PBUTILS_LIBRARIES) (found version "1.4.5") though all required modules are installed. There are two problems: first, module names are spelled incorrectly in root CMakeLists.txt (e.g. gstreamer-app instead of app), so variables expected for them are e.g. GSTREAMER_GSTREAMER-APP_INCLUDE_DIRS instead of GSTREAMER_APP_INCLUDE_DIRS. Second, gstreamer base component is detected as GSTREAMER while checked later as GSTREAMER_BASE. I've uncommented the detection as GSTREAMER_BASE, but obviously that should be revisited and only one detection left. With this patch, gstreamer is detected properly and the plugins is successfully built and installed." 2015-02-25 19:19 robert * From Jonathan Greig, "I was testing out the example and it works fine as a standalone example, but I found that it didn't work as expected when adding the class to some existing code I have to test it out. The osg widget was appearing but it didn't appear to be updating. After tweaking it to pass on the parent QWidget pointer from my code, it worked as expected. I added the WindowFlags to the attached file for good measure. If you look at the Qt Documentation for QWidget ( http://doc.qt.io/qt-5/qwidget.html#QWidget ), you'll see that is exactly where I got this from. When subclassing a widget as such, you should allow the user to pass in the parent at least, considering that has a major effect on how or if Qt may clean up the memory." 2015-02-25 18:56 robert * From Andreas Henne, Support for GL3 core profile in osgText 2015-02-25 16:59 robert * From Michael McDonnell, "I have changed the code so that the plus key increases both the inner and outer tessellation. The minus key decrease both the inner and outer tessellation. You can still use the arrow keys to control inner and outer tessellation separately." From Robert Osfield, clean up the code to fix warnings and make the coding style more consistent with the rest of the OSG. 2015-02-25 14:55 robert * Fixed handling of NULL entries in osg::Geometry TexCoordArrayList and VertexAttribArrayList. 2015-02-24 11:06 robert * Fixed matrix setup. 2015-02-23 20:28 robert * Fixed image allocation operations. 2015-02-23 11:43 robert * From Miha Ravšelj and Robert Osfield, fix for serializer bug in osgText::TextBase and osg::Camera 2015-02-23 11:07 robert * From Arjun Ramamurthy, fix for use of StatsHandler in multipleviews/windows 2015-02-20 15:12 robert * Changed the toggle of defines so that it works with assumed defaults now set up by the GeometryPool so that when toggling it doesn't have a delay in what the user would expect 2015-02-20 15:04 robert * Removed redudent shaders, and updated remaining shaders to match OpenSceneGraph-Data/shaders 2015-02-20 15:02 robert * First step of refactoring the osg::Program management in osgTerrain::GeometryPool for better performance by placing default osg::Program and shader defines on a single StateSet below the osgTerrain::Terrain 2015-02-18 10:52 robert * Moved osgTerrain::GeometryPool from osgTerrain::DisplacementMappingTechnique to the osgTerrain::Terrain 2015-02-18 10:23 robert * From Sebastian Messerschmidt, "Attached you find a version of the ReaderWriterDDS with info outputs set to OSG_INFO instead of OSG_NOTICE. The old version spams the console for each loaded DDS file." 2015-02-17 20:42 robert * Added support for DefineList to StateSet::merge(..) 2015-02-17 19:40 robert * From Stephan Wenglorz, "the attached fix corrects a small bug in OperationThread::setDone(bool), calling it had the opposite effect of what was intended, i.e. setting done to false actually finished the thread. The effect was that VPB threads would exit before starting osgdem when a task had been enqueued, because they initially set done to false." 2015-02-17 19:22 robert * Removed GL_ usage in defines 2015-02-17 19:21 robert * Removed commented out lines 2015-02-17 10:36 robert * Cleaned up warning generated when compiling osgocculusviewer 2015-02-13 12:50 robert * Improvements to the #pragma(tic) shader composition support 2015-02-13 10:56 robert * Deprecated the old ShaderComposition example code so that it's now only invoked if you add a --old to the osgshadercomposition command line. Introduced a new shader composition example based on the new #pragama and #define based GLSL shader/osg::StateSet::setDefine() functionality now built into the core OSG. 2015-02-13 07:45 robert * From Farshid Lashkari, "I've attached a fix for some internal glu functions so that they use size_t for computing allocation sizes instead of GLint. I encountered some large images that were triggering integer overflows with the current code." 2015-02-11 19:21 robert * Fixed warning 2015-02-11 16:41 robert * Added reassignment of the #version line to the first entry in the source list. 2015-02-11 09:41 robert * Added GL #define for Windows build 2015-02-10 21:13 robert * Windows build fix 2015-02-10 18:01 robert * Added GL_LINES_ADJACENCY_EXT variants back into ObjectWraper to enable backwards compatibility. 2015-02-10 17:53 robert * Change for new Program API 2015-02-10 17:20 robert * Added support for new #pragam(atic) shader composition to new displacement mapping technique 2015-02-10 17:04 robert * Introduced new shader composition approach that utilizes #pragma requires(), #pragma import_defines() and #ifdef in GLSL to enable multiple different versions of shaders based on defines passed in from osg::StateSet::setDefine(..). 2015-02-04 15:11 robert * Fixed typo. 2015-02-03 16:36 robert * Removed unncessary _EXT 2015-02-02 09:53 robert * Commented out the experimental V8 and Python plugins as these plugins only existed as a proof of concept test linkage with these dependenices, and have no functionality beyond this. 2015-01-27 15:07 robert * Replaced _EXT defines with GL-3.2 versions 2015-01-23 17:15 robert * From Javier Taibo, "I have found a "bug" in the new audio decoding code (actually I think the bug is in ffmpeg, but anyway it should be wise to protect the OSG plug-in about it). I am attaching a security check in FFmpegDecoderAudio.cpp. If anybody is curious about the problem, it happens sometimes when decoding an AAC audio stream. It eventually includes a PCE block inside the AAC audio frame and then ffmpeg audio decoding function signals a "new_frame" with 1024 samples, but a null pointer instead of the audio data. It can be easily detected because in these cases number of channels is 0. Maybe this is the intended behaviour for ffmpeg, but I find it quite weird. " " It seems that libav does not have a channels attribute in AVFrame structure. This new version should do." 2015-01-23 13:51 robert * Changed osgFX::MultiTextureControl so that it uses an osg::FloatArray internally to enable sharing with osg::Uniform. 2015-01-23 13:50 robert * Added MultiTextureControl event handling of shift 012 i.e. ')', '!', '"' and 'A' to toggle full on for each of the respective or all texture units. 2015-01-22 16:49 robert * Added #define GL_SEPARATE_ATTRIBS and correcte GL_INTERLEAVED_ATTRIBS 2015-01-22 16:41 robert * From Alexey Pavlov, "Export fix for Windows platform" 2015-01-22 15:08 robert * Added GL_INTERLEAVED_ATTRIBS for windows build 2015-01-22 15:07 robert * Fixed warning 2015-01-21 15:35 robert * From Andreas Henne, OpenGL core profile fixes required for OSX. 2015-01-21 11:09 robert * Added TextureWeights uniform support and controls to osgFX::MultiTextureControl to support usage with shaders. 2015-01-20 18:01 robert * Re-enabled texturing and fixed runtime warning 2015-01-20 17:58 robert * Added hardwired geometry shaders 2015-01-20 17:40 robert * Updated shaders 2015-01-20 15:23 robert * Added key osgTerrain::GeometryPool methods virtual to make it easier to override the shaders 2015-01-20 11:24 robert * Changed the reset of the GLExtensions::Set() in the State destructor so that it checks to see if the local _glExtensions pointer has been set up and taken ownership of the GLExtensions::Set() value 2015-01-19 11:29 robert * Added GeometryPool::s/getUseGeometryShader() hint, and OSG_TERRAIN_USE_GEOMETRY_SHADER env var for setting the default value. 2015-01-16 11:03 robert * Added support for using geometry shaders to align the quad diagonals with the local terrain 2015-01-12 10:31 robert * Added a local Vec3Array cache to the HeightFieldDrawable to facilitate efficient intersection testing 2015-01-12 10:30 robert * Added ability to populate a local vertex cache for when one computes final vertex position in a vertex shader but still want to the Primitive functors to work with the transformed positions. 2015-01-07 14:14 robert * From Javier Taibo, "I have found that since version 1.1, FFMPEG changed the way audio streams are retrieved, from packed to planar format. SDL interprets packed audio, as is used in the osgmovie example. To make the audio work when the OSGffmpeg plug-in is compiled against recent FFMPEG versions, FFmpegDecoderAudio must check for planar formats and in these cases request the samples as packed. This way all works as before. It can be checked with osgmovie example application. $ osgmovie --audio movie.avi.ffmpeg FFmpegImageStream::open audio failed, audio stream will be disabled: unknown audio format With the attached FFmpegDecoderAudio.cpp, audio sounds correctly. I am also attaching a modified version of FindFFmpeg.cmake that allows to set as FFMPEG_DIR the ffmpeg compiled in the source directory structure. It should not break anything as it only adds some additional search paths. " 2015-01-07 10:36 robert * From Farshid Lashkari, "small change to osg::Image::readImageFromCurrentTexture to allow reading data from compressed cubemap textures." 2015-01-06 17:23 robert * Cleaned up GL_TEXTURE_BUFFER_*ARB usage as include/osg/GLDefines now provides the non ARB variants 2015-01-06 17:12 robert * From Julien Valentin, "To sum up changes, I had: -some extensions in GLExtensions - GL_TEXTURE_BUFFER as target in osg::StateSet - a VBO based transform feed back example " 2015-01-06 17:09 robert * Updates SO_VERSION in prep for API modifications since the 3.3.3 dev release 2015-01-06 14:55 robert * From Julien Valentin, added missing initializer 2015-01-06 14:41 robert * From Julien Valentin, typo fix 2015-01-05 17:39 robert * From Jason Beverage, "Here is a fix to the STL plugin that fixes build errors introduced in the last commit. It's just a simple addition of the stdint.h header." 2014-12-24 11:56 robert * Updated ChangeLog and AUTHORS 2014-12-24 11:43 robert * Removed debug message 2014-12-24 11:25 robert * From Marc Helbling, Clément Léger, Aurélien Chatelain, Paul Cheyrou-Lagrèze : "a last submission for the obj plugin * supports vertex color definition after vertex position by Clément Léger * supports zbrush vertex color definition (as #MRGB comment) by Aurélien Chatelain * adds a noReverseFace option to not mess with face definition by Aurélien Chatelain * makes material parsing case insensitive (by Paul Cheyrou-Lagrèze and me) * makes the plugin resilient to faulty vertex uv/normal definition (i.e. when a too big index is referenced) by Aurélien hatelain " 2014-12-24 11:02 robert * From Aurélien Chatelain, "adds support for * quad primitives * face definition with the "vertex_index" label (previously only "vertex_indices" was supported) * replaces normal computation by the SmoothingVisitor to avoid code duplication " Submitted by Marc Helbling. 2014-12-24 10:55 robert * From Aurélien Chatelain, "the smoothing visitor did not handle shared arrays. It may leads to bad geometry arrays when a shared array is involved in the scene. This submission adds shared array duplication (and moves the SharedArrayOptimizer declaration in MeshOptimizer to make it callable from the SmoothingVisitor)." Submitted by Marc Helbling. Edited by Robet Osfield to retain the usual OSG coding style. 2014-12-24 10:47 robert * From Aurélien Chatelain, "updates the STL plugin: * fixes vertex color support * adds 'magics' color definition * cleans options to make the plugin more consistent with other plugins * adds options to not tristrip geometries" Submitted by Marc Helbling. 2014-12-24 10:14 robert * Aded shaders for various combinations of layers. 2014-12-24 10:13 robert * Added osgDB::readShaderFileWithFallback(..) convinience functions to make it easier to set up reading external shader files with a built in fallback. 2014-12-23 14:20 robert * Added support for reading Vec3 colour arrays 2014-12-23 12:10 robert * Changes to allow the COLLADA plugin to compile against the latest COLLADA DOM version 2.4 as well as retaining compatibility with the old 2.2 DOM. 2014-12-22 10:35 robert * Added comment about using -DCMAKE_DISABLE_FINDPACKAGE_* command line. 2014-12-22 09:50 robert * Added doxygen comment for ref_ptr<>::release(). 2014-12-22 09:49 robert * Updated version number after dev release 2014-12-19 11:00 robert * Windows build error and warning fixes 2014-12-19 10:25 robert * Updated ChangeLog and AUTHORS file for dev release 2014-12-19 08:27 robert * Added if () block to avoid script variables set to NOT-Found being used in searching 2014-12-19 08:25 robert * Fixed script warnings 2014-12-18 17:47 robert * From Aitor Moreno, LAS plugin - depends upon boost and liblas and liblas-c 2014-12-18 16:52 robert * From Adrian Clark, build fix for recent Android NDK using the old Android build approach. 2014-12-18 15:59 robert * From Mattias Helsing, "CMake have release 3.0 and 3.1 and we have some bad checks for cmake major version when settings cmake policies in CMakeLists.txt. This fixes it" 2014-12-18 11:36 robert * Updated AUTHORS 2014-12-18 11:19 robert * Updated ChangeLog in prep for dev release 2014-12-18 11:09 robert * Fixed warning 2014-12-18 10:59 robert * Added DisplaySettings::s/getNvOptimusEnablement() and OSG_NvOptimusEnablement env var control to control the setting of the NvOptimusEnablement variable 2014-12-18 09:24 robert * From Sukender, "Added options to the FBX writer: an ascii/binary switch, and the ability to select FBX version as the SDK handles it (Ex: "FBX201300"). This allows the user to achieve backward compatibility, and debug format issues using text output." 2014-12-18 09:03 robert * From Mattias Helsing, "The addition of the GStreamer cmake find script broke my build because cmake vars weren't passed correctly to find_package_handler_args, so while the find script didn't find a single required GStreamer lib or include path it still reported GSTREAMER_FOUND=TRUE (and then tried to compile the new plugin). This fixes it and correctly reports missing components." 2014-12-17 19:21 robert * Added support for using SDL2 to the osgmovie to enable it to handle floating point audio formats 2014-12-17 19:20 robert * From Javier Taibo, " I have found that since version 1.1, FFMPEG changed the way audio streams are retrieved, from packed to planar format. SDL interprets packed audio, as is used in the osgmovie example. To make the audio work when the OSGffmpeg plug-in is compiled against recent FFMPEG versions, FFmpegDecoderAudio must check for planar formats and in these cases request the samples as packed. This way all works as before. It can be checked with osgmovie example application. $ osgmovie --audio movie.avi.ffmpeg FFmpegImageStream::open audio failed, audio stream will be disabled: unknown audio format With the attached FFmpegDecoderAudio.cpp, audio sounds correctly. I am also attaching a modified version of FindFFmpeg.cmake that allows to set as FFMPEG_DIR the ffmpeg compiled in the source directory structure. It should not break anything as it only adds some additional search paths. " Note from Robert Osfield, I have found in testing that audio quality is not good for planar floating point formats, even with adding support for SDL2 to the osgmovie example. I haven't yet tracked down the cause of these audio problems or a solution. 2014-12-17 10:19 robert * From Sukender, "FBX writer was writing an empty file when the scene had a root node being a Geode. This was caused be the change in Drawable (now derived from Node) and Geode (now derived from Group). This fix simply sticks with previous behaviour. Another change could be to adapt WriterNodeVisitor. " 2014-12-16 17:37 robert * Fixed warnings and memmory leaks 2014-12-16 17:15 robert * Fixed warnings 2014-12-16 17:08 robert * Improved handling of invalid/unhandled files Added support for ImageStream::LoopigMode variable Fixed memory leak associtied with restarting videos Changed Image::setData() to Image::dirty() to avoid resetting data 2014-12-16 11:20 robert * From Julen Garcia, "Here there is a small plugin I use to play video files. It is based on GStreamer http://gstreamer.freedesktop.org and I have used the FFmpeg plugin as inspiration." From Robert Osfield, fixed handled of row widths so that they are padded to a 4 byte boundary as certain row widths were being rendered incorrectly. 2014-12-16 09:34 robert * From Marc Helbling, "please find enclosed a submission that should improve the VertexAccessOrderVisitor (pre-transform) optimizer: * it sorts primitives to keep "more complex" primitives first; maybe you'll prefer to have this as an option (but usually it should make more sense to pre-transform triangles before e.g. lines) * currently, the visitor rely on TriangleIndexFunctor and does not take care of points and lines (see https://github.com/openscenegraph/osg/blob/master/include/osg/TriangleIndexFunctor#L124-130). This can lead to issues e.g. if you store the wireframe lines along with some triangles: the triangles will be reindexed but not the line. I've therefore added osg/include/TriangleLinePointIndexFunctor to index triangles, lines and points and derived VertexReorder from this class. * to avoid issues, shared arrays are duplicated. However, in some cases (e.g. an UV channel shared in the geometry only) this is not required. I'm adding a SharedArrayOptimizer to optimize this: it looks for duplicated UVs before the array duplication and deduplicate arrays after. " 2014-12-15 17:15 robert * From Marc Helbling, "please find the mergeTriangleStrip code merged in osgUtil::TriStripVisitor. I've removed the references to DrawArrays as we should no longer produce any. Note that: * as the name suggest, it only works for triangle strips but could probably be easily extended to quads * the resulting primitive is not highly optimized; we could probably sort the strips in order to minimize the number of primitive restart * as we may merge DrawElementsUInt and DrawElementUShort, the code will only generate DrawElementsUInt" 2014-12-10 18:23 robert * Build fix 2014-12-10 13:05 robert * Added OpenGL Transform Feedback extensions. 2014-12-10 12:23 robert * From Marcus Hein, Added support for OpenGL SSBO and SSBB via osg::ShaderStorageBufferObject and osg::ShaderStorageBufferBinding to core OSG library, and added new osgSSBO example 2014-12-10 11:44 robert * Added GLDefines header 2014-12-10 11:29 robert * From Farshid Lashkari, "The Collada loader would crash while processing textures on certain files. I've attached the fix." 2014-12-10 10:44 robert * Removed old GL2Extensions class, replacing it with a typedef to GL2Extensions Removed old includes to include/osg/GL2Extensions 2014-12-10 10:38 robert * Moved GL2Extensions functionality into the include/osg/GLExtensions header and new GLExtensions object. Moved the #defines into new include/osg/GLDefines Converted all GL2Extensions usage to GLExtensions usage 2014-12-10 09:11 robert * Streamlined the extension functions 2014-12-09 21:33 robert * Added #ifdef's around GLsync typedef 2014-12-09 20:09 robert * Windows build fixes 2014-12-09 19:31 robert * Added new examples to runexamples.bat script 2014-12-09 19:22 robert * Quietened down debug messages 2014-12-09 19:20 robert * From Wand Rui, "I've rewritten the osgblenddrawbuffers example to use the new BlendFunci and Capability classes. Hope it will tell others how to make use of the new functionality and why they are important in modern MRT-based applications." 2014-12-09 18:30 robert * Moved FBO Extensions into GL2Extensions. 2014-12-09 14:58 robert * Removed no longer used Extension definition 2014-12-09 14:57 robert * Moved local Extensions structs into GL2Extensions 2014-12-09 11:14 robert * Moveved Stencil/StencilTwoSided::Extensions into GL2Extensions 2014-12-09 10:37 robert * Moved local Extensions objects to GL2Extensions 2014-12-09 10:05 robert * Moved Texture*::Extensions functionality into GL2Extensions 2014-12-08 16:08 robert * MOved VertexProgram and FragmentProgram::Extensions into GL2Extensions. 2014-12-08 11:08 robert * Fixed memory leak in RenderStageCache. 2014-12-07 17:31 robert * MOved SampleMaski::Extensions into osg::GL2Extensions 2014-12-05 20:05 robert * Moved TextureCubeMap::Extension functionality into GL2Extensions 2014-12-05 17:26 robert * Moved osg::Drawable::Extensions into osg::GL2Extensions 2014-12-05 10:37 robert * Fixed windows build warnings 2014-12-05 09:52 robert * Windows build fix 2014-12-05 08:58 robert * From the GLintptr + GLsizeiptr defintions to GL2Extensions header 2014-12-04 19:03 robert * Moved osg::BlenFunc::Extensions into osg::GL2Extensions 2014-12-04 18:13 robert * Moved GLBufferObject::Extensions structure into osg::GL2Extensions 2014-12-04 18:12 robert * Removed redundent spaces 2014-12-04 17:12 robert * Added glMemoryBarrier, glMapBufferRange and glBindBufferBase to GL2Extensions 2014-12-04 16:28 robert * Moved old GL2Extensions::Get(..) usage across to new osg::State::get() usage 2014-12-04 16:22 robert * Ported GL2Extentions across to using the new GL extensions approach - cutting code count by 3000 lines! 2014-12-04 15:10 robert * Build fix for when ref_ptr<> auto conversion is disabled 2014-12-03 17:31 robert * Added osg::Capability and Cabibilityi base classes to wrap up glEnable/glDisable + glEnablei/glDisablei functionality, with osg::Enablei and osg::Disablei concrete implementations. 2014-12-02 17:12 robert * Added osg::BlendFunci, osg::BlendEquationi and osg::ColorMaski StateAttrirbutes that wrap the glBlendFunci, glBlendEquationi and glColorMaski functions 2014-12-02 15:37 robert * Moved BlendEquation across to using the new GL extension setup approach. 2014-12-02 15:21 robert * Fixed typo 2014-12-02 11:10 robert * Added a template get and get_exisiting method into osg::State that implements a new mechanism for managing OpenGL extensions. Refactored the BendFunc::Extensions usage to simplify it utilizing the new osg::State extension mechanism. 2014-11-28 16:20 robert * From Rafa Gaitan, "I'm attaching also a new version of the toolchain with support for the r10c ndk. This fixes some CMake Warnings and allows to use the toolchain in macosx." 2014-11-28 16:10 robert * Removed include/osg/Version and include/OpenThreads/Version headers as these are autogenerated. Changed the paths for the OpenThreads/osg Version headers to be placed in the PROJECT_BINARY_DIR. 2014-11-28 10:54 robert * Standardized on defined(__ANDROID__) 2014-11-28 10:52 robert * Added getlocaledecpoint() workaround for Android build of lua plugin 2014-11-27 15:54 robert * Added in source shaders 2014-11-27 15:39 robert * Changed the name of shader files 2014-11-26 20:40 robert * From Jason Beverage, "It looks like the Callback header got accidentally removed from the CMakeLists.txt in the submission yesterday for the geometry instancing example." 2014-11-26 19:05 robert * Windows build fix 2014-11-26 17:08 robert * Fixed warnings 2014-11-26 17:04 robert * Fixed warnings 2014-11-26 16:29 robert * Fixed deprecated warnings 2014-11-26 16:15 robert * Fixed warning 2014-11-26 16:04 robert * Fixed warnings. 2014-11-26 16:00 robert * Fixed warning 2014-11-26 15:59 robert * Fixed warning 2014-11-26 14:06 robert * Added osgTerrain::DisplacementMappingTechnique serializer 2014-11-26 14:04 robert * Renamed ShaderTerrain to DisplacementMappingTechnique and moved it from the osgterrain example testbed into the osgTerrain NodeKit 2014-11-26 13:36 robert * Moved osgTerrain::GeometryPool from osgterrain example into osgTerrain NodeKit 2014-11-25 14:37 robert * Removed GL header as it's already included via the ${OPENSCENEGRAPH_OPENGL_HEADER} entry. 2014-11-25 10:58 robert * From PawelKsiezopolski, "This submission contains a new example for OSG : a geometry instancing rendering algorithm consisting of two consequent phases : - first phase is a GLSL shader performing object culling and LOD picking ( a culling shader ). Every culled object is represented as GL_POINT in the input osg::Geometry. The output of the culling shader is a set of object LODs that need to be rendered. The output is stored in texture buffer objects. No pixel is drawn to the screen because GL_RASTERIZER_DISCARD mode is used. - second phase draws osg::Geometry containing merged LODs using glDrawArraysIndirect() function. Information about quantity of instances to render, its positions and other parameters is sourced from texture buffer objects filled in the first phase. The example uses various OpenGL 4.2 features such as texture buffer objects, atomic counters, image units and functions defined in GL_ARB_shader_image_load_store extension to achieve its goal and thus will not work on graphic cards with older OpenGL versions. The example was tested on Linux and Windows with NVidia 570 and 580 cards. The tests on AMD cards were not conducted ( due to lack of it ). The tests were performed using OSG revision 14088. The main advantages of this rendering method : - instanced rendering capable of drawing thousands of different objects with almost no CPU intervention ( cull and draw times are close to 0 ms ). - input objects may be sourced from any OSG graph ( for example - information about object points may be stored in a PagedLOD graph. This way we may cover the whole countries with trees, buildings and other objects ). Furthermore if we create osgDB plugins that generate data on the fly, we may generate information for every grass blade for that country. - every object may have its own parameters and thus may be distinct from other objects of the same type. - relatively low memory footprint ( single object information is stored in a few vertex attributes ). - no GPU->CPU roundtrip typical for such methods ( method uses atomic counters and glDrawArraysIndirect() function instead of OpenGL queries. This way information about quantity of rendered objects never goes back to CPU. The typical GPU->CPU roundtrip cost is about 2 ms ). - this example also shows how to render dynamic objects ( objects that may change its position ) with moving parts ( like car wheels or airplane propellers ) . The obvious extension to that dynamic method would be the animated crowd rendering. - rendered objects may be easily replaced ( there is no need to process the whole OSG graphs, because these graphs store only positional information ). The main disadvantages of a method : - the maximum quantity of objects to render must be known beforehand ( because texture buffer objects holding data between phases have constant size ). - OSG statistics are flawed ( they don't know anymore how many objects are drawn ). - osgUtil::Intersection does not work Example application may be used to make some performance tests, so below you will find some extended parameter description : --skip-dynamic - skip rendering of dynamic objects if you only want to observe static object statistics --skip-static - the same for static objects --dynamic-area-size - size of the area for dynamic rendering. Default = 1000 meters ( square 1000m x 1000m ). Along with density defines how many dynamic objects is there in the example. --static-area-size - the same for static objects. Default = 2000 meters ( square 2000m x 2000m ). Example application defines some parameters (density, LOD ranges, object's triangle count). You may manipulate its values using below described modifiers: --density-modifier - density modifier in percent. Default = 100%. Density ( along with LOD ranges ) defines maximum quantity of rendered objects. registerType() function accepts maximum density ( in objects per square kilometer ) as its parameter. --lod-modifier - defines the LOD ranges. Default = 100%. --triangle-modifier - defines the number of triangles in finally rendered objects. Default = 100 %. --instances-per-cell - for static rendering the application builds OSG graph using InstanceCell class ( this class is a modified version of Cell class from osgforest example - it builds simple quadtree from a list of static instances ). This parameter defines maximum number of instances in a single osg::Group in quadtree. If, for example, you modify it to value=100, you will see really big cull time in OSG statistics ( because resulting tree generated by InstanceCell will be very deep ). Default value = 4096 . --export-objects - write object geometries and quadtree of instances to osgt files for later analysis. --use-multi-draw - use glMultiDrawArraysIndirect() instead of glDrawArraysIndirect() in a draw shader. Thanks to this we may render all ( different ) objects using only one draw call. Requires OpenGL version 4.3 and some more work from me, because now it does not work ( probably I implemented it wrong, or Windows NVidia driver has errors, because it hangs the apllication at the moment ). This application is inspired by Daniel Rákos work : "GPU based dynamic geometry LOD" that may be found under this address : http://rastergrid.com/blog/2010/10/gpu-based-dynamic-geometry-lod/ There are however some differences : - Daniel Rákos uses GL queries to count objects to render, while this example uses atomic counters ( no GPU->CPU roundtrip ) - this example does not use transform feedback buffers to store intermediate data ( it uses texture buffer objects instead ). - I use only the vertex shader to cull objects, whereas Daniel Rákos uses vertex shader and geometry shader ( because only geometry shader can send more than one primitive to transform feedback buffers ). - objects in the example are drawn using glDrawArraysIndirect() function, instead of glDrawElementsInstanced(). Finally there are some things to consider/discuss : - the whole algorithm exploits nice OpenGL feature that any GL buffer may be bound as any type of buffer ( in our example a buffer is once bound as a texture buffer object, and later is bound as GL_DRAW_INDIRECT_BUFFER ). osg::TextureBuffer class has one handy method to do that trick ( bindBufferAs() ), and new primitive sets use osg::TextureBuffer as input. For now I added new primitive sets to example ( DrawArraysIndirect and MultiDrawArraysIndirect defined in examples/osggpucull/DrawIndirectPrimitiveSet.h ), but if Robert will accept its current implementations ( I mean - primitive sets that have osg::TextureBuffer in constructor ), I may add it to osg/include/PrimitiveSet header. - I used BufferTemplate class writen and published by Aurelien in submission forum some time ago. For some reason this class never got into osg/include, but is really needed during creation of UBOs, TBOs, and possibly SSBOs in the future. I added std::vector specialization to that template class. - I needed to create similar osg::Geometries with variable number of vertices ( to create different LODs in my example ). For this reason I've written some code allowing me to create osg::Geometries from osg::Shape descendants. This code may be found in ShapeToGeometry.* files. Examples of use are in osggpucull.cpp . The question is : should this code stay in example, or should it be moved to osgUtil ? - this remark is important for NVidia cards on Linux and Windows : if you have "Sync to VBlank" turned ON in nvidia-settings and you want to see real GPU times in OSG statistics window, you must set the power management settings to "Prefer maximum performance", because when "Adaptive mode" is used, the graphic card's clock may be slowed down by the driver during program execution ( On Linux when OpenGL application starts in adaptive mode, clock should work as fast as possible, but after one minute of program execution, the clock slows down ). This happens when GPU time in OSG statistics window is shorter than 3 ms. " 2014-11-25 10:33 robert * Removed DrawArrays optimization to simplify the code and open the door to adding primitive combining. 2014-11-25 10:11 robert * Commented out State::setUpVertexAttribAlias(..) debug message. 2014-11-24 15:19 robert * From Jan Klimke, "i noticed, that there are a couple of additional flaws when building osg for Mac OS X 10.10 Yosemite. The mac os sdk version is recognized by the current CMAKE script as 10.1 instead of 10.10 since it cuts the version string from the 4th place. I introduced a more reliable version checking based on splitting the returned version code into MAJOR MINOR and PATCH parts and reassemble the OSG sdk version afterwards. I replaced the existing CMake code against the following (returning now version 10.10 as expected): # Determine the canonical name of the selected Platform SDK EXECUTE_PROCESS(COMMAND "/usr/bin/sw_vers" "-productVersion" OUTPUT_VARIABLE OSG_OSX_SDK_NAME OUTPUT_STRIP_TRAILING_WHITESPACE) STRING(REPLACE "." ";" MACOS_VERSION_LIST ${OSG_OSX_SDK_NAME}) LIST(GET MACOS_VERSION_LIST 0 MACOS_VERSION_MAJOR) LIST(GET MACOS_VERSION_LIST 1 MACOS_VERSION_MINOR) LIST(GET MACOS_VERSION_LIST 2 MACOS_VERSION_PATCH) SET(OSG_OSX_SDK_NAME "macosx${MACOS_VERSION_MAJOR}.${MACOS_VERSION_MINOR}") Also i added the check for the new Version to some more find scripts. Additionally the nil object in Objective C now seems to be equivalent with a null_ptr that cannot be passed as GLInt anymore. So i switched this in the PixelBufferCocoa.mm to pass a zero instead of nil. " 2014-11-24 14:54 robert * Added VertexAttribDivisor class to wrap up glVertexAttribDivisor function 2014-11-24 14:09 robert * Fixed osgsimplegl3 example's set up of the main camera. 2014-11-24 14:01 robert * Added numTextureUnits parameter to the osg::State::resetVertexAttributeAlias(bool, unit) method, and set the default to 8. 2014-11-21 20:16 robert * From Alberto Luaces,"the current code uses the preprocessor for generating the plugin path in a way that when CMAKE_INSTALL_PREFIX contains something along the lines of /usr/x86_64-linux-gnu/ it gets substituted as /usr/x86_64-1-gnu/ that is, the string is preprocessed again, thereby making changes to anything that matches any defined symbol, as "linux" in this example (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763816). Quoting that path directly in CMake scripts solves that problem. " 2014-11-21 20:15 robert * Added comment clarifying how Image::getColor(..) out of 0..1 range texcoords are handled - now clamped to edge. 2014-11-21 17:22 robert * Implemented a clamp to edge policy for the Image::g/setColor(color, texcoord). 2014-11-21 17:17 robert * Added testing for Drawables in the CopyOp::operator(Node*) to replicate the old functionality. 2014-11-21 16:27 robert * From Sebastian Messerschmidt, "Added setColor function to modify an image based on texture coordinates, parallel to the getColor functionality." 2014-11-21 14:46 robert * Added --db-affinit cpuNum option to osgterrain example to illustrate how to set the thead affinity of the DatabasePager threads. 2014-11-21 10:44 robert * From Sebastian Messerschmidt, "Attached you find a change adding a getNumSamples() function to retrieve the value set via setNumSamples." 2014-11-21 10:37 robert * From Rafa Gaitan, "I finally had some time to change the build system for Android using a Toolchain, which, I think, will be easier to maintain and uses cmake standard system to build it. My changes: ------------------- - I changed the cmake files and added a toolchain for building OSG in Android. The toolchain is based on the one used at OpenCV. For building OSG for android you just need to do: mkdir build_android_static_gles2 && cd build_android_static_gles2 cmake .. -DANDROID_NDK= -DCMAKE_TOOLCHAIN_FILE=../PlatformSpecifics/Android/android.toolchain.cmake -DOPENGL_PROFILE="GLES2" -DDYNAMIC_OPENTHREADS=OFF -DDYNAMIC_OPENSCENEGRAPH=OFF -DANDROID_NATIVE_API_LEVEL=15 # optional -DANDROID_ABI=armeabim #optional -DCMAKE_INSTALL_PREFIX= #optional make -j 8 make install The OPENGL_PROFILE works as expected, changing it to "GLES1" it builds and links OSG using GLES1. The DYNAMIC_OPENTHREADS/DYNAMIC_OPENSCENEGRAPH parameters also allows to build the dynamic libraries - I also added some build fixes for android related to the texture formats and added some missing USE_OSG_SERIALIZER_WRAPPER in the osg serializer library to support loading osgb files in static." 2014-11-21 10:21 robert * From Björn Blissing, fix for ambiguous defines in Atomic.cpp when compiling with MinGW and GCC 2014-11-20 17:37 robert * From Claus Steuer, "XCode 6, IOs 8.1 SDK Compile fix : There are some undefined texture formats when compiling osg for IOs 8.1 with XCode 6 and OpenGLES2 enabled." 2014-11-20 17:00 robert * From Pjotr Svetachov, "I was experimenting with VBO's to try to get them on par with display lists when drawing lots of batches and noticed that my program generated a lot of unneeded glClientActiveTexture calls. Digging deeper I found out it came from State::disableTexCoordPointer where the function would call glClientActiveTexture but not glDisableClientState because the geometry didn't have texture coordinates for that channel. This is because in our scene there are some geometries that have move than one uv channels making State::_texCoordArrayList grow. Then the method State::applyDisablingOfVertexAttributes() will call disableTexCoordPointer multiple times. I rearrange the method a little to combat this. Now the logic has the same ordering as disableTexCoordPointersAboveAndIncluding which already combats this." 2014-11-20 16:38 robert * From Farshid Lashkari, "The obj loader was overriding the existing database path list with the file path of the model, instead of prepending the file path to the path list. The latter seems to be more common behavior for most of the existing loader plugins. Also, the local options weren't actually being used when processing the scene graph for textures. I've attached the fix for both issues." 2014-11-20 10:52 robert * From Marc Helbling, "here is a trivial fix in the Inventor plugin. In one code path, the pointer validity is checked after dereferencing a pointer that can be null (image->valid()) instead of calling ref_ptr::valid (image.valid())." 2014-11-20 10:45 robert * From Marc Helbling, "I've come across scenes that contains geometries with initialized but empty vertex arrays and primitives and that would make some optimizers crash. The submission therefore only contains a test on the size of the vertex array for the VertexCacheMissVisitor and the VertexAccessOrderVisitor visitors." 2014-11-20 10:05 robert * From Christian Ruzicka, "while testing this commit on our OSG 3.2 version, I observed that the changes for ETC2 brake ETC1 support. Attached you'll find the changes to get ETC1 running again" 2014-11-20 09:55 robert * From Sukender, "Fix for 3DS reader, which may read wrong triangles. Actually, indices may suffer a 'short int' overflow, in two places." 2014-11-20 09:41 robert * Fixed segfalt in Texture2DArray copy constructor where it would apply images to an uninitialzed vector. 2014-11-20 09:32 robert * From Marc Helbling, "patch adding support for ambient material in the FBX plugin. It's a straightfoward adaptation of the emissive support and has been tested on a proprietary model." 2014-11-20 09:21 robert * From Pjotr Svetachov, fix for build breakage with giflib 5.0. 2014-11-20 08:26 robert * From Per Nordqvist, "The README.txt is still somewhat confusing so I have updated it" 2014-11-19 17:45 robert * Removed configure script as it's no longer required as cmake . will now default to Release 2014-11-19 17:42 robert * Added CMake script to set the default CMAKE_BUILD_TYPE to Release. Approach taken from simgear. 2014-11-19 17:29 robert * Fixed Contributors names 2014-11-19 17:10 robert * From Clement Boesch, "Fix remaining bit of Giflib5 usage" 2014-11-19 11:37 robert * From Laurens Voerman, "I found a new way to crach the osgviewer: osgviewer "ProxyNode { FileNameList { cow.osgt } num_children 1 }".osgs The proxy node reader wrongly assumes options to be non NULL. fixed in attached zip: src\osgWrappers\deprecated-dotosg\osg\ProxyNode.cpp applies to both the 3.2 branch and svn trunk" 2014-11-19 11:30 robert * From Wang Rui, "The submission includes some fixes for osgQt library and osgQtWidgets example: (1) QTextEdit now works with mouse/drag events, (2) scrollbars will change when OSG window is resizing, (3) improve rendering efficiency of QGraphicsViewAdapter so that it works with complex Qt UI, (4) add new setBackgroundWidget() method to indicate a 'background widget', which will ignore mouse/key events on it and pass them to the 3D scene." 2014-11-19 10:43 robert * Changed the way that the cell size is passed to the shader 2014-11-19 09:33 robert * From James Turner, "Converting the loops to forward versions fixed the issue. The problem is size_t is unsigned; at the limit condition it doesn’t go negative but wraps around to 0xffffffffffffffff …. and boom." 2014-11-17 15:43 robert * Fixed typo 2014-11-17 09:19 robert * Fixed typo in comment 2014-11-14 17:44 robert * Added use of GL_TRIANGLE_STRIP to cut down the size of the primitive indices required. 2014-11-14 16:47 robert * Implemented skirt functionality 2014-11-13 09:40 robert * Refactored the handling of use of the osgDB::ObjectCache in the DatabasePager to use a local thread specific ObjectCache to handle new additions and then have these additions merged with the main Registry ObjectCache during the main loop. 2014-11-11 18:28 robert * Moved implementation of ObjectCache functionality out of Registry into a dedicated osgDB::ObjectCache class. 2014-11-10 16:04 robert * To handle thread safe paging and use of the osgDB::Registry ObjectCache, moved the handling of cache into osgDB::DatabasePager. 2014-11-06 10:44 robert * From Pjotr Svetachov, "I tried your fix and it exposed a bug in my fix :) The problem is that the readObjectFields method will add the object to the _identifierMap. So all the other instances of that image in the same file will be replaced by the created dummy object. In my fix this was an dummy image and I didn't notice it in our scene's, probably because it covered a small part of an object. In your fix the dummy object was not an image and that leads to a crash when something tries to use it as an image. I have attached a small fix for this bug. " 2014-11-06 10:40 robert * Introduced use of MarkerObject to IncrmentalCompileOperation/DatabasePager as a way of marking objects that have already been processed and compiled, thus avoid potential threading conflicts when paged subgraphs are reused. 2014-11-05 16:08 robert * Added handling of the reading of field properties to a dummy object for cached images to avoid threading issues associated with reusing and modifying an active object. 2014-11-05 13:38 robert * Reinstated the original mechanism for OperationThread::cancel() that co-operatively releases blocks/barriers to make sure the thread is able to exit correctly. 2014-11-04 20:07 robert * Improvements to the ShaderTerrain experiemental terrain rendering technique. 2014-11-04 20:07 robert * Changed TerrainTile::setDirty() to use children needing update traversal mechanism to address threadng issues. 2014-11-04 20:06 robert * Change isRunning variable to an Atomic to address possible race condition asscoiated with reading and writing to the variable from different threads. 2014-11-04 16:29 robert * Build fixes for ffmpeg LIBAVCODEC_VERSION_MAJOR >= 56 2014-11-04 11:18 robert * Added an InitRegistry static intiialization and destrucion static to help control the order of construction and destruction of the osgDB::Registry. 2014-11-04 10:46 robert * Replaced use of while(isRunning()) { YieldCurrentThread(); } style loops with use of join() to avoid false positives being reported by valgrind when using the helgrind tool for thread debugging. 2014-10-21 15:08 robert * Added experimental osgTerrain::ShaderTerrain TerrainTechnique to osgterrain example to flesh out new shader based displacement mapping approach to osgTerrain databases. Requires shader files place in OpenSceneGraph-Data/shaders from OpenSceneGraph-Data's svn/trunk to function. Run osgterrain example with --shader command line option to select displacement mapping shader approach. 2014-10-21 14:47 robert * Removed --sync related code as it's now integrated into osg::DisplaySettings and osgViewer 2014-10-21 14:46 robert * Added osg::SyncSwapBuffersCallback to include/osg/GraphicsContext and support for enabling it to include/osg/DisplaySettings, and to the Viewer/CompositeViewer::realize() methods. To enable the sync of swap buffers set the env var OSG_SYNC_SWAP_BUFFERS to ON or 1, to switch off set to OFF or 0. One can also use the --sync command line option for application that pass on command line options to the osg::DisplaySettings::instance(). 2014-10-21 08:27 robert * Removed checks against Drawable as these are no longer required. 2014-09-17 17:40 robert * Added support for writing the file path of a script to the lua package.path to help with loading scripts within lua. 2014-09-16 17:40 robert * Changed osgvolume example to use the new tf plugin rather than having local code for reading transfer function 2014-09-16 11:00 robert * Added write support 2014-09-15 17:53 robert * Added .tf & .tf-255 plugin for reading ascii 1D transfer functon files in support for volume rendering. 2014-09-12 14:16 robert * Added basic frame rendering for TabWidget 2014-09-10 17:03 robert * Improved the alignment and sizing of TabWidget tab headers 2014-09-10 11:59 robert * Implemented the selection of tabs by clicking, using mouse wheel or arrow keys. 2014-09-09 16:12 robert * Improved the handling of the dialog title text 2014-09-09 15:14 robert * Moved the diaglog title bar widgets into the Widget::GraphicsSubgraph map to avoid them poluting the Dialog's children list and to prevent them from being serialized. 2014-09-09 13:37 robert * Introduced Widget::WidgetStateSet to help localize the StateSet set up by Widget implementations from being serialized or affecting what end users apply via the standard Node::s/getStateSet(). Further work on TabWidget. 2014-09-08 08:53 robert * Build fix 2014-09-05 16:04 robert * Added shell of new osgUI::TabWidget class 2014-09-05 11:05 robert * Introduced support for specifying whether a serializer supports different types of usage - one or more of READ_WRITE_PROPERTY, GET_PROPERTY and SET_PROPERTY. 2014-09-03 15:54 robert * Added setting of the IsoSurfaceProperty in VolumeSettings 2014-09-03 12:28 robert * Added close button on Dialog title bar 2014-09-02 17:01 robert * Refactored the handling of ComboBox item picking to make it faster and more reliable 2014-09-02 10:00 robert * Improved handling of ComboBox popup toggling 2014-09-02 09:14 robert * Added support for scaling widgets via the scoll wheel. 2014-09-02 08:41 robert * Removed debugging message 2014-09-01 19:13 robert * Added DragCallback class to help dialog dragging support. Introduced a new Widget::computeExtentsPositionInLocalCoordinates() method that intersects with a ray through mouse pointer and the extents of the widget. 2014-08-28 15:11 robert * Improved support for controlling the ShadingModel via the VolumeSettings object 2014-08-28 09:42 robert * Improved handling of VolumeSettings 2014-08-27 15:08 robert * Changed the osgUI behaviour so that events are set to be handled by Widgets that have focus even if they don't directly use them. 2014-08-27 15:07 robert * Changed the NodeVisitor::apply(Drawable&) to call apply(Node&) 2014-08-27 09:25 robert * Added support for getting osgVolumre::Property::ModifieCount 2014-08-25 16:56 robert * Added Property::getModifiedCount() + dirty() to help with tracking changes. Added VolumeSettings serializers for Property objects 2014-08-25 13:43 robert * Changed StateSet::ParentList from vector to vector to reflect that Drawable is now a Node. 2014-08-22 19:00 robert * Improved handling of setting of the depth of the UI. 2014-08-20 14:15 robert * Reordered method implemenations to make it easier to compare similar methods 2014-08-19 16:58 robert * Added toggling on/off of the VolumeSettings ui via the 'E' key. 2014-08-19 16:37 robert * Updated VolumeSettings.lua reference to use ui prefix to work with the new OpenSceneGraph-Data/ui/VolumeSettings.lua file. 2014-08-19 09:27 robert * Fixed MD2 danglng pointer crash. 2014-08-19 09:00 robert * Fixed build 2014-08-19 08:57 robert * Fixed build 2014-08-14 19:00 robert * Added support for ComboBox::currentIndexChanged*(uint) callback API. 2014-08-13 09:24 robert * Resert default value to 1.0 2014-08-08 16:42 robert * From Ryan Kawicki, "There is an issue where the model insets of a terrex terrain are being removed during the loading process. The issue is described below. - the issue here is that the plugin is removing group nodes if that group node only has one child. becuase transforms are also group nodes, there were cases when the transform would have only one child under it and would cause it to remove the translation portion. this would cause all the vertex data to be loaded around the last matrix operation, which in our case was the origin (0,0,0). We work off of OSG 2.8.1 but see that this has not been addressed on latest yet. I’ve tested this against 2.8.1 and have cleanly applied it to my local repository off of latest." 2014-08-08 16:34 robert * From Tim George, "Currently there is a problem with using a camera with a viewport with a non 0 offset and also using an FBO. The problem is that only area made up of the viewports width and height is drawn based on an offset of 0,0 instead of using the viewports offset. It is caused by line 991 in RenderStage.cpp: Code: fbo_ext->glBlitFramebuffer( 0, 0, static_cast(_viewport->width()), static_cast(_viewport->height()), 0, 0, static_cast(_viewport->width()), static_cast(_viewport->height()), blitMask, GL_NEAREST); which is not taking into account the viewport x and y when performing the blit. It probably should be: Code: fbo_ext->glBlitFramebuffer( static_cast(_viewport->x()), static_cast(_viewport->y()), static_cast(_viewport->width()) + static_cast(_viewport->x()), static_cast(_viewport->height()) + static_cast(_viewport->y()), static_cast(_viewport->x()), static_cast(_viewport->y()), static_cast(_viewport->width()) + static_cast(_viewport->x()), static_cast(_viewport->height()) + static_cast(_viewport->y()), blitMask, GL_NEAREST); " Note from Robert Osfield, made small tweak to above on merge, changing the width+x to x+width to make it read more naturally. 2014-08-08 16:09 robert * From Marc Helbling, "please find a fix for the vertex pretransform visitor (VertexAccessOrderVisitor). The issue with current code is that arrays are collected *before* duplicating shared arrays which leads to arrays that are correctly duplicated but that are not reordered. Also the submitted patch contains a small cleaning in GeometryArrayGathrer as the _useDrawElements variable is not used; it is only set in the GeometryArrayGathrer constructor and VertexAccessOrderVisitor already checks that primitives have indexed type." 2014-08-08 15:45 robert * From Glen Waldron, "Node: patch for remove*Callback() methods to resolve a crash" 2014-08-08 09:28 robert * Changes to support building against ANDROID under OSX. 2014-08-05 18:32 robert * Implemented osgUI::Validator, IntValidator and DoubleValidator classes that manage validation/specialization of LineEdit widgets to work with just integer or double values. 2014-08-01 13:07 robert * Implemented callbacks for validate(), textChanged() and returnPressed() 2014-08-01 10:57 robert * Moved responsiblity for checking current event focus onto Widget::handleImplementations(). Added support for closing CombinBox popup when the mouse is clicked outside the popup or combobox widget. 2014-07-31 18:29 robert * Added NodeVisitor::INTERSECTION_VISITOR VisitorType 2014-07-30 12:48 robert * Fixed rendering of Popups 2014-07-30 12:47 robert * Update SO version to account for new changes to osg::StateSet and osgUI 2014-07-30 12:47 robert * Added StateSet::RenderBinMode::PROTECTED_RENDERBIN_DETAILS and OVERRIDE_PROTECTED_RENDERBIN_DETAILS options. 2014-07-29 15:50 robert * Added preliminary icon to ComboBox. 2014-07-29 15:50 robert * Fixed debug comment 2014-07-29 15:50 robert * Implemented prelimary icon support allowing UI widget to place image and model based icons on widgets 2014-07-29 15:47 robert * Added catch for NULL Transform pointers getting into the _transformMap. 2014-07-28 16:19 robert * Added handling of Drawables added directly to scene graph without Geode decorating them. 2014-07-24 14:14 robert * Added support for changing background colour of LineEdit widget when focus changes 2014-07-24 13:25 robert * Refined the colouring of widget to be more in sync with the defaults used in Qt. 2014-07-23 16:36 robert * Added VolumeSettings::Filename property. 2014-07-23 15:57 robert * Changed the default text colour to black 2014-07-23 14:50 robert * Added writeFile support 2014-07-23 10:49 robert * Added Node:getNumParents() and Node:getParent(index) support 2014-07-22 16:02 robert * Removed State::AppliedProgramObjectSet container and Obsever usage from osg::State to address threading bug crash. The State::AppliedProgramObjectSet wasn't ever being used actively in the current rev of the OSG so populating and clearing was no longer neccessary, allowing the code to be removed completely. 2014-07-21 16:36 robert * Centralized the calling of #include and VS fallback into include/osg/Types header 2014-07-21 14:32 robert * From Pjotr Svetachov, "I think I spotted some unneeded ref_ptrs in the cullvisitor. The call pushModelViewMatrix or pushProjectionMatrix will already keep the reference when adding it to the MatrixStack. In CullVisitor::apply methods for the billboard and the camera you already take a pointer instead of a ref_ptr." 2014-07-21 13:45 robert * Added setting of glPixelStore before glTexSubImage2D call. 2014-07-21 13:43 robert * From Jaap Gas, "I want to submit a bugfix for a crash occurring in osgText/Glyph.cpp if the scene tree contains (large) 2D textures from images with STRIDE. ============================================================================ #0 0x00007fffe8ea4350 in __memmove_ssse3 () from /lib64/libc.so.6 #1 0x00007fffe52ced76 in ?? () from /usr/lib64/libnvidia-glcore.so.310.44 #2 0x00007fffe52d8e86 in ?? () from /usr/lib64/libnvidia-glcore.so.310.44 #3 0x00007fffe53dd8be in ?? () from /usr/lib64/libnvidia-glcore.so.310.44 #4 0x00007fffe53c2643 in ?? () from /usr/lib64/libnvidia-glcore.so.310.44 #5 0x00007fffe53c7fdd in ?? () from /usr/lib64/libnvidia-glcore.so.310.44 #6 0x00007fffe53cbabf in ?? () from /usr/lib64/libnvidia-glcore.so.310.44 #7 0x00007fffe53cc1fa in ?? () from /usr/lib64/libnvidia-glcore.so.310.44 #8 0x00007ffff30092fd in osgText::GlyphTexture::apply (this=0x1bb8cf0, state= ...) at /d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/src/osgText/Glyph.cpp:234 #9 0x00007ffff56c30b6 in osg::State::applyAttributeOnTexUnit (this=0x125f180, unit=0, attribute=0x1bb8cf0, as=...) at /d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/include/osg/State:1713 #10 0x00007ffff56c2f3f in osg::State::applyTextureAttribute (this=0x125f180, unit=0, attribute=0x1bb8cf0) at /d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/include/osg/State:411 #11 0x00007ffff30204da in osgText::Text::drawTextWithBackdrop (this=0x1baed70, state=..., colorMultiplier=...) ============================================================================== The crash disappears if I either (1) disable the use of images with stride in the (public) osgGeo-library, or (2) add the following bugfix to Glyph.cpp. This combination gives me the confidence that I understand where this problem originates from, without trying to understand the full OpenGL details. =============================================================================== @@ -221,7 +223,12 @@ imageData[i] = 0; } + glPixelStorei(GL_UNPACK_ALIGNMENT,1); + #if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) + glPixelStorei(GL_UNPACK_ROW_LENGTH,getTextureWidth()); + #endif + // allocate the texture memory. glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA, getTextureWidth(), getTextureHeight(), 0, ================================================================================ I have copied (and adapted) the added lines above from the same source file, where they were used in front of a similar call to glTexSubImage2D(.) around line 515. " 2014-07-21 12:21 robert * Initial work on integtasting osgUI into Present3D 2014-07-21 12:18 robert * Fixed indentation 2014-07-21 09:35 robert * Added debug messages 2014-07-18 17:17 robert * Added serailizer support for NodeVisitor, UpdateVisitor, CullVisitor and EventVisitor 2014-07-14 15:59 robert * Added readScript/writeScript methods to ReaderWriter 2014-07-14 14:09 robert * Renamed osgDB::PropertyInterface to osgDB::ClassInterface to better reflect it's functionality 2014-07-04 16:45 robert * Added preliminary support for writing VolumeSettings to disk from within Present3D in response to pressing and releasing 'Ctrl-S'. 2014-07-03 16:36 robert * Updated iso and mip shaders from OpenSceneGraph-Data. 2014-07-03 13:06 robert * Added virtual destructors 2014-07-03 13:05 robert * Fixed line endings 2014-07-03 13:01 robert * Changed enum usage to use the new osgVolume::VolumeSettings versions and added support for reading a VolumeSettings file. 2014-07-03 10:01 robert * Refactor VolumeSettings so that it's subclassed from osgVolume::Property 2014-07-02 16:26 robert * Added osgVolume::VolumeSettings object 2014-07-02 15:34 robert * Changed the default image output format to .osgb as .dds isn't able to represent signed byte, short and int data correctly. 2014-07-02 14:14 robert * fixed handlng of file type of nested files within a .osgx, .osgt and .osgb file. 2014-07-02 10:25 robert * From Laurens Voerman, "just like ClusterCullingCallback (fixed in r14322) visual studio likes an explicit implementation of run() for InteractiveImageHandler. The warning is (14 times): include\osgViewer/ViewerEventHandlers(542): warning C4250: 'osgViewer::InteractiveImageHandler' : inherits 'osgGA::EventHandler::osgGA::EventHandler::run' via dominance (src\osgViewer\StatsHandler.cpp) include\osgGA/EventHandler(45) : see declaration of 'osgGA::EventHandler::run' attached a zipped version of include\osgViewer\ViewerEventHandlers" 2014-07-01 07:31 robert * Added #include to address compile issue on some Linux distro's. 2014-06-30 15:31 robert * Add dds no flip on write option to prevent output of .dds volume from being flipped by the dds plugin. 2014-06-30 13:24 robert * REmoved debug cout 2014-06-30 10:13 robert * From Mikhail Izmestev, "Attached fix to avoid vector reallocs on push_back in StateGraph::moveStateGraph." 2014-06-30 09:12 robert * Updated ChangeLog and AUTHORS file 2014-06-30 08:56 robert * Updated version number 2014-06-30 08:46 robert * From Pjotr Svetachov, "Here is a small fix for a overflow when editing large 3d volume data." 2014-06-30 08:20 robert * Removed space from #include. 2014-06-30 07:37 robert * From Alexander Sinditskiy, build fix to allow building against versions older than librsvg-2.36.2 2014-06-28 06:22 robert * Replaced using NodeCallback::run with explict run() implementation. 2014-06-27 15:57 robert * From Pjotr Svetachov, "I made a small change to DataOutputStream.cpp which makes saving Geodes possible again. This is only half a fix as it only will save a Drawable that is part of a Geode. But this change does not require a version bump of the .ive format. I tried it with a few datasets we have here with the 3.2 stable branch and the trunk with this patch and there was no difference in the .ive files that were produced." 2014-06-27 15:55 robert * Removed unused method. 2014-06-27 15:48 robert * From Laurens Voerman, "attached is a modified version of src/osgUtil/Tessellator.cpp current code checks for a Nullpointer and on notify level info or above will inform you with a crash, by dereferencing it." 2014-06-27 15:39 robert * Updated AUTHORS file 2014-06-27 15:38 robert * Added an OSG_INIT_SINGLETON_PROXY to make sure that the ApplicationUsage singleton gets intialized before usage. 2014-06-27 15:36 robert * Updated AUTHORS file 2014-06-27 15:30 robert * Added a render order sort to the list of Cameras being tested by the *Viewer::generatePointerData(..) method to ensure that the highest Camera gets focus. 2014-06-26 15:54 robert * Update ChangeLog for dev release 2014-06-26 14:16 robert * Revised KdTreeBuilder so that is used the new apply(osg::Geometry&) method rather than expanding an osg::Geode. 2014-06-26 11:49 robert * From Sebastian Messerschmidt, "I've applied a simple fix for the backward animation support in osg::Sequence. It will simply use the sign of the speed set in the getNextValue. Attached file is against trunk." 2014-06-26 11:11 robert * From Lauren Voerman, "In order to speed up loading large scenes (especially from network disk) I added code to our viewer to setup multiple database-pagers and request the files trough a database-request: databasePager->setUpThreads(16, 1); We experienced problems with multiple databasepagers loading files in parallel, when two threads start to load the same file (usually a texture referenced by multiple models). The second thread to add the file to the cache (sometimes) manages to do so while the refcount from the cached object still is zero, causing the object loaded to be destroyed. Sometimes the second thread manages to ref() the object before Referenced::signalObserversAndDelete does the final recount check, causing a warning: "Warning Referenced::signalObserversAndDelete(,,) doing delete with _refCount=1" With a deleted object added to the scenegraph we get some undesired results, I think the program only crashes if the object was a Node, and just has some untextured surfaces if it was a texture, but I'm not completely sure. Attached is a modified version of the Registry.cpp, returning the object in cache and let the duplicate loaded object to be destroyed. A more efficient option would be to add some sort of blocking entry to the objectcache to stop the second thread from reading the file, and just wait until the first thread added it to the cache. If you think that's worthwile we would be happy to implement that version. A bit tricky to implement and test, that's why I submit a simple version that stops my program from crashing." 2014-06-26 11:09 robert * Removed erroneous character 2014-06-26 10:53 robert * From Farshid Lashkari, "I noticed that Text3D objects would change there z alignment depending on the alignment mode. I'm not sure if this was intentional or just a simple mistake. My expectation was that the front of the object would always stay aligned to the 0 z-plane, regardless of the alignment mode. I've attached an updated version that retains a consistent z-alignment." "I just now noticed another issue with Text3D objects. It was not properly computing the bounding box when non-axis aligned rotations were being applied. In this case all corners of the bounding box need to be transformed in order to get the correct containing box. I've attached the updated file." "The incorrect bounding box problem also applies to regular Text objects. I've attached the fix for that as well as the original Text3D fix." 2014-06-26 10:45 robert * From Pjotr Svetachov, "For a scene with a lot of animated agents I did some small optimizations to reduce cpu overhead: 1) Avoid a load-hit-store in UpdateBone. b->getMatrixInBoneSpace() returns the same matrix that was just stored with b->setMatrix() 2) Avoid calling element->isIdentity() for the whole transform stack (can be expensive is element is a matrix) 3) Make the key frame interpolator use binary search instead of a linear one. This is very noticeable in scenes where some geometry has long repeating animations that start at the same time, you will see the update time grow then reset and grow again." 2014-06-26 10:24 robert * From Laurens Voerman, "while debugging ImageSequence I had a crash, due to the very large frametimes caused by halting the program. The problem is that when the frame time exceeds the length of the entire image sequence, a looping sequence will try to read it's _imageDataList beyond its size. fix attached for src/osg/ImageSequence.cpp" 2014-06-26 10:05 robert * From Laurens Voerman, "while testing databasepager stuff I noticed that the various loaders (osg/ive/osgx) do not pass the current options to the imagePager, therefore the images cannot be found if not in the global OSG_FILE_PATH. Attached is a fix, containing modified versions of From Robert Osfield, add check to only apply Options object when a valid Option object is assigned. 2014-06-26 09:38 robert * From Farshid Lashkari, "I've attached a small fix for the ply loader to support Windows style line endings when reading the header." 2014-06-26 09:33 robert * From Aurelien Albert, "This submission fix all my problems with reading / writing "osgb" files inside "osga" archive with final archive size > 2 Go, with Windows OS (didn't tested with Linux)" 2014-06-25 16:05 robert * From Riccardo Corsi, "there's an inconsistency between the behavior of the method and the debug message it prints out on the console. Around line 1040 of Registry.cpp (see code below) the method returns "simpleFileName" but prints about returning "filename". In attachment the modified file, based on osg 3.2.0 ricky if(fileExists(simpleFileName)) { OSG_DEBUG << "FindFileInPath(" << filename << "): returning " << filename << std::endl; return simpleFileName; } " 2014-06-25 15:55 robert * From Auelien Albert, "I'm working on an application which use 3ds file format as input and use the name of the material to "map" specific data with 3d geometry. The osg 3ds plugin modify the exported materials name in the same way it modifies the node names. I've added an option to preserve originals materials names, with the assurance of unique material names are preserved." 2014-06-25 15:47 robert * Refactored the way that hole are pruned from the occluder hole list. 2014-06-25 11:07 robert * From Laurens Voerman, "a minor patch for osgconv to make sure the helptext is printed if you run "osgconv -h" with OSG_NOTIFY_LEVEL set too low. applys to both trunk and stable branch." 2014-06-25 10:45 robert * From Mikhail Izmestev, "Attached fix to avoid vector usage in StateGraph::prune and reduce heap allocations." Notes from Robert Osfield, ammended the erase so that it explictly increments the iterator before the erase call. 2014-06-25 09:58 robert * changed debug message to use OSG_DEBUG 2014-06-25 09:57 robert * From Alexander Sinditskiy, "My changes added support for gltexstorrage2d for texture2d. Initially I described issue in message: http://forum.openscenegraph.org/viewtopic.php?t=13820 It solves issue with compiling texture using ico from image with mipmaps I added enviroment variable OSG_GL_TEXTURE_STORAGE_ENABLE to control usage of glTexStorage2d. Initially it is disabled. It used only if image have mipmaps. Another issue is converting from internalFormat + type to sized internal format. I created sizedInternalFormats[] struct where sized internal formats are ordered from worse->best. also this struct have commented lines. Commented formats are listed in http://www.opengl.org/wiki/GLAPI/glTexStorage2D but looks like not using in osg." Note from Robert Osfield. Changed the env var control to OSG_GL_TEXTURE_STORAGE and made it's value true by default when the feature is supported by the OpenGL driver. To disable to use of glTexStorage2D use OSG_GL_TEXTURE_STORAGE="OFF" or "DISABLE" 2014-06-25 08:21 robert * From Björn Blissing, "I found a minor error in documentation in include/osg/Math. Function: absolute() had the same description as the function minimum() I removed the erroneous text." 2014-06-25 08:18 robert * From Björn Blissing, "Fix to support correct shininess and transparency in FBX plugin" 2014-06-24 19:57 robert * From Pjotr Svetachov, "There were some modes missing when exporting to .ogst so I added them." 2014-06-24 14:58 robert * From Farshid Lashkari, "I've attached a small for the osg ReaderWriter. It was performing a case sensitive comparison to the file extension to determine whether to write the file in ascii or binary. This meant that if the filename was "model.OSGT" it would be treated as binary, instead of ascii. I've updated the plugin to ignore case." 2014-06-24 11:24 robert * Merged fix to merge geometries. 2014-06-23 12:02 robert * Fixed nested callback calling. 2014-06-16 16:16 robert * Fixed check against totaly number of vertices 2014-06-16 08:54 robert * From Aurelien Albert, "I've got some issues using osgb files within an big osga archive (file size > 2Go). Issue is described here : http://forum.openscenegraph.org/viewtopic.php?t=13914 Here is a fix, using "std::streampos" standard type for stream positions up to 64bits. " 2014-06-13 17:17 robert * Added osgUI::ColorPalette class 2014-06-13 17:16 robert * Fixed typo in parameter name 2014-06-12 16:00 robert * Removed generation of scroll event on the X11 button release event as X11 was generating both a pair of press/release events for a single scroll when movement. 2014-06-12 15:24 robert * Added if () blocks to State::convertVertexShaderSourceToOsgBuiltIns() to ensure that only parts of the shader than need replacing are replaced. 2014-06-12 14:12 robert * Improved positioning of combo box popup items 2014-06-12 14:05 robert * Added frame support to ComboBox. Improved the alingment support for text 2014-06-11 16:31 robert * Added handling of AligmentSettings of Text layout 2014-06-11 10:55 robert * Implemented more robust intersection handling for mouse interactions. Wired up even handling of ComboBox popup. 2014-06-10 08:50 robert * Added using Callback::run() method to Drawable::CullCallback 2014-06-09 13:46 robert * Fixed handling of Drawable callbacks and NumChildrenRequiringEventTraversal 2014-06-06 15:05 robert * Removed redudent NodeVisitor::s/getUserData() as osg::Object provide this. Added using run entry to InteractiveImageHandler to quieten warning 2014-06-06 09:12 robert * Added using NodeCallback::run() to avoid warnings 2014-06-06 09:01 robert * Added missing OSG_EXPORT 2014-06-05 16:26 robert * Refactored Callback system in osg::Node, osg::Drawable, osg::StateSet and osg::StateAttribute to use a new osg::Callback base class. 2014-06-04 08:59 robert * Updated shaders from OpenSceneGraph-Data sources 2014-06-03 15:05 robert * From Pjotr Sventachov and Robert Osfield, added callback unit test to osgcallback example, to use test run osgcallback --test, if everything is functioning then test1 to test7 messages should be reported to the console. 2014-06-03 09:52 robert * Reverted change of Node::ParentList from being a vector back to a vector 2014-06-03 09:23 robert * Refactor osg::Geode to subclass from osg::Group and reuse the NodeList children container 2014-06-02 16:20 robert * Removed OSG_USE_BOUND and associated osg::Bound adapter class to avoid problems with BoundingBox::expandBy/expandByRadius() implementation choosing a null BoundingBox from the osg::Bound class causing crashes. 2014-06-02 08:13 robert * From Roni Zanolli, build fix for iPhone 2014-05-30 16:44 robert * Implemented basic frame graphic 2014-05-29 15:21 robert * Futher work on ComboBox/Popup 2014-05-29 10:51 robert * Added beginnings of ComboBox popup functionality. 2014-05-28 10:18 robert * Added cached Depth and ColorMask to reduce the amount of duplicate state in the osgUI subgraph 2014-05-28 10:06 robert * Replaced Widget::GraphicsSubgraph with GraphicsSubgraphMap to allow finer control of when the rendering subgraphs are done. 2014-05-27 14:14 robert * Improved handling of text 2014-05-26 16:32 robert * Removed Dialog/Popup::open/close() methods as they are replaced by the setVisible() method 2014-05-26 16:27 robert * Implemented Widger::Visible and Enabled usage 2014-05-26 16:15 robert * Added Visible and Enalbed properties to Widget 2014-05-26 16:15 robert * Fixed missing initilaizer 2014-05-26 15:58 robert * Added item serializer 2014-05-23 18:59 robert * Implemented clipping of widget to the widgets extents. 2014-05-23 15:00 robert * Implemented scheme for making sure nested widgest overdraw parent widgets graphics 2014-05-23 15:00 robert * Added wrappers for open and close methods 2014-05-22 10:02 robert * Added osgUI::Widget::set/getGraphicsSubgraph() to hold the subgraph that does the rendering portion of widgets 2014-05-21 16:15 robert * Addd method implementation in serializers 2014-05-21 10:17 robert * Fixed handling of traverse 2014-05-21 09:45 robert * Improved handling of callback object to open the door to use of general osg::CallbackObject as mechnisms for something simialr to Qt's signal/slot mechanism. 2014-05-21 09:07 robert * Added osg::runNamedCallbackObjects(..) convinience method for run all named osg::CallbackObjects attached to an osg::Object 2014-05-21 09:06 robert * Renamed callbacks to avoid overlap with Node callbacks 2014-05-20 16:09 robert * Moved the _boundingSphere set method into the update section of the Drawable::getBoundingBox() method Added an UpdateVisitor::apply(Drawable&) implementation. 2014-05-20 15:34 robert * From Pjotr Svetachov, "I stumbled on a little bug with the new drawables. I was distributing points data into different drawables that I used in a LOD later. When simplifying the system to not use geodes anymore I came upon the following bug: If Drawable::getBoundingBox would compute an invalid bounding box (if it was for example empty) it would make a bounding sphere with a infinite radius which counts as a valid sphere in osg. Attached is a small fix." 2014-05-20 08:35 robert * Improved the handling of updating of text 2014-05-20 08:35 robert * Added shell of Popup class 2014-05-20 08:34 robert * Added check against whether an event has been handled or not before actioning escape/quit. 2014-05-19 10:11 robert * Add shell of Dialog class 2014-05-19 09:30 robert * Added handling of up/down key to ComboBox 2014-05-16 19:24 robert * Added initial cut of ComboBox 2014-05-16 10:38 robert * Added initial shell of PushButton implementation 2014-05-15 16:30 robert * Added support for intesecting Drawable that are attached directly to the scene graph without an osg::Geode 2014-05-15 14:57 robert * From Sebastian Messerschmidt, "There was some small error due to MS non-conformity handling comments correctly." 2014-05-15 14:45 robert * From Pjotr Svetachov, build fixes for VisualStudio 2014-05-15 13:34 robert * Added osgGA dependency 2014-05-15 13:22 robert * Placed the #include within #ifdef OSG_USE_BOUND to prevent unncessary inclusion of Node header when OSG_USE_BOUND is false. 2014-05-15 09:26 robert * Added Node::asDrawable() and Node::asGeometry() methods to provide a low cost way of casting a node to Drawable and Geoemtry. Changed the Group::computeBound() method so that it takes account of the a Drawable's BoundingBox. 2014-05-14 16:52 robert * Fixed the bounding sphere computation and handling of Drawable as the root of the scene graph 2014-05-14 16:01 robert * Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase 2014-05-14 16:00 robert * Cleaned up code 2014-05-14 10:19 robert * 2014-05-13 08:43 robert * Changed the Node::ParentList to be a list of osg::Node rather than osg::Group, and added addChild, removeChild, replaceChild virtual method to Node to enable code to user code compile with minimal modifications to account for the new change to the Node ParentList. 2014-05-12 12:10 robert * From Farshid Lashkari, "As discussed, I've added the ability to handle Drawable objects within the NodeVisitor class. Here is an overview of the changes: - Added apply(Drawable) and apply(Geometry) to NodeVisitor - Added accept(NodeVisitor) method to Drawable/Geometry - Added traverse(NodeVisitor) to Geode which calls accept(NodeVisitor) on all Drawables - Updated CullVisitor to use new apply(Drawable) to handle drawables. The apply(Billboard) method still manually handles the drawables since it is depends on the billboard settings. I needed to disable the traverse within billboard to prevent duplicate traversal of drawables. - Update other osgUtil node visitors (GLObjectsVisitor, IncrementalCompileOperation, ..) to use new apply(Drawable) method. " 2014-05-12 11:27 robert * Added beginnings of new osgUI library, a replacement for osgWidget that works fully in 3D/stereo and is scriptable. 2014-05-06 16:38 robert * Replaced obsolete __linux usage. 2014-05-06 09:43 robert * From Stephan Huber, "Xcode changed the default std-lib-implementation again. Now it’s GNU++98 instead of C++11. I adapted the cMakeList.txt files accordingly to add this new option so we can set it explicitly and link against 3rdparty-c++-libs." 2014-05-06 08:37 robert * From Stephan Huber, "Please revert the change to FindQuickTime.cmake as this breaks compilation for IOS and possibly OS X." 2014-05-02 09:12 robert * From Farshid Lashkari, "fix for the Collada loader where it would access a null string in some cases" 2014-05-02 09:11 robert * From Ali Botorabi, "recently I ran into a problem with Microsoft's Appverifier while using OpenThreads on win32 platform. The Appverifier complained about an invalid thread handle during starting of a new thread. After looking closer into the problem it seemed that indeed a potential root of problem may be in the thread startup code. See the line below in Win32Thread.cpp (line number 347): pd->tid.set( (void*)_beginthreadex(NULL,static_cast(pd->stackSize),ThreadPrivateActions::StartThread,static_cast(this),0,&ID)); the method "pd->tid.set" sets the thread id, however via the startup function "ThreadPrivateActions::StartThread" that thread id is used (see further down the call hierarchy the line "int status = SetThreadPriority( pd->tid.get(), prio);". Until now I never ran into any problem in debug or release builds, though. It seems that furtunately the tid.set method was executed always before the tid.get method in the startup code. However, this may make trouble in the furture. A simple solution is the following: just replace the line above with following two lines: pd->tid.set( (void*)_beginthreadex(NULL,static_cast(pd->stackSize),ThreadPrivateActions::StartThread,static_cast(this),CREATE_SUSPENDED,&ID)); ResumeThread(pd->tid.get()); The trick is just starting the thread in suspended mode so the StartThread function does not get executed and we can safely store the tid by pd->tid.set. Then start the Thread by calling ResumeThread." 2014-05-01 15:50 robert * From Stephan Huber, fix for OSX build 2014-04-30 13:19 robert * Renamed the new include/osg/OpenGL automatically configured header file to include/osg/GL replacing the original hand built GL header 2014-04-30 11:51 robert * From Sebastian Messerschmidt, "attached is the compile/linker fix for multiple definitions of getTypeEnum when compiling the Lua with VisualStudio and potentially other compilers. " 2014-04-29 15:14 robert * From Pjotr Svetachov, "have added some missing serializers for RigGeomery. Withouth them I ran into two issues. At first you get a bunch of warnings that osg::ComputeBoundCallback and osg::UpdateCallback were unsupported wrapper classes when converting fbx models with skeletal animation to osg(t/b). The second issue was that when reading, the readers fail to read the ComputeBoundCallback and UpdateCallback and set them to NULL which messes up the RigGeometry. Because a RigGeometry makes his own classes in the constructor it might be preferable to not write them at all, because now those classes are being made two times when reading a RigGeometry. But after thinking about this that would place too much limits on them (you won't be able to share or name them and save that information or make a new inherited class from them and write that one) So I ended up thinking the best way was to just write the files. " 2014-04-29 13:41 robert * From Pjotr Svetachov, "Today I found a bug in the IutputStream class when saving array attributes in vec3b format. It looks like my compiler takes the wrong overload and outputs integers instead of characters. The problem is that vec3b is of type signed char and that is not the same as char ( see http://stackoverflow.com/questions/436513/char-signed-char-char-unsigned-char ) and visual studio 2013 will promote it to integer when choosing an overload. It looks like that the InputStream class already takes care of this issue (if it didn't it would have read everything ok and I would have not even stumbled upon this bug. :) )" 2014-04-29 12:19 robert * From Mattias Helsing, "I finally got to fix the cmake Modules that have duplicates in later version of cmake. See attached submission. I have tested the ones that I compile myself (GDAL, Freetype, ZLIB) on ubuntu 12.04 with cmake-2.8.7." 2014-04-29 12:18 robert * From Paul Martz, "There is no standard place for gl/glcorearb.h on Windows. Previously, the only way to get OSG to build for core profile was to append an additional include directory ("/I") onto the CFLAGS variables This submission adds a FindGLCORE.cmake script so that the path to gl/glcorearb.h can be specified with a variable, GLCORE_ROOT, either in CMake or the environment. Currently this submission is Windows-only. I don't think OSX or Linux require any help in locating gl/glcorearb.h. But if they do, this submission can be easily modified. Files: - "CMakeLists.txt" is the top-level file. - FindGLCORE.cmake" and "OsgMacroUtils.cmake" go in CMakeModules. " 2014-04-28 14:58 robert * From Pjotr Svetachov, "I had the osgvolume example crash on me when loading large volume datasets due to an overflow in image.cpp after a unneeded cast from unsigned int to int. Here is a small fix." 2014-04-28 14:57 robert * From Jason Beverage, "Here is a fix for a small race condition in osgDB::makeDirectory. It attempts to create all the directories in the given path and stops attempting to make directories when one of them fails. I've added a check to see if the failure occurred b/c the directory was created by another thread or process. We were running into issues occasionally in osgEarth where multiple threads were writing out files like /1/2/3.jpg and /1/3/4.jpg. Both threads would try to create the /1 directory and only one of them would succeed. So the first thread would write out the full /1/2/3.jpg while the second thread wouldn't create the /1/3 directory b/c /1 was already created and the writing of /1/3/4.jpg would fail. " 2014-04-28 11:53 robert * Fixed type error 2014-04-25 08:57 robert * From Pjotr Svetachov, "For me osgviewer.cpp and Renderer.cpp were not compiling (visual studio 2013 with profile GL2) because they were still using GLuintEXT. So I changed that, see the attached files. I also noticed that the generated OpenGL header were not copied to the installation directory so my own application could not find it." 2014-04-25 08:56 robert * Reordered the configuiration file blocks to make it more understandable 2014-04-25 08:18 robert * From Paul Martz, fixed placement of OpenGL header so that it gets generated and placed in the build directory as per the Config file 2014-04-24 17:26 robert * From Farshid Lashkari, "I've attached a small fix to the Collada loader which prevents a null pointer access in some cases." 2014-04-24 17:23 robert * From Lionel Lagarde, "In the ::apply method, when the image data need to be re-uploaded, the Texture2DArray checks if the TextureObject can be re-used. The test was made using the constant 1 instead of the real texture depth, so the TextureObject was never re-used." 2014-04-24 17:14 robert * From Kristofer Tingdahl, "I and my team have gone over the code again, and we feel that we are comfortable in our current proposal for change. It goes deeper than it did before, and I explain why: There was code in the osgViewer/Viewer.cpp and osgViewer/CompositeViewer.cpp that transformed the Y-coordinates of an event. The code in the composite viewer did however miss the touch-data of the event. I thought that it should really be the GUIEventAdapter that should know about this, and hence I added the GUIEventAdapter::setMouseYOrientationAndUpdateCoords which is re-computing the coordinates. First I simply added a boolean to the setMouseYOrientation function: setMouseYOrientation( MouseYOrientation, bool updatecooreds=false ); but then the serializer complained. This function is called from both the Viewer and the CompositeViewer. We have not tested from the viewer, but I cannot see it would not work from visual inspection. The other change is in MultiTouchTrackballManipulator::handleMultiTouchDrag. I have removed the normalisation. The reason for that is that it normalised into screen coordinates from 0,0 to 1,1. The problem with that is that if you have a pinch event and you keep the distance say 300 pixels between your fingers, these 300 pixels represent 0.20 of the screen in the horizontal domain, but 0.3 of the screen in the vertical domain. A rotation of the pinch-fingers will hence result in a zoom in, as the normalised distance is changing between them. A consequence of this is that I have changed the pan-code to use the same algorithm as the middle-mouse-pan. The rest of it is very similar from previous revision, and there has been some fine-tuning here and there. " 2014-04-24 10:49 robert * From Mattias Helsing, "Seems I was only half right given what you asked for. CMP0017 only says that modules that are found and ran from cmake modules dir should prefer cmake-provided modules. find_package() and include() still look in CMAKE_MODULE_PATH first. After some investigating I've come up with a proposal examplified in the attached FindGDAL.cmake script. It simply calls the cmake provided FindGDAL.cmake if it exists and returns if it succeeds in finding GDAL using that, otherwise continue with our local cmake code. Pro: Wont clutter our root CMakeLists.txt Con: If we begin to write more advanced Findxxx modules (using COMPONENTS, REQUIRED etc.) we may have to revise this scheme. " 2014-04-24 10:38 robert * Fixed reference invalidation bug. 2014-04-24 07:22 robert * Fixed typo in OPENSCENEGRAPH_OPENGL_HEADER name 2014-04-24 07:20 robert * Removed header as this CMake generated configuration file is not required to be part of svn repository 2014-04-23 19:30 robert * Added src/osg/OpenGL.in configuration file and include/osg/OpenGL header files 2014-04-23 09:08 robert * Introduced new scheme for setting up which version of OpenGL/OpenGL ES the OSG is compiled for. To select standard OpenGL 1/2 build with full backwards and forwards comtability use: ./configure make OR ./configure -DOPENGL_PROFILE=GL2 To select OpenGL 3 core profile build using GL3/gl3.h header: ./configure -DOPENGL_PROFILE=GL3 To select OpenGL Arb core profile build using GL/glcorearb.h header: ./configure -DOPENGL_PROFILE=GLCORE To select OpenGL ES 1.1 profile use: ./configure -DOPENGL_PROFILE=GLES1 To select OpenGL ES 2 profile use: ./configure -DOPENGL_PROFILE=GLES2 Using OPENGL_PROFILE will select all the appropriate features required so no other settings in cmake will need to be adjusted. The new configuration options are stored in the include/osg/OpenGL header that deprecates the old include/osg/GL header. 2014-04-14 16:16 robert * Fixed comment 2014-04-13 16:04 robert * Renamed FindFreeType.cmake to FindFreetype.cmake to enable CMake build to pick up on CMake's own FindFreetype.cmake when it's available. 2014-04-09 17:40 robert * From Paul Cheyrou-Lagreze, "Attached is fix/feature for FBX osgplugins against latest trunk: - ReaderWriterFBX.cpp: add "z up scene axis" support: FBX provides facility to convert model scene axis during conversion. Currently fbx plugin convert axis to fbx:opengl axis system (which is arbitrarily at Y up, as opengl is in reality axis agnostic) and sometimes what is needed is Z up so added an option for Z up conversion - FindFBX.cmake: add support for latest fbx sdk ( 2014.2 )" 2014-04-09 17:20 robert * Disabled warnings to address issues in FBX headers that generate lots of warnings that we can't fix. 2014-04-08 19:42 robert * Added extra search paths to add compatibility with Kubuntu/Ubuntu 14.04 now locaton for freetype 2014-04-08 17:45 robert * Updated ChangeLog and fixed Contributors list 2014-04-08 12:00 robert * From Remo Eichenberger, "I have extended the TIFF plugin that allows you to write LZW or JPEG compressed TIFF's. Options are: tiff_compression = lzw | jpeg" 2014-04-08 11:48 robert * From Sebastian Messerschmidt, "n the trunk version the osgGA::GUIActionAdapter has additional functions for lineIntersection which use osgGA::GUIEventAdapter&, but the class declaration is neither forwarded, nor is the header included. Using the trunk together with osgEarth 2.5 will fail to build, due to the missing type. Attached is the file forward declaring osgGA::GUIEventAdapter." 2014-04-08 11:17 robert * From Pjotr Svetachov, "We had a small problem converting skeleton animations from fbx to osgt format. Turned out that the serializer didn't handle bone names with spaces very well (the 3ds studio max biped for instance has spaces by default). Here is a small fix for the problem." 2014-04-08 11:08 robert * From Pjotr Svetachov, previous obj "commit broke compilation under visual studio 2013. To use std::not1 you need to include the functional header. Here is a fix." 2014-04-07 15:04 robert * Fixed build when using of double BoundingBox/BoundingSphere 2014-04-07 14:17 robert * From Jan Peciva, "I am sending four fixes to obj plugin: - materialName used to be not stripped of whitespace, making number of models fail to load materials; now fixed - stripping was considering spaces only, thus models using tabs had problems to load correctly; fixed - fixed references to textures; they did not performed conversion to native directory separators - make d (dissolve) takes precedence over Tr (transparency); there seems to be a confusion about the Tr item - some claiming 1 to be opaque and 0 transparent, while number of models uses exactly the opposite. d (dissolve), if present in the model, does not suffer from this confusion, thus using it instead fixes the problem for many many models. I put many comments to the file concerning d and Tr item as others may further investigate. Let me know in the case of any problems." 2014-04-07 14:11 robert * From Marcel Pursche, "The problem is that when OpenThreads is build with the Linux pthreads implementation all threads inherit the processor affinity from their parent thread. This behavior is also described in the pthreads man page (http://man7.org/linux/man-pages/man3/pthread_create.3.html): > > Linux-specific details > The new thread inherits copies of the calling thread's capability > sets (see capabilities(7)) and CPU affinity mask (see > sched_setaffinity(2)). > To prevent this behaviour I wrote a patch that explicitly sets the affinity mask to all cores of the system, if no specific affinity was defined with PThread::setProcessorAffinity(unsigned int) . Thank you! " 2014-04-07 14:03 robert * From Bjorn Blessing, "I got bored of the constant reports of “missing chunk 0xA08A” when reading 3ds-files. After a bit of research I discovered that this property is related to the advanced transparency settings for the material in 3D studio. In this case the falloff parameter. These controls affect the opacity falloff of a transparent material. And the property chooses whether falloff is in or out. I have added the property to the file reader BUT no changes are made to make this property propagate into the osgMaterial. But at least we get rid of this annoying error message." 2014-04-07 13:52 robert * From Bjorn Hein, "please find attached a small fix for RayIntersector.cpp. * Changes are made against trunk * Reason: crashes when using specific constructor from RayIntersector * Info: Line 42: added in constructor RayIntersector::RayIntersector(const Vec3d& start, const Vec3d& direction) missing initialisation of _parent " 2014-04-07 13:48 robert * From Paul Martz, "We discussed the issue of GL_RED_SNORM and GL_RG_SNORM some time ago, but the issue was never completely resolved. Please see the attached submission to fix the issue. osg/GL2Extensions was incorrectly defining GL_RED_SNORM and GL_RG_SNORM as part of the definitions for OpenGL v3.1. However, a quick review of the 3.1 spec indicates that these are not part of the 3.1 standard. My attached change moves these definitions out of the #ifndef GL_VERSION_3_1 conditional block, and defines them conditionally if not already defined. This allows the DDS plugin to build for GL3. " 2014-04-04 11:25 robert * Fixed iso surface shaders 2014-04-01 18:56 robert * Improved the setting of sample density/ratio so that they are consistent 2014-04-01 18:33 robert * Fixed handling of volume tiles with a region. 2014-03-27 12:47 robert * Added cube and hull rendering support 2014-03-19 17:56 robert * Restructured the handling of TileData to make it more extensible and flexible. 2014-03-18 18:14 robert * Addd ExteriorTransparencyFactorProperty for support of upcomming functionality of rendering a cube volume with a hull volume inside it. 2014-03-17 15:54 robert * Added support for animating volume hulls. 2014-03-13 14:02 robert * From Stephan Huber, "attached is a fix for the rest-http-plugin which should fix the font-issue reported by Phil. The old implementation did forward all requests to the internal http-server via user-events. This prevented error-reporting for missing files, as the request was accidentally handled by the plugin. As a request for missing font-file succeeds and returned an empty file, the curl-plugin hands the data happily to the freetype-plugin which failed trying to load an empty font-file, obviously. My fix was to rename the standard request handler to a specialized user-event-handler which handles only requests for "/user-event“ So fonts should work on iOS when loaded remotely, even when a local file is available and with the resthttp-plugin serving the presentation. " 2014-03-13 13:59 robert * From Stephan Huber, fix for building lua plugin from local source 2014-03-13 10:28 robert * Added support for directly invoking scripts using and to enable scripts to interact with each other. 2014-03-12 11:01 robert * Improved support for passing events between scripts and Present3D application 2014-03-11 10:52 robert * Added PresentationInterface class to make it more convinient to access the current presentation from scripting languages 2014-03-10 19:08 robert * Added scripting support for JumpData, KeyPosition, HomePosition and parts of SlideEventHandler that enable dispatching of user created events. 2014-03-07 11:09 robert * Added ability to replace callback objects via lua scripts to allow one to override callbacks. Added fallback for osgGA::Widget::Extents. 2014-03-06 10:27 robert * Added support for osg::Image to the lua plugin. 2014-03-04 13:36 robert * Implement add, set and get methods for StateSet. 2014-03-04 13:35 robert * Relaxed the handling of Image objects 2014-03-04 13:34 robert * Fixed handling of OverrideValue 2014-02-28 17:38 robert * From Stephan Huber, fix for handling font paths on a local machine when other files have been source from a remote machine. 2014-02-27 10:02 robert * Added MapReverseIterator implementation. 2014-02-26 18:18 robert * Added MapIteratorObject and support for it in the lua plugin to provide map iterator functionality. 2014-02-26 11:01 robert * Added Map serializer size() method and support for it in the lua plugin. Renamed functions in lua plugin to be more consistent. 2014-02-26 08:26 robert * Added support for vector and map containers in osgDB::Serailizer's and lua plugin. 2014-02-24 10:19 robert * Added Vector serialization and support in lua plugin top enable script users to set/get vector properties such as osg::Array, osg::PrimitiveSet and children lists. 2014-02-13 18:52 robert * Fixed handling of enums in Lua plugin. Fixed computation of getNumPrimitives() so that it returns 0 when PrimitiveSet is zero. Added missing properties to PrimitiveSet serializers 2014-02-13 11:01 robert * Added inital cut of PrimitiveSetSet wrappers to scripting 2014-02-12 18:10 robert * Added full range of Array subclasses to wrappers 2014-02-12 18:03 robert * Added initial support for wrapping osg::Array in a way that can be used via scripting. 2014-02-11 18:18 robert * Fixed handling of assignment of User Object's that replace existing Object with the specified propertyName. 2014-02-11 18:07 robert * Improved support for setting/getting properties via the osg::UserDataContainer. 2014-02-11 10:56 robert * Quitened down debug messages 2014-02-11 09:43 robert * Changed implementation of enums to use strings as lua type to make it easier to do comparisons and track values 2014-02-10 18:07 robert * Implemented Widget::handle, handleImplementation, traverse and travseImplementation() wrappers to enable them to be extended via scripting 2014-02-10 16:44 robert * Added support for serailizing and scripting BoundingBox and BoundingSphere objects 2014-02-08 17:53 robert * Fixed handling of setting member variables via the Serializers when the value is the default. Added support for more features of the osgDB::Widget class. Fixed handling of boolean values in the Lua plugin 2014-02-08 10:39 robert * Added support for enum's in the Lua script integration 2014-02-08 10:38 robert * Fixed export 2014-02-07 16:06 robert * Fixed handling of returns when invoking a script, removed some debug messages, added a warning message when detecting erronous types. Added FocusBehaviour enum to osgGA::Widget serialization 2014-02-07 10:46 robert * Added initial Widget wrapper 2014-02-06 17:32 robert * Moved experimental Widget class to osgGA Add computeIntersections() to the osgGA::GUIActionAdapter base class to enable intersection tests without needing to directly link to osgViewer. 2014-02-06 17:04 robert * Added osg::CallbackObject suport to the experiment Widget base class to enable script language extension of widgets 2014-02-06 11:25 robert * Added support for casting objects to allow one to access a parent classes methods. 2014-02-05 11:08 robert * Tweaked the detection of when the position transform for the hull is required. 2014-02-05 11:07 robert * Added support for a tag that can be used within tag. 2014-02-05 11:04 robert * Improved the white space trimming 2014-02-04 16:49 robert * Added lua-5.2.3 as source code so it can be optinally built as part of the lua plugin, making it possible to work out of the box across all platforms with needing lua as an external dependency. Added the Cmake option OSG_USE_LOCAL_LUA_SOURCE to control whether to build and use the Lua source code in the lua plugin, or look for lua as an external dependency. 2014-02-04 16:46 robert * Added test code for nesting a within a volume tag. 2014-02-04 11:24 robert * From Stephan Huber, added support for compile source code of lua with the lua plugin 2014-02-03 15:35 robert * Fixed error in the computation of tex coords of Maximum Intensity Projection + Transfer Function rendering. 2014-01-31 19:18 robert * Replaced C cast to long with a static_cast() to avoid a build error under Mingw 64. 2014-01-31 16:20 robert * Added osg::CallbackObject to be used to extend C++ class from scripting languages by providing callback objects assigned to the osg::Object UserDataContainer, with the CallbackObject's Name used to map the "method" provided by the CallbackObject. The CallbackObject is implemented by the script engine to provide the neccessary glue to invoking the script with the appropriate input parameters and handling the output parameters. To the Lua plugin added support for assigned lua functions to C++ osg::Objects via the new osg::CallbackObject mechanism. To invoke the scripts function from C++ one must get the CallbackObject and call run on it. Renamed ScriptCallback to ScriptNodeCallback to avoid possibly confusion between osg::CallbackObject and the ScriptNodeCallback. 2014-01-29 11:01 robert * Updated ChangeLog 2014-01-28 16:49 robert * From Kristofer Tingdahl, made method virtual 2014-01-28 16:48 robert * Fixed MingW build's handling of debug d postfix. 2014-01-28 15:28 robert * Removed the invocation of gcc on all platforms 2014-01-28 11:01 robert * From Kristofer Tingdahl, "the vertical bar is upside down, and hence not as the documentation says it should be. This is corrected with this patch" From Robert Osfield, changed the example so that the vertical and horizon scalar bars are rotated to the XZ plane so you can see them with the default viewer's camera orientation. Tweaked the positioning of title text of vertic scalar bar to avoid overlap of text. 2014-01-27 15:43 robert * Removed unimplemented method 2014-01-24 17:31 robert * From Laurens Voerman, "I experienced a crash in Geometry::fixDeprecatedData(), on certain files, and brought the problem down to a very simple test file, attached as test3.zip. There are two problems: 1> for DrawElementsUShortPrimitiveType (and UInt) the source_pindex still equals -1 and causes a crash in DrawElementsUBytePrimitiveType source_pindex is incremented, and in DrawElementsU(Short/Int)PrimitiveType primitiveNum is incremented, but never used 2> The drawelements need to be rewritten as the vertices are reordered. created a patch for osg stable branch(r14038): attached as Geometry-osg-3.2.zip and for svn brach(r14044): attached as Geometry_osg_svn.zip" 2014-01-24 17:06 robert * From Aurelien Albert, "In the "apply" method of osg::FrameBufferObject, the draw buffers are always enabled, even if the target is only "READ_FRAMEBUFFER". This can lead to inconsistency if you bind a framebuffer with multiple attachments in DRAW mode and then a framebuffer with different attachment count in READ mode (for example to manually "blit" from a FBo to another). On some ATI cards (at least RADEON HD) this also leads to an "incomplete " FBO status I've added a test to enable drawbuffers only if target is "DRAW" or "READ_DRAW", this solves my problems on ATI cards." 2014-01-24 16:45 robert * From Michael Schanne, "small fix for a duplicate OR operand in KdTree.cpp." 2014-01-24 16:28 robert * From Torben Dannahuer, "modified findcollada.cmake which can now detect Boost 1.55 libraries, which are used by Collada in my 3rdParty package" 2014-01-24 16:24 robert * From Torben Dannhauer, VisualStudio 2013 build fixes 2014-01-24 16:19 robert * From Kristofer, "The osgSim::ScalarBar has a problem in that if the scalarbar has a color in one end that co-incides with the background color, one cannot see where the scalarbar ends. With this patch, we add a line around the perimiter of the bar to mark it. Secondly, we thought the text-annotation missed ticks that mark out precisely where on the bar the texts relate to, so we added that as well." 2014-01-24 16:01 robert * From Marc Helbling, "I am sending a small fix in the PLY pseudo-loader; the extension was checked in plyfile.cpp thus preventing the loading of any .PLY file (extension in uppercase). The extension filtering is already handled by ReaderWriter::acceptsExtension in a case unsensitive way." 2014-01-24 15:40 robert * Fixed warnings 2014-01-24 14:26 robert * Changed the handling of single window configurations so that simply reuse the View::getCamera() instead of creating a slave. 2014-01-24 12:01 robert * Added a getModeUsage() method that prevents any mode being automatically associated with these Texture types that are only usable using non fixed function pipeline. 2014-01-24 11:37 robert * Fixed crash when reading a viewer configuration file where the EventVisitor was being re-assigned but left a dangling pointer 2014-01-24 10:10 robert * From Stephan Huber, "attached is a new zip containing two small fixes: * forwarded touch-events do have a correct input-range from 0 .. 1 * I refactored sending touch-events per osc so the receiver can detect a TOUCH_ENDED better" 2014-01-23 19:55 robert * Fixed warnings 2014-01-23 16:48 robert * From Kristofer Tingdahl,"we have a bunch of classes that inherit osg::Node, and they create their own, internal geometry which is passed into the render bucket at the cull-traversal. Last week, we realised that these classes are not accounted for when doing an ComputeBoundVisitor- traversal, as there is no specialization in ComputeBoundVisitor for them. One solution is naturally to create a new class that would inherit the osg::ComputeBoundVisitor, and use that. I don't like that idea as the ComputeBoundVisitor does actually have what I need - it is only hidden in a protected function. I am therefor suggesting a slight generalization of the ComputeBoundVisitor with the attached patch, which is tested. The patch has two parts: we add applyBBox() so that one can use that in a customized traverse-function and add a bbox to the visitor. I considered calling this function expandByBBox(), but I though applyBBox was better. The MatrixStack is made available to the outside world. That enables a traverse-function to do whatever it wishes. I do actually only need one of the two, as I can implement what I wish either way, but adding getMatrixStack() will make more generic expansions possible. " From Robert Osfield, changed the name of the new applyBBox(..) method to applyBoundingBox(..) to keep it's naming more consistent with the rest of the OSG. 2014-01-23 15:37 robert * From Stephan Huber, "attached are some fixes to the osc-plugin and the touch-implementations for iOS and os x and other small bugfixes. These fixes will normalize the orientation of the touch points, and transmitting the touch points over osc via the TUIO-protocol works now more robustly between two osg-applications. I added a new tag to p3d called forward_touch_event_to_device and renamed the existing forward_event_to_device to forward_mouse_event_to_device. This new tag will transmit touches to the virtual trackpad as touch events. I added the MultitouchTrackball to the p3d-app so zooming and moving a model remotely should now work, if you use forward_touch_event_to_device. I kept (and fixed) forward_mouse_event_to_device for background compatibility, so old presentations works as in previous versions, without the ability to zoom + scale. of course. forward_touch_event_to_device needs some more testing, (e.g. with image-streams and keystone, afaik there’s no support for touch-events...) but for a first version it works nice. " 2014-01-23 10:56 robert * Removed debug message 2014-01-23 10:50 robert * Changed the TransprencyProperty range to 0 to 2.0 to enable forcing opaque qualities on fragments 2014-01-23 10:11 robert * Cleaned up debug message. 2014-01-23 10:09 robert * Cleaned up the Qt find package, and made changed the default threading model to SingleThreaded when using Qt5 to avoid crash due to regresssion since Qt4. 2014-01-23 09:41 robert * Added clean up of osg::Program that are applied by the GLObjectsVisitor, which addresses a state leak that creates GL error once the main scene graph is rendered. 2014-01-23 07:59 robert * Added GL_TEXTURE_2D_MULTISAMPLE to texture mode list. 2014-01-22 17:29 robert * Made protected methods virtual to allow subclassing to customize more aspects of the window setup. 2014-01-22 16:29 robert * Refactored .p3d loader to make it less strict about the tag, property and value strings when matching them to supported values. Examples of supported matches are: and will be treated the same WHITE and White will be treated the same and , will all be treated the same 2014-01-22 11:25 robert * Added support for sampleRatio and sampleRatioWhenMoving properties 2014-01-21 18:58 robert * Build fixes for when ref_ptr<> automatic type conversion is turned off 2014-01-21 18:48 robert * Added support for osgVolue::SampleRatioProperty. Fixed build errors when compiling with ref_ptr<> automatic type conversion. 2014-01-21 18:31 robert * Build fixes for when ref_ptr<> has no auto type conversion 2014-01-21 17:27 robert * Fixed build error 2014-01-21 17:00 robert * Fixed build error due to typo. 2014-01-20 17:23 robert * Integrated multipass volume rendering shaders from OpenSceneGraph-Data 2014-01-20 17:03 robert * Changed the default directory for the output files to be the current working directory, with the --write-to-source-file-directory added to allow one to have the original behaviour of writing to the same directory as the original source file. 2014-01-20 16:21 robert * Removed nolonger used code paths 2014-01-20 15:54 robert * Disable depth test for rendering of hull backface 2014-01-20 15:10 robert * From Stephan Huber, "recent commits regarding GLuint64EXT broke the build for GLES1 and GLES2. Attached you’ll find a fix which hopefully work for every platform." 2014-01-20 11:00 robert * From Kristofer Tingdahl, reimplement of AntiSquish node to avoid the use of an update callback. From Robert Osfield, small ammendments to clean up header. 2014-01-20 10:40 robert * From Roni Zanolli,Added use of Qt's new devicePixelRatio() method to assist with handling the upscalling of resolution on iPhone for "retina" displays. From Robert Osfield, changed Roni's code to use a #define GETDEVICEPIXELRATIO to access the versioned Qt devicePixelRatio() method to avoid duplication of the Qt version checking. 2014-01-17 18:20 robert * Fixed warning 2014-01-17 18:20 robert * From Stephan Huber, fix for OSX build issue 2014-01-17 14:02 robert * From Kristoger Tingdahl, "the patch I sent to src/osgQt/CMakeModules.txt did not do the work on windows. I have fixed that, and also made it more generic so there is no special handling of qt5.2, but all qt5 are the same. I have tested this on: mac/qt5.2 linux/qt5.2 windows/qt5.2, and mac/qt5.1 All platforms perform as expected. The previous fix removed the -f flag to the moc-pre-processor, but on windows, it turned out that -f "osgQt/QGraphicsViewer" was needed. This becomes an include-statement in the file generated by moc which is needed for compiling it. I ask you consider this patch for the trunk and the 3.2 branch. Secondly, I wonder if it would be possible to apply my patch for FindRSVG.cmake from 22nd November in the 3.2 branch. In short, the version of librsvg must be equal or higher to 2.35: PKG_CHECK_MODULES(RSVG librsvg-2.0>=2.35) " 2014-01-17 13:59 robert * From Jordi Torres, "We have a code using gcc with -Wextra flag and using OSG as a third party library. It does not compile when importing failing in EventHandler and GUIEventHandler: .... GUIEventHandler: In copy constructor 'osgGA::GUIEventHandler::GUIEventHandler(const osgGA::GUIEventHandler&, const osg::CopyOp&)': /include/osgGA/GUIEventHandler:56:9: error: base class 'class osg::Object' should be explicitly initialized in the copy constructor [-Werror=extra] It seems the diamond problem: A = osg::Object / \ / \--> Virtual inheritance B C \ / \ / D = EventHandler | | E = GUIEventHandler The most derived class(E) handles the instantiation of A (osg::Object), but all have to be responsible in case they are the ones instantiated. In case A is not initialized in the copy constructor of derived classes the default constructor will be called, which seems a bug. I've added osg::Object to the initalization list of EventHandler and GUIEventHandler copy constructors, because both classes are instantiables. " 2014-01-17 13:54 robert * From Jordi Torres, "Fixed a typo in ReaderWriterCURL::ReaderWriterCURL() changed Psuedo for Pseudo." 2014-01-17 12:40 robert * Fixed handling of background colours. 2014-01-16 17:26 robert * Removed old redundent TexGen usage. 2014-01-16 17:17 robert * Added hull="hul-filename" property support to tag that can used thus: CardiacCT 2014-01-16 16:08 robert * Added support for controlling the extents of the volume rendering by nesting the hull underneath VolumeTile. Currently only supported by the new osgVolume::MultipassTechnique 2014-01-09 11:13 robert * From Paul Martz, build fix for Windows GL3 build 2014-01-09 09:41 robert * Added per TileData RTT Camera in prep for rendering backface of volume to a depth texture 2014-01-08 15:56 robert * Changed near/far values to use CullVisitor::value_type and use std::numeric_limits<>. 2014-01-08 10:33 robert * From Farshid Lashkari, "I've attached a fix for the Collada loader that prevents a crash with some files containing textures. I also converted an OSG_NOTICE to OSG_INFO to be consistent with other log messages within the loader." 2014-01-08 10:31 robert * Removed more odd characters 2014-01-08 10:28 robert * Removed more odd characters 2014-01-08 10:24 robert * Removed odd characters 2014-01-08 10:16 robert * Moved destructor to protected 2014-01-07 19:06 robert * Refined the GLint64 definitions 2014-01-07 18:32 robert * Removed duplicated instances of GLint64EXT declarations 2014-01-07 16:43 robert * Removed execute properties via svn propdel svn:executable file 2014-01-07 16:29 robert * From Farshid Lashkari, "I've attached a small change to the DAE writer to support writing out unknown transform types. It will essentially treat it as a matrix transform, using the the local to world matrix value." 2014-01-07 16:18 robert * Bumped SO_VERSION number of OpenThreads to avoid conflicts with Debian SO_VERSION bump 2014-01-07 16:15 robert * From Sebastian Messerschmidt, "Original shader was not running on various NVidia cards due to old syntax in shader." 2014-01-07 11:01 robert * Added State::getMaxTextureCoords() and State::getMaxTextureUnits() inline methods. 2014-01-06 17:19 robert * Added support for Switch::set/getValue() 2014-01-06 16:58 robert * Added Group::setChild(..) and Geode::setDrawable(..) MethodObjects 2014-01-06 15:46 robert * Removed the prototype MethodObject classes 2014-01-06 15:45 robert * Moved osgDB::MethodObject from lua plugin into osgDB, added support for running methods via the osgDB::PropertyInterface class. Updated lua plugin to use new osgDB::PropertyInterface to run methods. Added addChild/removeChild() etc to Group.cpp, and addDrawable/removeDrawable() etc. to Geode.cpp serializers. 2014-01-06 10:23 robert * Renamed the OSGSIM cmake variable to OSGSIM_LIBRARY to be consistent with the rest of the variables. 2014-01-03 14:36 robert * Fixed build of V8 and Python plugins 2013-12-25 17:36 robert * Preliminary support for wrapping methods in the lua script plugin. 2013-12-20 09:57 robert * Added tag to .p3d to allow one to provide multiple ways to render children within a layer. 2013-12-19 17:13 robert * From Kristofer Tingdahl, "the syntax of the moc executable has changed between 5.1.1 and 5.2.0 versions of qt (see below). The difference is that the argument has become mandatory after the -f option. Hence, moc will complain when osg throws in a -f without anything after it. Hence I propose removing the -f on Qt5 builds. I have tested building without -f on both qt520 and qt511, and that works well. The attached src/osgQt/CMakeLists.txt that can be patched into 3.2 safely. For the trunk, I would consider dropping the check on the version, and simply remove the option on qt5. I have tested that on qt5.1.1, and that worked fine. Question is however if it works on qt5.0. Probably it does, so the question is simplicity of CMakeList.txt vs safety." 2013-12-19 15:10 robert * From Sylvain Marie, When compiling OSG for the iOS simulator, providing both -miphoneos-version-min and -mios-simulator-version-min doesn’t please clang (tested on OS X 10.9.0 with Xcode 5.0.1). Here is a small change (against commit da597ab16945c572a2ad2f4f26fcef38ed21b074) in the CMakeLists.txt to avoid this situation. 2013-12-19 13:53 robert * From Michal Durkovic, "I’m building current trunk on Mac OS X 10.9 and have encountered this error during linking of osgdb_lua plugin: Undefined symbols for architecture x86_64: "lua::LuaScriptEngine::pushValue(osg::Quat const&) const", referenced from: PushStackValueVisitor::apply(osg::Quat const&) in LuaScriptEngine.o "lua::LuaScriptEngine::pushValue(osg::Plane const&) const", referenced from: PushStackValueVisitor::apply(osg::Plane const&) in LuaScriptEngine.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Looks like LuaScriptEngine was missing implementation of those 2 member functions. Fixed src/osgPlugins/lua/LuaScriptEngine.cpp file in attachment. " 2013-12-19 13:49 robert * From Stephan Hunber, "attached you’ll find some changes to osg/p3d: * a new command-line-option to present3d and a new option to the p3d-plugin to suppress any found tags * a new command-line-option to present3d to forward mouse-events via osgGA::Device (defaults to off) so we can test the interface-files with present3d better * I added a new attribute forward_to_devices for click_to_event to forward the event to all attached devices instead of handling the event locally. This will fix the annoyance with the new interface-files when toggling polygon-mode or switching light on/off. Here’s an example: 0x72 " 2013-12-19 13:44 robert * From Stephan Hunber, "I found some time and ported osgDB::FileUtils and DarwinUtils across new apis to fix the warnings about deprecated api-usage. * osgDB::FileUtils uses now the Cocoa-API to determine the paths of the application-support-folder * DarwinUtils uses now modern functions of the quartz-api to get and set screen-resolutions. Removed some of the osg-deprecated stuff. " 2013-12-19 10:02 robert * Implemented support for calling scripts from with Present3D. 2013-12-17 12:18 robert * Added support for new osgVolume::MultiPassTechnique to Present3D. To use add property renderer="MultiPass": MyVolumeData 2013-12-17 10:52 robert * Added experimental image 3d downsample function. 2013-12-16 11:28 robert * Removed the unused Texture::Extensions::numTextureUnits() 2013-12-13 12:38 robert * Implemented ability to switch between different shaders with new MultipassTechnique 2013-12-12 09:53 robert * Added SampleRatioWhenMoving property and support to new osgVolume::MultipassTechnique. 2013-12-12 09:51 robert * Applied unquie CullVisitor::Identifier rather than reusing the cloned one. 2013-12-11 17:20 robert * Changed epsilon to 1e-5 to address picking problems with planaer objects 2013-12-11 12:00 robert * Added initial support for 1D transfer functions to MultipassTechnique 2013-12-10 13:38 robert * Added support for handling viewports with offset origins, and with it split stereo. 2013-12-10 10:43 robert * Introduced SampleRatioValueProperty for more intuitive control of how many samples to take when volume rendering 2013-12-09 10:39 robert * Improvements to new MultipassTechnique 2013-12-06 19:31 robert * Further work on new MultipassTechnique/VolumeScene. 2013-12-06 09:35 robert * From Mike Krus, compile fix to enable compiling across a wider set of versions. 2013-11-26 19:03 robert * Added support for using shaders to render the RTT textures with depth 2013-11-26 10:38 robert * Replaced readShaderFile() usage to readRefShaderFile() 2013-11-25 17:36 robert * Added initial render to texture functionality into osgVolume::VolumeScene 2013-11-22 10:27 robert * Warning fixes 2013-11-22 09:48 robert * From Kristofer Tingdahl, Build fix for svg plugin that makes sure the version of librsvg is at sufficient, and fixed a missing virtual destructor warning. 2013-11-22 09:38 robert * Removed trailing spaces, added missing return to last lines 2013-11-21 18:17 robert * Added new osgVolume::VolumeScene and osgVolume::MultipassTechnique class shells that will be filled out to provide multi-pass volume rendering that handles mixing of 3D meshes with volume rendering and segmentation of volumes via a user defined hull mesh. 2013-11-21 14:21 robert * From Stephan Huber, "CLang / LLVM on OS X seems to have a problem compiling the osgGA-serializer. (It was reported before on the list, but the error is hard to track as it shows up only sometimes) I fixed the compile-error with a dedicated destructor of osgGA::GUIEventHandler" 2013-11-21 14:08 robert * From Farshid Lashkari, " recently encountered an issue attempting to load an IVE file generated by an older version of OSG. The file contained dxt1 compressed image data with mipmaps. The loaded model would cause crashes when passing the mipmap data to glCompressedTexImage2D. It seems that the size of the data array within the IVE file did not match the computed size from Image::getTotalSizeInBytesIncludingMipmaps(). This essentially made the mipmap offsets invalid within the Image object. I'm not sure if the IVE was simply generated incorrectly, or if the Image::getTotalSizeInBytesIncludingMipmaps() was modified since the file was generated. Either way, I added a simple check in the IVE loader so that it clears the mipmap offsets if the actual data size does not match the computed data size. This seems like a safe fallback since the mipmap data can be automatically generated, and it fixes the problem in my case. Also, while looking into this issue, I noticed that the osgDB::InputStream class applies the serialized image allocation mode. However, since the serializer is allocating the image data itself, it seems like it should force the allocation mode to USE_NEW_DELETE. " 2013-11-21 13:59 robert * From Farshid Lashkari, "I recently encountered an issue attempting to load an IVE file generated by an older version of OSG. The file contained dxt1 compressed image data with mipmaps. The loaded model would cause crashes when passing the mipmap data to glCompressedTexImage2D. It seems that the size of the data array within the IVE file did not match the computed size from Image::getTotalSizeInBytesIncludingMipmaps(). This essentially made the mipmap offsets invalid within the Image object. I'm not sure if the IVE was simply generated incorrectly, or if the Image::getTotalSizeInBytesIncludingMipmaps() was modified since the file was generated. Either way, I added a simple check in the IVE loader so that it clears the mipmap offsets if the actual data size does not match the computed data size. This seems like a safe fallback since the mipmap data can be automatically generated, and it fixes the problem in my case. Also, while looking into this issue, I noticed that the osgDB::InputStream class applies the serialized image allocation mode. However, since the serializer is allocating the image data itself, it seems like it should force the allocation mode to USE_NEW_DELETE. " 2013-11-21 11:02 robert * Converted std::max to osg::maximum to fix VS2013 build error 2013-11-21 10:31 robert * Added Geometry::drawVertexArraysomplemetation(..) and drawPrimitivesImplemenation(..) methods that are called from drawImplementation(..). These new vertex methods allow subclasses from osg::Geometry to specialize the vertex array setup or how the primitives are dispatched to OpenGL. 2013-11-18 14:21 robert * From Stephan Huber, "minor ios-fixes/-enhancements * force _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC for IOS device + simulator as the test does not pick the right implementation * fixed a small compile-bug for iphone-example * added a check to prevent multiple realization of a GraphicsWindowIOS-object " 2013-11-18 13:31 robert * From Stephan Huber, compile fix for OpenGL ES on iOS. 2013-11-18 13:25 robert * From Stephan Huber, * GUIEventAdapter: add support for getting normalized touch points * MultiTouchTrackball: some code cleanup and support for normalized touch-points * oscdevice: receiving and sending multi-touch-events via the Cursor2D-profile from TUIO * added some documentation 2013-11-18 12:46 robert * Added panning and zooming functionality to transfer function UI prototype code. 2013-11-18 12:45 robert * Added BoundingBox::contains(const vec_type& v, value_type epsilon) method with new epsilon parameter to make it easier to test for containment in the presence of numerical errors 2013-11-15 16:15 robert * Moved Handled propety from GUIEventAdapter to Event base class. Added CameraManipulator::finishAnimation() method to allow application code to stop any animation/throw of manipulators. 2013-11-12 14:21 robert * Restored the rescaleToZeroToOneRange() to address rendering issues. 2013-11-11 10:55 robert * Removed unused variables 2013-11-08 12:28 robert * From Stepan Huber, "attached are my changes for the osc, zeroconf and resthttp-plugin to use the new event-class. I refactored the osgoscdevice-example so that it’s working again. " 2013-11-08 12:26 robert * Added support for assinging and display transfer functions 2013-11-08 12:25 robert * Quietened down debug messages 2013-11-07 12:37 robert * Changed the LineSegmentIntersector to RayIntersector to provide more reliable intersections with flat meshes. 2013-11-07 12:35 robert * Added osgUtil::Intersector::PrecisionHint member and set it's default to USE_DOUBLE_COMPUTATIONS, and implemented support for use double or float maths internally in LineSegmentIntersector and RayIntersector classes 2013-11-06 09:50 robert * Re-enabled the disable of the transfer function 2013-11-06 09:49 robert * Fixed handling of web cams 2013-11-06 09:23 robert * Introduced a cast(T) method into the ImageUtils template functor to allow code reading images to handle casting from source data to a form that a user can use more conviently 2013-11-06 09:20 robert * Restructed the call to avformat_open_input to provide more information. 2013-11-05 15:23 robert * Fixed typo 2013-11-01 14:40 robert * From Stephan Huber, "Build Problem with osgGA at MacOS with Xcode 5"..."attached you'll find a possible solution for the issue. This will add a new option to cmake called OSG_CXX_LANGUAGE_STANDARD which defaults to C++11. If you set it to C++98 it will setup the project accordingly." 2013-10-28 17:46 robert * Added initial shell of new osgtransferfunction example that will be tested bed for upcomming transfer function editing UI. 2013-10-28 12:03 robert * From Likasz Izebski, "added support for etc2/eac compression" 2013-10-25 15:47 robert * Added explict setting of the PolygonMode to over the distion mesh being toggled to wireframe. 2013-10-25 14:54 robert * Introduce new osgGA::Event and osgGA::EventHandler base classes that the old GUIEventAdapter and GUIEventHandler now subclass from. The new osgGA::Event is written to support more generic events than the original GUIEventAdapter which are written for keyboard and mouse events. 2013-10-25 14:46 robert * Remoed -fpermissive 2013-10-25 09:02 robert * Fixed warning 2013-10-24 20:22 robert * Fixed warning 2013-10-24 19:56 robert * Removed depreated glib call 2013-10-24 19:32 robert * Fixed FileInfo self intialization bug 2013-10-24 17:43 robert * Fixed build problems with the OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION off 2013-10-24 12:15 robert * From Stephan Huber, "attached you’ll find a small enhancement for present3d. Now you can get advanced help via —help-all etc (similar to osgviewer)" 2013-10-24 10:10 robert * From Stephan Huber, add support for controlling the OSXMenubarBehavior set by DisplaySettings. 2013-10-24 09:06 robert * Cleaned up addChild/getChild/setChild/getNumChildren methods and added readNodeFile, readImageFile and readObjectFile functions 2013-10-23 16:17 robert * Added support for Group::addChild/setChild/getChild/getNumChildren. 2013-10-22 19:12 robert * Merged changes to DisplaySettings from Stephan Huber in prep for controlling the menu hiding behaviour under OSX. Added new WindowSystemInterface::setDisplaySettings() method to provide a mechanism for passing settings onto the WindowSystemInterface so it can then set up the system appropriately. Added assignment of the DisplaySettings to the WindowSystemInterface in Viewer/ComppsiteViewer::realize(). 2013-10-22 18:58 robert * Preliminary remapping of internalFormat for GL3 core profile 2013-10-22 16:28 robert * Fixed warnings 2013-10-22 11:32 robert * From Colin McDonald, "The osgt/osgb file formats output a scenegraph node with the type set to "SCENE" in the file header. But if the file is stored and then extracted again from an osga archive this header info is lost, and the resulting file is just an "OBJECT". Possibly other plugin operations would have the same effect. The osgt/osgb plugin won't then return the scenegraph contents. I have updated the osgt/osgb plugin to return a node from an "OBJECT" file." 2013-10-22 11:26 robert * From Colin McDonald, "The osgb file reader uses seek to position within the file. But the nested stream implementation for osga archive files doesn't support seeking. So osgb files can't currently be used in an osga archive e.g. if osgdem is used to output a osgb format database it can't be packaged in an archive file, in the same manner that ive files could. I've added seek support to the osga nested stream implementation." 2013-10-22 11:18 robert * Fixed handling of osg::Program so that it's not overriden by shader composition when enabled 2013-10-21 16:35 robert * Added State::releaseGLObjects() and ShaderComposer::releaseGLObjects() to avoid problems with cleanup of graphics context 2013-10-21 09:54 robert * Build fixes for clang 2013-10-18 09:57 robert * From Farshid Lashkari, "previously discussed change to the dae loader which applies the node ID as a "dae_node_id" user value." 2013-10-18 08:37 robert * From Vladimir Chebeav, fix for removal of nested callbacks 2013-10-18 07:55 robert * From Konstantin Matveyev, "Multiple light fix in FBX-importer" 2013-10-18 07:52 robert * From Colin McDonald, "Some missing updates to the serializer static build support." 2013-10-18 07:31 robert * From Andreas Henne, "in my application I use the TrackballDragger, the ScaleAxisDragger and the TranslateAxisDragger. Unfortunately these draggers are very thin and they do not provide methods to change their visual appearance. Another problem that I noticed is that lighting on the cones and boxes of the TranslateAxisDragger and ScaleAxisDragger is incorrect when the draggers are scaled due to not normalized normals. This small patch adresses these problems, providing methods to make the draggers thicker. I have attached a zip archive containing the corresponding files and also a modified osgManipulator example that makes use of the modifications. I don't want to retain any copyright." 2013-10-17 18:29 robert * Fix for error in getting the uniform block max name length, fix suggested by Christopher Fennell. 2013-10-17 14:02 robert * From Stephan Huber, build fix 2013-10-10 20:43 robert * Added set/get to the ImageSerializer and removed some redudent comments 2013-10-10 20:42 robert * From Pjotr Svetachov, "With the new osg::Geometry the binding for arrays now default to undefined. This breaks previously working code in osgAnimation::RigTransformHardware where the arrays got an undefined bounding and because of this the bone indices and weights were not loaded by the shader. Here is a little patch to fix this." 2013-10-10 14:45 robert * From Laurens Voerman, compile fix for VisualStudio 2013-10-10 14:41 robert * Laurens Voerman, "my cmake (2.8.10.2 generating for Visual Studio 11 Win64) doesn't like include(${CMAKE_MODULE_PATH}/FindPackageHandleStandardArgs.cmake) in CMakeModules/FindLua52.cmake changing to a more common include(FindPackageHandleStandardArgs) solves my problem." 2013-10-10 09:28 robert * Added get/set method to Serializer to allow pointer passing without going through InputStream/OutputStream. 2013-10-09 15:32 robert * Implemented preliminary readNode/readImage support in the lua plugin allow a lua script to create a scene graph as return it. 2013-10-07 10:05 robert * From Stephan Huber, "attached you’ll find a bunch of fixes + enhancements for iOS and OS X based on current trunk. I incorporated + tested the submission from Colin Cochran, so his submission is not needed anymore. * fixed a bug with multi-touch and touch-id-generation on iOS and OS X. (will fix a bug reported by Colin Cochran, without ditching the existing logic) * removed unnecessary warning-flagss when generating xcode-projects via cmake, will enable the usage of OSG_AGGRESSIVE_WARNING_FLAGS * added support for 10.9 (OS X) * new cmake-variable: IPHONE_VERSION_MIN, this will set the deployment-target (previously hard-coded) If you set the IPHONE_VERSION_MIN to something like 7.0 osg gets compiled also for 64bit (amd64) * cmake defaults now to the clang compiler if IPHONE_VERSION_MIN > 4.2 * cmake now sets some xcode-settings so the compiler uses the c++98-standard (clang defaults to c++11, w/o this I got a lot of linking errors) * removed include-dir for avfoundation-plugin as not needed on OSX/IOS. * enhanced the ios-example, will now show multitouch-information on a hud (similar to the osgmultitouch-example), and more importantly, will compile + link out of the box * small enhancements for the osc-device-plugin (send only one msg for MOVE/DRAG, even if multiple msgs/event is enabled) * better memory-handling for the zeroconf-plugin * fixed a possible bug in the rest-http-plugin when receiving mouse-events. * incorporated a fix from Colin Cochran "forwarded touch events are not transformed into the GL UIView“ " 2013-10-07 09:33 robert * Cleaned up line endings 2013-10-04 20:42 robert * Added support for automatically select Lua 5.2 is it's available, then falling back to checking for Lua 5.1 otherwise. 2013-10-04 19:48 robert * Moved code across to use lua_userdata to manage pointer to osg::Object that is ref()/unref() 2013-10-04 16:30 robert * Added support for Lua 5.2 and osg::Object creation from within Lua scripts. 2013-10-04 16:29 robert * Added createObject() interface 2013-10-04 16:28 robert * Updated version number after 3.3.0 dev release 2013-10-03 16:20 robert * Fixed errors in Contributors list 2013-10-03 08:45 robert * From Jan Peciva, RayIntersector implementation 2013-10-02 13:59 robert * From Colin McDonald and Robert Osfield, "When a serializer shared library is loaded it registers all of the wrappers it contains. The registration creates a prototype object for all of the wrapped classes. For some of the higher-level classes this can be a bit heavy. I noticed a problem with a model which required a single class from osgSim. When osgdb_serializers_osgsim.so was loaded it registered wrappers and created prototype objects for all of the osgSim classes, including osgSim::ScalarBar. The constructor for that class creates several drawables, and loads arial.ttf using the freetype plugin. I don't need that, and don't even ship the font or plugin with my application, resulting in an unexplained warning message loading the model. I've modified the ObjectWrapper class to defer the prototype object creation until if & when actually required." 2013-10-02 11:29 robert * From Dmitry Marakasov, "These are FreeBSD bits for src/osgPlugins/osc/osc/OscHostEndianness.h, required to build newever OSG on this OS. Also corrects file name in the error message - I was confused not to find OSCHostEndianness.h after I've got this error. Tested by successfully building OSG 3.2.0 with this patch on FreeBSD 9.1." 2013-10-02 11:28 robert * Re-ordered the public/protected sections to keep the public section all together 2013-10-02 11:09 robert * From Björn Hein, "it seems that for generating "per vertex normals" as stated in the comment, two of them are missing. This results in wrong display of STL-files regarding normals. Following simple fix seems to work: Index: ReaderWriterSTL.cpp =================================================================== --- ReaderWriterSTL.cpp (Revision 13797) +++ ReaderWriterSTL.cpp (Arbeitskopie) @@ -108,6 +108,8 @@ ++itr) { perVertexNormals->push_back(*itr); + perVertexNormals->push_back(*itr); + perVertexNormals->push_back(*itr); } geom->setNormalArray(perVertexNormals.get(), osg::Array::BIND_PER_VERTEX); " 2013-10-01 19:34 robert * Fixed build with no automatic ref_ptr<> conversion 2013-10-01 19:31 robert * Updated AUTHORS files 2013-10-01 19:00 robert * Updated ChangeLog in prep for dev release 2013-10-01 17:01 robert * From Aurelien Albert, "I'm working with OSG and a customer low-level OpenGL library. To make easier "lazy apply" on the customer OpenGL shaders, the easiest way was to add an accessor to current OSG state's UniformMap. I've also added accessors for modes and texture, since it could be usefull in the same way. All methods are const, so I think there is no side-effects." 2013-10-01 16:20 robert * From Björn Blissing, "I propose making the following outputs a little bit more silent. In my mind it would suffice with OSG_DEBUG (compared to OSG_NOTICE) for these information messages." 2013-10-01 09:37 robert * From Christopher Baker, submitted by Alberto Luacas, "there is a bug report in the Ubuntu tracker that points to a bug when loading multiple VRML files in parallel. Christopher R. Baker has detected this bug and crafted a patch. In addition, libcoin has to be also built with the "--enable-threadsafe" option. I copy here his report, extracted from (https://bugs.launchpad.net/ubuntu/+source/openscenegraph/+bug/1211993) and attach his fix. All credit is due to him: « There are three instances of a classical method-local-static multithreaded initialization bug in the Inventor plugin for OSG that trigger various memory faults when reading multiple VRML files in parallel via osgDB::readNodeFile. These bugs are of the form: static std::map myHandyMap; static bool once = true; if(once) { ...fill myHandyMap; once = false } ... use myHandyMap; To repeat: try loading multiple VRML files from multiple threads. The liklihood of the bug depends on many factors, but my application, which parallel-loads some dozens of small (<100K) VRML files on startup, triggers this problem 25% of the time or more. The attached patch (inventor-plugin-multithread.patch) rectifies this problem by: 1 - Inheriting MyHandyMap from std::map, then 2 - Moving the map initialization into the derived constructor, which 3 - Is intrinsically protected from multithread issues by g++ (and is part of the C++ standard), unless you pass -fno-threadsafe-statics, which is strongly discouraged by the man page. » " 2013-10-01 09:11 robert * From Adrien Grandemange, "On Windows 7 and 8, mouse messages are generated in addition to touch messages, which leads to duplicate PUSH, DRAG and RELEASE events in OSG. Besides, the mouse and touch messages referring to the same user input are not necessarily sent at the same time, due to gesture translation done by Windows by default, such as double-tap => double-click and long-push => right-click. The delay between the 2 types of messages is more noticeable on Windows 8 and leads to serious disruptions in our application. Mouse messages generated by touch input are only present for legacy support. I think they should be filtered out by OSG (real click events originating from a physical mouse will of course still go through). This is what this patch does, according to this suggestion: http://msdn.microsoft.com/en-us/library/dd693088%28v=VS.85%29.aspx (third issue in this page)." 2013-10-01 09:05 robert * From Thomas Hogarth, "Attached is a small build fix for PointSprite when compiling under GLES2 (r13788) GL_POINT_SPRITE_OES does not exist in GLES2, instead you just draw using GL_POINTS then use gl_PointSize in a vertex shader to set the size." 2013-09-30 18:32 robert * From Jeffrey Kinross, "I ran into an issue with case sensitivity on OS X and the OSXAVFoundation code. In CMakeList.txt there is a case sensitivity issue which a fix was posted by Robert Osfield in the users forum. I also had to rename the files OSXAvFoundationCoreVideoTexture.h and OSXAvFoundationCoreVideoTexture.cpp to OSXAVFoundationCoreVideoTexture.h and OSXAVFoundationCoreVideoTexture.cpp Finally in OSXAvFoundationCoreVideoTexture.cpp the include OSXAVFoundationVideo.H was updated to OSXAVFoundationVideo.h" 2013-09-30 18:15 robert * From Farshid Lashkari, "I have a scene that makes heavy use of the StateSet::compare method and my profiler showed that a lot of time was being spent inside it. I made a small change to the method so that it performs a quick size comparison between the attribute/mode lists and bin mode before iterating through all the attributes. This made a noticeable improvement in my scene. I've attached the change." 2013-09-30 10:28 robert * 2013-09-27 18:43 robert * Unified Vec/Plane/Quat handling code. 2013-09-27 13:04 robert * Added support for getting Vec* and Matrix objects from Lua stack and assigning them as OSG object properties. 2013-09-26 17:27 robert * Initial cut of setting and getting osg::Object properties within Lua scripts 2013-09-24 15:17 robert * Added support for passing parameters in and out of scripts. Implemented support for osg::ValueObject in LuaScriptEngine. 2013-09-24 15:08 robert * Changed NodeVisitor so that is subclasses from osg::Object rather than osg::Referenced to enable it to be used with serialization and scripting 2013-09-24 08:56 robert * Removed redundent spaces 2013-09-23 14:10 robert * Added test for osgGA::GUIEventAdapter 2013-09-20 15:43 robert * Removed unnceccesary setNumChildrenRequiringUpdateTraversal from VolumeTile constructor. 2013-09-20 10:44 robert * Added initial cut of white and black lists 2013-09-20 10:25 robert * Added compoundClassName() convinience method to standardize the generation of the compoundClassName. 2013-09-20 10:04 robert * Added type maps to help with querrying supported type names 2013-09-19 16:19 robert * Introduce osgDB::PropetyInterface class that provided a generic interface for get/setting properties on scene graph objects, utilizing the osgDB serializers to do the actual interface query and set/gets. 2013-09-19 16:18 robert * Removed unneccessary return 2013-09-11 15:44 robert * Added access methods to Serializer to help with using wrappers for other purposes such as script integration. Added Vec*i and Vec*ui support to serializers 2013-09-10 15:17 robert * From Giuseppe Donvito, "I'm using OSG 320 and I need to flush a DDS 3D texture on disk. I found a bug on DDS ReaderWriter that generates a false positive on a guard for the size check on writing operation. This is due to a wrong imageSize computation that uses img->getImageSizeInBytes() method instead of img->getTotalSizeInBytes(), that actually ignores the r() dimension, contrariwise taken into account by the function ComputeImageSizeInBytes() later. The line 1062 on file ReaderWriterDDS.cpp should be fixed with: [code]unsigned int imageSize = img->getTotalSizeInBytes();[/code] " 2013-09-10 13:29 robert * From Giuseppe Donvito, Fixed typo of "CLEAR_GLOBAL_STATESET = 0x16," to indended "CLEAR_GLOBAL_STATESET = "0x10". 2013-09-10 09:23 robert * Added osgPresentation::Show node and implementations with basic property reporting for various internal nodes of presentation graph 2013-09-09 16:02 robert * From Wang Rui, "The Python header will look for its libraries using "#pragma comment(lib,"python32_d.lib")" for MSVC. So user-specified libraries will not really be set for the osgdb_python plugin. This small fix may help locate the Python libraries after putting the CMakeLists.txt into src/osgPlugins/python " 2013-09-09 14:58 robert * From Colin Cochran, OES support for point sprites 2013-09-09 13:33 robert * From Colin McDonald, "Add test for GL_EXT_framebuffer_object extension : osg uses osg::FBOExtensions to check if Frame Buffer Objects are available. But this just checks if the fbo functions can be called. It doesn't check if the OpenGL renderer supports fbos. For indirect rendering on linux the client side capability may be different from the display server, which can lead to mipmapped textures failing to render. I've added a fbo extension check. " 2013-09-09 12:44 robert * From Ulrich Hertlein, "Patch for FindAVFoundation to work with OS X 10.9" 2013-09-09 12:37 robert * From Wang Rui, "Some developers report that the osgviewerMFC example is broken in 3.2, in which depth test is not enabled by default so all models loaded look awkward. I submit this patch to make it work again. I haven't gone deep to check why previous example goes wrong in newer version but I believe the problem was because the newly created camera object missed some important global statesets before set as the main camera." 2013-09-09 12:33 robert * From Laurens Voerman, "two minor fixes, both in a CMakeList.txt file, 1> osgmultiplemovies example does not use SDL so needs no link to SDL 2> Added header files to "Plugins osg" project, so visual studio can find the source of OSG_WARN << "AsciiInputIterator::readProperty(): Unmatched property " " 2013-09-06 09:35 robert * Initial cut of Audio/Volume/Movie/Image presentation objects 2013-09-05 10:23 robert * From Colin McDonald, "Attached are some fixes to build osg using the Solaris Studio compiler. I've also checked the modified files still build ok with other compilers (Linux gcc, Windows Visual Studio). osgDB/OutputStream.cpp and osgPlugins/lws/SceneLoader.cpp require stdlib.h for atoi use. In osg/Uniform.cpp the compiler complains that base_class is unknown unless I add a class name qualifier. Not a build fix, but I spotted a typo in osgUtil/SceneView." 2013-09-05 10:08 robert * From Laurens Voerman, "like the "Bug in ProxyNode serializer" Farshid Lashkari found (svn submit 13754) the PagedLOD serializer attempts to read begin and and brackets. Fix is identical (don't read brackets when num_chidren is zero) and applies both to trunk and 3.2 branch." 2013-09-05 10:04 robert * Fixed warnings 2013-09-05 08:42 robert * From Alberto Luaces, "current versions of ffmpeg render «url_feof» macro as obsolete. The fix is very simple and it is contained in the attached file." 2013-09-05 08:22 robert * Added missing Model.cpp 2013-09-04 17:27 robert * Moved the property test from the model to presentation to test out the property inheritance scheme 2013-09-04 16:25 robert * Added PrintProperties visitor 2013-09-04 15:39 robert * Added PrintPropertiesAction to osgPresentation 2013-09-04 10:33 robert * Added Action class NodeVisitor that supports osgPresentation nodes. 2013-09-03 15:50 robert * Added test for osgPresentatation::Group::getSupportedProperties() 2013-09-03 10:17 robert * Added beginings of Text implementation 2013-09-02 10:56 robert * From Farshid Lashkari, "The ProxyNode serializer was not correctly reading the "Children" field. It conditionally writes the begin/end brackets, depending on whether it has children. However, during input it unconditionally attempts to read the begin/end brackets. I've modified the code to only read the brackets if it has children." 2013-09-02 10:56 robert * Refactored the use of epsilon in the clamping of the start/end points of the LineSegmentIntersector to better handle numerical precision issues. 2013-09-02 09:12 robert * Fixed double copy in StackedTransform copy constructor 2013-09-02 08:29 robert * Added IO test for new osgPresentation nodes 2013-09-01 17:24 robert * Added Audio, Image, Movie, Model and Volume class to osgPresentation. 2013-08-23 16:47 robert * Fixed build 2013-08-23 11:42 robert * Added color property to FontData parsing 2013-08-22 13:39 robert * Quitened down debug message 2013-08-22 12:37 robert * Removed debug messages 2013-08-22 12:07 robert * Quitened down debug message 2013-08-22 11:18 robert * Quitened down debug message 2013-08-22 10:09 robert * Added warning when model file has not be found 2013-08-22 10:05 robert * Reduced debug message level, and added a notify message for when an image isn't loaded 2013-08-22 07:49 robert * Added test for serializers and fixed serializers 2013-08-21 19:54 robert * Added initial classes for present3D refactor 2013-08-18 18:10 robert * Moved old osgPresentation source files to osgPresentation/deprecated subdirectory. 2013-08-18 16:59 robert * Moved old present3D sources into local deprecated directory to clean up the main present3D source directory for future refactored present3D 2013-08-09 16:51 robert * Added initial cut of basic scripting support, introducing an osg::Script object to wrap up the individual scripts, osg::ScriptCallback for assigning a Script as node callback and an osg::ScriptEngine base class that plugins implement to provided support for specific scripting languages. Provided are lua, python and V8 (for javascript) plugins that just open up enough of a link to the respective libs to run a script, there is no scene graph <-> script communication in current implementation. 2013-08-09 11:00 robert * Removed CameraNode reference 2013-08-09 07:46 robert * Removed unused includes 2013-08-09 07:38 robert * Removed old cursor code 2013-08-08 17:21 robert * Added translucent version of cushion which isn't depth tested to enable one to see the cursor even when it's behind other objects 2013-08-08 16:49 robert * Added osgPresentation::Cursor class to wrap up 3D cursor in the scene functionality 2013-08-07 17:08 robert * Added osgpresentation example as a test bed for new osgPresentation object model. First cut of example test bed is to test how easy it is to build against Lua, V8 and Python for purposes of running embedded scripts. 2013-08-05 12:00 robert * From Aurelien Albert, "I've go some problem with the method "State_Utils::replace" : if the original_phrase is empty, it leads to an infinite loop. Here is a path to prevent this." 2013-08-01 17:38 robert * Added missing initializer for _epsilon 2013-08-01 11:25 robert * From Anish Thomas, added catch for to an empty DrawElementsUInt creation. 2013-08-01 10:38 robert * Updated ChangeLog and AUTHORS file 2013-08-01 10:28 robert * From Ulrich Hertlein, "Based on the exchange on osg-users I went ahead and reworked shp/XBaseParser to avoid weird behaviour (closing stdin) and leaking file descriptors, as well as some const-ness." 2013-08-01 10:04 robert * From Sebastian Messerschmidt, "Seems like your re-factoring didn't really produces the correct results. You can check with the tester2.flt provided earlier and check with the result image. I double checked this with OpenFlight creator, and it seems the yaw is broken. With my initial quaternion version is seems correct and if I change the float cos_yaw = cosf(osg::inDegrees(yaw)); float sin_yaw = sinf(osg::inDegrees(yaw)); to be float cos_yaw = cosf(osg::inDegrees(-yaw)); float sin_yaw = sinf(osg::inDegrees(-yaw)); it seems to work as well." 2013-08-01 10:00 robert * From Tom Jolley, "I found a couple more bugs after closely looking at the small piece of deprecated geometry in my model. There were problems with more than one primitive in a couple places. The first was the number of vertices were not being accumulated for DrawArraysPrimitiveType (caused another crash). The second is I had to move target_vindex and source_pindex before the PrimitiveSetList loop so they don't get reset on the next primitive (otherwise you end up with a lot of zeros in per vertex lists)." 2013-08-01 07:19 robert * Added osg::RenderInfo::pushRenderBin()/popRenderBin() and RenderInfo::getRenderBinStack() and getCameraStack() access methods for getting access to the current RenderBin/RenderStage. 2013-07-31 13:11 robert * Added Intersector::get/setEpsilon(double) to allow users to control what epsilon is used by the LineSegmentIntersector when doing testing of itersections with bounding boxes 2013-07-31 07:11 robert * From Aurelien Albert, "Here is the code to get access to OpenGL handle of an osg::FrameBufferObject" 2013-07-31 06:56 robert * From Tom Jolly, "I ran across this error reading one of our older files. An iterator was being changed inside a loop that caused a crash." 2013-07-31 06:42 robert * From Sergey Kurdakov, fixed GLES2 invalid enumerant warning by disabling the check against GL_MAX_TEXTURE_COORDS under GLES. 2013-07-30 06:39 robert * Changed default cull mask to match the left cull mask so that mono rendering of presentations with left/right stereo images/movies works fine. 2013-07-30 06:36 robert * Removed trailing spaces 2013-07-30 06:12 robert * Merged from OSG-3.2 branch the removal of check for Asio under Windows 2013-07-24 17:30 robert * Changed default of serialize draw to off 2013-07-24 14:24 robert * Pulled in READE, NEWS and AUTHORS changes from OSG-3.2 branch. 2013-07-24 13:02 robert * Added GL2Extensions::isDrawBuffersSupported() and usage of this in FrameBufferObject.cpp to prevent crash under GLES2 when users attempt to use MRT when it's not supported 2013-07-24 12:51 robert * Updated NEWS from OSG-3.2 branch 2013-07-24 12:48 robert * Fixed warning 2013-07-24 12:25 robert * Updated SO version for post 3.2 era. 2013-07-24 12:17 robert * Added getCallbacks() methods 2013-07-23 18:11 robert * From Rocco Martino, build fix for compiling against ffmpeg/trunk 2013-07-23 15:28 robert * Added NOT ANDROID to force use of posix API when building for Android under Windows 2013-07-23 10:24 robert * Added lazy setting of the UserDataContainer to avoid unncessarily create a UserDataContain when an empty description list is passed to Node::setDescriptions(..) 2013-07-23 09:54 robert * Fixed crash when open(..) returns an error. 2013-07-23 05:25 robert * From Torben Dannhauer, "Please find attached further changes to make library auto detection functional again for some libraries: Find3rdPa..: Fix to find libxml2 FindCollada: Rearranged to handle different MSVC versions more effective. This file is already prepared for the upcoming VS 2013. FindNVTT: introduced management of debug libraries (also auto detected). " 2013-07-22 13:31 robert * From Andreas Ekstrand, "Attached is a small modification of the Collada writer that protects from crashes due to valArray being NULL in some situations." 2013-07-22 10:15 robert * Added FRAME_BUFFER_OBJECT enum 2013-07-22 10:15 robert * Updated OpenThreads version 2013-07-19 21:05 robert * From Christian Ruzicka, "with the current touch implementation on iOS the touches are not forwarded to parent views because the base implementation is not called. Also see the "Best Practices" in the iOS documentation for event handling: http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/multitouch_background/multitouch_background.html "If you handle events in a subclass of any other UIKit responder class: - You do not have to implement all of the event handling methods. - In the methods you do implement, be sure to call the superclass implementation. For example, [super touchesBegan:touches withEvent:event]." I added the missing lines and tested it with OSG 3.1.9 and iOS SDK 6.1." 2013-07-19 20:59 robert * Added default setting of BIND_PER_VERTEX when applying Geometry::setTexCoordArray() 2013-07-19 17:00 robert * Updated OpenThreads version to be in sync with OSG version 2013-07-19 14:55 robert * Updated version number for svn/trunk to 3.3.0 for all new feature development 2013-07-19 14:07 robert * Updated AUTHORS file for new 3.2 branch 2013-07-19 14:06 robert * Updated version number to 3.2.0-rc1 in prep for create the 3.2 branch, and 3.2.0-rc1 2013-07-19 10:31 robert * Update ChangeLog and AUTHORS files for 3.1.10 dev release 2013-07-19 10:17 robert * Updater version for 3.1.10 dev release 2013-07-19 10:11 robert * Removed #if 0 #endif block 2013-07-19 09:43 robert * Fixed problem with the osgviewerQt code override the default View::Camera without setting it's default state on it's StateSet like View does by default. 2013-07-19 06:56 robert * From Johannes Scholz, "as we need to dynamically add and remove Effects to and from our Application, I created a small patch for osgFX/Registry to add the osgFX::Registry::removeEffect(effect*) method and extended osgFX::Registry::Proxy to call removeEffect upon its destruction." 2013-07-19 06:39 robert * From Wang Rui, "A very small clerical error in the src/osgViewer/CMakeLists.txt makes MinGW/Cygwin builds fail. Now it is fixed and now OSG works well again with Cygwin. :-) The OSC plugin also needs a small fix to compile with Cygwin, as attached file src/osgPlugins/osc/osc/OscHostEndianness.h shows." 2013-07-19 06:20 robert * From Mathieu Marache, "we found that events where not caught when running in ON_DEMAND frame scheme : GraphicsWindow::checkEvents() always return false and GraphicsWindowQt doesn't overload it. here is a simple fix that will return if the list is empty or not and will match the comment in checkEvents() 2013-07-18 20:17 robert * Added a dirty() call to Image::setData(..) 2013-07-18 16:29 robert * From Torben Dannhauer, "after being absent for more than 12 month, I'm very pleased to present my new 3rdparty package (V8). This package is compiled with Visual Studio 2012 Update 3. Some community members complained that these package is very large (indeed), so I introduced 2 versions: - The small version contains the dependencies for several image file formats ( tiff, png, gif, jpeg), as well as zlib, minizip, curl, freetype, glut, gdal and openSSL - The full version will include all libraries which were include in the previous releases of my 3rd party package. Some of the included libraries are released in newer versions, so I adapted the attached CMake module to find these renamed files. I hope you can merge this minor changes soon, since I plan to publish the small 3rdparty package today. " 2013-07-18 16:27 robert * From Lionel Lagarde, "The extension name is misspelled. It conflicts with GLEW." 2013-07-02 19:24 robert * Updated AUTHORS and ChangeLog for 3.1.9 dev release 2013-07-02 14:35 robert * From Laurens Voerman, "With fstream inheritaince now removed the warning can be enabled again." 2013-07-02 14:17 robert * From Laurens Voerman, "some of my ive files now generate a warning: Warning, can't assign attribute binding as no has been array assigned to set binding for. I think those are ive's with bumpmaps, but I have not checked yet. The problem is in OpenSceneGraph\src\osgPlugins\ive\Geometry.cpp where the code tries to set Normalize and Binding for a missing Array. I think that code can safely be skipped, considering the write function has a hardcoded write when the array is missing. (introduced in svn rev 13488) modified file (OpenSceneGraph\src\osgPlugins\ive\Geometry.cpp) attached in Zip" 2013-07-02 14:02 robert * From Laurens Voerman, "Recent changes cause a few warnings in MSVC 2012 svn 13587 From David Callu, warning fixes and removal of spaces at end of lines. this can be fixed by adding a space before the comment opening /*. full modified file (openscenegraph\src\osgplugins\osg\BinaryStreamOperator.h) attached in zip Regards, Laurens. openscenegraph\src\osgplugins\osg\BinaryStreamOperator.h(71): warning C4138: '*/' found outside of comment (OpenSceneGraph\src\osgPlugins\osg\ReaderWriterOSG2.cpp) openscenegraph\src\osgplugins\osg\BinaryStreamOperator.h(73): warning C4138: '*/' found outside of comment (OpenSceneGraph\src\osgPlugins\osg\ReaderWriterOSG2.cpp) openscenegraph\src\osgplugins\osg\BinaryStreamOperator.h(211): warning C4138: '*/' found outside of comment (OpenSceneGraph\src\osgPlugins\osg\ReaderWriterOSG2.cpp) openscenegraph\src\osgplugins\osg\BinaryStreamOperator.h(213): warning C4138: '*/' found outside of comment (OpenSceneGraph\src\osgPlugins\osg\ReaderWriterOSG2.cpp)" 2013-07-02 13:45 robert * Restructed handling of the _currentShaderCompositionUniformList in State::apply() and State::apply(const StateSet*) so that it can be used even when shader composition isn't enabled. 2013-07-02 10:32 robert * From Aurelien Albert, "Recently I had to integrate a client OpenGL library with OSG. For textures and other StateAttribute I've done that by subclassing osg::StateAttribute and this works well. But for glPrograms, in order to get all osg's uniform management system to work, I had to subclass osg::program::PerContextProgram. Here is a modified version of this class, which add some "virtual" method to allow easy subclassing." 2013-07-02 09:44 robert * From Pjotr Svetachov, "The binding of arrays is always set to BIND_UNDEFINED when using the array constructor because the binding parameter is ignored. Here is a fix." 2013-07-02 09:27 robert * Added SceneView::Options enum enetries APPLY_GLOBAL_DEFAULTS and CLEAR_GLOBAL_STATESET to control whether a _globalStateSet->clear() and _globalStateSet->setGlobalDefaults() should be called. osgViewer::Renderer doesn't use these enum settings so now no longer has a calls StateSet::clear() or StateSet::setGlobalDefaults() on the osg::Camera's StateSet. Previously these were being called and breaking the ability to attached state to Camera's StateSet. 2013-07-01 16:15 robert * From Pjotr Svetachov, "In a submission on June 27th a lot of new array types were added. This modified the osg::Array::Type enum. Because of this s_ArrayNames array in Array.cpp is now not in sync. This can lead to corrupt exports or crashes when writing .osg files because the change added new types in the middle of the enum instead of at the end. Attached is a new Array.cpp to reflect the new array types." 2013-07-01 12:16 robert * Updated AUTHORS, ChangeLog for dev release 2013-07-01 10:22 robert * Removed BIND_INSTANCE_DIVISOR as they don't yet have any implementation backend to support them. 2013-07-01 09:12 robert * From David Callu, "Here a fix for FindFBX.cmake under linux, library name to look for must be fbxsdk instead of libfbxsdk." 2013-07-01 09:10 robert * From David Callu, "Here a CMakeLists.txt modified with OSG_AGGRESSIVE_WARNING_FLAGS defined when Clang compilator is used" 2013-07-01 09:09 robert * Fixed debug build compile problem 2013-07-01 08:21 robert * Reverted the usage of OSG_UNUSED and OT_UNUSED as in hindsight these should never have been merged. Adding code to quieten inappropriate warnings is a bad programming practice and does not desrve a place in the OSG code base. 2013-06-28 15:44 robert * From John Kaniarz, "This patch modifies ReaderWriterPNG.cpp to 1. Check the bit depth of the passed Image and return an error if not 8 or 16. (not fully featured, but still an improvement over hard coded 8bit for everything) 2. Endian swap 16bit image data when on a little endian architecture. " 2013-06-28 14:47 robert * From Alberto Luaces, "Documentation for -p and --speed options in osgviewer" 2013-06-28 14:38 robert * From Marcel Pursche, fixed checking of destination dimensions in osg::copyImage. 2013-06-28 14:32 robert * From Lilin Xiong, "When writing proxyNode to ive file, we forget "LoadingExternalReferenceMode ". Add some code to fix this. if (out->getVersion() >= VERSION_0045) { out->writeInt(getLoadingExternalReferenceMode()); } if (in->getVersion() >= VERSION_0045) { setLoadExternalReferenceFiles( (osg::ProxyNode::LoadingExternalReferenceMode)in->readInt() ); } " 2013-06-28 14:21 robert * From Gill Peacegood, "fix for a memory leak in the DelaunayConstraint class" 2013-06-28 14:08 robert * From Laurens Voerman, "the current version of BufferObject causes a huge amount of warnings in Visual Studio 2012 like: OpenSceneGraph/include\osg/BufferObject(701): warning C4138: '*/' found outside of comment (E:\osg\osgSvn\OpenSceneGraph\src\osg\Array.cpp) adding a space before /* fixes the problem void removeClient(osg::Object * /*client*/) { --_numClients; } " 2013-06-28 14:07 robert * Fixed handling of DISPLAY=127.0.0.1:2 usage. 2013-06-28 13:43 robert * From Aurelien Albert, Added support for glPrimitiveRestartIndex. "The idea of this new OpenGL feature is : - set RestartIndex = "n" - draw elements strip -> when the index is "n", the strip is "stopped" and restarted It's very usefull for drawing tiles with a single strip and a "restart" at the end of each row. The idea a an OSG StateAttribute is : Usually we use to build geometry from code, because software modelers rarely support it (and 3d file formats doesn't support it) : -RootNode <= "PrimitiveRestartIndex=0" // So now, we know that our restart index is 0 for all drawables under this node | - Drawable 1 : triangles => as usual | - Drawable 2 : triangles strip => as usual | - Drawable 3 : triangles strip + "GL_PRIMITIVE_RESTART" mode = ON => use the restart index | - Drawable 4 : triangles strip + "GL_PRIMITIVE_RESTART" mode = ON => use the restart index | - Drawable 5 : triangles strip => as usual With a StateAttribute, it's easy for the developper to say "0 will be my restart index for all this object" and then activate the mode only on some nodes. The main problem is if you set and restart index value which is not included in the vertex array (for exemple set restart index = 100 but you have only 50 vertex). There is no problem with OpenGL, but some OSG algorithms will try to access the vertex[100] and will segfault. To solve this, I think there is two ways : 1/ add restart index in osg::PrimitiveSet and use this value in all algorithms. It's a lot of work, maybe dangerous, and it concern only a few situations : developpers who use this extension should be aware of advanced OpenGL (and OSG) data management 2/ use a StateAttribute, and choose a "correct" restart index. In my applications, I always use "0" as a restart index and duplicate the first vertex (vertex[0] = vertex[1]). So there is no difference for OpenGL and all OSG algorithms works properly. " 2013-06-28 12:45 robert * Added handling of an odd number rows in the capsule rendering and primitive calculation. 2013-06-28 12:00 robert * From David Callu, warning fixes and removal of spaces at end of lines. 2013-06-28 10:59 robert * From David Callu, "in osgViewer::WoWVxDisplay::WoWVxDisplay(unsigned int type=20, unsigned int screenNum=0) screenNum is unused. fix attached. " 2013-06-28 10:51 robert * From David Callu, added support for glVertexAttribLPointer and glVertexAttribIPointer, utilized via osg::Array::setPreserveDataType(true); 2013-06-28 08:57 robert * From David Callu, serializer support for new Vec* and Vec*Array classes 2013-06-28 08:11 robert * 2013-06-27 17:37 robert * From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes" 2013-06-27 16:44 robert * From Lionel Lagarde, "Support for paging and shared PBO" "The attached file contains: - a per-context read counter in GLBufferObject::BufferEntry - a global client counter in BufferData - the glue between Texture* and Image client counter " 2013-06-27 15:18 robert * From Aurelien Albert, added passing on of the gl array normalize to OpenGL when uses vertex attribute aliasing. 2013-06-27 14:46 robert * Replaced deprecatated osg::Geometry::get*Binding() calls. 2013-06-27 13:37 robert * Added Geometry::containsDeprecatedData() / fixDeprecatedData() 2013-06-27 10:58 robert * Removed deprecated usage of osg::Geometry::get*Binding() 2013-06-27 09:59 robert * Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54 robert * Replaced deprecated osg::Geometry::set*Binding() usage 2013-06-27 09:54 robert * Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 08:44 robert * Replaced deprecated osg::Geometry::set*Binding() usage 2013-06-27 08:30 robert * Replaced deprecated Geometry::set*Binding() 2013-06-26 18:06 robert * Replaced deprecated Geometry::set*Binding() usage 2013-06-26 17:58 robert * Removed deprecated Geometry::set*Binding() usage 2013-06-26 17:54 robert * Added osg::getBinding(osg::Array* array) convinience function that returns the Array::getBinding() is the array is not NULL, otherwise returns BIND_OFF. 2013-06-26 17:45 robert * Replaced deprecated osg::Geometry::set*Binding() usage 2013-06-26 17:44 robert * Replaced deprecated osg::Geometry::set*Binding() calls. 2013-06-26 16:16 robert * From Sebastian Messerschmidt, "I've taken some time and refactored some places where the old set*Binding were used." 2013-06-26 13:00 robert * From Aurelien Albert, "This submission allow the user to specify how to setup VertexAttributeAliasing. I think this is necessary on OpenGL 3.2+ since this is no more "default" locations in the OpenGL specs. The default behaviour stay the same. There is a few new methods on osg::State : - resetVertexAttributeAlias : reset all vertex alias to osg's default ones - set**Alias : set a vertex attribute alias configuration - setAttributeBindingList : set the attribute binding list (allow to specify an empty list if you're using "layout" qualifier in glsl code to specify the bindings. This save some CPU operations)" 2013-06-26 12:59 robert * Removed unused methods 2013-06-26 12:33 robert * Removed spaces from end of line 2013-06-26 12:33 robert * Fixed bug in TemplateTargetAttributeDispatch that was causing a crash with the osgsimplegl3 example 2013-06-26 09:04 robert * From Pjotr Svetachov and Robert Osfield, "the index mesh and vertex pre-transform optimizers can rearrange or change the size of arrays assigned to a geometry. This leads to crashes or corrupt geometry when using shared arrays. Attached a fix that duplicates shared geometry arrays." 2013-06-26 08:53 robert * Removed Geometry::fixDeprecatedData() as it won't work on const Geometry 2013-06-26 07:08 robert * From Mathias Froehlich, "The attached file replaces the deprecated geometry use in osgSim. The per primitive use is changed to full per vertex arrays." 2013-06-25 16:19 robert * Removed #include as it's nolonger required in the header 2013-06-25 16:10 robert * With assistance from Sukender, moved the depreacted osg::Geometry vertex indices and AttributeBinding definitions out into a separated namespace/class so to use deprecated features you should now use deprecated_osg::Geometry in place of osg::Geometry. 2013-06-25 11:13 robert * From Christian Buchner, "Here is a strongly overhauled version of the original osgoit ("order independent transparency") by Mathias Fröhlich. I called this version myosgoit. It looks very nice, just build and run it! This version adds: - an encapsulation of the entire Depth Peeling procedure into a class (not currently a scene graph node) for easier integration in other projects. - compositing with opaque (solid) geometry is possible and the opaque model is only rendered once. This needs to performs some depth buffer blitting between FBOs. - mix and match with GLSL shaders in the transparent objects is possible, as demonstrated with a 3D heat map intersecting an opaque truck model. Some Drawbacks: - the display framebuffer does not receive any depth information from the compositing camera. This could be fixed by compositing with a GLSL shader and writing to FragDepth." From Robert Osfield, ported the code to work under Linux and without the automatic ref_ptr to C* conversion. 2013-06-25 09:52 robert * From Alberto Luacas, "current Doxygen warns against the use of obsolete fields: DETAILS_AT_TOP, SHOW_DIRECTORIES, HTML_ALIGN_MEMBERS. I have removed those in the configuration files." 2013-06-24 12:51 robert * From Cedric Pinson, "I fixed a little issue with the lightwave scene loader. On the version 5 there are id on the command LoadObjectLayer in the scene file and of this version the current code use this field as a part of the filename, and it fails because the file is not found. I just added a field version_ to read it at the beginning and added extra code to check it and read the extra field if needed and read the good filename" 2013-06-24 12:31 robert * From Christian Ruzicka, "when MSAA is activated on iOS, the stencil attachment is not added (Stencil buffer is not working at all). Attached are the needed changes to make MSAA + stencil working on iOS. Tested with OSG 3.1.7 and iOS SDK 6.1." 2013-06-24 12:30 robert * Updatd SO_VERSION to reflect changes in ABI from merging submissions. 2013-06-24 12:27 robert * From Sukender, "I recently pulled from the GIT mirror and found that "OSG_USE_DEPRECATED_GEOMETRY_METHODS=OFF" hides a little mistake: there is a "#include " inside the "osg" namespace, in inlude/osg/Geometry. " 2013-06-24 11:40 robert * From Mourad Boufarguine, "Attached is a fix for the ply reader to use the output of osgDB::findDataFile. " 2013-06-24 11:39 robert * From Luc Frauciel, "You'll find attached a modification of DXWriter to support Material color: If a material is present, the diffuse color is affected to current layer." 2013-06-24 11:14 robert * From Lars Nillson, "The change in this submission is to take care of the setting given by a call to setMaximumNumOfObjectsToCompilePerFrame(…). Sometimes if you give a low number, more than the expected number of objects are compiled." 2013-06-24 11:03 robert * Convert usage to use const versions of containers 2013-06-24 09:59 robert * From Frederic Morin, "Current behaviour uses SDKSettings.plist to determine osx version but this file is only available when XCode is installed. This version works also when Command Line Tools for XCode are installed (minimum build env for osx without XCode) See https://github.com/openscenegraph/osg/pull/8 for patch details Patch: https://github.com/openscenegraph/osg/pull/8/files" 2013-06-24 09:51 robert * From Farshid Lashkari, "I've attached a small patch that extends the Image::readImageFromCurrentTexture method to support more depth texture pixel formats (16, 24, 32, 32F). In order to compile, I moved some depth pixel format definitions from FrameBufferObject to Image. " 2013-06-24 09:31 robert * From Christian Noon, "Got a simple patch for correcting a problem with the USE_COMPRESSOR_WRAPPER() macro in the osgDB::Registry. The problem is that the wrapper declaration doesn't match the one defined in the REGISTER_COMPRESSOR() method in the osgDB::ObjectWrapper method. This patch fixes the wrapper declaration so they both match properly. I ran into this problem using compressed files in an iOS application where all the libraries and plugins need to be built statically." 2013-06-24 09:12 robert * From Nick Black, "Hey there! avcodec_open() has been deprecated for some time, and indeed has been removed in the most recent versions of libavcodec/ffmpeg. You're already using avcodec_open2() elsewhere, but one appears to have been missed. The change is trivial: [skynet](0) $ svn diff Index: src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp =================================================================== --- src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp (revision 13355) +++ src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp (working copy) @@ -109,7 +109,7 @@ // m_context->flags |= CODEC_FLAG_TRUNCATED; // Open codec - if (avcodec_open(m_context, p_codec) < 0) + if (avcodec_open2(m_context, p_codec, NULL) < 0) throw std::runtime_error("avcodec_open() failed"); } [skynet](0) $ I've applied similar changes this year to many other packages, including cheese, blender, linphone, ad nauseam. It's been tested by verifying that with my patch, OSG builds against the newest libavcodec and ffmpeg, whereas otherwise it does not. The modified src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp is attached. It originates in svn trunk revision 13355. Thanks!" 2013-06-24 09:02 robert * Introduced typedef's to make the code more readble and maintanable 2013-06-24 08:48 robert * From Wang Rui, "The file attached includes two new features for the serialization IO functionality. First, custom serializer version control should work now, just by defining a new REGISTER_CUSTOM_OBJECT_WRAPPER macro. For example: // A custom class namespace CustomDomain { class MyGroup : public osg::Group { public: META_Node( CustomDomain, MyGroup ); void setMyName( const std::string& n ); const std::string& getMyName() const; void setMyID( int id ); int getMyID() const; ... }; } // The serialization wrapper using a custom domain name REGISTER_CUSTOM_OBJECT_WRAPPER( MyDomain, CustomDomain_MyGroup, new CustomDomain::MyGroup, CustomDomain::MyGroup, "osg::Object osg::Node osg::Group CustomDomain::MyGroup" ) { ADD_STRING_SERIALIZER( MyName, std::string() ); { UPDATE_TO_VERSION_SCOPED( 1 ); // Updated for a new domain version ADD_INT_SERIALIZER( MyID, 0 ); } } Save the class instance as follows: osgDB::writeNodeFile( *myGroup, "serializer_test.osgt", new osgDB::Options("CustomDomains=MyDomain:1") ); The output file will include the domain version definition and all the class data, and can be read back. We can also force setting the domain version by the CustomDomains option while reading the saved files. If we save the class instance without any options, MyID will be ignored because the default domain version is 0. This may help third-party libraries like osgEarth to maintain their own serializers without regarding to the OSG soversion changes. Another feature added is a more robust binary format, which in fact adds a size-offset at each block's beginning. When there are problems or unsupported data types while reading, we can now directly jump to the block end indicated by the offset value. So a .osgb file will automatically ignore bad data and read remains as normal (at present it will fail at all). This feature will not break the backward compatibility, and can be disabled by setting "RobustBinaryFormat=false" while writing out. Hope these changes can work smoothly with present and future community projects. Maybe we should also consider have an osgserializer example to test and demonstrate all things we can do now." 2013-06-24 08:22 robert * From Wang Rui, "Sorry for my very slow response because of some personal issues. I found that new Geometry serializers can't work with old .osgb files. The modified FastPathHint serializer doesn't correctly read from the stream and thus jumbles following inputs. The file attached can be placed in osgWrappers/serializers/osg to fix that problem. " 2013-06-24 08:19 robert * From Wang Rui, "The osgdb_ffmpeg plugin may not work with latest ffmpeg windows sdk and will say "The procedure entry point xxx could not be located in xxx.dll" instead. The following link describes the reason (maybe a certain optimization problem of the VS compiler): http://forum.videolan.org/viewtopic.php?f=32&t=98097 After adding the /OPT:NOREF, the problem has gone. " 2013-06-24 08:18 robert * From Farshid Lashkari, "In many game engines it is common to set the W component of the tangent vector to -1 if the UVs are mirrored and 1 if not. I've updated the osgUtil::TangentSpaceGenerator class to do the same." 2013-06-21 19:35 robert * Updated version number after dev release 2013-06-21 19:35 robert * Removed spaces from end of lines 2013-06-21 14:37 robert * Fixed author name error introduced by xxdiff 2013-06-21 14:30 robert * Reapplied AUTHORS changes 2013-06-21 14:29 robert * Update ChangeLog and AUTHORS.txt for release 2013-06-21 14:17 robert * Removed unneccessary handling of BIND_PER_PRIMITIVE on output code 2013-06-21 13:59 robert * From Pjotr Svetachov, introduced use of osg::observer_ptr in place of osg::Camera* 2013-06-21 13:41 robert * From Stephan Huber, "attached you'll find the missing readObject-implementations for the imageio-plugin as suggested by Remo Eichenberger." 2013-06-21 12:10 robert * From Laurens Voerman, build fix 2013-06-21 10:59 robert * Build fixes for new osg::Geometry 2013-06-21 10:14 robert * Converted osg::Geometry::ArrayData usage across to osg::Array. 2013-06-21 10:03 robert * From Laurens Voerman, "I just tested openGL quadbuffered stereo with the osgviewer, the mouse works again, so does the keystonecorrection, but the right-eye render to texture camera appears not to clear it's color buffer. I found the problem in src\osgViewer\View.cpp, fix attached." 2013-06-21 09:53 robert * From Mathieu Marache, I needed to modify the FindCOLLADA.cmake to enable its compilation under macosx. 2013-06-21 09:47 robert * Converted ArrayData usage across to set*Array() usage with new binding parameter 2013-06-21 09:43 robert * Added new osg::Array::Binding parameter to osg::Geometry::set*Array(osg::Array* array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED) methods to make it easier for the user to set the binding without the need to call the deprecated osg::Geometry::set*Binding(osg::Geometry::AttributeBinding) 2013-06-21 09:40 robert * Removed spaces at ends of lines 2013-06-21 09:17 robert * From FrancoisTigeot, "OpenSceneGraph 3.0.1 doesn't build out of the box on DragonFly and needs a few modifications to these files: - applications/present3D/Cluster.cpp - src/osgDB/FileUtils.cpp The changes are needed to fix a few platform specific things such as the absence of stat64, int/socklen_t differences, etc... and are in the same line as Linux, Apple and FreeBSD specific checks. I have attached the modified files; the original patches to 3.0.1 are also visible here if you find it more convenient: http://dl.wolfpond.org/dports/graphics.osg/dragonfly/patch-applications_present3D_Cluster.cpp http://dl.wolfpond.org/dports/graphics.osg/dragonfly/patch-src_osgDB_FileUtils.cpp With these changes, osg 3.0.1 is able to be built and packaged on DragonFly whereas it previously failed to compile." 2013-06-21 08:56 robert * From Matthias Helsing, "Here is the changed source to prefer using _NET_WM_STATE_ABOVE but fall back to XRaiseWindow should the Atoms not be supported. I'm not sure how many might be using the raiseWindow feature but I needed it for a splash on Ubuntu 12.04." 2013-06-21 08:37 robert * From Farshid Lashkari, "I've updated the dds, png, and jpeg plugins to support writing images with the GL_DEPTH_COMPONENT pixel format. They will simply treat it the same as the GL_LUMINANCE pixel format." 2013-06-21 08:03 robert * From Jan Ciger, " I have put there in the comment a nicer way of doing version checks, but that needs at least CMake 2.6.2." 2013-06-20 16:44 robert * Fixed the handling the mouse min/max ranges of slave Cameras that have a parent Camera with a viewport. 2013-06-20 15:48 robert * Temporarily commented out call to view.assignStereoOrKeystoneToCamera() for implementing stereo as this was causing problem in trackball manipulation 2013-06-20 15:18 robert * Added local namespace for util functions, and fixed the return type of checkDeprecatedData() 2013-06-20 12:15 robert * From Vladimir Chebaev, "I worked with osg::Particle and see that this class has setter osgParticle::setTextureTileRange and has no getters for startTile and endTile. This can be very uncomfortable. I attached file with two getters." 2013-06-20 10:59 robert * Commented out verbose debug messages for shader composition 2013-06-20 10:42 robert * Updated ChangeLog and AUTHORS file 2013-06-20 10:05 robert * From Juan Manuel Alvarez, "When handling keyboard events on osgQt, if a key is kept pressed, multiple sequences of KEYDOWN -> KEYUP events are fired. This is because Qt auto repeats keyboard events, so multiple calls are made to GLWidget::keyPressEvent and GLWidget::keyReleaseEvent by Qt, and subsequently translated to OSG events. The way to solve this is ignoring key released auto repeated events (see http://qt-project.org/doc/qt-4.8/qkeyevent.html#isAutoRepeat), so multiple KEYDOWN events are fired, but only one KEYUP. I attach a modified osgQt/GraphicsWindowQt.cpp with this change." 2013-06-20 09:30 robert * From Jan Ciger, compilation fix for Qt 5.0.2 2013-06-20 09:27 robert * From Laurens Voerman, build fix for VS. 2013-06-19 17:28 robert * Removed svn:executable property. 2013-06-19 17:26 robert * Removed svn:executable property 2013-06-19 17:25 robert * Removed svn:executable property. 2013-06-19 16:24 robert * Cleaned up usage of BIND_PER_PRIMITIVE where possible. 2013-06-19 12:32 robert * From Magnus Kessler, typo fixes to doxygen docs and comments 2013-06-19 12:28 robert * From Magnus Kessler, "gcc-4.8 flagged this: src/osgUtil/tristripper/src/tri_stripper.cpp:375:40: warning: typedef ‘tri_node_iter’ locally defined but not used [-Wunused-local-typedefs] typedef triangle_graph::node_iterator tri_node_iter; ^ --- src/osgUtil/tristripper/src/tri_stripper.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/osgUtil/tristripper/src/tri_stripper.cpp b/src/osgUtil/tristripper/src/tri_stripper.cpp index 2f5a7f3..3396881 100644 --- a/src/osgUtil/tristripper/src/tri_stripper.cpp +++ b/src/osgUtil/tristripper/src/tri_stripper.cpp @@ -372,7 +372,6 @@ inline tri_stripper::const_link_iterator tri_stripper::BackLinkToNeighbour(const void tri_stripper::MarkTriAsTaken(const size_t i) { - typedef triangle_graph::node_iterator tri_node_iter; typedef triangle_graph::out_arc_iterator tri_link_iter; // Mark the triangle node" 2013-06-19 12:27 robert * Converted tabs to four spaces 2013-06-19 12:19 robert * From Jan Ciger, "I have found a problem when building OSG with Qt 5 support. Qt has the following in the qopengl.h header: # include # ifndef GL_DOUBLE # define GL_DOUBLE GL_FLOAT # endif # ifndef GLdouble typedef GLfloat GLdouble; # endif Unfortunately, when building for normal OpenGL (not GL/ES!) on Windows with MSVC2012, GLdouble is not defined (it is not a macro but typedef) and the code above produces a conflicting definition, making the compile fail. I am attaching a bit hackish workaround for this problem in osg/GL " 2013-06-19 10:56 robert * Build fixes for new deprecated osg::Geometry functions 2013-06-18 19:09 robert * Added #define OSG_USE_DEPRECATED_GEOMETRY_METHODS usage into code to allow code to compile enen when CMake configuration has set the #define to off in include/osg/Config. 2013-06-18 17:49 robert * Moved the assignment of the normal binding to after the setNormalArray call 2013-06-18 17:48 robert * Moved the Geometry::set*Binding to after the set*Array() to prevent problems when using the deprecated functionality. 2013-06-18 15:54 robert * Removed BIND_PER_PRIMITIVE reference 2013-06-18 15:03 robert * Moved the set binding and normalize for VertexAttrib to after the VertexAttrib array assignment 2013-06-18 14:52 robert * Changed header guard back to original, and removed deprecated enum 2013-06-18 14:22 robert * Fixed order of binding. 2013-06-18 11:49 robert * Removed experiment GeometryNew as it's no longer required. 2013-06-18 11:18 robert * Clean up up osg::Geometry, removing long deprecated support for array indices and BIND_PER_PRIMITIVE binding that forced OpenGL slow paths. osg::Geometry is now smaller and only supports OpenGL fasts paths. New methods osg::Geometry::containsDeprecatedData() and osg::Geometry::fixDeprecatedData() provide a means for converting geometries that still use the array indices and BIND_PER_PRIMITIVE across to complient versions. Cleaned up the rest of the OSG where use of array indices and BIND_PER_PRIMITIVE were accessed or used. 2013-06-14 09:43 robert * Fixed TextBase::computeBound() so it take into account all corners of the text box thus ensuring proper handling of rotated text 2013-06-12 12:49 robert * From Martin Naylor, replace osgDB::fstream with an osgDB::open() call. 2013-06-11 10:52 robert * Introduced new osg::PatchParameter StateAttribute class to wrap up glPatchParameter associated state. Note, osg::Program::setParameter(GL_PATCH_VERTICES,num); is nolonger support and should be replaced by using the new PatchParameter class. 2013-06-11 10:49 robert * Fixed indentation 2013-06-11 09:05 robert * Refactored the way the ReadResult/WriteResult lists are handled, with them now being sorted so that the Read/WriteResult with highest numerical value ReadStatus/WriteStatus is returned. Changed the enum order of ReadStatus/WriteStatus to ensure that the more relevant errors are last and with the highest numerical value 2013-06-10 14:34 robert * From Kristofer Tingdahl, with additions from Riccardo Corsi and Robert Milharcic, support for Qt5 build 2013-06-10 10:37 robert * Fixed remove and add callback so they properly handle nested callbacks 2013-06-07 10:54 robert * From Marcin Prus, "I don't know if you seen my second reply to your information about merging my Image and dds plugin changes. I found one problem in your latest submit. In ReaderWriterDDS::ComputeImageSizeInBytes pixelFormat and pixelType are not passed into osg::Image::computeImageSizeInBytes. It's return osg::Image::computeImageSizeInBytes(width, height, depth, packing, slice_packing, image_packing); but I think it should be return osg::Image::computeImageSizeInBytes(width, height, depth, pixelFormat, pixelType, packing, slice_packing, image_packing);" 2013-06-07 10:52 robert * From Mathias Froehlich, "attached is a change to osgsharedarray to move completely to the fast geometry path. Also the arrays are moved back to static storage since this is the data that is actually referenced in draw. So the change moving this onto the stack that happend somewhere before broke this." 2013-06-06 08:23 robert * Replaced OpenThreads::Mutex with a OpenThreads::ReentrantMutex to allow draw callbacks to use Renderer. 2013-06-05 07:55 robert * Reorder member variables to ensure better packing in memory. 2013-06-05 07:27 robert * Moved the Array::AttribDivisor into the Array::Binding enum to avoid conflicts in settings between Binding and AttribDivisor. Removed the vertify bindings/shared arrays handling from GeometryNew 2013-06-04 19:04 robert * Updates to GeometryNew, Array and ArraDispatchers to clean up GeometryNew so that is no longer uses ArrayData. 2013-06-04 14:55 robert * Added s/getNormalize(), s/getPreserveDataType(), s/getAttribDivisor() and s/getBinding() to osg::Array base class in preperation for refactor of osg::Geometry and introduction of new features. 2013-06-04 14:43 robert * Removed now redundent osggeodemo 2013-06-04 13:29 robert * Removed geo plugin as the modelling tool it was assocaited is long defunct. 2013-06-04 10:06 robert * Cleaned up BIND_PER_PRIMITIVE and array indice usage 2013-06-04 09:32 robert * Introduced GeometryNew which is a cleaned up version of Geometry that removes support for array indices. GeometryNew is only temporary and will be renamed to Geometry on the completion of refactoring work and feedback from community. Ported osggeometry across to use GeometryNew. 2013-06-04 09:29 robert * Removed deprecated usage of osg::Geometry indices and BIND_PER_PRIMITIVE 2013-06-03 15:10 robert * From Aurelien Albert, Added support for texture swizzle. 2013-06-03 14:38 robert * Updated version and so_version in prep for 3.1.8 developer release 2013-06-03 14:27 robert * From Laurens Voerman, "Autodesk released a new version of their FBX Software Development Kit (web page http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847). The API has changed quite a bit, so lots of changes had to be made in the osg readerwriter. The preious version of the FBX SDK (2013.3) already deprecated a lot of the names and functions. The code I submit now still compiles against 2013.3 (possibly needs a #define FBX_NEW_API). Not sure if that's useful, but it might ease the transition." 2013-06-03 14:04 robert * From Laurens Voerman, "while updating dependencies I found a problem with libgif 5 from http://sourceforge.net/projects/giflib/ a change in version 5.0.0 required a call to the fuction "DGifOpen" to pass an int ref for an error code. My fix ignores the error, just fixes the compile." 2013-06-03 14:01 robert * From Sergey Polischuk, "this patch fixes light id in gl modes for osg::LightSource's readed from fbx (previously all lightsources were setting GL_LIGHT0 mode, while osg::Lights were using different id's), and enables GL_LIGHT# on root node for all lights contained in model " 2013-06-03 13:13 robert * Added Vec*b, Vec4ub, Vec*s, Vec*i, Vec*ui serializers 2013-06-03 12:19 robert * Added Vec2i, Vec2ui, Vec3i, Vec3ui, Vec4i and Vec4ui headers to CMake header list 2013-06-03 11:38 robert * From Art Tevs, int and uint Vec classes 2013-06-03 09:19 robert * From Aurelien Albert, "This submission is made against trunk version and add the loading of "glVertexAttribDivisor" extension." 2013-05-31 10:28 robert * From Laurens Voerman, "I made some changes to the top level CMakeLists.txt that might be usefull to other visualstudio users. 1> Disable project grouping for VCExpress users: the version I proposed previously in Re: [osg-submissions] Cmake patch to support folders in IDE (29 Feb 2012) 2> Remove FIND_PACKAGE(OpenAL): not used in any project 3> add /wd4250 for Visual Studio 2012: suppress the errors caused by a microsoft fix for a bugfix. ref: "Warning messages VS2012..." on osg-users (30 May 2012) " 2013-05-31 10:23 robert * From Ulrich Hertlein, "attached is a patch that fixes another clang++ compiler warning when returning std::vector::size() as 'unsigned int'. " 2013-05-30 09:07 robert * From Wang Rui, "The osgdb_nvtt plugin needs to be updated to work with the latest NVTT library, which changes the interface slightly (adding a new pure virtual method endImage()). I've modified the source file and attached it here." 2013-05-28 19:16 robert * Renamed PanoramicSphericalDisplay.cpp to fix a typo 2013-05-28 16:39 robert * Updated ChangeLog and Contributors list 2013-05-28 15:43 robert * From Farshid Lashkari, "The logic for handling opacity maps in the 3ds reader seems to be incorrect. It checks whether the diffuse texture contains transparency, instead of the opacity texture. If the diffuse does not contain an alpha channel it outputs the warning: The plugin does not support images without alpha channel for opacity This seems to indicate that the check for alpha should be against the opacity map. I've attached the updated file. " 2013-05-28 15:40 robert * From Michael Bach Jensen and Robert Osfield, "As discussed (http://forum.openscenegraph.org/viewtopic.php?t=12027) here is my submission :-) The following change to State.cpp fixes the case where textures in a stateset along with a compute shader program did not make those textures available to the shader, since it got evaluated before the texture bind(s)." Note from Robert, Michael only change State::apply(StateSet*) so I also applied the same reversal in apply of texutre modes/state into the State::apply() method for consistency. 2013-05-28 15:18 robert * Replaced the initialization of the strarray to use reseve instead of a initial size provided in the constructor as this was leading to a bug in output. 2013-05-28 14:40 robert * Fixed date typo 2013-05-28 14:35 robert * From Farshid Lashkari, "I just started looking into the shader composition feature. I enabled shader composition on the osg::State object and noticed a 6x increase in draw time. I figured that the default composer might have performance issues, so I created a custom ShaderComposer that overrides "getOrCreateProgram" and does nothing. This still resulted in a performance drop. I looked into the "State::applyShaderComposition" method and noticed that it will print debug information to the osg::INFO stream. I commented that line out and the performance drop was gone. I'm not sure if the printing was accidentally left in or is meant to be enabled. I've modified the function to only call the print function if INFO logging is enabled. I've attached the change." 2013-05-28 14:14 robert * From Marcin Prus and Robert Osfield, moved the key parts of the .dds plugins computeRowWidthInBytes implementation into the osg::Image::computeImageSizeInBytes(..) to address bugs in the computation of image size. 2013-05-28 11:47 robert * From Sukender, "Added ".dds" file deletion on writing failure." 2013-05-28 11:46 robert * From Sukender, "Added vertical flipping to the writer depending on the Image::getOrigin() value (= flip the image when Image::BOTTOM_LEFT). Most of the time this will not change DDS writing (= no v-flip), as it seems images are rarely "BOTTOM_LEFT". To skip this behaviour, the "ddsNoAutoFlipWrite" option was added. I also moved a few lines of code about "dds_flip" option, and made options reading more like in other ReaderWriters." 2013-05-28 11:44 robert * From Diane Delallée & Sukender, "Added some support of non-modulus-4 dimensions in S3TC-DXTC images (previous implementation seem just not to handle these properly). - Added missing packing value on S3TC images. Images are coded with 4x4 blocs, whatever the image size. So there is an horizontal packing of 4 pixels (2 bytes in DXT1, 4 bytes in DXT2-5). - Added crash guard against writing corrupted S3TC images. Notes: - What is missing is a support of "lines packing" in osg::Image (see code comments). - S3TC-DXTC vertical flipping crashes (access violation) with some unusual dimensions (see code). I could not implement missing cases, so I added guards to avoid crashing." 2013-05-28 11:25 robert * From Diane Delallée and Sukender, "1. Image.cpp Failure to perform a vertical flip on S3TC-DXTC now simply leaves the original image instead of corrupting it. Image.cpp was sometimes performing a "normal" (= for uncompressed images) vertical flip on S3TC-DXTC images, producing weird results. Actually, code was trying a "DXTC vertical flip" and relied on the result to call a "normal vertical flip". But when the "DXTC v-flip" encounters an error, this is is not necessarily because the image is not S3TC (ex: unhandled image dimensions)! So now the code simply does "if dxtc, then flip_dxtc; else flip_normal;". Note from Robert Osfield, moved the isDXT function into the dxt_tool file and namespace. 2013-05-28 10:46 robert * Fixed the computation of the spot light direction. 2013-05-28 09:20 robert * Fixed View::setUpViewInWindow() parameter 2013-05-28 08:38 robert * Added an OSG_INIT_SINGLETON_PROXY(..) to initialize the static s_GLExtensionDisableString variable 2013-05-27 09:10 robert * Updated AUTHORS file 2013-05-27 09:07 robert * Updated AUTHORS file 2013-05-27 09:05 robert * Updated ChangeLog and AUTHORS file 2013-05-27 08:13 robert * From Martin Naylor, "I am receiving 1 build error whilst building the SVN, its in osgforest as follows: error C2065: 'GL_RGBA32F' : undeclared identifier Shoudlnt that be GL_RGBA32F_ARB as defined in texture header? Attached is the easy fix :)." 2013-05-27 08:10 robert * Moved quad buffer definitions into include/osg/Camera 2013-05-26 10:44 robert * Updated AUTHORS file 2013-05-26 10:27 robert * Updated ChangeLog 2013-05-25 10:09 robert * From Farshid Lashkari, " small update to TangentSpaceGenerator to support QUAD_STRIP primitive types." 2013-05-24 17:16 robert * Resrtuctured the use of static's in the Uniform::getNameID() method to avoid problems under Android. 2013-05-24 17:06 robert * From Jordi Torres, "We must use JNI_FALSE instead of false in JNI code. Otherwise the examples will not compile. This patch should be applied to osgAndroidExampleGLES1/jni and osgAndroidExampleGLES2/jni. the osgNativeLib.cpp is the same. " 2013-05-24 09:43 robert * Removed redudent code 2013-05-24 09:35 robert * Fixed panning bug, when using RUN_ON_DEMAND, that resulted in the camera being thrown off towards infinity. The solution for to refactor the way that events are checked so I add a bool return type to checkEvents() method across osgViewer::GraphcisWindow, osgGA::Devive and osgViewer::Viewer/CompositeViewer classes 2013-05-23 18:29 robert * Added repolation of the _deadparts stack which would otherwise been invalidatd by the depth sort of particles. 2013-05-23 15:55 robert * From Pawel Ksiezopolski, Added example of using osg::TextureBuffer + GLSL to render forest. 2013-05-23 14:14 robert * From David Fries, "This updates the CMakeLists.txt instructions for the commands to make the doxygen documentation." 2013-05-23 12:29 robert * Refactored the idle mechanism to fix problems with the vnc thread going idle when it shouldn't have. 2013-05-23 10:25 robert * Added assigned of the InteractiveImageHandler as a cull callback to enable the interactive image to know when it's being actively used as part of rendering a frame. 2013-05-22 15:48 robert * Quitened down debug messages 2013-05-22 13:16 robert * Removed debug messages 2013-05-22 13:09 robert * From Nico Kruithof, "For the VNC server, it seems that the wrong include path is used. Instead of INCLUDE_DIRECTORIES(${LIBVNCCLIENT_INCLUDE_DIR}) the CMake variable INCLUDE_DIRECTORIES(${LIBVNCSERVER_INCLUDE_DIR}) should be used. Attached is a fix for src/osgPlugins/vnc/CMakeLists.txt" 2013-05-22 12:49 robert * From Pawel Ksiezopolski, first email: "This submission adds texture buffer object ( defined in GL_ARB_texture_buffer_object extension ) to the osg::Texture* family. TextureBuffer objects may use osg::Texture::bindToImageUnit(), so GLSL shaders are able to use not only texelFetch() function , but also functions defined in GL_ARB_shader_image_load_store extension : imageLoad(), imageStore(), imageAtomicAdd() etc." second email: "After a while I found that osg::Texture::applyTexParameters() used with TextureBuffer may cause some OpenGL errors ( applying texture filters and wraps to TextureBuffer makes no sense ) so I fixed it." 2013-05-22 11:06 robert * From Jan Ciger, "Here is a little patch to fix a bug in the InfluenceMap serialization. The names of the maps weren't quoted properly and therefore it was breaking loading of rigged models exported from e.g. Blender. Also names that contained spaces wouldn't have been parsed properly. " 2013-05-22 10:28 robert * From David Callu, "ust a simple IF ENDIF mismatch in last commit (I use git so no available SVN commit number ) : CMake Warning (dev) in CMakeLists.txt: A logical block opening on the line /home/ledocc/work/perso/osg_Workspace/osg/CMakeLists.txt:823 (IF) closes on the line /home/ledocc/work/perso/osg_Workspace/osg/CMakeLists.txt:893 (ENDIF) with mis-matching arguments. I remove ENDIF argument, it is no longer needed by cmake" 2013-05-21 17:41 robert * From Farshid Lashkari, "I'm working on a custom ShaderComposer and I need access to the full StateSetStack of the State object within the getOrCreateProgram() method. The problem is that "State::apply(const StateSet* dstate)" does not add the specified stateset to the stack. I'm not sure if this was intentional, but I've updated the function to push/pop the stateset. I hope the change seems reasonable. I searched the entire code base for code that accesses the StateSetStack, and noticed RenderBin and RenderStage use it. However, I don't think that code would ever be called from within the State::apply() function, so I'm fairly confident the change should be safe." 2013-05-21 10:22 robert * From Valeriy Dubov, fix for Android build under OSX 2013-05-21 09:48 robert * From Alexander Sinditskiy, "I just noticed that Dragger allways handle events even when handle(const PointerInfo&, const osgGA::GUIEventAdapter&, osgGA::GUIActionAdapter&) returns false.I think it is not correct...i think handled should be changed only when it is really handled." 2013-05-21 09:44 robert * Added use of SingleWindow for when only one screen is used 2013-05-20 19:24 robert * Refactored the support for stereo and keystone RTT setup so that it can be applied to an existing Camera. 2013-05-20 14:17 robert * Added support for controlling border and override redirect to the SingleWindow View::Config 2013-05-20 10:23 robert * Added a dedicated RTT texture for each of the left and right eyes when doing ANAGLYPHIC stereo to avoid issues with scene graphs containing ClearNode's such as when using in Present3D 2013-05-16 15:52 robert * Added support for setting the left/right cull masks 2013-05-16 14:51 robert * Changed the default of OSG_SPLIT_STEREO_AUTO_ADJUST_ASPECT_RATIO to OFF 2013-05-16 14:11 robert * Fixed stereo offsets of HORIZONTAL_SPLIT and VERTICAL_SPLIT stereo modes 2013-05-16 14:07 robert * Reverted back to changes before experiements with ViewConfig 2013-05-16 10:28 robert * Cleaned up the WoWVxDisplay command line parsing 2013-05-16 10:11 robert * Renamed osgViewer::Config osgViewer::ViewConfig and moved it's declaration into include/osgViewer. 2013-05-16 09:08 robert * Added WoWVxDisplay view config 2013-05-15 16:15 robert * Created a dedicated include/osgViewer/config and src/osgViewer/config directories to place all the Config classes. 2013-05-15 12:50 robert * Added support for osgViewer::Config in osgViewer::Viewer command line parsing 2013-05-15 11:31 robert * Introduced osgViewer::Config base class and beginnigs of various Config implementations. Introduced osgViewer serializers plugin for serialization support for osgViewer::Config implementations and Keystone 2013-05-14 16:23 robert * From Lionel Lagarde, "When a function do: OSG_DEBUG << "Hello world!\n"; the underlying stream is not automatically flushed. It is flushed if endl is queued instead of \n: OSG_DEBUG << "Hello world!" << std::endl; The notify macros do: stream->setCurrentSeverity(severity); return *stream; So, if a function do: OSG_DEBUG << "This is a debug message\n"; OSG_NOTICE << "This is a notice message" << std::endl; the debug message will be classified as a notice message. It is a problem when the application uses a NotifyHandler. The notify method of the handler is called with: severity = NOTICE message = "This is a debug message\nThis is a notice message" The attached Notify.cpp contains an automatic flush of the stream when the current severity changes. " 2013-05-14 16:18 robert * From Michael Kapelko, "The provided patch (against SVN revision 13380) adds missing constness to returning calls (without it the user code does not compile)." 2013-05-14 16:15 robert * From Farshid Lashkari, "The tga image loader was not properly reading in 16-bit images. Fix is attached." 2013-05-14 16:12 robert * From Ulrich Hertlein, "Attached is a patch that introduces 'static_cast' on some instances where the code returns '.size()' of a std::vector. This caused some warnings when using clang++ on OS X." 2013-05-14 13:35 robert * Updated ChangeLog 2013-05-14 13:34 robert * Updated version after dev release 2013-05-13 13:12 robert * Added OSGUTIL_EXPORT for Windows build 2013-05-13 12:08 robert * Updated version number for dev release 2013-05-13 11:59 robert * Updated ChangeLog for dev release 2013-05-13 11:51 robert * Updated links to svn repository 2013-05-13 11:02 robert * Fixed build for when automatic type conversion isn't enabled for ref_ptr<> 2013-05-13 09:53 robert * Fixed the render order to the Render To Texture cameras used in stereo keystoning. 2013-05-13 09:49 robert * Improved the use of the Keystone's defined in the DisplaySettings object. 2013-05-13 09:18 robert * Added to Viewer::realize() automatic setup using Keystone when available and enabled, and when no other window setup has been selected. 2013-05-10 17:59 robert * Added DisplaySettings::KeystoneHint flag that can be set via --keystone-on and --keystone-off command line parameters, and the OSG_KEYSTONE env var 2013-05-10 16:06 robert * Added keystone file handling 2013-05-10 11:56 robert * Added --keystone command line support into DisplaySettings, and added OSG_KEYSTONE_FILES env var support into osg::DisplaySettings. 2013-05-10 10:00 robert * Moved Keystone support from osgkeystone example into osgViewer::View 2013-05-09 15:18 robert * Moved Keystone class into osgViewer library. 2013-05-07 14:43 robert * Cleaned up event handler and namespaces in prep for integrating keystone functionality into osgViewer 2013-05-07 13:34 robert * Added keystone support for left eye, right eye and quad buffer stereo 2013-05-07 11:13 robert * Added keystone setup to vertical split stereo suport and cleaned up the horizontal split stereo code 2013-05-03 20:12 robert * Commented out debug output 2013-05-03 19:26 robert * Introduced new scheme for handling mouse events with osgViewer. The new scheme enables robust event handling even when using distortion correction render to texture Cameras. 2013-04-26 10:00 robert * As a test of new repository updated date in README.txt 2013-04-18 17:02 robert * Refactored Keystone setup as a step toward integrating Keystone correction with stereo 2013-04-18 09:47 robert * Implemented stereo support into osgkeystone as a testbed for moving stereo support from SceneView into osgViewer 2013-04-17 11:04 robert * Implemented initial cut of anaglyphic stereo 2013-04-16 09:26 robert * Changed point to osg::ref_ptr<> to prevent memory leaks. 2013-04-15 14:21 robert * Preperation for adding stereo support direclty into osgViewer. 2013-04-12 13:01 robert * Added support for enable/disabling the keystone editing using the Ctrl-g key to toggle the UI and grid on/off. 2013-04-12 09:05 robert * Moved keystone event handler onto the keystone distortion Camera. 2013-04-12 08:52 robert * Refactoed the grid rendering so that it's now implemented as part of the distortion mesh pass, leaving the main scene graph alone. 2013-04-11 17:12 robert * Add support for a finer grained mesh on the distortion mesh for higher quality results. 2013-04-11 16:07 robert * Moved the keystone geometry computation into a Keystone::compute3DPositions(..) method 2013-04-10 16:36 robert * Removed old experimental keystone code to clean up the example 2013-03-28 10:46 robert * Changed the way that the keystone geometry is calculated. 2013-03-27 16:29 robert * Added keypad control of corner points 2013-03-26 17:03 robert * Moved local variable into local scope to avoid it being created when not used. 2013-03-26 16:47 robert * Introduced shearing of the image 2013-03-26 11:00 robert * Improved the setup of the keystone distortion correction mesh. 2013-03-21 16:42 robert * Updated developer release number 2013-03-21 16:22 robert * Added check against isVertexBufferObjectSupported() in set*Pointer() methods 2013-03-21 11:35 robert * Added keystone grid to aid editing 2013-03-20 14:03 robert * Added arrow key support. Added support for using ctrl and shift keys to modulate how senstive the mouse and key movement is when modifying the keystone parameters. 2013-03-19 16:43 robert * Improve corner point tracking/keystone computation 2013-03-19 12:44 robert * Added event handle for interactive setting of keystone variables 2013-03-15 17:35 robert * Experiments with modifying the projection matrix to provide keystoning. 2013-03-14 16:24 robert * Initial skeleton of new osgkeystone example 2013-03-11 17:16 robert * From Aurelien Albert, "There is a little bug in the osg::Group::insertChild method : If the index is more than the size of _children vector, the new child is pushed at the end of the vector, but the index value is unmodified, so an incorrect value is passed to the "childInserted" method." 2013-02-22 17:42 robert * From Chris Hanson, " Adds missing copy for _bbox member variable to copy constructor: LightPointNode::LightPointNode(const LightPointNode& lpn,const osg::CopyOp& copyop): osg::Node(lpn,copyop), _bbox(lpn._bbox), _lightPointList(lpn._lightPointList), _minPixelSize(lpn._minPixelSize), _maxPixelSize(lpn._maxPixelSize), _maxVisibleDistance2(lpn._maxVisibleDistance2), _lightSystem(lpn._lightSystem), _pointSprites(lpn._pointSprites) { } Lacking this causes _bbox to be uninitialized after LOD changes when paged databases refer to shared subgraphs. " 2013-02-13 16:29 robert * From Lukasz Izdebski,"added support for gl_SampleMaski." 2013-02-13 16:03 robert * From Jordi Torres, "This error occurs when compiling current OSG with the NDK >=r8c: android-ndk-r8d/build/gmsl/__ gmsl:512: *** non-numeric second argument to `wordlist' function: ''. Stop. This is discussed in this thread[1]. The solution is to add to the manifest as the OSG library will only run in devices with Android>=2.2 (Froyo) with API level 8 [2]. The fix does not affect to older sdk's. Thanks to Jan Ciger for spotting the bug and find a possible solution. " 2013-02-12 15:44 robert * From Jordi Torres, Android build fix 2013-02-12 15:40 robert * From Jordi Torres, fix for Android build 2013-02-12 15:18 robert * From Stephan Huber, fixed bug in setting _numMessagesPerEvent and added more debug information 2013-02-07 19:16 robert * From Mike Connell, "3 smaller fixes for the 3DS loader (against trunk) 1. Respect "noMatrixTransforms" option for matrices attached to meshes, not only those attached to nodes 2. traverse_nodes variable did the exact opposite of it's description. 3. Always try to load referenced textures, even if we can't find the files (in order to the the registry's ReadFileCallback have a stab at it) " 2013-02-07 11:10 robert * From Lukasz Izdebski , "I added write and read numInstances in PrimitiveSet." 2013-02-07 11:08 robert * Updated SO version in prep for serialization foramt change 2013-02-07 08:46 robert * Updated AUTHORS list 2013-02-06 16:04 robert * From Wee See, Support for importing OpenFlight Surface Material Codes using osg::Object::UserValue. Notes from Wee See: See attached my ported code, which fulfills: - using of setUserValue()/getUserValue() - user-value will be attached to Geode or Drawable - actually 3 values will be added: SMC (surface), FID (feature) and IRC (IRcolor). Its UserValue-names are < UA:SMC >, < UA:FID > and < UA:IRC > (without spaces!) - user-value will be attached to Geode or Drawable - has an option (named preserveNonOsgAttrsAsUserData) for control whether the UserValues should be attached (Default: no UserValues will be attached) Reading out this values is very simple. Here is an example (uservalue-name without spaces!): signed short smc; if (myGeode.getUserValue("< UA:SMC >", smc)) { doSomethingWithTheGeodeAndItsSmc(myGeode, smc); } else { // geode has no SMC } 2013-02-06 14:50 robert * From Aurelien Albert, "This line,I use the "useVertexAttributeAliasing" mode in my application, and color arrays are not normalized, so shaders get [0.0-255.0] values instead of [0.0-1.0] values. This patch fix this." and those below, will be ignored ---- M include/osg/State 2013-02-06 14:49 robert * Added TODO note about RGB -> RGBA 2013-02-06 12:46 robert * From David Longest, "I have updated the FFmpeg plugin to support the 1.0 release version of FFmpeg. The files attached were modified in order to facilitate the update. Below are the details for all changes made. Header update FindFFmpeg.cmake has been changed in order to support the new header include format for FFmpeg. In the 1.0 release, a new file had been added with the name “time.h” in the avutil library. The previous method of adding includes caused conflicts with the ANSI C “time.h” file. Now the include directive will only use the main include folder. All files using the old include format have been updated to reflect the change. Added __STDC_CONSTANT_MACROS define to CMakeLists.txt Since there is no guarantee that FFmpegHeaders.hpp will be included before stdint.h is included, the define has been moved from FFmpegHeaders.hpp to be part of the CMakeLists.txt for the FFmpeg plugin. This will allow the define to work on all compilers regardless of include order. Replaced AVFormatParameters with AVDictionary AVFormatParameters is no longer supported in FFmpeg and has been replaced with a key/value map of strings for each setting. FFmpegParameters and FFmpegDecoder has been updated to reflect this. Replaced av_open_input_file with avformat_open_input FFmpeg now opens files using avformat_open_input. Since the av_open_input_file method is deprecated, the FFmpegDecoder class has been updated to reflect this change. Added custom AVIOContext field to options Since some formats and inputs may not be supported by FFmpeg, I have added a new parameter that allows a user to allocate their own AVIOContext. This class will allow for creating a read, seek, and write callback if they desire. Checking for start_time validity It is possible for some file formats to not provide a start_time to FFmpeg. This would cause stuttering in the video since the clocks class would be incorrect. Removed findVideoStream and findAudioStream The new FFmpeg release already has a function that will find the best audio and video stream. The code has been replaced with this function. Updated error reporting Some functions would not log an error when opening a file or modifying a file failed. New logs have been added as well as a function to convert error numbers to their string descriptions. decode_video has been replaced The old decode_video function would remove extra data that some decoders use in order to properly decode a packet. Now av_codec_decode_video2 has replaced that function. Picture format changed from RGBA32 to RGB24 Since most video will not contain an alpha channel, using a 24 bit texture will use less memory." 2013-02-06 12:02 robert * Simplified include/osg/Math to use Standard C++ maths headers - and 2013-02-06 11:16 robert * Fixed warning 2013-02-06 09:20 robert * From Stephan Huber, fixed for Windows 64bit build 2013-02-05 18:22 robert * Added .get()'s to fix compilation when ref_ptr<> type conversion is disabled 2013-02-04 16:25 robert * Updated ChangeLog 2013-02-04 14:42 robert * Updated version number after 3.1.4 developer release 2013-02-04 13:28 robert * From Jordi Torres, "The info about cdash reports was outdated. Now it points to the right URL. BTW I have checked it out and the cdash server is working ok again. " 2013-02-04 13:28 robert * Fixed warning 2013-02-04 13:27 robert * Fixed warnings 2013-02-04 13:11 robert * Fixed warning 2013-02-04 12:50 robert * Fixed warning and converted tabs to four spaces 2013-02-04 12:38 robert * Fixed warnings 2013-02-04 12:01 robert * Fixed warning 2013-01-31 16:26 robert * Standardized use of GL_HALF_FLOAT_NV and GL_HALF_FLOAT_ARB to GL_HALF_FLOAT 2013-01-31 11:09 robert * From Stephan Huber, introduction of message id scheme were osc messages are sent with an unique id, and can be dispatched multiple times to workaround network packet losses. 2013-01-30 11:31 robert * Added handling of movies into Timeout 2013-01-30 10:49 robert * Added disabling of the traversal of the Timeout in update when the timout is not displayed and disabled traversal by the SlideEventHandler. 2013-01-30 10:40 robert * Fixed the erronous header so that it is OSGPL like the rest of the osgAnimation. 2013-01-30 10:21 robert * From Stephan Huber, "As I have not all referenced image-data, SlideShowConstructor crashed on my end. Attached is a fix for that crash." 2013-01-28 14:56 robert * From Wang Rui, "I've fixed the bug of writing/reading scenes including the ImageSequence serializer. Current trunk version will fail when handing image sequences because it forces to set className to "osg::Image" in InputStream.cpp. I have to read a value saved in file instead so I must add a hardhanded version checking for backward compatibility. Now we can work with ImageSequence objects, in both osgt and osgb files." 2013-01-28 14:30 robert * From Laurens Voerman, "I have implemented and tested (on windows only) your suggestion for resetCullingMask(), it's far less intrusive than my previous submission. attached are the changes to current svn (28 Jan 2013 / rev :13312). " 2013-01-25 16:54 robert * From Thomas Hogarth, "Attached are two minor modifications to the master CMakeLists.txt file. It now points to sdk version 6.0 (I do intend to make this configurable my command line) It also added a search for libtiff to Apple builds mainly for use with osg earth." 2013-01-25 11:54 robert * From Wang Rui, "In the attached files I've added the Compute Shader support for OSG, as well as serializer updates and a new osgcomputeshaders example. My submission also include a setComputeGroups() function in Program for setting compute-shader work groups, and a bindToImageUnit() function in Texture for binding textures as image variables in shaders. All code are tested on Windows 7 + NVIDIA GFX 570 with the latest GeForce 310.70 Driver (BETA), which could support OpenGL 4.3. Compute shader information can be found at "http://www.opengl.org/registry/specs/ARB/compute_shader.txt" " 2013-01-25 11:08 robert * From Lukasz Izdebski, "Adding this GL mode makes possibly to use this GL Modes (added in core OpenGL 3.2) in Windows." 2013-01-25 10:36 robert * Fixed compile warning 2013-01-25 10:24 robert * Added debug message for Timout 2013-01-24 18:48 robert * Fixed usage of META_NodeVisitor so it doesn't include "" 2013-01-23 17:38 robert * From Pjotr Svetachov, "when you restart threading with startThreading/stopThreading the _drawQueue and _availableQueue are not reset properly. This can lead to a deadlock when threading is started again. So before threading is started again the queues must be reset. This deadlock is also reported earlier by someone else in here: http://forum.openscenegraph.org/viewtopic.php?p=43415#43415" 2013-01-23 17:37 robert * From Pjotr Svetachov, "small bug which I have found in the FlattenStaticTransformsDuplicatingSharedSubgraphsVisitor: the visitor will replace part of the tree when visiting the nodes but it does not update the current node path to reflect this. If you then have multiple nested transform nodes it will usually crash and sometimes it won't crash but the resulting mesh will miss some nodes." 2013-01-23 16:27 robert * From Mathias Froehlich, "I have extended the dds loader by some newer DX10 texture formats. Especially the float texture formats. I need a few of these formats somewhere but have extended everything that I found plausible and was easy to find a GL texture type/format for. For some float32 type of texture the files the implementation seem to work fine. The rest lacks testing. The writer side is not implemented." 2013-01-23 16:22 robert * From Wang Rui with edits from Robert Osfield, additional GLenums for cross platform build 2013-01-23 15:54 robert * From Lionel Lagarde, fixed typo bug 2013-01-23 11:50 robert * Removed redundent code block 2013-01-23 11:45 robert * From Lukasz Izdebski, "I found problem with rgb plugin. Internal format of rgb image is wrongly set ( diffrent then in other images type plugin ), because of that using rgb images in osg::Texture2DArray causes a bug." 2013-01-23 11:20 robert * From Mathias Froehlich, "Attached is a patch that includes the stereo cameras in Renderer::*etCameraRequiresSetUp. I am not sure if the getter needs to be changed, but this is currently included for consistency." 2013-01-22 16:53 robert * From Alessandro Terenzi, "I've modified the avfoundation plugin to copy the preferredTransform matrix into the UserData property of the corresponding imagestream: by doing so, we can realize if the video should be transformed when applied as a texture (this should be the case, for instance, when we record a movie using an iOS device with any orientation different than 'landscape left')." 2013-01-22 16:13 robert * Added and functionality to .p3d functionality. 2013-01-22 10:33 robert * Added extra check against whether node needs to be traversed in update and event traversals to prevent osgPresentation::Timeout being classified as a node that can be removed. 2013-01-18 17:11 robert * Added Options support to ImageSequence LOAD_* functionality 2013-01-18 16:30 robert * Update SO_VERSION to reflect new API changes 2013-01-18 16:21 robert * Added LOAD_AND_RETAIN_IN_UPDATE_TRAVERSAL and LOAD_AND_DISCARD_IN_UPDATE_TRAVERSAL ImageSequence::Mode's to allow for ImageSequence usage without using background paging threads, instead loading all the images on demand in the update traversal. 2013-01-17 13:51 robert * Added and support to to allow the different timeout statges to be broadcast. 2013-01-17 11:57 robert * Changed the defaults of the Timeout to be DBL_MAX by default. 2013-01-17 11:48 robert * Completed support, to use it with p3d use it along the lines: Test 3.0 5.0 A S D w t Images/lz.rgb cow.osg 2013-01-17 09:51 robert * Added support for to Timeout support. 2013-01-16 16:13 robert * Implemented basic Timeout display and timing codes 2013-01-15 11:31 robert * Added shell of Timeout class 2013-01-11 11:30 robert * Added movie volume animation control to and tags to be used in the form: 0.20 0.0 1.0 1.0 0.0 big_buck_bunny_1080p_stereo.ogg 2013-01-10 19:55 robert * Added support for properties that works in conjunction with the start="time" property support checked in in previous submission, together these control the delay, start position and stop position of movies. 2013-01-10 14:37 robert * Added support for property that tells a video to start specificied number of sections into a video. 2013-01-10 10:53 robert * From Stephan Huber, "thanks for your input, unfortunately I could not get it working with packing, but setting the row-length works now. Seems I had it wrong the first time. Attached are both files. This should fix the video-bug mentioned on the dlf-wiki. " 2013-01-09 16:29 robert * Changed the named colours back to having a alpha value of 1.0 to avoid problems with text not appearing. 2013-01-09 16:03 robert * Added reset of the cursorFileName when hideCursor is activated to prevent the custom cursor being enabled. 2013-01-08 10:21 robert * Added case for FORWARD_EVENT to address warning 2013-01-07 15:03 robert * From Aurelien Albert, "I get a compile error on Windows VS2008 wih new DAE plugin, here is a fix : _document = _dae->openFromMemory(fileURI, buffer.data()); "data" method is unknow for std::vector with VS2008 I've replaced it with : _document = _dae->openFromMemory(fileURI, &buffer[0]); " 2013-01-07 12:41 robert * Added support for --show-cursor and --hide-cursor command line options, and P3D_SHOW_CURSOR env var that can be set to YES or NO. 2013-01-07 12:17 robert * From Stephan Huber, "* osgGA: fixed a small bug regarding emulating mouse-events from touch-events * resthttp/osc: encapsulate RequestHandler-classes in their own namespaces to prevent class-name-lookup-errors in the debugger/code (had some weird crashes) * QTKit: fixed a compile-bug for gcc and blocks * osgPresentation: click_to_* will fire on RELEASE, only if the drawable received a PUSH beforehand * p3d/osgPresentation: implemented "forward_mouse_event_to_device"-tag, which will forward mouse-events to all registered devices of a viewer, if an intersection occurs. The mouse-coordinates get reprojected * present3d: all devices get registered with the viewer * osgViewer: only devices which are capable of receiving events are queried for new events. * GraphicWindowIOS: added a flag to GraphicWindowIOS::WindowData to set up a retained backing buffer (defaults to false) This will enable read-back of the render-buffer with glReadPixels even after the renderbuffer got presented * curl: added an optimized check for file-existance, now only the headers are requested and checked, instead of reading the whole file and handle it with a ReaderWriter * p3d: fixed a bug, where the existence of a local file may prevent the remote loading of a file with the same name. " 2012-12-20 16:16 robert * Made UpdateVisitor::TravesalMode default to TRAVERSE_ACTIVE_CHILDREN 2012-12-20 12:14 robert * Added region="$xmin $ymin $zmin $xmax $ymax $zmax" support to tag, along with animation support via the support. 2012-12-19 17:14 robert * Removed lighting of trk lines 2012-12-19 12:38 robert * Changed the colour calculation and added gl_ClipVertex to enable clipping. 2012-12-18 11:20 robert * Removed erroneous region setting 2012-12-18 09:49 robert * From Juergen Rensen, "This is a fix for the latest SVN version (rev 13269). The ‘destroyFrameBuffer’ method in ‘GraphicsWindowIOS.mm’ had ‘glDeleteFramebuffersOES’ calls for the stencil buffer, MSAA render buffer and MSAA depth buffer instead of ‘glDeleteRenderbuffersOES’. The fix changes the mismatched calls to ‘glDeleteRenderbuffersOES’. The impact of the bug was a memory leak that would affect multi-sampling iOS apps that allow for device rotation or window resizing in general. For our app, the leak ranged from ca. 10 MB to 40 MB per device rotation, depending on device, for the MSAA buffers. I have not been able to confirm impact for the stencil buffer. " 2012-12-17 15:58 robert * Added support for RGBA colour buffer in osgframerenderer using the --rgba command line option (--rgb selects the standard non colour frame buffer which is the default). 2012-12-16 17:10 robert * Added handling of aspect ratio for vertical/horizontal split stereo. 2012-12-14 16:31 robert * From Stephan Hunber, "* now you can create a transparent opengl-view (see GraphicWindowIOS::WindowData) * changes of the view's bound are reported via osg's event-system more reliably " 2012-12-14 16:30 robert * Updated SO version 2012-12-13 17:35 robert * From Lionel Lagarde, "Here is a correction on the PixelBufferObject getter methods of Image. The set method modify the buffer object of the BufferData while the get method returned the buffer object of the Image. I've also removed the _bufferObject member of Image (not used anymore)." --This line, Lionel Lagardeand those below, will be ignored-- M include/osg/Image 2012-12-13 16:23 robert * Added colouring and lighting of track using shader 2012-12-11 17:45 robert * Fixed handling of image colour space conversion when pixel format changes 2012-12-11 17:27 robert * Added automatic conversion of RGB to RGBA when doing REPLACE_ALPHA_WITH_LUMINANCE colour space conversion. 2012-12-11 10:44 robert * Disabled lighting and set the colour to white 2012-12-11 09:55 robert * First cut of generating lines from .trk data 2012-12-10 11:11 robert * Added setting of the fusion distance. 2012-12-08 16:11 robert * Added --flip and --no-flip command line options to enable/disable a vertical flip of the captured image before writing out to disk. 2012-12-07 19:05 robert * From Stephan Huber, "attached you'll find a zip containing some bug-fixes and some refactored + new code. * ZeroConfDevice does now return FILE_NOT_HANDLED instead of FILE_NOT_FOUND * present3D supports multiple devices per env-var P3D_DEVICE, separate multiple device with a space I refactored parts the p3d-plugin, the curl-plugin and parts of Registry and ReaderWriter. Currently the p3d-plugin tries to open all remote files with the help of the curl-plugin. I added a new method to Registry called getReaderWriterForProtocolAndExtension. which will return a ReaderWriter which is capable in handling the remote file for the given protocol and extension. If no readerwriter is found for the given extension, a list is built of all readerwriters supporting the given protocol and this list is checked for support of wildcards (extension = "*"). If anything matches it get returned. I added this principle also to the Registry, so now it's possible to register a generic ReaderWriter which can handle all filetypes for a given protocol, similar what curl is doing. All you have to do is to load the plugin at startup. The curl-fallback is still in place. With these changes it is now possible to reference a movie inside a presentation without a server-address, read the presentation (with curl) and stream the movie with the correct plugin (e.g. QTKit) " 2012-12-07 19:04 robert * Added template swapBytes method 2012-12-07 13:59 robert * Added naming of root of presentation and used this in the setup of the position of the camera. 2012-12-07 12:47 robert * Fixed handling of window size/projection matrix 2012-12-07 10:19 robert * From Stephan Huber, attached is a fix for the bug of present3D not loading fonts across http. I pass SlideShowConstructor's options-object to readFontFile when constructing any text-objects so freetype can pick up the font-data from the curl-plugin. It works fine now on my end. 2012-12-06 19:09 robert * Intial shell of .trk plugin 2012-12-06 18:12 robert * From Stephan Huber, build fix 2012-12-06 14:42 robert * Added default value for initialization of port number 2012-12-06 11:36 robert * Fixed typo 2012-12-06 11:36 robert * Added creation of directory path for ouput if one is required 2012-12-06 08:02 robert * From Stephan Huber, ZerConfDevice plugin for Windows and Apple 2012-12-05 17:15 robert * From Stephan Huber, "* imageio: removed ReaderWriterImageIO_IOS.cpp, refactored ReaderWriterImageIO to work on OS X and IOS * avfoundation: added support for IOS (CoreVideo-support is still in development, works only for SDK >= 6.0, set IPHONE_SDKVER in cMake accordingly) * zeroconf: added ZeroConf-device-plugin (Mac/Win only, linux implementation missing) to advertise and discover services via ZeroConf/Bonjour, on windows you'll need the Bonjour SDK from Apple * osgosc: modified the example to demonstrate the usage of the ZeroConf-plugin (start the example with the command-line-argument --zeroconf) * SlideShowConstructor: enable/disable CoreVideo via a environment variable (P3D_ENABLE_CORE_VIDEO) * RestHttp: mouse-motion-events get interpolated * RestHttp: unhandled http-requests get sent as an user-event to the event-queue, all arguments get attached as user-values to the event * modified some CMakeModules to work correctly when compiling for IOS * fixed a compile-error for IOS in GraphicsWindowIOS * some minor bugfixes" 2012-12-05 11:41 robert * Added --screen-distance , --screen-height and --screen-width command line support and associated settings to the configuration file. 2012-12-05 10:13 robert * Moved the expansion of the key codes into ApplicationUsage so that help is only generated for non zero keycodes. 2012-12-04 19:02 robert * Fixed default camera position 2012-12-04 18:51 robert * Changed the -w and -h options to --width and --height respectively. 2012-12-04 18:30 robert * Cleaned up command line usage 2012-12-04 18:28 robert * Tidied up command line docs. 2012-12-04 18:21 robert * Tidied up CaptureSettings and added command line docs 2012-12-04 12:47 robert * Added CameraProperty and associated command line parameters for controlling camera position and animation. --center x y z --eye x y z --up x y z --rotation-center x y z --rotation-axis x y z --rotation-speed degreesPerSecond 2012-12-04 09:11 robert * Added missing break; 2012-12-03 16:49 robert * From Stephan Huber, "I've found a bug in SlideShowConstructor::findFileAndRecordPath which does return an empty string if the file was not found, and this empty string got added to the fileNames-vector, so the curl-plugin tried to load only an empty file-name, the directory-prefix. I fixed findFileAndRecordPath, so it returns the unmodified filename, which can then be loaded by the curl-plugin. Please review my fix, as I am not sure if it has any side effects, as I know the code not that well. The file includes another small compile-fix when using float-matrices." 2012-12-03 11:31 robert * Renamed souce file 2012-12-03 10:10 robert * From Wang Rui, "I've found a very covert bug in current VDSM implementation. It makes the computation of positional texgen incorrect if the shadow scene is under one or more child cameras with view/proj offsets. Using current stage instead will fix it." 2012-12-03 09:50 robert * Fixed error in Unfiform set method 2012-12-03 09:35 robert * Added include of osc plugin directory to help with Windows build 2012-12-02 11:45 robert * From Wang Rui, build fix 2012-11-30 20:03 robert * Fixed crash when no CameraManipulator is assigned to the viewer 2012-11-30 16:52 robert * Added support for 0x and numeric defintion of keys to be used with functionality. 2012-11-30 15:43 robert * Added support for pausing and restart the property_animation. 2012-11-30 14:21 robert * Added xml defined property/property animation to .p3d format for propeties: alpha="$alphaname" cutoff="$cutoffname" region="$minx $miny $minz $maxx $maxy $maxz" sampleDensity="$densityname" sampleDensityWhenMoving="$densityname" 2012-11-28 13:28 robert * From Stephan Huber, New OscSendingDevice and OscReceivingDevice classes 2012-11-28 10:43 robert * From Stephan Huber, added event sending support into osgGA::Device along with implementation on this into the osc plugin. Added osgoscdevice example to demonstate this in action. 2012-11-27 16:00 robert * Added support for tag for , and scope to compliment the scope of 2012-11-27 15:09 robert * Added preliminary support for 2012-11-22 15:13 robert * From Stephan Huber, "Attached you'll find a new ImageSequence.cpp which will fix an issue I had when moving the mouse cursor over the left window-border, as the index becomes negative. And I added a UdpSocket.cpp-file with more debuggin-output via some sprinkled printf-calls. " 2012-11-22 11:55 robert * Simplified CMakeLists and adjusted OscHostEndianness to automatically detect the endian at compile time 2012-11-22 11:47 robert * From Stephan Huber, updates to explictly set the HOST Endian using Cmake 2012-11-22 09:49 robert * Added explict handling of osg::Image, osg::HeightField, osg::Shader and osg::Node when doing writes to the archive. 2012-11-21 15:19 robert * From Stephan Huber, further work on osc plugin 2012-11-21 14:27 robert * Moved static for local to global scope in Uniform.cpp and removed the local static usage in Registry.cpp 2012-11-21 13:38 robert * Refactored osgDB::Input::readObjectOfType to use a template, and updated associated wrappers to avoid using local static's 2012-11-20 18:41 robert * From Paul Martz, fix for Windows build 2012-11-20 13:01 robert * From Stephan Huber, added missing windows dependency 2012-11-20 10:37 robert * Added ws2_32 library to Win32 build 2012-11-19 11:25 robert * From Paul Martz, build fixes 2012-11-19 10:48 robert * Frm Stephan Huber, osc plugin that supports send and recieving events via UDP packets. 2012-11-16 15:40 robert * Added first cut implememtation of PropertyAnimation class 2012-11-15 12:11 robert * Moved PropertyManager related classes out from SlideEventHandler into their own dedicated header/source file. 2012-11-13 16:15 robert * Added support for P3D_UPDATE env var for setting the UpdateVisitor::TRAVERSAL_MODE. Accepted settings are "active", "Active", "ACTIVE", or "all", "All", "ALL". 2012-11-13 15:26 robert * Added --update-active and --update-all command line options that set the UpdateVisitor::TraversalMode to TRAVERSE_ACTIVE_CHILDREN and TRAVERSE_ALL_CHILDREN respecively. 2012-11-13 14:22 robert * Added support for to allow user definition of when to enable OpenGL blending for an image or not. 2012-11-13 13:52 robert * From Stephan Huber, fixed warning 2012-11-13 13:32 robert * Changed COLOUR to COLOR to be consistent with OpenGL spelling 2012-11-13 13:16 robert * Moved colour space conversion of volumes from the osgvolume example into osg/ImageUtils and added support for colorSpaceConversion="MODULATE_ALPHA_BY_LUMINANCE","MODULATE_ALPHA_BY_COLOUR","REPLACE_ALPHA_WITH_LUMINANCE" and "REPLACE_RGB_WITH_LUMINANCE" to .p3d tag 2012-11-13 11:45 robert * Added first step to adding pruning of expired image requests. 2012-11-13 11:20 robert * From Stephan Huber, introduced syncornization of osgGA::Device 2012-11-12 16:46 robert * Cleaned up reported of events and added assigned of tag region properities when using the wildcard definition of the volume. 2012-11-12 15:26 robert * Added osgframerenderer example 2012-11-12 10:36 robert * Changed the default settings to fix a jump problems 2012-11-10 12:12 robert * Added missing files in support of key_jump and key_run tags 2012-11-09 21:32 robert * Added support for naming slides and layers with slide_name and layer_name properties respectively. Added support for creating events based on key presses using a and tags. 2012-11-09 21:23 robert * Added Node::getName() and getUserDataContainer() to check to see if an node can be removed or not. 2012-11-08 17:19 robert * From Alexander Sinditskiy, "I found issue with capturing mouse buttons. This issue can be reproduced: 1. Create osgViewer window, 2. Push right&left mouse buttons on the osgViewer window, 3. Move mouse out of window, and release right&left mouse buttons. osgViewer window handle only first mouse release, as result window thinks that we did not released second mouse button. I attached fix for this issue." 2012-11-08 15:45 robert * Added support for 2012-11-08 15:28 robert * Changed the way the mouse position is update to handle the remote device control. 2012-11-08 14:15 robert * Added check to avoid doing update when the imagesequence is empty. 2012-11-08 11:19 robert * Refactored ImageSequence to better handle random access usage. 2012-11-06 17:49 robert * Tweaked casts/types to fix build under Linux 2012-11-06 14:25 robert * Added f qualifer to 1.0 to fix build problem under MSVS 2012-11-06 11:18 robert * From Stephan Huber, improved performance by using native apple functions for flipping image 2012-11-05 17:22 robert * From Stephan Huber, "Attached you'll find a fix for the image-io-plugin to handle out-of-memory situations more gracefully as before (don't crash)" 2012-11-05 12:21 robert * Quitened down debug output 2012-11-05 12:03 robert * From Stephan Huber, updated to debug output to RestHttpDevice and tweaks to ImageIO and QTKit plugins 2012-11-05 09:36 robert * Added static cast to float to avoid compile error under MSV 2012-11-01 18:06 robert * From David Longest, "When drawing, a transform with an absolute reference frame will ignore the calculated model / view matrices up to that point. The IntersectionVisitor would instead keep the view matrices calculated up to that point even though the Transform class will throw out the calculated model matrix via “computeLocalToWorldMatrix.” The change I made will push an identity matrix as the view matrix when running into a transform with an absolute reference frame and will pop the matrix off after the traverse. To test this, I created a camera with a perspective view and added a transform with some geometry in it. Afterwards, I set the transform’s reference frame to ABSOLUTE_RF and spun the camera around using the trackball manipulator. When trying to pick with a LineSegmentIntersector, it would not pick the geometry in the transform with the reference frame set to ABSOLUTE_RF." 2012-11-01 16:11 robert * Changed the PropertyEventCallback to only respond to mouse releated events. 2012-11-01 14:29 robert * 2012-10-31 17:06 robert * Added reading of the P3D_DEVICE env var for setting up the --device entry. 2012-10-31 16:07 robert * Added event and update callbacks to pass up changes to the mouse position to the ImageSequence::seek() to control which images is selected based on mouse x position 2012-10-30 12:31 robert * From Stephan Huber, RestHttpDevice plugin for support of remote application control via Rest http. 2012-10-29 15:58 robert * Intial work towards support an interaction tag in Present3D. 2012-10-26 15:31 robert * From Luc Frauciel, "Compile Fix - KTX plugin with Visual Studio, not defined under MSVC" 2012-10-24 16:10 robert * Fixed bug in click_to_run feature where events would be handled by hidden labels 2012-10-24 10:43 robert * From Stephan Huber, "attached you'll find the latest versions of the QTKit + the AVFoundation-plugin, some changes to osgPresentation and a small enhancement für ImageIO. I fixed some bugs and did some more tests with both of the video-plugins. I integrated CoreVideo with osgPresentation, ImageStream has a new virtual method called createSuitableTexture which returns NULL for default implementations. Specialized implementations like the QTKit-plugin return a CoreVideo-texture. I refactored the code in SlideShowConstructor::createTexturedQuad to use a texture returned from ImageStream::createSuitableTexture. I did not use osgDB::readObjectFile to get the texture-object, as a lot of image-related code in SlideShowConstructor had to be refactored to use a texture. My changes are minimal and should not break existing code. There's one minor issue with CoreVideo in general: As the implementation is asynchronous, there might be no texture available, when first showing the video the first frame. I am a bit unsure how to tackle this problem, any input on this is appreciated. Back to the AVFoundation-plugin: the current implementation does not support CoreVideo as the QTKit-plugin supports it. There's no way to get decoded frames from AVFoundation stored on the GPU, which is kind of sad. I added some support for CoreVideo to transfer decoded frames back to the GPU, but in my testings the performance was worse than using the normal approach using glTexSubImage. This is why I disabled CoreVideo for AVFoundation. You can still request a CoreVideoTexture via readObjectFile, though. " 2012-10-23 16:15 robert * Added osgGA::Device class for integration of both physical and virtual devices. Added template readFile(..) function to make it more convinient to cast to a specific object type. Added support for osgGA::Device to osgViewer. Added sdl plugin to provides very basic joystick osgGA::Device integration. 2012-10-22 16:21 robert * Added mutex lock to Uniform::addParent()/removeParent(). 2012-10-12 14:51 robert * Added serializers for osgGA 2012-10-09 16:14 robert * Removed the insert of requests in the ImageSequence::_filesRequested data structure so that it always requests files, leaving it up the ImagePager to decide to track duplicates 2012-10-09 16:05 robert * From Wang Rui, "I modified the Serializer header to add a UPDATE_TO_VERSION_SCOPED macro, which could set version within brackets and reset it after that. All related serializers are also modified so that the backward-compatibility bug reported by Farshid can be fixed. " From Robert Osfield, removed the use of osg::Referenced and creating the proxy object on the heap. 2012-10-08 16:14 robert * From Wang Rui, "I've added CDATA tag support to XmlParser so that we can keep user data (e.g., GLSL shader texts) in XML files without parsing them. This will be necessary for the coming-soon effect compositor submission. :-)" 2012-10-08 16:12 robert * Added a static_cast to avoid build issues under Windows 2012-10-08 16:03 robert * Fixed warning 2012-10-08 15:10 robert * From Aurelein Albert, "Under some Visual Studio configuration, I get compile error on "lib3ds_io.c" due to use of these kind of conversion : b[1] = uint8_t((w & 0xFF00) >> 8); I replaced it with : b[1] = (uint8_t)((w & 0xFF00) >> 8); And it compiles fine " 2012-10-08 12:00 robert * From Gill Peacegood, "In the attached file I have changed the colour space used for writing images to match the one used for reading images. Also this color space does not make subtle changes to the original colours which i think is probably what most people intend when writing an image and is more consistent with other plugins. The effect is that an image that is written does not have a noticeably different colour when it is read back." 2012-10-08 11:54 robert * From Oren Fromberg, "" --This line, and thosAttached is an update to ReaderWriterDAE.cpp/h and daeReader.cpp/h that implements osgDB::ReaderWriter::ReadResult ReaderWriterDAE::readNode (std::istream&, const osgDB::ReaderWriter::Options*) This virtual function had never been implemented in ReaderWriterDAE. I implemented this function because the DAE plugin could not load files from other ReaderWriter derived objects that use protocol handlers. I have updated function declarations in the header to have identical signatures with the base class declarations that include the default parameter. readNode (std::istream&, …) is nearly identical to readNode(const std::string &, …) except it uses a new private function to convert the file from standard input: bool daeReader::convert( std::istream& fin ) When this function is called fileURI is the string “from std::istream” to make the user aware where the file is coming from. Then instead of calling _dae->open(fileURI) we call _dae->openFromMemory(fileURI, buffer.data()) Where buffer.data() is a pointer to the dae file text in memory. Other changes include private functions to clear caches and to consolidate redundant code that appears between the two convert functions. e below, will be ignored-- M src/osgPlugins/dae/ReaderWriterDAE.cpp M src/osgPlugins/dae/daeReader.cpp M src/osgPlugins/dae/ReaderWriterDAE.h M src/osgPlugins/dae/daeReader.h 2012-10-08 11:10 robert * From James Athey, "I've attached a new osgDB ReaderWriter that can read Khronos Texture Files (KTX). The KTX file format is straightforward and designed to be easy to use in OpenGL. http://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/ http://www.khronos.org/opengles/sdk/tools/KTX/ The attached plugin can read: * 1D, 2D, and 3D textures * uncompressed and compressed images * mipmapped and non-mipmapped textures * little-endian and big-endian files * textures from files as well as seekable istream objects It does not handle: * array textures (not supported by the ReaderWriter API) * cubemap textures (not supported by the ReaderWriter API) * the "KTXorientation" key-value pair; support could be added later (see the file format spec for more information) * non-seekable istream objects (would require more complicated memory management) " 2012-10-05 16:31 robert * Made TouchData and osg::Object to aid with serialization. 2012-10-05 10:37 robert * Improved ImageSequence's handling of seek() and added a simply hack to ImagePager to prevent the number of requests accumulating. 2012-10-05 10:35 robert * From Stephan Huber and Robert Osfield, addded interactive setting of the ImageSequence::seek() based on the mouse x position. 2012-10-05 10:07 robert * Added set methods to assist with serialization support 2012-10-04 13:45 robert * From Stephan Huber, "attached you'll find a fix for Registry.cpp not using the QTKit-plugin for video-files. W/o this fix you had to preload the plugin to open movie-files." 2012-10-02 14:07 robert * From Stephan Huber, OSX and iOS Video support via a QTKit plugin from OSX 10.7 and before, and an AVFoundation plugin for iOS and OSX10.8 and later. 2012-09-28 16:36 robert * From Leigh Stivers, "We had this problem which shows up with nVidia's latest Quadro driver, 305.93 - and older drivers when the nVidia's setting "Thread Optimization" was turned on, running Windows 7. The symptom, is that after creating a first view and using it, and then creating a second view, the first view will never render anything but black. What happens is this: A view is created, and then the viewers thread is created and runs. The setReleaseContextAtEndOfFrameHint is true. To create a second view, the viewer is setDone(true), and we wait for the thread exit. At this point, inside the ViewerBase::RenderingTraversals code, there are places where it reads "if(_done) return;" The problem, is that it won't reach the code that will releaseContext(). Apparently, this driver won't let any other thread to makeCurrent(), if another thread (dead or not) has ownership. So when the Viewers is re-started, the first view won't be able to use the gc. The change attached (against rev 13153) corrects this." 2012-09-27 08:34 robert * From Thomas Hogarth, "Apple have decided in their eternal wisdom to do away with separate depth and stencil buffers on iOS from version 5 and above. Attached are changes to GraphicsWindowIOS.mm to support setting up the new buffer type when compiling for iOS5, also attached is a small change to FrameBufferObject.cpp to report support for packed depth stencil via the GL_OES_packed_depth_stencil extension. For anyone reading this you can attach a packed depth stencil to your FBO like so _rttCamera->attach( osg::Camera::PACKED_DEPTH_STENCIL_BUFFER, GL_DEPTH24_STENCIL8_EXT ); Luckily GL_DEPTH24_STENCIL8_EXT happens to have the same value as iOSs GL_DEPTH24_STENCIL8_OES" 2012-09-26 08:42 robert * From Paul Martz, "This change to include/osg/GL correctly includes the OpenGL header on OSX 10.7 when building OSG trunk for GL3. It also adds some CPP defines for compatibility." 2012-09-25 11:04 robert * Changed dispatch to virtual 2012-09-24 10:10 robert * From Frederic Bouvier, "fix PNG write for images with bits per components different than 8 that was hard coded." 2012-09-20 14:06 robert * From Aurelien Albert, "In the DXF plugin, DXF layers are decoded and each layer is added in a separate group, which is very usefull to retrieve a layer or display a list of all layers in the aplication. But the layers are not always children of the "model root" node : there can be a matrix transform between "model root" and "layers parent", so I've added the name "Layers" on the node which contains all layers to easily retrieve the layers groups from application code." 2012-09-20 14:03 robert * From Luc Frauciel, Added sRGB FrameBuffer string 2012-09-20 11:27 robert * From Vladimir Cheaev, " I worked with a osg::Constraint and found strange part of code: class OSGMANIPULATOR_EXPORT Constraint : public osg::Referenced { public: ... virtual bool constrain(ScaleUniformCommand& command) const { return constrain((MotionCommand&)command); } virtual bool constrain(const Rotate3DCommand& command) { return constrain((MotionCommand&)command); } ... If i use osgManipulator::Rotate3DCommand then method Rotate3DCommand::accept(const Constraint& constraint) calls Constraint::constrain(MotionCommand&) instead Constraint:: constrain(const Rotate3DCommand&). If you replace virtual bool constrain(const Rotate3DCommand& command) { return constrain((MotionCommand&)command); } on to virtual bool constrain(Rotate3DCommand& command) const { return constrain((MotionCommand&)command); } then all works correctly. " 2012-09-20 11:18 robert * From Farshid Lashkari, Added GLBeginEndAdapter::reset(), and _overallNormalAssigned, _overallColorAssigned flags to avoid the GLBeginEndAdapter adapter setting colour and normals when none has been assigned. 2012-09-20 11:16 robert * From Ulrich Hertlein, "attached is a patch to src/osgViewer/CMakeLists.txt that inverts the logic of when to use Cocoa and when to use the old Carbon interface for the windowing system. The old code had to be modified for every new OS X release to default to Cocoa. The new code uses Carbon for <= OS X 10.4 and Cocoa on everything else." 2012-09-20 11:14 robert * Added ReadQueue::size() method to help with debugging. 2012-09-12 16:35 robert * Added handling of directory names in osgimagesequence commandline. From Stephan Huber, added support for controlling the ImageSequence seek position via mouse x position, toggled on/off via 'i' key. 2012-09-12 16:02 robert * Added osgDB::getSortedDirectoryContents and osgDB::FileNameComparator to help with sorting directory contents into alphabetic and numerical order. 2012-09-12 11:09 robert * Converted sorting of directory contents across to use the new osgDB::FileNameComparator and osgDB::getSortedDirectoryContents() 2012-09-10 08:24 robert * Updated version after 3.1.3 dev release 2012-09-07 17:04 robert * Updated ChangeLog for 3.1.3 dev release 2012-09-07 14:55 robert * From Wojciech Lewandowski, "With current trunk I had an error while compiling osg/Image.cpp for IOS simulator / GLES2. Symbol GL_RGBA16 was missing. Adding #define GL_RGBA16 0x805B to Image header solves the problem. " 2012-09-07 09:31 robert * Added setting of the input range of the event state based on the master cameras viewport. 2012-09-07 08:33 robert * Added check so not intialization is down when you select the current camera manipulator 2012-09-06 13:53 robert * From Piotr Domagalski, "I've added reading of node names ('DEF' element) to the VRML reading plugin. The changes were based on trunk's version of the plugin." 2012-09-06 13:48 robert * From Piotr Domagalski, "I've rewritten some bits of the STL plugin in order to support ASCII STL files with multiple named solids (reading and writing). The names are also used as OSG nodes names. - Also, a 'dontSaveNormals' was added. It allows to ignore normals when writing an STL file. For example, it is useful for me when writing an STL file for CFD simulations. - Some comments and code formatting were improved (to be consistent with the formatting already used in the plugin). - With 'separateFiles' option files are now named fooX.stl instead of foo.stlX The changes have been tested on various STL, both ASCII and binary found on the net. The change was based on the trunk branch." From Robert Osfield, changed assert in Piotr's code to a runtime check warning report. 2012-09-06 10:52 robert * From Piotr Domagalski, "Currently, code using OpenSceneGraph doesn't build with clang due to the way __sync_bool_compare_and_swap() is used in OpenThreads/Atomic header file. I tested it with clang 3.1 and it seems that clang is enforcing the use of the same type for all parameters in this builtin. Looking at the function declaration [1] bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...) it seems to be doing the right thing: here the same type is used for *ptr, oldval and newval. [1] http://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html#g_t_005f_005fsync-Builtins " 2012-09-06 10:32 robert * From Fredric Bouvier, fix to CMake build selection of FLTK 2012-09-05 21:03 robert * From Colin McDonald and Robert Osfield, converted Traits::sharedContext from GraphicsContext* to osg:observer_ptr to prevent dangling pointer issues. 2012-09-05 13:51 robert * Fixed inappropriate comment 2012-09-05 13:48 robert * Moved the OSG_INIT_SINGLETON_PROXY macro into include/osg/Object to make it more generally useful and added it's usage into the RenderBinPrototypeList initialization. 2012-09-05 10:27 robert * From Thomas Hogarth, "I submitted a change for the IOS CMake system a few weeks back which hasn't made it into the trunk. I've just made the modifications again against the latest trunk and have attached the file It basically accounts for the fact that XCode has changed it's default install location. " 2012-09-05 10:24 robert * From Andreas Ekstrand, The attached ESRIShape.cpp contains fixes for comparing calculated byte sizes with the content length from the record header. According to the ESRI Shape documentation (http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf), the content length is specified in 16 bit words, which is why I have multiplied it by 2 when comparing to byte sizes. Note that the comparison in line 813 is made with a fix number of 16-bit words so it hasn't been changed. This fixes problems with PolygonZ records where the previous code was reading past the end of the record since it thought it had M values even if it didn't. I suspect the problem that James McGlone had back in 2006 was the same but reversed, when he tried to simply comment out the check, which was a (correctly) refused submission."" 2012-09-05 10:19 robert * From Nico Kruithof, "There is a small typo in the ShapeDrawable code for a sphere. There was a gl.Begin(GL_QUAD_STRIP) that was never closed, nor used. " 2012-09-05 09:30 robert * Updated SO version number to avoid collision with new additions to serializers 2012-09-05 09:08 robert * Added GL_RGBA8 and GL_RGBA16 entries to the Image::computePixelFormat() and improved he readability of the method by inserting line spacing. 2012-09-05 08:48 robert * From Ulrich Hertlein, "fixes a typo and adds support for OS X 10.8" 2012-09-05 08:42 robert * Added deprecated note to indices entry. 2012-09-04 08:21 robert * From Brad Christiansen, changed OSG_INFO to OSG_DEBUG to quieten down volume of messages in INFO 2012-09-03 15:19 robert * From Brad Christiansen, "fix for the NVTTImageProcessor. When the code was updated in revision 12912 a couple of typos where made. These cause a crash when compressing transparent images and mangled colours when compressing rgb images. " 2012-09-03 09:08 robert * Adjusted the #define's to help GLES2 build 2012-09-03 08:30 robert * From Lilin Xiong, " there is a small bug in osgDB::readNodeFiles(std::vector& fileList,const Options* options) in file ReadFile.cpp line 85: osg::Node *node = osgDB::readNodeFile( *itr , Registry::instance()->getOptions() ); It should be: osg::Node *node = osgDB::readNodeFile( *itr , options );" 2012-08-31 16:00 robert * Added a fix for a multi-threading bug that occured when TerrainTiles were accessed via the Terrain::_updateTerrainTileSet that were being deleted at the same time by the DatabasePager thread. 2012-08-29 16:48 robert * From Wang Rui, "This patch fixes a problem of the osg::Program serializers that can't save/load GeometryInputType data correctly. The bug is initially found by John Kelso." 2012-08-24 15:05 robert * From Johannes Scholz, fix for writing out of hexidecimal numbers 2012-08-23 15:06 robert * Fixed bug in GLBufferObjectSet::discardAllDeletedGLBufferObjects() and GLBufferObjectSet::flushDeletedGLBufferObjects(double currentTime, double& availableTime) where the NumberActiveGLBufferObjects was errneously being incremented by numDiscarded. M osg/BufferObject.cpp 2012-08-22 16:39 robert * Fixed typo 2012-08-21 09:45 robert * Added check against the Camera NodeMask to decide whether it's appropriate to test for events on that camera. 2012-08-15 12:40 robert * Added ShadowSettings::s/getMaximumShadowMapDistance(double) property, usage of these property in ViewDependentShadowMap, and setting of it with --max-shadow-distance in the osgshadow example. 2012-08-14 20:15 robert * Added a mutex to protect the removal and addition of Uniform and Program to StateSet to avoid parents being invalidated when multi-threading. 2012-08-03 16:14 robert * Introduced --near-far-mode into osgshadow and ShadowSettings::setComputeNearFarModeOverride(..) to allow user control of how the cull traversal is optimized for computing the depth range of the shadow map. 2012-08-03 15:23 robert * Removed the erronous creation of a local ShadowSettings object 2012-07-24 09:05 robert * Added FireGL to prefernce list for use glGenerateMipMap 2012-07-23 08:15 robert * Fixed build 2012-07-12 16:41 robert * Introduced Texture::Extensions::s/getPreferGenerateMipmapSGISForPowerOfTwo() flag that defaults to false for Radeon, true elsewhere. This is used to workaround mipmapping bugs with ATI/AMD cards. 2012-07-11 14:36 robert * Fixed indentation 2012-07-11 08:39 robert * Fixed parameter default value to avoid warning 2012-07-10 16:20 robert * Replaced use of now deprecated methods. 2012-07-10 16:11 robert * Enabled the use the getReceivesShadowTraversalMask(). 2012-07-10 16:11 robert * Changed settings of masks to use ShadowSettings. 2012-07-10 15:50 robert * Moved mask settings into ShadowSettings 2012-07-09 17:49 robert * Changed updateCamera(Camera*) to updateCamera(Camera&) to make it clear that a valid Camera object should be passed in. 2012-07-09 17:32 robert * From Riccardo Corsi, introduced CameraManipulator::updateCamera() method that allows more Camera properties to be controlled by the CameraManipulator. 2012-06-25 16:31 robert * Refactored the way that the static Scene cache is managed by moving all the functionality into a SceneSingleton 2012-06-22 16:21 robert * Restructed the way that the global notify variables are initialized to avoid problems with multi-threaded initialization of these variables. 2012-06-16 09:08 robert * Fixed spelling of FileNameComparator 2012-06-15 09:04 robert * Moved the frame() event into the event traversal after then events and their state have been accumulated. 2012-06-12 20:15 robert * Added FileNameComparator to sort the filenames in an ImageSequence into alphanumerical order so that it can handle the numerical ordering found in screenshot numbered sets of files 2012-06-12 18:29 robert * Enabled 6 ImageThreads in the ImagePager 2012-06-12 10:31 robert * Commented out the disabling of use of PBO's in ImageStream, and disabled the use ClientStoreHint in Present3D. 2012-06-11 19:54 robert * Added support for setting the paging_mode property to PRE_LOAD_ALL_IMAGES, PAGE_AND_RETAIN_IMAGES or PAGE_AND_DICARD_IMAGE for osg::ImageStream, with PAGE_AND_DICARD_IMAGE set as the default. 2012-06-08 10:26 robert * Added ImageStream support to and tags in .p3d 2012-06-08 04:18 robert * Added osg::ImageSequence support into osgPresentation::SlideShowConstructor and the associated tag in .p3d. 2012-06-07 10:08 robert * Added --fps support 2012-05-31 14:45 robert * Added typdef for Win32 2012-05-25 16:07 robert * From Wang Rui, "A very small but maybe fatal problem was found when I saved models with shader and uniforms (with new double types support) to osgb format and tried to read it again. The application will crash here. And the serializer file should be slightly changed to fix it. Please replace the original file in osgWrappers/serializers/osg/Uniform.cpp." 2012-05-25 15:32 robert * Added Dragger::get/setActivationMouseButtonMask(uint). 2012-05-25 08:56 robert * From Jaap Glas, "Added a default parameter to the following constructor in TabPlaneDragger and TabPlaneDragger.cpp: TabPlaneDragger(float handleScaleFactor=20.0f); The reason for this is that the default OSG tab sizes are way bigger than those we used in our application so far. And since handleScaleFactor_ is already a (constant) class member, I see no objection against making it user defined." 2012-05-24 18:15 robert * From Jaap Gas, added missing break, and missing removeDraggerCallback. 2012-05-21 09:12 robert * Removed -ftree-vectorize from OSX 10.7 build to avoid warning when building with clang. 2012-05-02 14:13 robert * Removed trailing spaces 2012-05-02 13:58 robert * Fixed for including cmath before osg/Math. 2012-04-27 09:43 robert * Added using base_class::set to the Matrix*Template class to enable the set() method from the base class to be used. 2012-04-26 10:07 robert * From Christophe Herreman, Added viewer.setCameraManipulator( keyswitchManipulator.get() ) to fix problem with master Camera not being updated 2012-04-20 10:01 robert * From Mathias Froehlich,"Attached is a change to the ac3d model loader as of rev 11498, that uses indexed draws instead of plain array draws to save some amount of main memory. Draw performance does not change with the nvidia binary blob as well as with the open source drivers." 2012-04-20 09:53 robert * From John Kaniarz, "Here's a patch to add new extensions for tessellation shaders to the GLSL plugin." "I went with .tctrl and .teval for the shader extensions." 2012-04-20 09:40 robert * Ran dos2unx on file 2012-04-20 09:38 robert * From John Kaniarz, "Here is an example of using tessellation shaders in osg. With permission from the author, I adapted it from this tutorial: http://prideout.net/blog/?p=48" 2012-04-19 14:58 robert * Restructed how the GL_SAMPLER_* #define's are placed to avoid build problems under GLES. 2012-04-19 14:34 robert * Changed #ifdef __IPHONE_4_0 to #if defined(__IPHONE_4_0) to fix error that Clang compile warning highlighted 2012-04-19 13:18 robert * Fixed build with OSG_USE_REF_PTR_IMPLICIT_OUTPUT set to OFF. 2012-04-19 10:27 robert * From David Callu, "Here the fix for Matrix{2,3,4}x{2,3,4}{fd} defined in Uniform header. My previous patch for Atomic Counter Uniform provide new template implementation of Matrix{2,3,4}x{2,3,4}{fd}. This new implementation use Column-Major Matrix. Original code define matrix as Row-Major matrix like other Matrix in OSG, and my matrix implementation break compatibility with previous code. For example osg_normalMatrix define in osg::State report by Roland Hill. Thanks to Paul Martz to spot me when the bug appear." 2012-04-19 10:10 robert * Added missing getUniformBlocks implmentation 2012-04-19 09:50 robert * From Jorge Izquierdo Ciges, "Mostly small changes to add more compile options, and shared linking (still testing that capability, but this enables on a compile basis if the user wants). Robert, when you give the Ok I'll update/rewrite the Android section in the old/new wiki you'll say where is better. Mostly to be clear for the future users what options can configure and what are their purpose." 2012-04-18 10:16 robert * Refactored the handling of GLES adaptations of the 1,2,3,4 internal formats and added handling of GL_RGB8_OES and GL_RGBA8_OES. 2012-04-18 09:56 robert * From Mathias Froehlich, "Attached is a change to the slow path geometry dispatch tables that allows the use of 3 component float color vectors." 2012-04-18 09:51 robert * From Martin Naylor, "I have been experiencing a crash in the example osgtexture2D. Not sure why my system seems to be so sensitive to these problems. But attached is a fix which seems to stabilise the example. Note: it only seems to crash intermittently when spinning the object with your mouse. So I assume this is a threading issue because of the data variance missing in some of the text node setups in the example. " 2012-04-18 09:50 robert * Updated version number 2012-04-06 11:29 robert * From Martin Naylor, "Please find attached a fix for the STD library(tested under Windowsx64 VS2008) when atomiccounter is found but not used." 2012-04-06 10:42 robert * From Ulrich Hertlein, Fix for MatrixTemplate compile errors 2012-04-05 13:53 robert * From Wang Rui, "I'd like to submit the changes that will put ObjectProperty and ObjectMark variables into the InputStream/OutputStream class instead of static ones. This should avoid the threading problem and won't repeatedly reallocate memory for the properties. Some of the wrappers will be slightly modified to use the property variable stored in the InputStream/OutputStream as well." 2012-03-30 17:08 robert * Update AUTHORS for release 2012-03-30 16:58 robert * Updated ChangeLog for dev release 2012-03-30 10:10 robert * Added check to avoid accessing pointer past the end of the string. 2012-03-29 15:08 robert * From Magnus Kessler, typo and documentation fixes 2012-03-29 14:58 robert * From Cedric Pinson, "I Updated the ply plugin to support alpha color in files. Plus I updated it to use by default an alpha of 1.0 instead of 0 when no alpha is specified. Last changes is to divide byte color by 255.0 instead of 256.0." 2012-03-29 09:57 robert * From Magnus Kessler, "remove unecessary conversion from float in double precision method" 2012-03-29 09:43 robert * From David Callu, "Here an update of osg::Uniform : - add non square matrix - add double - add all uniform type available in OpenGL 4.2 - backward compatibility for Matrixd to set/get an float uniform matrix - update of IVE / Wrapper ReadWriter implementation of AtomicCounterBuffer based on BufferIndexBinding add example that use AtomicCounterBuffer and show rendering order of fragments, original idea from geeks3d.com." 2012-03-29 08:27 robert * Added int packing parameter to Image::readPixels(..) 2012-03-23 16:09 robert * Removed trailing spaces 2012-03-23 11:32 robert * Updated ChangeLog and AUTHORS for 3.1.2 dev release 2012-03-23 11:20 robert * Fixed potential memory leak 2012-03-23 11:16 robert * From Luc Frauciel, "I've encoutered a nasty group of dae which are incompatible with dae plugins (and probably collada schema ) in 4 different ways : 1) they use direct link to texture -> this is already handle by current plugin : OK 2) they defined colors with only 3 color components -> it leads to a crash when trying to acces to the fourth component I fixed that 3) they contain empty primitive lists -> reading is ok, but osgviewer crashes when trying to display the geometries The reason is that osg assume that DrawElementsare never empty (blunt acces to DrawElements.front() in PrimitiveSet.cpp) I corrected this (on the plugin side), but I wonder : Is it the responsability of plugins to create non empty DrawElements, or of osg core not to crash when they occur ? If the responsability is on the osg core side, I can submit a patch to PrimitiveSet.cpp regarding that aspect. 4) they use a material binding scheme not supported by the plugin ->I've implemented a mechanism to handle this binding scheme You will also find in the patch an example of these evil dae and comments on the offending elements. They seems to be produced by ComputaMaps (www.computamaps.com) They load well in Google Earth " 2012-03-23 10:24 robert * From Ulrich Hertlein, "as discussed on osg-users there is an issue with clang++ on OS X and iOS that results in the following error: Users/stephan/Documents/Projekte/cefix/cefix/ios/../../libs/ios/include/OpenThreads/Atomic:244:48: error: cannot initialize a parameter of type 'void *' with an lvalue of type 'const void *const' return __sync_bool_compare_and_swap(&_ptr, ptrOld, ptrNew); This can be solved by a cast to '(void*)ptrOld'. This should be benign since both 'ptrOld' and 'ptrNew' are only read and the cast is in fact in place for all other implementations as well. On OS X the cast compiles cleanly on both g++ (i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1) and clang++ (Apple clang version 3.1 (tags/Apple/clang-318.0.54)). " 2012-03-23 10:21 robert * As per Ulrich Hertlrein's suggestion, changed APPLE_PLATFORM_SDK_CANONICAL_NAME to OSG_OSX_SDK_NAME. 2012-03-23 10:18 robert * From Erik den Dekker, " IF(${CMAKE_OSX_SYSROOT} STREQUAL "/Developer/SDKs/MacOSX10.7.sdk") ... ELSEIF(${CMAKE_OSX_SYSROOT} STREQUAL "/Developer/SDKs/MacOSX10.5.sdk" OR ${CMAKE_OSX_SYSROOT} STREQUAL "/Developer/SDKs/MacOSX10.6.sdk") ... ELSEIF(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) ... ELSE() ... ENDIF() Which is fragile because XCode could be installed into another directory than /Developer. (In case XCode is not installed into the /Developer directory CMake can automatically resolve the path via command line utility ${CMAKE_XCODE_SELECT} --print-path) This issue bites me currently because the latest XCode (Version 4.3.1 - 4E1019) installed through the Mac App Store is per default installed in "/Applications/Xcode.app/Contents/Developer" and hence the 10.7 SDK in "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk" Searching the web to find the proper way to determine the version of the Platform SDK programmatically, I found no standard way. I came up with 2 options myself: 1) Parse the path string to extract the version number 2) Read a value from the SDKSettings.plist found in the root of each SDK (e.g., "defaults read ${CMAKE_OSX_ROOT}/SDKSettings.plist CanonicalName" gives "macosx10.7") I implemented the last option and verified that at least the following Mac OS SDKs (10.3.9, 10.4, 10.5, 10.6, 10.7) support this method. It also looks reasonably future proof. An additional benefit of this method is that it also seems to be compatible with iOS and iOS Simulator SDKs (at least for version 5.1, but I assume this also applies to older versions). This is interesting because the CMake infrastructure to build OSG for iOS currently still contains similar hard-coded paths and even requires you to manually change the cmake file to build for another iOS SDK version. In the near future I hope to address these issues, but I haven't been able to try this yet." 2012-03-21 17:36 robert * Ran script to remove trailing spaces and tabs 2012-03-21 16:02 robert * For all OSG_GL*_FEATURE #defines changed 1's to true and 0's to false. 2012-03-21 14:08 robert * From David Callu, "just a typo fix that break the compilation under windows" 2012-03-21 11:36 robert * Added Traits::getContextVersion(uint,uint) 2012-03-21 11:26 robert * Updated version number 2012-03-20 12:01 robert * Removed inappropriate warning 2012-03-20 11:18 robert * Replaced && with & to address error in handling bitmask 2012-03-19 09:49 robert * From Lukasz Izdebski, Added StencilTwoSided support to ive plugin 2012-03-16 13:22 robert * Fixed the order of setting of CenterMode 2012-03-14 16:42 robert * From Wang Rui, "I'd like to submit a slightly modified version of the ViewDependentShadowMap. It includes two fixes: one is in ComputeLightSpaceBounds::update(), which changes the statement "if (v.z()<0.0f)" to "if (v.z()<-1.0f)" as clipping space coordinates should be transformed to [-1, 1] and should not be discarded unless they go beyond the range; the other is in ViewDependentShadowMap::computeShadowCameraSettings(), in which I changed the line: viewMatrix.makeLookAt(frustum.center+positionedLight.lightDir*zMin, frustum.center, lightUp); to viewMatrix.makeLookAt(frustum.center+positionedLight.lightDir*zMin, frustum.center+positionedLight.lightDir*zMax, lightUp); The reason I've done such a change is that for huge scenes like a city on the earth, the values of frustum.center can be extremely large, but zMin may be very small (e.g., when model depth in light coords equals the model radius by chance) in some cases so the result of (eye - center) might jiggle while moving around the shadow scene and thus make the shadow map suddenly disappear some time. The small change here also considers the effect of zMax to avoid such problems. " 2012-03-12 14:22 robert * Moved static initializers into global scope to prevent problems with using exit(). 2012-03-11 22:05 cedricpinson * Changed osgAnimation::StackedTransform::update(t). It can now be used for custom usage 2012-03-09 13:16 robert * Updated ChangeLog and AUTHORS file for 3.1.1 dev release 2012-03-09 10:20 robert * 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. " 2012-03-08 16:33 robert * Updated version number for 3.1.1 dev release 2012-03-08 16:05 robert * 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." 2012-03-07 09:32 robert * 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 ." 2012-03-06 10:35 robert * 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. " 2012-03-06 10:33 robert * 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." 2012-03-06 10:29 robert * 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" 2012-03-06 10:08 robert * 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. " 2012-03-06 10:06 robert * Added RotateCylinderDragger and RotateSphereDragger to list of manipulators for testing purposes 2012-03-05 14:17 robert * From Paul Martz, "Just a minor update and typo fix. " 2012-03-01 11:33 robert * 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 " 2012-03-01 11:03 robert * 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" 2012-03-01 10:38 robert * From David Callu, "I found a bug in osg::Program. in osg::Program::PerContextProgram : typedef std::vector LastAppliedUniformList; should be typedef std::map 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." 2012-03-01 10:14 robert * Removed redudent spaces at ends of lines 2012-02-29 14:01 robert * Updated ChangeLog and AUTHORS for dev release 2012-02-29 10:22 robert * Improved the handling of endian swap of osg::Array 2012-02-29 10:22 robert * 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." 2012-02-28 12:03 robert * 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. " 2012-02-28 11:37 robert * Added build problem with using float Matrix. 2012-02-28 10:21 robert * From Thomas Hogarth, build fix for IOS build 2012-02-27 09:50 robert * Added fin.imbue(std::locale::classic()); to avoid problems with parsing of .obj files 2012-02-24 21:07 robert * 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. 2012-02-24 12:15 robert * Added support for using glGenerateMipmap instead of GL_GENERATE_MIPMAP_SGIS on GLES2 2012-02-24 11:43 robert * 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. 2012-02-24 10:56 robert * Cleaned up CMake warning 2012-02-23 17:51 robert * 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 2012-02-23 15:55 robert * 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 :-) " 2012-02-22 10:50 robert * From Sergey Polischuk, "In and Out control points were computed incorrectly for some animation channels with cubic bezier interpolation" 2012-02-22 10:46 robert * 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 > 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. " 2012-02-21 17:20 robert * From Paul Martz, "The attached fixes a few issues that are present when ref_ptr implicit casting is disabled." 2012-02-21 11:30 robert * 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." 2012-02-21 11:13 robert * From Chris Denham, "ReaderWriter3DS smoothing group handling corrections" 2012-02-21 10:42 robert * Fixed warnings 2012-02-21 10:38 robert * 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) 2012-02-20 16:00 robert * 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." 2012-02-20 12:36 robert * From Alexander Sinditskiy, "Fix loading small monochrome bmp images" 2012-02-20 12:33 robert * 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'." 2012-02-20 12:23 robert * 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." 2012-02-20 12:18 robert * From Riccardo Corsi, Added passing of EventVisitor pointer to event handlers. 2012-02-20 12:12 robert * 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." 2012-02-20 12:03 robert * 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. 2012-02-17 16:51 robert * From Kim Bale, "The application description for osg2cpp was cut and pasted from osgconv and not changed. I've added a more relevant description." 2012-02-17 16:45 robert * 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. " 2012-02-17 16:13 robert * Added usage of OSG_CPP_EXCEPTIONS_AVAILABLE for plugins that use std::exceptions. 2012-02-10 17:24 robert * 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)" 2012-02-10 17:20 robert * 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." 2012-02-10 16:12 robert * From Domenico Mangieri, "Implementation for MoveRight and MoveUp methods in FirstPersonManipulator is missing. I'm using the manipulator, so I added it." 2012-02-10 15:57 robert * From Stephan Huber, attached you'll find a compile fix for the new introduced rowlength-feature on IOS/OpenGL ES builds 2012-02-09 18:10 robert * 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). " 2012-02-09 17:52 robert * 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." 2012-02-09 17:45 robert * Updated ChangeLog, AUTHORS and Contriburos.cpp files 2012-02-09 16:42 robert * 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. " 2012-02-09 15:54 robert * 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); } " 2012-02-09 15:51 robert * From Paul Martz, a simple GL3 example 2012-02-09 15:08 robert * 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." 2012-02-09 14:40 robert * From Colin McDonald, fix for Solaris build. 2012-02-09 14:33 robert * 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)" 2012-02-09 14:28 robert * 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. 2012-02-09 14:11 robert * 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); }" 2012-02-09 12:50 robert * 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. 2012-02-08 17:12 robert * 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." 2012-02-08 10:50 robert * From Paul Martz, "This change clarifies the description for OSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE." 2012-02-08 10:06 robert * 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." 2012-02-08 09:34 robert * 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." 2012-02-07 16:14 robert * Fixed build issues when compile with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set to OFF. 2012-02-07 12:37 robert * From Alexander Irion, "Added missing format GL_ALPHA to Image::computeFormatDataType()." 2012-02-07 12:02 robert * 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." 2012-02-07 11:43 robert * From Nico Kruithof, "I found that Collada wasn't found correctly with visual studio 2010." 2012-02-07 11:41 robert * From Marius Kintel, "GraphicsWindowQt::WindowData no longer requires the parent widget of a graphics window to be of type GLWidget." 2012-02-07 11:29 robert * 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." 2012-02-07 11:21 robert * 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." 2012-02-07 10:57 robert * 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. " 2012-02-07 10:51 robert * 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." 2012-02-07 10:40 robert * 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)); 2012-02-07 10:33 robert * 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). " 2012-02-06 13:45 robert * 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." 2012-02-06 13:40 robert * 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." 2012-02-06 13:35 robert * 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. " 2012-02-06 13:29 robert * 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." 2012-02-06 13:27 robert * 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." 2012-02-06 12:42 robert * 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"." 2012-02-06 12:38 robert * 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. " 2012-02-06 12:36 robert * 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 " 2012-02-06 12:29 robert * Fixed indendation and line endings 2012-02-06 12:06 robert * 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." 2012-02-06 12:05 robert * Fixed silly compiler warning that was being produced in error. 2012-02-06 11:17 robert * From Alexander Sinditskiy, "looks like GlyphGeometries _glyphGeometries; should be removed because Glyph3D have the same named local variable." 2012-02-03 15:15 robert * 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" 2012-02-03 14:25 robert * 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" 2012-02-03 11:10 robert * Improved handling of archives 2012-02-03 11:09 robert * From Terry Welsh, improved support for handling archives 2012-02-01 17:42 robert * 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. " 2012-02-01 17:38 robert * 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 " 2012-02-01 17:16 robert * Renamed selection to transform to make it clear to understand what is being done. 2012-02-01 17:10 robert * Added example usage of teh new DraggerTransforCallback's HandleCommandMask which is tied to the TabPlaneDragger example. 2012-02-01 13:55 robert * Added DraggerTransformCallback::HandleCommandMask to DraggerTransformCallback to allow applications to select which commands they want the dragger callback to respond to why updating the transform. 2012-01-31 10:56 robert * 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. 2012-01-30 12:26 robert * Added support for Scale1DDragger, Scale2DDragger and TranslatePlaneDragger to --dragger command line option 2012-01-27 09:49 robert * From Kristofer Tingdahl, Added missing core OSG libraries. 2012-01-26 18:03 robert * From Stephan Huber, "a recent submission added a 10.6-feature to GraphicsWindowCocoa. I added some ifdefs around, so it compiles again with 10.5 SDK" 2012-01-26 14:26 robert * Quietend down debug message 2012-01-26 13:08 robert * From J.P. Delport, "when switching from windowed mode to fullscreen (with the 'f' key) in X11, no RESIZE event is generated. This confuses handlers that perform some processing on the RESIZE event, e.g. the InteractiveImageHandler. To reproduce the problem I attach a minimally modified osgviewer that just prints resize events. You can check what's printed in the console when you go fullscreen and windowed a few times. The attached version of GraphicsWindowX11 fixes the problem for me, but I'm not sure this is the right approach. Maybe you can see a fix for the problem clearer. The only place where the RESIZE event is generated in GraphicsWindowX11 is in CheckEvents and it then depends on the ConfigureNotify message. For some reason, either ConfigureNotify is not sent when going fullscreen or the traits already reflect the latest window size." 2012-01-25 17:37 robert * From J.P. Delport, "this fall-through had me scratching my head for a while... It made InteractiveImageHandler eat keypresses outside its image." 2012-01-25 17:35 robert * From J.P. Delport, "GraphicsWindowX11 typo, I believe X/Y's should match." 2012-01-25 17:31 robert * From Luc Frauciel, "Ati FirePro is as much crippled as other Ati drivers. This patch add "FirePro" to the black list of renderers in State.cpp / initializeExtensionProcs It allows to avoid an OpenGL error on Viewer initialization. Tested on FirePro M7740 / Windows7 x64 Driver 8.85.7.2" 2012-01-25 15:38 robert * Changed the KeyEventToggleTexturing to 'e' to avoid conflict with 't' used for transparency. 2012-01-24 17:57 robert * Made the cursor state protected. 2012-01-24 17:49 robert * From Tobias Ottenweller, "this is a fix for the problem where all input freezes for a quarter second when calling requestWarpPointer under Mac OS X (described here: http://forum.openscenegraph.org/viewtopic.php?t=3933 ). I used the latest version available via subversion. My fix is using some API only available on 10.4 and later. I used some preprocessor statements to gain compatibility with 10.3 and earlier using (now) deprecated API. Only tested on OS X Lion (10.7). Please do some testing as well since I'm fairly new to OpenSceneGraph. Someone should also test the code for 10.3 and earlier." 2012-01-24 17:47 robert * Fixed indentation and spaces at ends of lines. 2012-01-24 17:40 robert * From Paulk Martz, "Looks like the ClipNode::setReferenceFrame comment block came from LightSource. Fixing the comment block to refer to ClipNode instead of light source." 2012-01-24 17:38 robert * Chris Denham, fixed type of parameters to ensure they are longs where appropriate. 2012-01-24 17:30 robert * Moved setEndBarrierOperation(..) implementation into .cpp and added support for stoppig and starting threading if required. 2012-01-24 17:21 robert * From Paul Martz, Added ViewerBase::s/getEndBarrierOperation(..) method to allow user control of how viewers are sync'd. 2012-01-24 15:44 robert * Fixed compile error 2012-01-24 14:34 robert * Added support for using GL_UNPACK_ROW_LENGTH in conjunction with texture's + osg::Image via new RowLength parameter in osg::Image. To support this Image::setData(..) now has a new optional rowLength parameter which defaults to 0, which provides the original behaviour, Image::setRowLength(int) and int Image::getRowLength() are also provided. With the introduction of RowLength support in osg::Image it is now possible to create a sub image where the t size of the image are smaller than the row length, useful for when you have a large image on the CPU and which to use a small portion of it on the GPU. However, when these sub images are created the data within the image is no longer contiguous so data access can no longer assume that all the data is in one block. The new method Image::isDataContiguous() enables the user to check whether the data is contiguous, and if not one can either access the data row by row using Image::data(column,row,image) accessor, or use the new Image::DataIterator for stepping through each block on memory assocatied with the image. To support the possibility of non contiguous osg::Image usage of image objects has had to be updated to check DataContiguous and handle the case or use access via the DataIerator or by row by row. To achieve this a relatively large number of files has had to be modified, in particular the texture classes and image plugins that doing writing. 2012-01-24 14:27 robert * Refactored the click_to_run implementation to avoid bug associated with running the first click_to_run entry in a layer when subsequent click to run's are called. 2012-01-23 18:48 robert * Changed float QuicktimeImageStream::getCurrentTime() to double QuicktimeImageStream::getCurrentTime() to keep it consistent with the type of the virtual function ImageStream::getCurrentTime(), and with this fixing a compile and runtime error. Changed time variables all to use doubles rather than float to be consist with the change to getCurrentTime(). 2012-01-05 14:07 robert * From Alberto Luacus, "The ffmpeg plugin fails to compile with the upcoming libav 0.8 because the required header mathematics.h is not being included explicitly. I have just included it, and verified that this also works with current version 0.7, since the header is also available there." 2012-01-03 15:59 robert * Fixed the return value of SlideEventHandler::selectLayer() so that the 'n' now works correctly. 2012-01-02 16:54 robert * From Farshid Lashkari, "Attached is a simple fix to osg::Sequence that allows it to load properly with the serializer formats (osgt/osgb). The problem was that the internal _nrepsRemain member was not being initialized properly if the number of repeats was equal to the default value of -1. When the number of repeats is explicitly set using setNumRepeats(), _nrepsRemain is set to the same value. However, in the constructor of osg::Sequence, it was not being initialized to the same value as _nreps. This fix simply changes the initial value of _nrepsRemain to the same as _nreps." 2012-01-02 16:38 robert * From Chris Denham, Implementation of write functions in CURL plugin 2011-12-23 17:40 robert * From Paul Martz and David Glenn, "From David Glenn and Paul Martz. This change adds support for the NO_COLOR bit in the Vertex records' flags field. If NO_COLOR is set, and PACKED_COLOR is not set, the code will now properly default to using the face color at those vertices. See the osg-users thread "Open Flight characteristic not reflected in the current OSG" for more info." and "In consultation with David Glenn, it appears we needed to change a second file to correct how OpenFlight handles transparency when vertices have NO_COLOR. " 2011-12-23 17:34 robert * Gunnar Holm, "After upgrading from 2.8.3 to 3.0.1 we experienced a lock in the Mutex functionality when using Terrain::setVerticalScale. This was caused by the following call sequence resulting in a lockup: void Terrain::setVerticalScale(float scale) CALLS dirtyRegisteredTiles(); void Terrain::dirtyRegisteredTiles(int dirtyMask) SETS LOCK OpenThreads::ScopedLock lock(_mutex); and CALLS (on every tile) setDirtyMask(dirtyMask); void TerrainTile::setDirtyMask(int dirtyMask) CALLS _terrain->updateTerrainTileOnNextFrame(this); void Terrain::updateTerrainTileOnNextFrame(TerrainTile* terrainTile) SETS LOCK OpenThreads::ScopedLock lock(_mutex); ******* PROBLEM - since lock has already been set! ******** The suggested fix submitted changes from using Mutex to ReentrantMutex. " 2011-12-23 17:21 robert * From Aurelien Albert, "I made a modification in the Dragger class : You can now set a "intersection mask" and it will be used when looking for intersections. So you can now easily "hide" some objects from manipulators." 2011-12-23 17:16 robert * From Brad Christiansen, "I have added an implementation for set/getVolume in the direct show plug-in." 2011-12-23 17:15 robert * From Glenn Waldron, "Attached is a change to ClusterCullingCallback to make it work properly under an RTT camera with an INHERIT_VIEWPOINT reference frame." 2011-12-23 16:57 robert * From James Turner, "Testing FlightGear with Cocoa osgViewer, encountered some problems with hiding / re-showing the cursor. Attached version fixes this, by tracking the current cursor value, and ensuring we don't nest calls to [NSCursor hide] or [NSCursor unhide]." 2011-12-23 16:29 robert * From Ulrich Hertlein, "attached is a patch for osgPlugins/mdl/MDLReader.cpp that improves its functionality on Unix filesystems. It also includes code cleanups/refactoring." 2011-12-23 16:27 robert * From Brad Christiansen, "Attached are some small changes to the ImageStream interface and the DirectShow and FFMPEG plugins to provide the current time being displayed in the image stream. I don’t have access to an OSX or Linux dev machine to make the changes required to the quick time plugin. This plugin will just default to returning 0." 2011-12-23 16:14 robert * From Ulrich Hertlein, typo fixes 2011-12-23 12:42 robert * Added handling of an empty filename when writing out an image file. 2011-12-19 16:18 robert * Removed inappropriate static usage 2011-12-19 09:37 robert * Moved the createSpotLightImage function into include/osg/ImageUtils 2011-12-19 09:09 robert * Added --num-sm and --parallel-split and --cascaded command line options to set the appriopriate ViewDependentShadowMap settings. 2011-12-13 21:14 robert * Moved osgshaders example across to use the new osgUtil::PerlinNoise example 2011-12-13 21:12 robert * Created new PerlinNoise class from the Noise.h+Noise.cpp code in the osgshaders example. 2011-11-30 19:14 robert * Fixed build under Tiny Core. 2011-11-25 12:48 robert * To fix problems in tight bound computation of the shadow map made the ComputeLightSpaceBounds usage always used when the CastShadowMask is active. Changed the ComputeLightSpaceBounds to use just VIEW_FRUSTUM_CULLING. 2011-11-25 09:24 robert * From Jean-Sebastien Guay, fix for handling texture unit >= 8 and negative LigthNum. 2011-11-22 21:55 robert * Added prelimanary support for parallel split shadow maps into ViewDependentShadowMap. 2011-11-18 08:20 robert * From Trajce Nikolov, "Here is extended version of the osgforest example - technique with geometry shader added, was doing it for a project so I thought might be useful to update the example as well " 2011-11-18 08:15 robert * Fixed indentation 2011-11-17 18:45 robert * Added .get() to fix build 2011-11-11 10:36 robert * Updated built in volume shaders to honour the osg::Matierial setting 2011-11-11 10:25 robert * Enabled blending for the iso surface rendering to enable fade in/fade out of volume. 2011-11-10 15:50 robert * Added handling of osgGA::GUIEventAdapter::getMouseYOrientation() in the orientation of mouse y position. Added updating of properties on both mouse move/drag and keydown. 2011-11-07 14:36 robert * Added a check against OSX 10.6 to enable better selection of when to provide custom cosf etc. definition. This change has been introduced to address recurcsion problems in 10.7 in the ac3d plugin. 2011-11-04 12:50 robert * Implement presentation update feature that reloads the presentation on pressing 'u'. 2011-11-04 12:47 robert * Improved the handling of setStartTick() being called mid app, such as when idirectly called when doing a Viewer::setSceneData(). Improved the setting the the initial event state. 2011-11-04 12:45 robert * Improved handling of resetting of the EventQueue::startTick(). 2011-11-04 12:44 robert * Added removeFromObjectCache method. 2011-11-02 10:57 robert * Add check to filter out the return of FILE_NOT_FOUND from archive results to prevent these from prematurely exiting the Registry::read(..) method bofore it loads plugins to try and load requested file. 2011-11-01 16:13 robert * Replaced the use of PrtScrn with 'm' for taking screenshots, replaced the use of 'm' with 'M' for taking movies. 2011-11-01 13:41 robert * From Stephan Huber, "A recent commit (https://github.com/openscenegraph/osg/commit/41e23f466d0749d0d9db7ca0b0ada996432a1ee1) for GraphicWindowsIOS.mm broke the compilation for OpenGL ES 1.x as GL_DEPTH_COMPONENT32_OES is not defined for 1.x. I added a #define-guard." 2011-11-01 13:36 robert * Added screen capture handler to present3D, with the PrtScn button used for a single frame capture and 'm' for continuous frame capture. The --screenshot filename command line option can be used to configure the name of the screen capture. 2011-11-01 11:08 robert * Added setting of the sampleDensityWhenMovingProperty at the same time as when setting the sampleDensityProperty 2011-11-01 10:30 robert * Fixed the use DCM_SeriesDescription 2011-11-01 10:27 robert * Improved the handling of multiple datasets being read at once, with all the images in a series being group according to Series UID and SeriesDescription and orientation. 2011-10-31 15:29 robert * Adding missing checks against View's Camera and SceneData for any update callbacks that need calling. 2011-10-28 11:00 robert * Changed the notification level to INFO. 2011-10-28 11:00 robert * Changed the setting of Traits::sampleBuffers so that it's set to 1 when DisplaySettings::getMultiSamples() is set to a non zero value. 2011-10-28 10:36 robert * Changed the default for SampleBuffers to be 1 when set. 2011-10-28 09:45 robert * Removed OSX codepath for setting the depth value to 32 as this turned out to be unneccesary. 2011-10-28 09:11 robert * Changed the default depth to 24. 2011-10-27 16:33 robert * Updated volume shaders to use the GL_LIGHT 0 values to control the direction of the light source 2011-10-27 13:11 robert * Reimplement the light direction controls so that they now work correctly with osgViewer::Viewer. Improved the computation of the light direction from non-dimensional mouse coords so that they now project onto a hemisphere making the interaction more intuitive. 2011-10-27 09:24 robert * Added support for ignore returns as white space. 2011-10-27 08:34 robert * Added support for American spelling of swap and add supportOptions(..) documentation for the new options. 2011-10-26 14:25 robert * Added support into the .p3d format for specifying the osgDB::Options::OptionString via the . Added support into .vnc plugin for passing in the keywords "swap", "RGB", "RGBA", "BGR", "BGRA" as OptionString values to allow .p3d presentations to control whether the pixelformat should be swapped or set to a specific format. 2011-10-26 12:48 robert * Added password support into present3D's vnc support via the tag usage : hostname 2011-10-26 12:29 robert * Added password support into osgvnc example and vnc plugin 2011-10-26 09:34 robert * Implement a simply attempt at detecting when the pixel format needs to be swapped. 2011-10-25 15:55 robert * Added support for 32bit depth buffer 2011-10-25 15:31 robert * Added hack of using a 32bit depth buffer default setting for Traits when compiling under Apple. 2011-10-24 13:40 robert * Moved switching off of the cursor till after the slide event handler has had a chance to switch off the scene. 2011-10-24 11:09 robert * Fixed handling of slide with no layers. 2011-10-22 09:02 robert * Fixed build of StreamOperator 2011-10-21 15:39 robert * Fixed handling of Vec3dArray in GLBeginEdnAdapter/ArrayDispatchers. 2011-10-21 11:00 robert * Added support for using negative scale_x, scale_y and scale_z values in the tag to allow presentations to flip the imagery 2011-10-21 10:59 robert * Added flipDepth() method 2011-10-21 09:31 robert * Fixed handling of scale.x, scale.y and scale.z paramters so that all of them now take an effect. 2011-10-20 16:49 robert * Fixed handling of reading/writing of osgVolume::VolumeTile tiles 2011-10-20 16:35 robert * Added support for calling throwException() from InputIterator and added a check for negative string sizes. 2011-10-20 11:50 robert * Added check against build type to avoid the build of the osgviewerWX example with debug build as this fails with unresolved symbols within the internals of WxWidgets. 2011-10-20 10:52 robert * From Ulrich Hertlein, fixed build problem due to cmake_policy CMP0017 being only available from cmake-2.8.4, added guard to prevent build problems 2011-10-20 09:23 robert * Improved handling of recent Cmake versions 2011-10-20 08:59 robert * Fixed typo in command line output, and add an explanation message for when createTexture3D fails to create an osg::Image from a list of input osg::Image. 2011-10-17 15:39 robert * Fixed typo 2011-10-17 14:41 robert * Improvements to the compute near/far 2011-10-17 14:40 robert * Improvements to osgShadow::ViewDependentShadowMap and ShadowSettings 2011-10-17 11:12 robert * Quitened down debug message 2011-10-17 10:25 robert * From Jean-Sebastien Guay, add --mapres size option to ViewDependentShadowMap settings. 2011-10-03 15:57 robert * Add catch for when shadows are enabled between the update and draw traversals. 2011-10-03 15:25 robert * From Jean-Sebastien Guay, changed the border colour for the shadow map to be 1 rather the 0 used for debugging so that areas outside the shadow map default to being unshadowed rather than shadowed. changed the shadow map texture assigment to StateSet so that it doesn't use OVERRIDE, enabling subgraphs to use the same texture unit for other textures if they so required. tidied up indentation. 2011-10-03 14:57 robert * Changed getVertical(..) so it uses the same coord scale as the getGlyph 2011-10-03 14:56 robert * Fixed handling of ShadowSetting LightNum 2011-10-03 10:36 robert * Added Font::getVertical(float& ascender, float& descender) methods. 2011-09-28 11:52 robert * Added catch for NaN vertices that were being generated by osgText, these NaN vertices were causing glu tesselation functions to crash. 2011-09-28 10:54 robert * Added computation of the extents, in light space, of the shadow maps RenderStage contents and use of this to produce a tighter bound light space projection. 2011-09-20 11:46 robert * Added a half second sleep after calling system command when the command is run in the background so that this command has a chance to run and open a window before the calling present3D moves on to the next frame. 2011-09-20 10:59 robert * Added better error reporting and handling when tag contents are not valid. 2011-09-20 10:01 robert * Added handling of tag and "" options. 2011-09-19 10:42 robert * From Ulrich Hertlein, "attached is a patch that cleans up compiler warnings and common functionality." 2011-09-19 10:39 robert * From Wojciech Lewandowski, "There was a bug in reading modifier keys when focus to GraphicsWindowWin32 was restored. Handler of WM_SETFOCUS was reading pressed keys and sending WM_KEYDOWN messages to fill initial keyboard state. But WM_KEYDOWN messages sent had 0 on lParam and adaptKey method computing state of modifier mask was using lParam to find which modifier keys are down. Obviously when lParam was 0 it was not recording proper modifier masks. This patch fixes this code sending proper lParam and also makes sure LEFT_CONTROL will be not confused with RIGHT_CONTROL." 2011-09-19 10:34 robert * From Luc Frauciel, "You'll find attached a new option that allow, when using LOD in USER_DEFINED_CENTER mode to expand the radius of the node by the radius of loaded objets. Motivation ; When using PagedLODs, you don't always know the real size of loaded children, If it occurs that they are out of predefined bounds, picking on the parts that are out of bound will fail They also can be culled out too soon. The problem often occurs with long object (roads). I've modified LOD and ProxyNode to include this option." and later email: "Attached the UNION_OF_BOUNDING_SPHERE_AND_USER_DEFINED version There are impacts on some serializers (dae, osgWrapper). I haven't modified deprecated osg, since it's deprecated" 2011-09-19 10:12 robert * Added removal of [..] from names returned from glGetActiveUniform results to avoid issues with name lookups when the driver add the [..] for uniform arrays. 2011-09-19 09:44 robert * Copya and Paste Anti-Pattern strikes again! Renamed FreeType usage to Revisions to correct previous mistake when copying and modifying the ReaderWriter. 2011-09-14 10:45 robert * Fixed memory leak 2011-09-14 10:22 robert * Added missing forward declaration 2011-09-14 10:02 robert * Added asCamera() methods into osg::Camera and osg::Node 2011-09-14 09:49 robert * From Laurens Voerman, "attached is a zipped OpenSceneGraph\src\osgPlugins\ffmpeg\FFmpegDecoderAudio.cpp It solves a wrong sample format being set for audiostreams type S32 and F32, for the enum AVSampleFormat (in include/avutil/samplefmt.h) doesn't match enum SampleFormat (in include/osg/AudioStream) for anything but SAMPLE_FORMAT_U8 and SAMPLE_FORMAT_S16 " and follow up that address versioning issue "I can find the change, avutil version 50.38.0 introduced a new header file: libavutil/samplefmt.h older versions use libavcodec/avcodec.h with the sampleformats without AV_ an intermideate fix with the FF_API_OLD_SAMPLE_FMT is removed from ffmpeg 0.8.3 so I think this is the correct fix: #if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(50,38,0) #define AV_SAMPLE_FMT_NONE SAMPLE_FMT_NONE #define AV_SAMPLE_FMT_U8 SAMPLE_FMT_U8 #define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16 #define AV_SAMPLE_FMT_S32 SAMPLE_FMT_S32 #define AV_SAMPLE_FMT_FLT SAMPLE_FMT_FLT #define AV_SAMPLE_FMT_DBL SAMPLE_FMT_DBL #define AV_SAMPLE_FMT_NB SAMPLE_FMT_NB #endif " 2011-09-13 13:38 robert * From Morten Hauknes, "I have been using the getLastVisiblePixelCount on pre 3.0 osg. I believe maybe this was a private function that we made public in our side. I use(d) this method to make a simple algorithm to tell how much visible an object was in percent. So with the 3.0 api change we propose the following change: - put OSG_EXPORT on the QueryGeometry class so that we get access to the getNumPixels method. - Create a function called getQueryGeometry that returns a casted _queryGeode->getDrawable(). Or a function called getQueryGeode that returns _queryGeode." 2011-09-13 13:33 robert * From Jean-Sebastien Guay, removed unneccessary BUILD_QT_EXAMPLES cmake option 2011-09-13 11:48 robert * From Sukender, "I just fount that writing double precision values (eg. Vec3dArray for vertices) works with .osg but not .osgt/.osgx. So here is the fix (SVN trunk r12712). I suppose .osgb works as expected on this point and did not change anything. So, as for .osg, if you add "precision 16" (for instance) to the optionString, then you'll get double precision vertices written correctly. " 2011-09-13 11:09 robert * From Robert Milharcic, "This will hopefully fix some issues with osgQt, more precisely with GLWidget event handling. There are at least two current GL context braking events, QEvent::Hide and QEvent::ParentChange. When running in a multithreaded mode they both try to change current GL context in a wrong thread (main GUI thread). The QEvent::ParentChange is also problematic when running in a single threaded model because Qt is going to release current contex then delete it, and then it will create new one, and as a result the osg will continue to render to an invalid deleted context. This changes workaround above problems by deferring execution of the problematic evens. These events has to be enqueued and executed later. The enqueued event processing is currently done right after swap in a swapBuffersImplementation of GraphicsWindowQt while code is running in a render thread by calling QGLWidget handler directly. In principle the deferred events queue should be executed while in GUI thread but I couldn't find any reliable way to do this, that is without risking a deadlock. For now it is assumed, Qt is not going to execute any GUI thread only operations inside the QGLWidget handler." 2011-09-13 10:15 robert * From Farshid Lashkari, " The osgUtil::CullVisitor class will display an OSG_INFO notification when attempting to clamp the projection matrix with invalid near/var values. This usually appears when the scene graph is empty or all objects are culled. I don't think this scenario warrants having this message appear every frame. It makes it very difficult to debug other issues when this notification floods the output window. I'd prefer to have the notification removed, but there might be legitimate cases where you want this displayed. Instead, I just disabled the output if the near/far values are equal to FLT_MAX (their initial values). This should at least prevent the notification for the common case where everything was culled." 2011-09-13 09:59 robert * From Paul Martz, "Here's my proposed change regarding the osg-users post "small feature culling threshold". I've updated the comments and brought the default values into agreement, but didn't bother to add the environment variable support." 2011-09-13 09:53 robert * From Jean-Sebastien Guay, "I added a simple setting in OSG's CMakeLists.txt to be able to disable building anything related to Qt. It just skips the FindPackage(...) for Qt3 and Qt4, so since they are not found nothing related to Qt will be generated by CMake. The default is to build the Qt related stuff, so current behavior is unchanged." 2011-09-13 09:46 robert * From Sukender, "I added a tiny check to avoid an integer divide-by-zero, when image is invalid (ie. all values are 0)." 2011-09-13 09:43 robert * From Sukender, "I added a crash-guard against corrupted 3DS files, having faces indexes out of the range of existing vertices." 2011-09-13 09:21 robert * From Farshild Lashkari, "Attached is a simple patch that avoids the depth write pass in Text::renderWithDelayedDepthWrites if the current osg::State object has GL_DEPTH_TEST disabled." 2011-09-13 09:17 robert * Reverted Paul Idstein warning fix as this was breaking the build 2011-09-12 16:24 robert * From Ulrich Hertlein, Added some error checks and memory cleanup. 2011-09-12 16:20 robert * From Stephan Huber, fixed build for OSX 10.6 and earlier 2011-09-12 16:17 robert * From Johannes Baeuerle, opptimization of ES support of osg/BufferObject 2011-09-12 12:38 robert * From Bjorn Blissing, "Found a minor (probably a copy & paste) bug in ViewerEventHandlers. Line 251: int getKeyEventWindowedResolutionDown() const { return _keyEventWindowedResolutionUp; } Should be replaced with: int getKeyEventWindowedResolutionDown() const { return _keyEventWindowedResolutionDown; }" 2011-09-12 12:26 robert * From Luc Frauciel, "When osgUtil::DelaunayTriangulator triangulate() function ends with no triangle generated, it crashes. This patch fixes that" 2011-09-12 12:14 robert * From Magnus Kessler, documentation fixes 2011-09-12 12:04 robert * Improved the clarity of doxygen comments 2011-09-12 11:51 robert * Fixed typos in the documentation 2011-09-12 11:28 robert * From Cedric Pinson, from three submissions: "Here a patch that correct like the previous assign collada material name to stateset." and "I changed how the collada reader set object name in osg. Current implementation use collada ID to setup name. with this patch I use collada name to setup name in osg object and if collada provide no name I use as fallback ID. I am not sure we want this fallback. The motivation of this change is that when an artist set names to its objects and export to collada, I am not able to use those names in osg to retrieve the node." and "Here the update of the file that fix the light id stuff" 2011-09-12 11:24 robert * From Bob Kuehne, build fix for OSX 10.7 SDK. 2011-09-12 11:24 robert * From Paul Idstein, warning fixes for OSX 10.7 2011-09-12 10:52 robert * From Magnus Kessler, typo fixes 2011-09-12 10:47 robert * From Wang Rui, "I've encountered a strange problem that osgviewerMFC doesn't work well with the StatsHandler. When the 's' key is pressed, the rendering window will be halted. I tried solving the problem by commenting a line in CMFC_OSG_MDIView::OnKeyDown() and it seems to work now. Another improvement here is to use a thread class derived from OpenThreads to replace the old _beginthread(). It helps a lot in keeping a high frame rate when you open more than one MDI child windows. And the application using OpenThreads in my opinion will be more compatible and portable." 2011-09-12 10:46 robert * Updated SO version number to 90 to allow for recent changes to the ABI, and to set the base for the 3.1.0 series. 2011-09-12 10:43 robert * From Sukender, "I added private constructors to osg::ValueObject & TemplatedValueObject, to avoid allocation on the stack and ugly things like: TemplatedValueObject value(....); container->addUserObject(value);" 2011-09-07 20:05 robert * Added handling the ShadowSettings::LightNum for selecting which light to use. 2011-09-07 16:26 robert * Added handling of the case when RenderLeaf::_modelview matrix is NULL, such as when LightPointNode is used in the scene graph. 2011-09-07 15:55 robert * Moved ViewDependetShadowMap parameter settings into a dedicated ShadowSettings object in prep for making it possible to scale the API to handle multiple lights and multiple shadow maps per light. 2011-09-06 17:26 robert * Added setting of the shadow map Camera's name to "ShadowCamera" to improve integration with osgOcean. 2011-09-06 14:13 robert * Added optimization of the mutliple cessna shadow model to address peformance issues when rendering 100 cessna's. 2011-09-06 11:42 robert * Added -5 model option using Wang Rui's test demo as a base 2011-09-06 11:11 robert * Fixed the heights of the trees and houses 2011-09-06 10:12 robert * Added s/getPerspectiveShadowMapCutOffAngle() and use of this when setting up light space to avoid sigularaties when the light and view directions are co-incident. 2011-09-05 12:36 robert * Added support for setting whether ViewDependentShadowMap should provide it's own vertex and fragment shaders. 2011-09-05 12:27 robert * Replaced use of ShapeDrawable with osgTerrain for the terrain tile 2011-09-02 10:16 robert * Added s/getTextureSize() method for setting the shadow map texture size. 2011-09-02 07:46 robert * Disabled the use of the ReceivesShadowTraversalMask() mask 2011-09-01 18:49 robert * Added test line for COMPUTE_NEAR_USING_PRIMITIVES 2011-09-01 18:48 robert * Added fine grained computation of the far plane when using the COMPUTE_NEAR_FAR_USING_PRIMITIVES ComputeNearFarMode. Added COMPUTE_NEAR_FAR_USING_PRIMITIVES option that provides the original functionality where only the near plane is computed in a fine grained way, with the far plane being computed simply from bound volumes. 2011-08-29 16:01 robert * From Tony Horrobin, build fix 2011-08-29 10:26 robert * Added fallback base texture 2011-08-29 09:59 robert * Added support for setting the MinimumShadowMapNearFarRatio. 2011-08-26 15:40 robert * Fixed bug in computaton of the min/max x/z ratios. 2011-08-26 15:36 robert * Added names to models to help with debugging. 2011-08-26 10:52 robert * Added releaseGLObjects/resizeGLObjectBuffers support 2011-08-25 17:21 robert * Improved the handling of depth partitioning and orthographic datasets 2011-08-25 15:39 robert * Added event handling for toggling on/off the light source animation. 2011-08-24 19:38 robert * Added support for user defined setting of the shadow texture unit 2011-08-24 13:57 robert * Changed new ViewDependentShadowMap to default to a perspective shadow map with automatic detection of a spot light/perspetive light projection matrix to prevent inappropriate usage of perspective shadow map. 2011-08-24 12:32 robert * Imorovements to the new perspective/lispsm style shadow implementation. 2011-08-24 12:31 robert * Quitened down and fixed warning 2011-08-19 12:42 robert * Quitended down debug messages and added passing of RenderStage to LispSM code 2011-08-19 10:43 robert * Improved the LispSM computation 2011-08-19 10:43 robert * Changed the local variable near/far type 2011-08-17 17:06 robert * Added back in control of the backface culling. 2011-08-17 16:09 robert * intermin check-in of work on new LispSM implementation 2011-08-15 14:37 robert * Added missing assignement of _simulationTime. 2011-08-13 19:09 robert * From Paul Martz, "Recent changes to osgShadow on trunk were apparently not yet tested with ref_ptr implicit casting disabled. Attached is a fix. " 2011-08-12 20:29 robert * Added public interface for selecting use of perspective and light space perspective shadow maps. Implementation of backends not implemented yet so will follow. 2011-08-12 14:53 robert * Implemented first pass at shaders for new ViewDepedentShadow map class 2011-08-09 15:57 robert * Implemented ViewDependentShadowMap::setDebugDraw(bool) to allow osgshadow to enable/disable the debug display via the standard --debugHUD option. 2011-08-09 15:20 robert * Changed RTT Camera to use depth. 2011-08-09 13:39 robert * Implemented caching of Camera, Texture and TexGen 2011-08-09 06:54 robert * Added replacement of the placeholder StateSet in the StateGraph with custom StateSet implemented just for the needs of that particular frame. 2011-08-08 17:00 robert * Further work on basic ViewDependentShadowMaps, adding implementation of RTT camera and texgen setup. 2011-08-07 15:54 robert * From Jean-Sebestien Guay and Robert Osfield, mixture of two sets of change - one from JS that adds more controls for specifying positional and spot lights, and from RO adding support for the new ViewDepedentShadowMap 2011-08-07 15:51 robert * Preliminary work on new ViewDependentShadowMap base class 2011-07-29 11:22 robert * Commented out the colorAmbientEmissive += gl_FrontLightProduct[0].ambient; line from the fragment shader as it was causing problems with the shadowed region being sporadically lit when using a spotlight. 2011-07-29 07:42 robert * Fixed comment on end barrier position. 2011-07-28 16:40 robert * Improved handling of the scaling of dicom imagery. 2011-07-28 12:07 robert * Refectored the EGL setup so that it's honours the Traits values. 2011-07-28 11:05 robert * Reverted the change to the default setting of _resizeNonPowerOfTwoHint back to true for all platforms to ensure the same behaivour across platforms, something that can be achieved now thanks to the integrated GLU library. Corrected the default of the ResizeNonPowerOfTwoHint to true to reflect the actual default setting set by the Texture default constructor. 2011-07-28 08:19 robert * From Johannes Baeuerle, "in the file src/osgDB/ObjectWrapper.cpp, where the GlobalLookupTable for gl enums for serialization purposes is defined, some of the compressed texture formats are missing. I added enums for the pvr and etc formats." 2011-07-28 07:46 robert * From Jason Beverage, "Here is a small fix for getCameraContainingPosition. getXMin was being used in a case where getYMin should be used instead." 2011-07-25 17:07 robert * Fixed stats bug where not all stats fields were being collected by the cull_draw() method used in the SingleThreaded and CullDrawThreadPerContext threading models. 2011-07-22 09:27 robert * From Alexander Irion, "Texture borders are not supported in ES. _isTextureBorderClampSupported is set to "TRUE" in Texture.cpp, because of the version number check (GL VERSION >= 1.3). This leads to an invalid enum error, when GL_TEXTURE_BORDER_COLOR is tried to set. " 2011-07-22 08:25 robert * In the RecordCameraPathhandler fixed the handling of pressing 'Z' before 'z' which was causing the view to be reset to 0,0,0 by AnimationPathManipualtor with an empty AnimationPath. 2011-07-21 09:55 robert * Fixed typo 2011-07-21 09:07 robert * From Mathias Froehlich, "I have attached an updated version of the VRML2 loader. That change is the result of the '[osgPlugins] VRML plugin - "file" url' discussion on osg-users. The attached change avoids rewriting file names into some kind of file urls and then use the url for opening an fstream. Instead just use the given file name to open the stream. Also this change adds some Notify output for the error paths. " 2011-07-21 08:52 robert * From Wang Rui, "This fixes a small problem in the FindFBX file. In CMake scripts, VS2010 is not marked as MSVC100 but MSVC10. And CMake defines MSVC_VERSION instead of MSVC_VER to indicate the version number. The modification can find fbx sdk for VS2010 automatically now. " 2011-07-20 10:17 robert * From Claus Scheiblauer, fixed handling of horizontal mouse wheel events. 2011-07-20 09:10 robert * Introduced workaround for problem of text that is scaled in screen coords, but hasn't been rendered yet so doesn't have knowledge of screen space yet, so assume that scaling is 1 rather than 0 as was previously assumed in the previous handling of screen space text. 2011-07-18 12:41 robert * Added doxygen comments explaining read file callback functionality. 2011-07-18 09:40 robert * Changed the HAVE_CONFIG_H guard so that it uses #ifndef _MSC_VER rather than _WIN32 to avoid problems with Mingw and Cygwin builds of DCMTK. 2011-07-17 16:24 robert * From Alberto Luacas, typo fixes 2011-07-17 10:30 robert * From Wang Rui, improved the handling of the _preReadString within the readWrappedString method by factoring the reading of the next character into a dedicated getCharacter(..) method. 2011-07-15 10:24 robert * From Wang Rui, "I've found that the latest ffmpeg made some functions and macros deprecated, which led to compilation errors in the OSG plugin. I tried fixing them and tested with the version ffmpeg-git-5d4fd1d (ffmpeg version > 0.8, libavcodec = 53.7.0) under Windows. " 2011-07-15 10:22 cedricpinson * Fix crash in osgAnimation when keyframe container are empty 2011-07-15 09:47 robert * From Sukender, Fix for compile errors "public: static char const * const osg::ValueObjectClassNameTrait< xxx >::s_className" already defined in xxx.obj" 2011-07-15 09:14 robert * From Wang Rui,"The files attached should be separately put into the directories src/osgPlugins/osg and src/osgWrappers/serializers/osgSim. They fix a serious infinite loop problem that may be caused by the stream buffer mechanism under Windows and some osgSim wrapper bugs pointed by Andreas. I've asked the community to help test them and hope now we can solve these recent .osgt file reading issues." 2011-07-15 08:43 robert * From Ryan Pavlik, "Fix inventor state copy constructor. Clang warning: In file included from src/osgPlugins/Inventor/ConvertToInventor.cpp:80: src/osgPlugins/Inventor/ConvertToInventor.h:117:71: warning: field is uninitialized when used here [-Wuninitialized] osgTexGenS(s.osgTexGenS), osgTexGenT(s.osgTexGenT), osgTexGen(osgTexGen), ^" 2011-07-15 08:32 robert * From Philip Lamp, submitted by Stephan Huber, "Modify the ReaderWriteImageIO_IOS to correctly handle relative paths when reading from a file. This means that no longer do all image files have to live at the root of the Resources folder inside the app bundle, but can now be organized inside folders. Also improved error handling and fixed a potential leak of a CGColorSpaceRef each once per image load." 2011-07-15 08:16 robert * Converted tabs to four spaces 2011-06-28 07:54 robert * Merged the OSG-3.0 branch versions of into svn/trunk. 2011-06-28 07:23 robert * Added #if lib curl version check around #include as this header was deprecated and now removed entirely from libcurl-7.21.7. 2011-06-28 07:22 robert * From Wang Rui, "I've found a small problem which causes crashes in the 3ds plugin while trying to load a model. The fix here will ensure that the texture map is valid and everything could work well then." 2011-06-27 21:33 robert * Tweaked the comments 2011-06-27 21:32 robert * From Jean-Sebestien Guay, workaround for bug under windows with the seek implementation when handling ascii files with unix file endings. 2011-06-27 15:43 robert * Updated NEWS and fixed typo in Contributors. 2011-06-27 10:20 robert * Fixed typo 2011-06-27 10:19 robert * Improved the setContextID doxygen comment. 2011-06-25 20:51 robert * From Andreas Eskland, "I found that a binary PNM file couldn't be read by the PNM plugin in the 3.0 branch. Attached is a small fix in ReaderWriterPNM.cpp, simply opening the file in binary mode." 2011-06-25 11:00 robert * Fixed memory growth issue when using Texture2D::SubloadCallbacks that don't set the TextureObjects sizes. 2011-06-25 07:07 robert * Tightened up float usage. 2011-06-24 19:17 robert * Tightened up the float/double usage 2011-06-24 16:15 robert * Removed redundent assert and associated variables to fix warnings. 2011-06-24 15:04 robert * Implemented missing writeShader 2011-06-24 13:35 robert * From Martin Innus, fixed erroneous change of INTEGER to UNKNOWN, reverting back to INTEGER. 2011-06-24 12:40 robert * Implemented missing Archive::readShader/writeShader, and added searching of the archive list in Registr::read() so that files that are stored in the archives can be found. 2011-06-24 08:32 robert * From Ulrich Hertlein, "While we're on osgSim/ShapeAttribute, here's a fix that fixes the 'UNKNOW' typo and some doxygen" 2011-06-24 08:13 robert * From Wang Rui, "I've modified the code to handle -1.#IND and other kinds of infinite values. Please see the attachments for details" 2011-06-24 08:05 robert * Added operator ==, != and < to fix VS build 2011-06-23 19:58 robert * Fixed warnings generated by clang, src/osgAnimation/Skeleton.cpp:25:87: warning: addition of default argument on redeclaration makes this constructor a copy constructor [-Wdefault-arg-special-member] Skeleton::UpdateSkeleton::UpdateSkeleton(const UpdateSkeleton& us, const osg::CopyOp& copyop= osg::CopyOp::SHALLOW_COPY) : osg::Object(us, copyop), osg::NodeCallback(us, copyop) /src/OpenThreads/pthreads/PThread.cpp:1024:15: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if (cpunum<0) return -1; src/osgDB/ExternalFileWriter.cpp:221:122: warning: expression result unused [-Wunused-value] _objects.insert(ObjectsSet::value_type(&obj, ObjectData(absoluteDestinationPath, relativeDestinationPath, written))).first; src/osgManipulator/Dragger.cpp:175:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if (*itr = constraint) return; src/osgManipulator/Dragger.cpp:187:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if (*itr = constraint) 2011-06-23 18:24 robert * Warning fixes for: OpenSceneGraph/src/osgPlugins/Inventor/ConvertFromInventor.cpp: In member function ?virtual SbBool SoVRMLImageTextureOsg::readInstance(SoInput*, short unsigned int)?: OpenSceneGraph/src/osgPlugins/Inventor/ConvertFromInventor.cpp:1264:16: warning: variable ?retval? set but not used [-Wunused-but-set-variable] OpenSceneGraph/src/osgPlugins/ac/Geode.cpp: In member function ?void ac3d::Geode::ProcessGeometry(std::ostream&, unsigned int)?: OpenSceneGraph/src/osgPlugins/ac/Geode.cpp:806:35: warning: variable ?fRep_s? set but not used [-Wunused-but-set-variable] OpenSceneGraph/src/osgPlugins/ac/Geode.cpp:806:43: warning: variable ?fRep_t? set but not used [-Wunused-but-set-variable] OpenSceneGraph/src/osgPlugins/ac/Geode.cpp:807:35: warning: variable ?fOffset_s? set but not used [-Wunused-but-set-variable] OpenSceneGraph/src/osgPlugins/ac/Geode.cpp:807:46: warning: variable ?fOffset_t? set but not used [-Wunused-but-set-variable] OpenSceneGraph/src/osgViewer/GraphicsWindowX11.cpp: In member function ?virtual void osgViewer::GraphicsWindowX11::checkEvents()?: OpenSceneGraph/src/osgViewer/GraphicsWindowX11.cpp:1181:10: warning: variable ?destroyWindowRequested? set but not used [-Wunused-but-set-variable] 2011-06-23 16:36 robert * Fixed virtual method mismtaches between subclasses and parent classes. 2011-06-23 15:42 robert * From Ulrich Hertlein, build fix for OSX. 2011-06-23 15:37 robert * Added better handling of archives in ReaderWriterZip::readNode() so that if there is no master file definition it loads all the available nodes in the zip archive and returns an osg::Group containing all the nodes if there is more than one, or just returns the node if there is just one. Also implemented this functionality for ReaderWriterZip::readImage(). 2011-06-23 12:24 robert * Fixed typo in name 2011-06-23 11:27 robert * Updated ChangeLog and AUTHORS file 2011-06-23 11:26 robert * Fixed name typo 2011-06-23 11:09 robert * Fixed warnings. OpenSceneGraph/src/osgGA/NodeTrackerManipulator.cpp:32:1: warning: base class ?class osg::Object? should be explicitly initialized in the copy constructor OpenSceneGraph/src/osgGA/TerrainManipulator.cpp:31:1: warning: base class ?class osg::Object? should be explicitly initialized in the copy constructor OpenSceneGraph/include/osgSim/ShapeAttribute:99:9: warning: base class ?class std::vector? should be explicitly initialized in the copy constructor OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::gi? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::byte_before_the_zipfile? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::num_file? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::pos_in_central_dir? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::current_file_ok? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::central_pos? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::size_central_dir? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::offset_central_dir? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::cur_file_info? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::cur_file_info_internal? OpenSceneGraph/src/osgPlugins/zip/unzip.cpp:3102:14: warning: missing initializer for member ?unz_s::pfile_in_zip_read? OpenSceneGraph/src/osgViewer/CompositeViewer.cpp:30:1: warning: base class ?class osg::Object? should be explicitly initialized in the copy constructor OpenSceneGraph/src/osgViewer/View.cpp:159:1: warning: base class ?class osg::Object? should be explicitly initialized in the copy constructor OpenSceneGraph/src/osgViewer/Viewer.cpp:196:1: warning: base class ?class osg::Object? should be explicitly initialized in the copy constructor OpenSceneGraph/src/osgViewer/Viewer.cpp:196:1: warning: base class ?class osgViewer::ViewerBase? should be explicitly initialized in the copy constructor OpenSceneGraph/include/osgManipulator/Dragger:47:9: warning: base class ?class osg::Object? should be explicitly initialized in the copy constructor 2011-06-23 09:26 robert * From Ryan Pavlik, "I have successfully compiled OpenSceneGraph trunk using the Clang compiler (using a recent trunk build of llvm and clang, haven't tested an older release). The attached files contain the change shown in the diff below, which was required to finish the build with Clang. It fixes an issue with two-phase name lookup - there's more information here http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html " 2011-06-23 09:22 robert * From Dimi Christopoulos, "I attach a fixed version of mipmap.cpp which produced a lot of warning on my gcc compiler." 2011-06-23 07:13 robert * Converted tabs to four spaces 2011-06-22 16:18 robert * From Magnus Kessler, "I have recently installed the latest version of collada-dom on Linux, and found that the include path has changed. By default, collada-dom now installs its header files under /usr/local/include/collada-dom or/usr/include/collada- dom. The attached FindCollada.cmake has been updated to look for these locations in addition to the previous candidate locations." 2011-06-22 12:30 robert * Resolved warnings reported by g++ 4.6's -Wunused-but-set-variable. Warnings were: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osg/ShapeDrawable.cpp: In member function ‘void PrimitiveShapeVisitor::createHalfSphere(unsigned int, unsigned int, float, int, float, const Matrix&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osg/ShapeDrawable.cpp:1409:11: warning: variable ‘nzBase’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osg/ShapeDrawable.cpp:1410:11: warning: variable ‘nRatioBase’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp: In function ‘osgUtil::Triangle_list osgUtil::fillHole(osg::Vec3Array*, std::vector >)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp:569:27: warning: variable ‘ptest’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp: In member function ‘bool osgUtil::DelaunayTriangulator::triangulate()’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp:979:45: warning: variable ‘curp’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/RenderStage.cpp: In member function ‘void osgUtil::RenderStage::runCameraSetUp(osg::RenderInfo&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/RenderStage.cpp:631:18: warning: variable ‘stencilAttached’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/FadeText.cpp: In member function ‘void FadeTextPolytopeData::buildPolytope()’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/FadeText.cpp:74:20: warning: variable ‘edge23’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/FadeText.cpp:75:20: warning: variable ‘edge30’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/Text.cpp: In member function ‘void osgText::Text::computeBackdropPositions(unsigned int) const’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/Text.cpp:747:10: warning: variable ‘is_valid_size’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/NodeTrackerManipulator.cpp: In member function ‘virtual bool osgGA::NodeTrackerManipulator::performMovementLeftMouseButton(double, double, double)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/NodeTrackerManipulator.cpp:257:21: warning: variable ‘lookVector’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/NodeTrackerManipulator.cpp:259:21: warning: variable ‘upVector’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/TerrainManipulator.cpp: In member function ‘virtual bool osgGA::TerrainManipulator::performMovementMiddleMouseButton(double, double, double)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/TerrainManipulator.cpp:217:11: warning: variable ‘lookVector’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/TerrainManipulator.cpp:219:11: warning: variable ‘upVector’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgVolume/FixedFunctionTechnique.cpp: In member function ‘virtual void osgVolume::FixedFunctionTechnique::init()’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgVolume/FixedFunctionTechnique.cpp:124:30: warning: variable ‘tf’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgParticle/FluidProgram.cpp: In member function ‘virtual void osgParticle::FluidProgram::execute(double)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgParticle/FluidProgram.cpp:38:23: warning: variable ‘velBefore’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgShadow/ParallelSplitShadowMap.cpp: In member function ‘virtual void osgShadow::ParallelSplitShadowMap::cull(osgUtil::CullVisitor&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgShadow/ParallelSplitShadowMap.cpp:593:22: warning: variable ‘bb’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgTerrain/GeometryTechnique.cpp: In member function ‘virtual void osgTerrain::GeometryTechnique::generateGeometry(osgTerrain::GeometryTechnique::BufferData&, osgTerrain::Locator*, const osg::Vec3d&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgTerrain/GeometryTechnique.cpp:777:12: warning: variable ‘i_sampleFactor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgTerrain/GeometryTechnique.cpp:778:12: warning: variable ‘j_sampleFactor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp: In function ‘osg::Image* ReadDDSFile(std::istream&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp:314:10: warning: variable ‘is3dImage’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp: In function ‘bool WriteDDSFile(const osg::Image*, std::ostream&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp:721:10: warning: variable ‘is3dImage’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/hdr/hdrloader.cpp: In static member function ‘static bool HDRLoader::load(const char*, bool, HDRLoaderResult&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/hdr/hdrloader.cpp:101:10: warning: variable ‘cmd’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/vtf/ReaderWriterVTF.cpp: In function ‘osg::Image* ReadVTFFile(std::istream&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/vtf/ReaderWriterVTF.cpp:360:23: warning: variable ‘base’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/jp2/ReaderWriterJP2.cpp: In function ‘int putdata(jas_stream_t*, jas_image_t*, int)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/jp2/ReaderWriterJP2.cpp:41:13: warning: variable ‘linelen’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertToInventor.cpp: In member function ‘void ConvertToInventor::processGeometry(const osg::Geometry*, ConvertToInventor::InventorState*)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertToInventor.cpp:1639:10: warning: variable ‘ok’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertFromInventor.cpp: In member function ‘virtual SbBool SoVRMLImageTextureOsg::readInstance(SoInput*, short unsigned int)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertFromInventor.cpp:1264:16: warning: variable ‘retval’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp: In member function ‘virtual void flt::Face::readRecord(flt::RecordInputStream&, flt::Document&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp:369:19: warning: variable ‘secondaryPackedColor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp: In member function ‘virtual void flt::Mesh::readRecord(flt::RecordInputStream&, flt::Document&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp:942:19: warning: variable ‘secondaryPackedColor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/ReaderWriterFLT.cpp: In member function ‘virtual osgDB::ReaderWriter::ReadResult FLTReaderWriter::readNode(std::istream&, const Options*) const’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/ReaderWriterFLT.cpp:427:40: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ive/ShapeAttributeList.cpp: In member function ‘void ive::ShapeAttributeList::write(ive::DataOutputStream*)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ive/ShapeAttributeList.cpp:31:48: warning: variable ‘it’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp: In member function ‘void ac3d::Geode::ProcessGeometry(std::ostream&, unsigned int)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:806:35: warning: variable ‘fRep_s’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:806:43: warning: variable ‘fRep_t’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:807:35: warning: variable ‘fOffset_s’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:807:46: warning: variable ‘fOffset_t’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:932:38: warning: variable ‘primLength’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_geom.cpp: In member function ‘virtual bool trpgGeometry::Write(trpgWriteBuffer&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_geom.cpp:615:19: warning: variable ‘u’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_material.cpp: In member function ‘int trpgMatTable::AddMaterial(const trpgMaterial&, bool)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_material.cpp:103:10: warning: variable ‘spaceInTable’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_rarchive.cpp: In member function ‘virtual bool trpgr_Archive::ReadHeader(bool)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_rarchive.cpp:261:14: warning: variable ‘headerHasTexTable’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp: In member function ‘ZRESULT TUnzip::Get(int, ZIPENTRY*)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp:4055:8: warning: variable ‘hidden’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp:4055:22: warning: variable ‘system’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp:4055:36: warning: variable ‘archive’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/ZipArchive.cpp: In member function ‘virtual bool ZipArchive::getFileNames(osgDB::Archive::FileNameList&) const’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/ZipArchive.cpp:91:37: warning: variable ‘iterEnd’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/pvr/ReaderWriterPVR.cpp: In member function ‘osgDB::ReaderWriter::ReadResult ReaderWriterPVR::readPVRStream(std::istream&) const’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/pvr/ReaderWriterPVR.cpp:155:14: warning: variable ‘hasAlpha’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp: In function ‘osg::Geometry* create3DSphericalDisplayDistortionMesh(const Vec3&, const Vec3&, const Vec3&, double, double, osg::Image*, const Matrix&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp:737:15: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp: In function ‘osg::Geometry* createParoramicSphericalDisplayDistortionMesh(const Vec3&, const Vec3&, const Vec3&, double, double, osg::Image*, const Matrix&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp:1130:19: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp:1118:15: warning: variable ‘dx’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/GraphicsWindowX11.cpp: In member function ‘virtual void osgViewer::GraphicsWindowX11::checkEvents()’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/GraphicsWindowX11.cpp:1181:10: warning: variable ‘destroyWindowRequested’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/cfg/ConfigParser.cpp: In member function ‘bool osgProducer::CameraConfig::parseFile(const string&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/cfg/ConfigParser.cpp:2247:13: warning: variable ‘result’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgQt/QGraphicsViewAdapter.cpp: In member function ‘bool osgQt::QGraphicsViewAdapter::handlePointerEvent(int, int, int)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgQt/QGraphicsViewAdapter.cpp:344:17: warning: variable ‘viewportGeometry’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp: In function ‘osg::Node* createDistortionSubgraph(osg::Node*, const Vec4&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp:125:19: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp:126:19: warning: variable ‘texcoord’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp: In function ‘osg::Geometry* createDomeDistortionMesh(const Vec3&, const Vec3&, const Vec3&, osg::ArgumentParser&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp:358:15: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgposter/osgposter.cpp: In function ‘int main(int, char**)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgposter/osgposter.cpp:253:31: warning: variable ‘outputTiles’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgthreadedterrain/osgthreadedterrain.cpp: In function ‘int main(int, char**)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgthreadedterrain/osgthreadedterrain.cpp:669:10: warning: variable ‘readParameter’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgtext3D/TextNode.cpp: In member function ‘virtual void osgText::Layout::layout(osgText::TextNode&) const’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgtext3D/TextNode.cpp:80:11: warning: variable ‘characterHeightScale’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgvolume/osgvolume.cpp: In function ‘int main(int, char**)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgvolume/osgvolume.cpp:678:38: warning: variable ‘internalFormatMode’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp: In function ‘bool windowMouseOver(osgWidget::Event&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp:27:24: warning: variable ‘xy’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp: In function ‘bool widgetMouseOver(osgWidget::Event&)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp:35:24: warning: variable ‘xy’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/p3d/ReaderWriterP3D.cpp: In member function ‘osg::Node* ReaderWriterP3DXML::parseXmlGraph(osgDB::XmlNode*, bool, osgDB::Options*) const’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/p3d/ReaderWriterP3D.cpp:2121:10: warning: variable ‘readSlide’ set but not used [-Wunused-but-set-variable] /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/applications/present3D/present3D.cpp: In function ‘int main(int, char**)’: /home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/applications/present3D/present3D.cpp:639:10: warning: variable ‘sizesSpecified’ set but not used [-Wunused-but-set-variable] 2011-06-22 09:12 robert * Fixed regression in --run-on-demand feature 2011-06-21 17:26 robert * Removed assert() that always evaluated to true. 2011-06-21 13:01 robert * From Torben Dannhauer, "originally I posted the addendum of 'freetype244MT', but that was wrong. I updated it to the correct addendum of 'freetype244' yesterday, but supposedly that was not forwarded to you by the forum-to-mail-gateway. Find attached the corrected CMake module. " 2011-06-21 10:15 robert * Updated ChangeLog 2011-06-21 09:54 robert * Added returns to end of files 2011-06-21 09:54 robert * Added return to end of file 2011-06-21 09:53 robert * Conveted tabs to four spaces and added a return to end of file 2011-06-21 09:29 mplatings * Fixed redundant "enumeration not handled in switch" warnings. Fixed a warning about a comparison between different enums - EUnifiedMappingType was being compared with EMappingType. In general the FBX SDK is moving away from Get & Set functions to giving direct access to properties, so I have changed GetMappingType() to CurrentMappingType.Get() 2011-06-21 09:00 robert * Disabled VisualStudio warning warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable 2011-06-20 19:15 robert * Fixed a range of issues reported by cppcheck: [examples/osgphotoalbum/PhotoArchive.cpp:56]: (error) Memory leak: fileIndentifier [examples/osgphotoalbum/PhotoArchive.cpp:257]: (error) Deallocating a deallocated pointer: newData [examples/osgphotoalbum/PhotoArchive.cpp:318]: (error) Deallocating a deallocated pointer: newData [src/osg/ImageUtils.cpp:116]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:307]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:312]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:367]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:399]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:400]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:482]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:483]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:484]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:519]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/ImageUtils.cpp:536]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:71]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:74]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:77]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:82]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:102]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:107]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:599]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:600]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:601]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:602]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:603]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:604]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:605]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osg/OcclusionQueryNode.cpp:606]: (portability) Extra qualification 'osg::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:134]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:135]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:136]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:137]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:139]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:177]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:178]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:195]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:198]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:203]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:205]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/ExternalFileWriter.cpp:253]: (portability) Extra qualification 'osgDB::' unnecessary and considered an error by many compilers. [src/osgDB/InputStream.cpp:553]: (error) Memory leak: data [src/osgDB/OutputStream.cpp:393]: (error) Memory leak: data [src/osgPlugins/Inventor/ConvertToInventor.cpp:656]: (error) Mismatching allocation and deallocation: tmpArray [src/osgPlugins/Inventor/ReaderWriterIV.cpp:237]: (error) Common realloc mistake: 'buf' nulled but not freed upon failure [src/osgPlugins/OpenFlight/expGeometryRecords.cpp:167]: (portability) Extra qualification 'flt::' unnecessary and considered an error by many compilers. [src/osgPlugins/OpenFlight/expGeometryRecords.cpp:373]: (portability) Extra qualification 'flt::' unnecessary and considered an error by many compilers. [src/osgPlugins/cfg/CameraConfig.cpp:635]: (error) Unusual pointer arithmetic [src/osgPlugins/freetype/FreeTypeLibrary.cpp:122]: (error) Memory leak: buffer [src/osgPlugins/geo/ReaderWriterGEO.cpp:210]: (error) Possible null pointer dereference: gfd - otherwise it is redundant to check if gfd is null at line 211 [src/osgPlugins/geo/ReaderWriterGEO.cpp:227]: (error) Possible null pointer dereference: gfd - otherwise it is redundant to check if gfd is null at line 228 [src/osgPlugins/geo/ReaderWriterGEO.cpp:903]: (error) Possible null pointer dereference: gfd - otherwise it is redundant to check if gfd is null at line 904 [src/osgPlugins/geo/osgGeoNodes.h:180]: (error) Memory leak: geoHeaderGeo::intVars [src/osgPlugins/geo/osgGeoNodes.h:181]: (error) Memory leak: geoHeaderGeo::useVars [src/osgPlugins/geo/osgGeoNodes.h:182]: (error) Memory leak: geoHeaderGeo::extVars [src/osgPlugins/md2/ReaderWriterMD2.cpp:180]: (error) Memory leak: mapbase [src/osgPlugins/md2/ReaderWriterMD2.cpp:166]: (error) Resource leak: file_fd [src/osgPlugins/pic/ReaderWriterPIC.cpp:152]: (error) Mismatching allocation and deallocation: tmpbuf [src/osgPlugins/pic/ReaderWriterPIC.cpp:153]: (error) Mismatching allocation and deallocation: buffer [src/osgPlugins/ply/plyfile.cpp:843]: (error) Memory leak: plyfile [src/osgPlugins/pvr/ReaderWriterPVR.cpp:179]: (error) Memory leak: imageData [src/osgPlugins/shp/ESRIShapeParser.cpp:29]: (error) Resource leak: fd [src/osgPlugins/shp/XBaseParser.cpp:96]: (error) Resource leak: fd [src/osgPlugins/zip/unzip.cpp:3158]: (error) Possible null pointer dereference: s - otherwise it is redundant to check if s is null at line 3159 [src/osgPlugins/zip/unzip.cpp:4155]: (error) Dangerous usage of 'rd' (strncpy doesn't always 0-terminate it) [src/osgShadow/MinimalCullBoundsShadowMap.cpp:334]: (error) Possible null pointer dereference: rl - otherwise it is redundant to check if rl is null at line 331 [src/osgViewer/ScreenCaptureHandler.cpp:617]: (error) Possible null pointer dereference: camera - otherwise it is redundant to check if camera is null at line 611 [src/osgViewer/ScreenCaptureHandler.cpp:632]: (error) Possible null pointer dereference: camera - otherwise it is redundant to check if camera is null at line 626 [src/osgVolume/Locator.cpp:209]: (error) Dangerous iterator usage after erase()-method. [src/osgVolume/RayTracedTechnique.cpp:274]: (error) Possible null pointer dereference: imageLayer - otherwise it is redundant to check if imageLayer is null at line 259 [src/osgVolume/RayTracedTechnique.cpp:275]: (error) Possible null pointer dereference: imageLayer - otherwise it is redundant to check if imageLayer is null at line 259 [src/osgWrappers/serializers/osg/ShaderBinary.cpp:28]: (error) Mismatching allocation and deallocation: data 2011-06-20 14:09 robert * Removed unneccesary namespace qualifiers, and issue picked out by cppcheck. 2011-06-20 12:36 robert * From Farshid Lashkari, BGR write support for BMP, PNG and TGA 2011-06-20 11:25 robert * Added catch for window manager doesn't set the window size to full screen. 2011-06-20 09:28 robert * Added check against Traits::overrideRedirct to prevent the fullscreen workaround being run when overrideRedirect is on as overrideRedirect switches off the window managers ability to manage the fullscreen so the problem doesn't need working around. 2011-06-20 09:22 robert * Introduced a workaround for fullscreen toggle issues under modern X11 window managers. 2011-06-20 09:20 robert * Added sleep before window resizing to make it less likely that the previous frames rendering traversal is still running when the window(s) is resized, something that creates what looks like a glitch in rendering. 2011-06-19 19:16 robert * From Torben Dannhauer, "Just in time for OSG 3.0 I will present an updated 3rdParty package for VS2008 , which includes some updated libraries (libcurl, freetype, jpeg). It also provides now all debug databases (*.pdb), so all the annoying compile warnings about missing .pdb files are gone. I extended the CMAKE module to find the new library." 2011-06-17 16:55 robert * Updated version to 3.1.0 in prep for the first developer release for 3.x series 2011-06-17 12:57 robert * Added extern "C" to fix build issues under OSX 2011-06-17 12:31 robert * Updated ChangeLog, NEWS and READE for 3.0.0-rc1 2011-06-17 11:47 robert * Updated version number 2011-06-17 11:47 robert * Fixed Jorge Izquierdo name. 2011-06-17 11:02 robert * Updated OpenThreads version number for stable release 2011-06-17 10:35 robert * Tempory fix for static build of Present3D which disables the use of ffmpeg when compiling static, will need to look into unresolved symbols assoiated with FFMPEG at a later date. 2011-06-17 09:20 robert * Updated AUTHORS file for 3.0.0-rc1 2011-06-17 09:19 robert * Updated ChangeLog 2011-06-17 09:05 robert * From Jan Peciva, "sending updated version of StencilTwoSided. It supports now even GL_ATI_separate_stencil extension and there are more OSG_INFOs to see, which API is used." 2011-06-17 09:02 robert * Updated version number of 3.0.0-rc1 2011-06-17 08:47 robert * Added GLES version checks to prevent build problems under GLES1 and GLES2 2011-06-17 08:42 robert * Refined the version checking 2011-06-17 08:41 robert * Build fix 2011-06-17 08:26 robert * From Ulrich Hertlein, "the OS X/Cocoa implementation logs some debug junk on every key stroke. The attached patch removes this." 2011-06-17 08:15 robert * From Jorge Ciges, "This is one of those bugs that you don't find until you try to compile under another pc that doesn't have Cmake 2.8." 2011-06-17 06:22 robert * Fixed warning 2011-06-17 06:09 robert * Fixed warnings 2011-06-17 05:57 robert * Added disabling of VisualStudio warning C4324 : structure was padded due to __declspec(align()) 2011-06-16 18:43 robert * Fixed warnings. 2011-06-16 18:25 robert * Added support for new InternalTextureFormatModes 2011-06-16 18:12 robert * Added wider file extension support to ExternalFileWriter::generateObjectName 2011-06-16 16:02 robert * From Farshid Lashkari, "Attached is a small patch that adds support for writing BGR images to the DDS plugin." 2011-06-16 16:00 robert * From John Cummings, "While testing recent OSG developer releases and the subversion trunk, I have noticed that on my 64-bit Linux machines, all of the OSG libraries get installed into the "lib64" directory as I would expect. However, the OpenThreads library gets installed into the "lib" directory when selecting "Build OpenThreads with Qt threading support." That is, with the BUILD_OPENTHREADS_WITH_QT set to ON. I am attaching the a fix for this issue in the file: src/OpenThreads/qt/CMakeLists.txt It simply adds ${LIB_POSTFIX} to the destination as in done with all other CMakeLists.txt with libraries in OSG. I have tested it on both 32-bit and 64-bit Linux." 2011-06-16 15:57 robert * Windows warning fixes 2011-06-16 13:00 robert * Fixed indentation issues 2011-06-16 10:05 robert * Improved indentation. 2011-06-16 08:59 robert * Replaced tabs with four spaces 2011-06-16 08:46 robert * From Jean-Christophe Lombardo, "On Fedora 14, dcmtk libs are under /usr/lib/dcmtk. I've added a PATH_SUFFIX to take that into account" 2011-06-15 18:31 robert * Improved the handling of compiling vs flushing deleted objects 2011-06-15 17:00 robert * Changed the key handling code to use EventQueue::getTime() rather then the theEvent timestamp. 2011-06-15 09:36 robert * Fixed blitting of FBO's with multiple render targets. 2011-06-15 09:35 robert * From Anthousis Andreadis, added multiple sampling test for multiple rendering targets which is activated by the --ms command line option. 2011-06-14 18:10 robert * From Jorge Ciges, "Update to FindAndroidNDK to make it use the latest Ndk (r5c) automatically. That fixes compatibilities with some 2.1 devices. And it looks like all goes well." 2011-06-14 16:54 robert * Replaced .osg with .osgt file usage 2011-06-14 16:50 robert * Improved the handling of command line parameters 2011-06-14 15:55 robert * Updated version 2011-06-14 15:48 robert * Added support osg::State::drawQuad(..) for number of vertices in quads to uint range rather than just ushort range. 2011-06-14 12:44 robert * Fixed issue with events having a negative delta of time between them. 2011-06-14 10:15 robert * Added GLBufferObject::computeBufferAlignment(..) method to enable buffer entries to be aligned along specified buffer alignment boundaries, currently defaulting to 4. 2011-06-14 09:16 robert * From Stephan Huber, "attached you'll find a fix for the non-working useCursor()-method for Windows. With the old code you can switch off the cursor, but not back on." 2011-06-14 09:11 robert * Removed executable permission. 2011-06-14 09:01 robert * From Stephan Huber, "attached you'll find some tweaks for the FindQuicktime and > FindQTKit-cmake-plugins, so they get disabled for ios-builds." 2011-06-13 15:20 robert * Fixed wild card search when wild card filename includes a path. 2011-06-13 08:52 robert * From Jeremy Moles, fixed style == operator. 2011-06-13 08:45 robert * From Stephan Huber, build fix for IOS 2011-06-10 11:42 robert * Added handling of s/gUserValue() directly on a UserDataContainer. 2011-06-09 14:20 robert * Updated ChangeLog and AUTHORS file for 2.9.16 dev release 2011-06-09 14:11 robert * From Jorge Ciges, "two clean example viewers (GLES1/2) that permit load models withouth recompiling by options in the menu and some basic options. basic options. As Rafa and I told you earlier this can't be integrated in the CMAKE chain. It needs to be compiled by the user out of the OSG standard compilation. It could be stored in the examples. That way users will not come here asking for the examples. Main characteristics are: -Menu with loading and unloading by path. -Return to home view -Keyboard capabilities with manipilator switch and basic state changing. -Change color screen. -Osg log bypassed to LogCat (This comes practically straight from Marcin Hajder example I've only added personal TAG) -Earmbi / Earmbi V7 -Install to SD (if the device supports the feature) And that's all. Now I'm looking to fix the environmental mapping with true GLES (it does not work well in Android) I will try to make it in time for 3.0. The other work that i'm studying Dynamic build with Android but that will need a lot of time to test. 2011-06-09 12:57 robert * Refactored the UserDataContainer so that the osg::UserDataContainer is now a pure virtual base class, with a osg::DefaultUserDataContainer subclassed from this. The user object access methods have now all been moved from osg::Object into the UserDataContainer class, except for the set/getUserData() methods that are left in osg::Object for backwards compatibility, and the description list access methods have been moved back into osg::Node. main UserObject access methods are now all def 2011-06-09 11:07 robert * From Mathias Froehlich, "the attached patch adds an additional null pointer check" 2011-06-09 11:05 robert * From Mathias Froehlich, "The attached patch adds the polygon primitive to the TangentSpace computation. As far as I understand, this should just work for the polygon as well as with the tristrip primitive. " 2011-06-09 10:48 robert * Changed the defaults volume setting to not enable the SampleDensityWhenMoving property. 2011-06-08 17:45 robert * Cleaned up example to use the new ImageUtils functions for creating a 3D image from a list of images. 2011-06-08 16:10 robert * Added support for creating a 3D Image from an image list. Added support for reading a list of images in the Present3D tag. 2011-06-08 09:28 robert * Removed OSG_EXPORT 2011-06-08 09:24 robert * Introduced a less conservative near ratio. 2011-06-08 09:24 robert * Simplified the osgdepthpartion example to use the osgView::View::setUpDepthPartition(..) feature 2011-06-07 20:24 robert * Added support for reading .osg, .osgb, .osgx, .osgt and .ive models that contain volumes from within the volume tag. 2011-06-07 16:17 robert * Added support for .osgt, .osgb and .osgx plugins to osgvolume example 2011-06-07 15:33 robert * Updated ChangeLog and AUTHORS file for release 2011-06-07 14:28 robert * From Sukender, "Lastest change (update to FBX 2012.1) introduced a regression. It didn't take materials' order into consideration. The line lMaterialLayer->GetDirectArray().SetAt(it->second.getIndex(), lMaterial); has been replaced by _curFbxNode->AddMaterial(lMaterial); because KFbxLayerElementMaterial::GetDirectArray() is now private and we can't access to it. However, pushing back the material at the end of the vector is wrong. We can use the (now) public attribute KFbxLayerElementMaterial::mDirectArray, as in this submission. " 2011-06-07 14:26 robert * From Mathias Froehlich, build fixes for legacy unix systems 2011-06-07 13:02 robert * Added ability to subclass from osg::Object to provide custom user data functionality. A new UserDataContainer provides the default implementation of the user data functionality. 2011-06-07 09:28 robert * Added the return of the index position of the added UserObject 2011-06-07 08:53 robert * Added support for searching for user objects from a given startPosition in the UserDataContainer object. 2011-06-06 11:48 robert * From Frida Schlaug, "Imageio for ios had a poorly implemented function for reading from streams (always returning null). In this patch I copied some code from the non-ios imageio file and adjusted it to work on ios. " 2011-06-06 11:45 robert * From Jorge Ciges, Minor tweaks in Android makefiles that make possible to compile for armeabi v7 with neon 2011-06-06 11:44 robert * From Jorge Ciges, Minor tweaks in Android makefiles that make possible to compile for armeabi v7 with neon 2011-06-03 15:58 robert * Added support for --tf-255 transfer function files 2011-06-03 13:47 robert * Added support for using the sampleDensityWhenMoving tag with all techniques 2011-06-02 22:49 robert * Added extra check to make sure that _userDataContainer was available before copying it 2011-06-02 22:07 robert * Add new macro's to help with serialization of new user objects 2011-06-02 22:06 robert * Added new osguserdata example as a guide to the new user object API and as a testbed 2011-06-02 22:05 robert * Added support for new osg::Object user objects. 2011-06-02 22:04 robert * Introduced new user object support into osg::Object that allows assignment of a list of user objects to an osg::Object. Refactored original UserData and Descriptions strings to be managed alongside the new user object suppport within a single osg::Object::UserDataContainer. 2011-06-02 21:32 robert * Updated version 2011-06-02 20:38 robert * Added ref_ptr<> usage to avoid possible memory leak. 2011-06-02 14:42 robert * Updated version and so number for next dev release 2011-05-30 15:43 robert * Updated AUTHORS and ChangeLog for 2.9.15 dev release 2011-05-30 13:02 robert * From Dimi Christop, build fix for RHEL 4. 2011-05-30 09:26 robert * Added closing of the _eventDisplay on failure of initializing the context properly. 2011-05-30 09:25 robert * Fixed X11 related crash that occured when GraphicsWindow::setCursor was called right after viewer.realize(); The fix was to simply move the setting of the thread that has done the makeCurrent to right before the makeCurrent() rather than right after. 2011-05-30 08:26 robert * From Wang Rui, "The submission fixes the spelling bug we discussed in osg-users. It replaces the variable ACTUAL_3DPARTY_DIR to ACTUAL_3RDPARTY_DIR with back compatibility. Please find it in attachment. " 2011-05-30 08:24 robert * From Terry Welsh, "I was having a small culling problem with osgText... new TextBase.cpp that fixes it." 2011-05-27 16:04 robert * Reverted part of revision r12294 that introduced threading related problems under X11 due to checking the _display Display member variable assigned to the graphics thread from the main thread. 2011-05-27 11:22 robert * From Ryan Pavlik, "Existing osgconv behavior is to transform the model bounding sphere center to the world origin before performing transformations specified on the command line, and translating back after rotation and scaling unless an alternate translation is specified. This patch adds a setting to the OrientationConverter class in osgconv to disable this extra transformation, which has the effect of applying specified transforms with respect to the input world coordinate system, rather than to the center of the bounding sphere. It also adds a command line argument "--use-world-frame" to enable this behavior. When this command line argument is not passed, behavior is unchanged from before the patch. The usage text has been updated to reflect this additional option, and the comments in OrientationConverter are also updated." Note from Robert Osfield, tweaked the OrientationConverter.cpp a little to improve readability. 2011-05-27 11:18 robert * Fixed indentation 2011-05-27 11:07 robert * Fixed the searchAndReplace function so that it correctly skips over the newly inserted replacement strings. 2011-05-27 09:08 robert * From Jean-Sebastien Guay, "I like the recent addition that adds folders in the solution tree to better organize the numerous examples, libraries, plugins etc. I added two folders that were missing IMHO: packaging and documentation. " 2011-05-27 09:05 robert * From Eric Sokolowsky, "Attached is an updated PNM plugin for inclusion in both the trunk and for release version 2.8.5. The attached file fixes numerous bugs in reading 8-bit and 16-bit images, including loading the images upside-down. This file also incorporates trunk patch r12220 which updated the plugin for reading and writing images through streams instead of C-style FILE I/O." Note from Robert Osfield, previous revision was in error due to an incomplete merge, this revision completes the job. 2011-05-27 09:00 robert * From Laurens Voerman, "While working on the osg exporter for 3dsmax I found a bug in the TriStripVisitor. I created a small example (attached), and a modified version of src\osgUtil\TriStripVisitor.cpp where the problem is removed." 2011-05-27 08:55 robert * From Eric Sokolowsky, "Attached is an updated PNM plugin for inclusion in both the trunk and for release version 2.8.5. The attached file fixes numerous bugs in reading 8-bit and 16-bit images, including loading the images upside-down. This file also incorporates trunk patch r12220 which updated the plugin for reading and writing images through streams instead of C-style FILE I/O." 2011-05-27 08:22 robert * Reverted Bryce Eldrige submission. 2011-05-26 16:52 robert * Form Jorge Ciges, improved GL version detection code. 2011-05-26 16:34 robert * From Dietmar Funck, "I've noticed an issue when writing arrays of type Vec2D and Vec3D to a .osgb file. A number is written to the output stream to identify the array type. In case of Vec2D and Vec3D arrays Vec4D is written as array type - I guess this is a copy and paste mistake. Writing the correct array types fixes the issue - in my case it fixes writing and afterwards reading geometry instances." 2011-05-26 16:26 robert * From Bryce Eldridge, "Here is an update for the TIFF plugin that includes the following features when writing out TIFF files: - Support for writing unsigned 16-bit images (GL_UNSIGNED_SHORT) - Code to parse the options string for the following options: -- Flag to turn off the compression. The PACKBITS compression type causes issues for me with some programs on Windows (Picasa for example). -- Options to set the XRESOLUTION and YRESOLUTION tags (DPI) in the TIFF file. Existing behavior (PACKBITS compression, DPI tags left at default) is preserved if the options string is not set. " 2011-05-26 16:19 robert * Fixed default setting of texture_no_tile to match the flags seet in lib3ds_material.cpp initialize_texture_map(..). 2011-05-26 16:16 robert * From Oliver Neumann, "I checked your solution and found one missing point which makes it still produce the tif error: The very first seek_set on the empty stream with zero offset." "This means that the empty stream is seeked again resulting in the fail bit to be set. Your code does not check this case, furthermore you use t_off instead of std::ostream::streampos for the tellp() calls. In this special case (empty stream) tellp() returns -1 which is cast to 0xFFFFFFFFFF as t_off is unsigned. I suggest this addition to your code (within the switch statement)" 2011-05-26 16:13 robert * Fixed indentation 2011-05-26 15:47 robert * Fixed handling of changes in gl buffer object size so that when a gl buffer object is resized all the buffer data is recompiled. 2011-05-25 12:41 robert * From Bradley Anderegg, "Ok, I am re-submitting this with the changes we discussed. That is, there is a default implementation of osgDB::Archive::getDirectoryContents() that uses getFileNames(), and the osgDB::ArchiveExtended header was removed as it is now unnecessary. Here is a quick list of the modified files: Archive - getDirectoryContents() no longer pure virtual Archive.cpp - default getDirectoryContents() implementation unzip.cpp - modified to fix a bug where the same file will not load twice in a row ZipArchive.h / ZipArchive.cpp - extends osgDB::Archive and provides support for random access loading within a .zip file ReaderWriterZip.cpp - modified to use the ZipArchive class" 2011-05-25 09:34 robert * Updated ChangeLog 2011-05-25 09:34 robert * From Olaf Flebbe, fixes for OSX AGL build 2011-05-25 09:13 robert * Removed now redundent local implementation of getDirectoryContexts() 2011-05-25 09:04 robert * From Bradley Anderegg, "Ok, I am re-submitting this with the changes we discussed. That is, there is a default implementation of osgDB::Archive::getDirectoryContents() that uses getFileNames(), and the osgDB::ArchiveExtended header was removed as it is now unnecessary. Here is a quick list of the modified files: Archive - getDirectoryContents() no longer pure virtual Archive.cpp - default getDirectoryContents() implementation unzip.cpp - modified to fix a bug where the same file will not load twice in a row ZipArchive.h / ZipArchive.cpp - extends osgDB::Archive and provides support for random access loading within a .zip file ReaderWriterZip.cpp - modified to use the ZipArchive class" 2011-05-24 13:05 robert * From Olaf Flebbe, "build out-of-the box on MacOSX. The default windowing system is carbon and it needs the AGL OpenGL Windowing binding framework, which is missing. osgViewer does not link therefore. Cocoa does not use AGL. The fix adds the AGL Framework to the Carbon link line for osgViewer" 2011-05-24 10:20 robert * Fixed Coverity issues. CID 11669: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _glAttachShader is not initialized in this constructor nor in any functions that it calls. Non-static class member _glBindAttribLocation is not initialized in this constructor nor in any functions that it calls. ... CID 11699: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _areTessellationShadersSupported is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:19 robert * Fixed Coverity issue. CID 12328: Resource leak (RESOURCE_LEAK) Calling allocation function "osg::KdTree::cloneType() const". (The virtual call resolves to "osg::Object * osg::KdTree::cloneType() const".) [show details] Failing to save storage allocated by "this->_kdTreePrototype->cloneType()" leaks it. 2011-05-24 10:18 robert * Fixed Coverity issue. CID 11692: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _allocationMode is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:18 robert * Fixed Coverity issue. CID 11668: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _primitiveMode is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:16 robert * Fixed 3 Coverity issues. CID 11697: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _type is not initialized in this constructor nor in any functions that it calls. CID 11698: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _type is not initialized in this constructor nor in any functions that it calls. CID 12329: Resource leak (RESOURCE_LEAK) Calling allocation function "osg::Object::clone(osg::CopyOp const &) const". (The virtual call resolves to "osg::Object * GDALPlugin::DataSetLayer::clone(osg::CopyOp const &) const".) [show details] Failing to save storage allocated by "this->getVertexArray()->clone(struct osg::CopyOp const(128U))" leaks it. 2011-05-24 10:15 robert * Fixed Coverity issue. CID 11696: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _simulationTime is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:15 robert * Fixed Coverity issue. CID 11695: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _ximpl is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:14 robert * Fixed Coverity issue. CID 11694: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _isARBOcclusionQuerySupported is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:14 robert * Fixed Coverity issue. CID 11666: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _glMultiTexCoord1dv is not initialized in this constructor nor in any functions that it calls. Non-static class member _glVertexAttrib1dv is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:13 robert * Fixed Coverity issue. CID 11691: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _isPBOSupported is not initialized in this constructor nor in any functions that it calls. Non-static class member _isUniformBufferObjectSupported is not initialized in this constructor nor in any functions that it calls. 2011-05-24 10:08 robert * Fixed build error 2011-05-23 16:58 robert * Removed unused numX, numY member variables, and added initializer for firstHeaderWrite. 2011-05-23 08:17 robert * Added CullVisitor::setCalculatedNearPlane() and setCalculatedFarPlane(() methods to enable 3rd party code to manage the compute of the near/far planes. 2011-05-19 13:25 robert * Uppded the default acceleration as it was too slow for reasonable sized models 2011-05-17 12:57 robert * From Sukender, "There was a stupid parameter inversion in ExternalFileWriter.cpp. Sorry for this. Here is the fix." 2011-05-17 09:21 robert * From Wang Rui, added close button hint 2011-05-16 12:44 robert * From Stephan Huber, "proposed changes allows the user to add a osgGraphicsWindowIOS as an UIView, respecting the sizes via GraphicsContext::Traits. This helps users, who want to integrate osg into an existing ios-app with multiple UIViews. Additinally a view-controller gets only created if needed, set IGNORE_ORIENTATION via the WindowData-struct. " 2011-05-16 10:07 robert * From Sukender, I wrapped my change about non-empty texture units in an off-by-default option, so that it doesn't break any existing code. But AFAIK, other readers (except OSGx) generate contiguous texture units, so I guess this option to be useful for users. Other changes in this sumbission include the added ability to tessellate polygons in Collada reader, with appropriate options. - No tessellation - Tessellate as triangle fan (previous behaviour, kept as default for backward-compatibility) - Full tessellation I also put auto_ptr<> for RAII of DAE structure (as discussed), and moved reader options in a structure, as for the writer. Code also make use of osgDB::ExternalFileWriter I submitted, so please merge this submission after the PluginImageWriter one. 2011-05-16 09:17 robert * Renamed example from osgviewerQtContext to osgviewerQt. 2011-05-16 09:16 robert * Updated example to use new GraphicsWindowQt::getGLWidget() method instead of deprecated getGraphWidget() method 2011-05-16 09:15 robert * Added support for setting threading model from command line and changed default threading model to CullDrawThreadPerContext. New command line options are: osgviewerQtContext --SingleThreaded osgviewerQtContext --CullDrawThreadPerContext osgviewerQtContext --DrawThreadPerContext osgviewerQtContext --CullDrawThreadPerContext 2011-05-16 09:06 robert * From Jan Peciva, I have improved GraphicsWindowQt: - renamed osgQt::GraphWidget to osgQt::GLWidget as it better fits to Qt naming (osgQt::GLWidget is derived from QGLWidget while recent GraphWidget... it is unclear, maybe QGraphicsView, QGraphicsScene,....) - added the code to properly manage ON_DEMAND rendering scheme (involves osgQt::setViewer() and internal HeartBeat class) - added forward key events functionality. It allows to not eat the key events by GLWidget, but it forwards them to Qt processing as well. - destroying GLWidget before GraphicsWindowQt and vice versa does not crash the application - it is possible to request particular QGLFormat in GLWidget constructor - added QtWindowingSystem class - multithread OSG rendering improvements/fixes -- From Robert Osfield, added back in getGraphWidget() method for backwards compatibility. 2011-05-16 08:59 robert * Fixed traling spaces 2011-05-16 08:50 robert * From Rafa Gata, I've been playing around with serializers in order to use it as a "generic" property mechanism for osg::Object. The main problem I have found is that InputStream and OutputStream only takes the stream when you call start method, and in that case it attaches to the stream buffer some stuff, useful for files but not for runtime/gui usage. I have added a simple setInputIterator and setOutputIterator to the classes so now you can easily serialize values without version and other stuff. Writing matrix: osgDB::OutputStream os(0); std::stringstream sstream; os.setOutputIterator(new AsciiOutputIterator(&sstream)); os << matrix; std::string value = sstream.str(); Reading matrix: osgDB::InputStream is(0); std::stringstream sstream(value); is.setInputIterator(new AsciiInputIterator(&sstream)); osg::Matrixf mat2; is >> mat2; From Robert Osfield, added doxygen comments to clarify the role of the methods. 2011-05-15 08:27 robert * From Wang Rui, build fix 2011-05-13 19:19 robert * Updated SO version as the osgText and osgQt libraries API have changed, albeit only by a small amount. 2011-05-13 19:08 robert * Fixed handling of Font implementations that don't handle multiple font resolutions. 2011-05-13 11:20 robert * Improved the size, advance and bearing settings 2011-05-12 18:52 robert * Warning and build fixes 2011-05-12 18:40 robert * Added newline to end of file 2011-05-12 14:07 robert * From Sukender, ported across to use the new osgDB::ExternalFileWriter 2011-05-12 13:27 robert * From Sukender, new ExternalFileWriter helper class that helps the management of writing out external files to disk avoid writing out of duplicates. 2011-05-12 13:12 robert * From Sukender, "Here is a tiny fix which adds missing virtual methods in osgUtil::TransformAttributeFunctor, to handle Vec3d." 2011-05-12 13:08 robert * Removed unused parameter 2011-05-12 12:28 robert * From Wang Rui, "A Chinese engineer (named Beilei Geng) reports a possible bug in the osg2cpp application to me today. The conversion result may become incorrect if there are quotation marks ( " ) in the shader file, which will mostly appear in comment lines. Replace all " into \" before writing to cpp files will solve the problem, as the attached file shows." 2011-05-12 11:45 robert * From Rene Molenaar, "I have found a problem regarding manifest in the plugins, see http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/src/CMakeLists.txt the option OSG_MSVC_GENERATE_PLUGINS_AND_WRAPPERS_MANIFESTS is set to ON only after the subdirectories are added, this causes /MANIFEST:NO while the option is ON after the first configure, generate. if this option is moved (i.e. above the ADD_SUBDIRECTORY statement) results are as expected. attached you will find the correct CMakeLists.txt " 2011-05-12 10:28 robert * Removed redundent method 2011-05-12 10:10 robert * Added setting of size. 2011-05-09 10:54 robert * Fixed Coverity reported issue. CID 11812: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _lastFrameUsed is not initialized in this constructor nor in any functions that it calls. Non-static class member _s is not initialized in this constructor nor in any functions that it calls. Non-static class member _t is not initialized in this constructor nor in any functions that it calls. 2011-05-09 10:54 robert * Fixed Coverity reported issue. CID 11813: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _endian is not initialized in this constructor nor in any functions that it calls. 2011-05-09 10:53 robert * Fixed Coverity reported issue. CID 11814: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _updateCamera is not initialized in this constructor nor in any functions that it calls. 2011-05-09 10:53 robert * Fixed Coverity reported issue. CID 11815: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _cosMaxElevation is not initialized in this constructor nor in any functions that it calls. Non-static class member _cosMaxFadeElevation is not initialized in this constructor nor in any functions that it calls. Non-static class member _cosMinElevation is not initialized in this constructor nor in any functions that it calls. Non-static class member _cosMinFadeElevation is not initialized in this constructor nor in any functions that it calls. 2011-05-09 10:52 robert * Fixed 6 Coverity reported issues. CID 11820: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _azAngle is not initialized in this constructor nor in any functions that it calls. Non-static class member _elevAngle is not initialized in this constructor nor in any functions that it calls. CID 11819: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _BoundaryAngle is not initialized in this constructor nor in any functions that it calls. Non-static class member _planeOrientation is not initialized in this constructor nor in any functions that it calls. CID 11818: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _BoundaryAngle is not initialized in this constructor nor in any functions that it calls. Non-static class member _planeOrientation is not initialized in this constructor nor in any functions that it calls. CID 11817: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _distance is not initialized in this constructor nor in any functions that it calls. CID 11817: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _distance is not initialized in this constructor nor in any functions that it calls. CID 11816: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _leftRightSurfaces is not initialized in this constructor nor in any functions that it calls. 2011-05-09 10:51 robert * Fixed 2 Coverty reported issues. CID 11821: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _traversalNumber is not initialized in this constructor nor in any functions that it calls. CID 11822: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _traversalNumber is not initialized in this constructor nor in any functions that it calls. 2011-05-08 12:06 robert * Updated version number to 2.9.15 after dev release 2011-05-08 11:57 robert * Updated AUTHORS for 2.9.14 dev release 2011-05-08 11:56 robert * Update ChangeLog 2011-05-06 16:46 robert * Added osg::ref_ptr osgDB::Registry::getRefFromArchiveCache() and osg::ref_ptr osgDB::Registry::getRefFromObjectCache(). 2011-05-06 12:32 robert * Removed trailing spaces 2011-05-06 12:30 robert * Fixed Coverity reported issue. CID 11828: Uninitialized scalar field (UNINIT_CTOR) Non-static class member distance is not initialized in this constructor nor in any functions that it calls. Non-static class member maxDistance is not initialized in this constructor nor in any functions that it calls. Non-static class member numIntersectionPoints is not initialized in this constructor nor in any functions that it calls. Non-static class member primitiveIndex is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:30 robert * Moved constructor implementation into .cpp 2011-05-06 12:27 robert * Fixed Coverity reported issue. CID 11838: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _alphaFuncKey is not initialized in this constructor nor in any functions that it calls. Non-static class member _cyleBackwardKey is not initialized in this constructor nor in any functions that it calls. Non-static class member _cyleForwardKey is not initialized in this constructor nor in any functions that it calls. Non-static class member _sampleDensityKey is not initialized in this constructor nor in any functions that it calls. Non-static class member _transparencyKey is not initialized in this constructor nor in any functions that it calls. Non-static class member _updateAlphaCutOff is not initialized in this constructor nor in any functions that it calls. Non-static class member _updateSampleDensity is not initialized in this constructor nor in any functions that it calls. Non-static class member _updateTransparency is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:26 robert * Fixed Coverity reported issue. CID 11827: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _plane_mask is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:25 robert * Fixed Coverity reported issue. CID 11826: Uninitialized scalar field (UNINIT_CTOR) Class member declaration for _recordHeightsAsAttributes. 2011-05-06 12:25 robert * Fixed Coverity reported issue. CID 11830: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _geometry is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:24 robert * Fixed Coverity reported issue. CID 11825: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _primitiveIndex is not initialized in this constructor nor in any functions that it calls. Non-static class member _ratio is not initialized in this constructor nor in any functions that it calls. CID 11824: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _hit is not initialized in this constructor nor in any functions that it calls. Non-static class member _index is not initialized in this constructor nor in any functions that it calls. Non-static class member _length is not initialized in this constructor nor in any functions that it calls. Non-static class member _ratio is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:23 robert * Fixed Coverity reported issue. CID 11829: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _primitiveMode is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:22 robert * Fixed Coverity reported issue. CID 11836: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _fullscreen is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:22 robert * Fixed Coverity reported issue. CID 11831: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _context is not initialized in this constructor nor in any functions that it calls. Non-static class member _dc is not initialized in this constructor nor in any functions that it calls. Non-static class member _handle is not initialized in this constructor nor in any functions that it calls. Non-static class member _instance is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:21 robert * Fixed Coverity reported issue. CID 11835: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _startTick is not initialized in this constructor nor in any functions that it calls. 2011-05-06 12:20 robert * Fixed Coverity reported issues. CID 11834: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _tickLastUpdated is not initialized in this constructor nor in any functions that it calls. Non-static class member _tmpText is not initialized in this constructor nor in any functions that it calls. CID 11833: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _tmpText is not initialized in this constructor nor in any functions that it calls. 2011-05-06 10:30 robert * Fixed Coverity reported issues. CID 11843: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _inexp is not initialized in this constructor nor in any functions that it calls. Non-static class member _outexp is not initialized in this constructor nor in any functions that it calls. CID 11842: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _inexp is not initialized in this constructor nor in any functions that it calls. Non-static class member _outexp is not initialized in this constructor nor in any functions that it calls. 2011-05-06 10:29 robert * Fixed Coverity reported issues. WindowManager.cpp CID 11841: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _lastEvent is not initialized in this constructor nor in any functions that it calls. Non-static class member _lastPush is not initialized in this constructor nor in any functions that it calls. Non-static class member _view is not initialized in this constructor nor in any functions that it calls. Frame.cpp CID 11840: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _flags is not initialized in this constructor nor in any functions that it calls. Window.cpp CID 11839: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _index is not initialized in this constructor nor in any functions that it calls. 2011-05-06 10:28 robert * Fixed Coverity reported issue CID 11441: Non-array delete for scalars (DELETE_ARRAY) "_dwobj::readOpenings(_iobuf *, int)" allocates "obj.fc1". [show details] "_dwobj::~_dwobj()" uses delete on "obj.fc1" which is an array. It should be deleted with operator delete[]. [show details] 2011-05-06 10:27 robert * Fixed Covertiy reported issues. CID 11394: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::IntArray". Assigning: "this->colorindices" = "new osg::IntArray". The constructor allocates field "colorindices" of "struct vertexInfo" but there is no destructor. CID 11395: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::IntArray". Assigning: "this->coordindices" = "new osg::IntArray". The constructor allocates field "coordindices" of "struct vertexInfo" but there is no destructor. CID 11396: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::IntArray". Assigning: "this->normindices" = "new osg::IntArray". The constructor allocates field "normindices" of "struct vertexInfo" but there is no destructor. CID 11397: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::IntArray". Assigning: "this->txindices" = "new osg::IntArray". The constructor allocates field "txindices" of "struct vertexInfo" but there is no destructor. CID 11398: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec2Array". Assigning: "this->txcoords" = "new osg::Vec2Array". The constructor allocates field "txcoords" of "struct vertexInfo" but there is no destructor. CID 11399: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec3Array". Assigning: "this->norms" = "new osg::Vec3Array". The constructor allocates field "norms" of "struct vertexInfo" but there is no destructor. CID 11400: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec3Array". Assigning: "this->coords" = "new osg::Vec3Array". The constructor allocates field "coords" of "struct vertexInfo" but there is no destructor. CID 11401: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec4Array". Assigning: "this->colors" = "new osg::Vec4Array". The constructor allocates field "colors" of "struct vertexInfo" but there is no destructor. CID 11402: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec4Array". Assigning: "this->polycols" = "new osg::Vec4Array". The constructor allocates field "polycols" of "struct vertexInfo" but there is no destructor. 2011-05-06 09:26 robert * Updated SO version number for dev release 2011-05-06 09:22 robert * Fixed Coverity reported issue. CID 11388: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new char[numBytes]". Assigning: "this->_startPtr" = "new char[numBytes]". The constructor allocates field "_startPtr" of "struct DataConverter" but there is no destructor. Assigning: "this->_currentPtr" = "new char[numBytes]". The constructor allocates field "_currentPtr" of "struct DataConverter" but there is no destructor. 2011-05-06 09:21 robert * Fixed Coverity reported issue. CID 12263: Missing break in switch (MISSING_BREAK) This case (value 8) is not terminated by a 'break' statement. CID 12262: Missing break in switch (MISSING_BREAK) This case (value 7) is not terminated by a 'break' statement. CID 12261: Missing break in switch (MISSING_BREAK) This case (value 6) is not terminated by a 'break' statement. 2011-05-06 09:21 robert * Fixed Coverity reported issues. CID 10392: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _maxIndex is not initialized in this constructor nor in any functions that it calls. Non-static class member _minIndex is not initialized in this constructor nor in any functions that it calls. CID 10454: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _maxIndex is not initialized in this constructor nor in any functions that it calls. Non-static class member _minIndex is not initialized in this constructor nor in any functions that it calls. CID 10505: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _maxIndex is not initialized in this constructor nor in any functions that it calls. Non-static class member _minIndex is not initialized in this constructor nor in any functions that it calls. CID 10919: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _maxIndex is not initialized in this constructor nor in any functions that it calls. Non-static class member _minIndex is not initialized in this constructor nor in any functions that it calls. CID 10920: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _maxIndex is not initialized in this constructor nor in any functions that it calls. Non-static class member _minIndex is not initialized in this constructor nor in any functions that it calls. 2011-05-06 09:20 robert * Fixed Coverity reported issues. CID 11389: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new bsp::VBSPData". Assigning: "this->bsp_data" = "new bsp::VBSPData". The constructor allocates field "bsp_data" of "struct bsp::VBSPReader" but the destructor and whatever functions it calls do not free it. 2011-05-06 09:19 robert * Fixed Coverity reported issues by using ref_ptr<> for object. ID 11390: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec3Array". Assigning: "this->vertices" = "new osg::Vec3Array". The constructor allocates field "vertices" of "struct prims" but the destructor and whatever functions it calls do not free it. CID 11391: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec3Array". Assigning: "this->normals" = "new osg::Vec3Array". The constructor allocates field "normals" of "struct prims" but the destructor and whatever functions it calls do not free it. CID 11392: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec3Array". Assigning: "this->txc" = "new osg::Vec3Array". The constructor allocates field "txc" of "struct prims" but the destructor and whatever functions it calls do not free it. CID 11393: Resource leak in object (CTOR_DTOR_LEAK) Allocating memory by calling "new osg::Vec3Array". Assigning: "this->txcoords" = "new osg::Vec3Array". The constructor allocates field "txcoords" of "struct prims" but the destructor and whatever functions it calls do not free it. CID 11747: Uninitialized pointer field (UNINIT_CTOR) Non-static class member gset is not initialized in this constructor nor in any functions that it calls. 2011-05-06 09:00 robert * Fixed build problem 2011-05-05 12:40 robert * Fixed Coverity reported issue. CID 11845: Structurally dead code (UNREACHABLE) This code cannot be reached: ".basic_string("");". 2011-05-05 12:39 robert * Fixed Coverity reported issue. CID 11855: Use after free (USE_AFTER_FREE) "operator delete[](void *)" frees "buffer". 2011-05-05 12:38 robert * Fixed Coverity reported issue. This fix addresses a memory leak. CID 11847: Unused pointer value (UNUSED_VALUE) Pointer "node" returned by "lib3ds_node_new(LIB3DS_NODE_CAMERA)" is never used. 2011-05-05 12:37 robert * Fixed Coverity reported issue. CID 11844: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _defaultValue is not initialized in this constructor nor in any functions that it calls. Index: ../include/osgDB/Serializer 2011-05-05 11:31 robert * Fixed warning 2011-05-05 11:27 robert * Fixed Coverity reported issue. CID 11864: Wrapper object use after free (WRAPPER_ESCAPE) Assigning: "szFilename" = "path.c_str()", which extracts wrapped state from local "path". 2011-05-05 10:31 robert * Fixed 4 Coverity reported issues CID 11851: Unused pointer value (UNUSED_VALUE) Pointer "gfd" returned by "gr->getField(26)" is never used. CID 11850: Unused pointer value (UNUSED_VALUE) Pointer "gfd" returned by "gr->getField(80)" is never used. CID 11849: Unused pointer value (UNUSED_VALUE) Pointer "gfd" returned by "gr->getField(3)" is never used. CID 11848: Unused pointer value (UNUSED_VALUE) Pointer "gfd" returned by "grec->getField(3)" is never used. 2011-05-05 10:28 robert * Fixed typo 2011-05-04 16:36 robert * From Mathias Froehlich, build fix for gcc 4.6 2011-05-04 16:01 robert * From Stephan Huber, "attached you'll find a small enhancement for GraphicsWindowCocoa to implement the recently introduced setSyncToVBlank-method. Additionally I added a ToggleSyncToVBlank-eventhandler to osgViewer. I used it to test the code, perhaps you'll find it useful and include it in the distribution." 2011-05-04 09:53 robert * Removed unncessary references to FREETYPE 2011-05-04 09:48 robert * From Michael Platings, fix for build with cmake 2.6.x 2011-05-03 12:43 robert * Added OSGVIEWER_EXPORT 2011-05-03 10:14 robert * Added missing break; 2011-05-03 09:58 robert * From Michael Platings, "I've updated the FBX plugin to use the latest FBX SDK (2012.1). Please apply the attached .cmake which finds the correct SDK headers & libraries." 2011-05-03 09:11 mplatings * Updated to use FBX SDK 2012.1 2011-04-29 16:50 robert * Improved the handling of different combinations of slashes and dirNames. 2011-04-29 16:34 robert * Added following methods to osgDB::Archive in support of work by Fradley Anderegg on .zip archive support: /** Get the file name which represents the archived file.*/ virtual std::string getArchiveFileName() const = 0; /** return type of file. */ virtual FileType getFileType(const std::string& filename) const = 0; /** return the contents of a directory. * returns an empty array on any error.*/ virtual DirectoryContents getDirectoryContents(const std::string& dirName) const = 0; Added implementations of these new methods into src/osgPlugins/osga/OSGA_Archive.h src/osgPlugins/osga/OSGA_Archive.cpp 2011-04-29 14:31 robert * Refactored the libtiffOStreamSeekProc function so that it extendeds the stream when the requested file position is beyond the current end of the stream. This fix addresses a bug that occurred when writting to a streamstream. 2011-04-29 09:16 robert * Update ChangeLog 2011-04-28 16:33 robert * Fixed Coverity reported issue. CID 11447: Unchecked dynamic_cast (FORWARD_NULL) Dynamic cast to pointer "dynamic_cast (nc->clone(this))" can return null. Assigning null: "first" = "dynamic_cast (nc->clone(this))". The clone() implementation is written using macro's so that it always returns the type of Object being cloned so it's normally safe to assume that a dynamic_cast<> will always return a valid pointer as long as the new T that involves creates a valid object. However, if the class being cloned doesn't correctly implement the clone() method then their potential for the dynamic_cast to fail and will return a NULL and will result in a memory leak of the object of paraent class that the clone would have defaulted to. I've tightened up the CopyOp.cpp code to check the return type and added better handling of the clone in the osg::clone() methods so thay don't have any potential mememory leaks and report warnings to OSG_WARN when problems are encountered. It may be more apporpriate to throw an exception so will need to ponder this issue further. 2011-04-28 10:23 robert * Fixed Coverity reported issue. CID 11403: Logically dead code (DEADCODE) After this line, the value of "needspace" is equal to 0. Assigning: "needspace" = "false". Technically the report is correct, but the code is just debugging code that was there just in case the code needed to be reviewed. This code is long since through it's debugging stage so the code is no longer really worth keeping so I've removed it for cleanness sake. 2011-04-28 10:23 robert * Fixed Coverity reported issue. ID 11667: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _useVertexAttribAlias is not initialized in this constructor nor in any functions that it calls. Member variable should have been initialized but this varaible will have always been initialized in later code before it was used anyway so wouldn't have resulted in a runtime bug. 2011-04-28 10:22 robert * Fixed Coverity reported issue. CID 11414: Logically dead code (DEADCODE) After this line, the value of "vboMemory" is equal to 0. Assigning: "vboMemory" = "NULL". Another case of debugging code paths being picked out. I have chosen to just delete these paths as the code looks to be working fine and less code is better than more code when it comes to maintenance. 2011-04-27 16:37 robert * Fixed Coverity reported issue. Issue is benign as all the member variables are initialized in after construction, but I've moved this initialization into the constructor to make the code more managable. CID 11686: Uninitialized scalar field (UNINIT_CTOR) Non-static class member cnt is not initialized in this constructor nor in any functions that it calls. Non-static class member maxcnt is not initialized in this constructor nor in any functions that it calls. Non-static class member phase is not initialized in this constructor nor in any functions that it calls. 2011-04-27 16:35 robert * Fixed 2 Coverity reported issues. Both issues are benign, but I've addressed then as with the changes the code is clean and more mantainable. CID 11676: Uninitialized scalar field (UNINIT_CTOR) Non-static class member cancelMode is not initialized in this constructor nor in any functions that it calls. Non-static class member cpunum is not initialized in this constructor nor in any functions that it calls. Non-static class member detached is not initialized in this constructor nor in any functions that it calls. Non-static class member isRunning is not initialized in this constructor nor in any functions that it calls. Non-static class member stackSize is not initialized in this constructor nor in any functions that it calls. Non-static class member threadPolicy is not initialized in this constructor nor in any functions that it calls. Non-static class member threadPriority is not initialized in this constructor nor in any functions that it calls. Non-static class member uniqueId is not initialized in this constructor nor in any functions that it calls. CID 11564: Unsigned compared against 0 (NO_EFFECT) This less-than-zero comparison of an unsigned value is never true. "cpunum < 0U". 2011-04-27 16:06 robert * Fixed Coverity reported issue. CID 11677: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _minimumNumberAccumAlphaBits is not initialized in this constructor nor in any functions that it calls. Non-static class member _minimumNumberAccumBlueBits is not initialized in this constructor nor in any functions that it calls. Non-static class member _minimumNumberAccumGreenBits is not initialized in this constructor nor in any functions that it calls. Non-static class member _minimumNumberAccumRedBits is not initialized in this constructor nor in any functions that it calls. 2011-04-27 16:06 robert * Fixed Coverity reported issue. CID 11690: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _frameLastUsed is not initialized in this constructor nor in any functions that it calls. 2011-04-27 16:05 robert * Fixed Coverity reported issue. CID 11689: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _glBlendColor is not initialized in this constructor nor in any functions that it calls. 2011-04-27 16:05 robert * Fixed 2 Coverity reported issues. CID 11681: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _previousHeight is not initialized in this constructor nor in any functions that it calls. Non-static class member _previousWidth is not initialized in this constructor nor in any functions that it calls. CID 11688: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _previousHeight is not initialized in this constructor nor in any functions that it calls. Non-static class member _previousWidth is not initialized in this constructor nor in any functions that it calls. 2011-04-27 16:04 robert * Fixed Coverity reported issue, in this case it's a unused member variable so could just be deleted. CID 11687: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _glBeginEndAdapter is not initialized in this constructor nor in any functions that it calls. 2011-04-27 16:03 robert * Fixed 3 Coverity reported issues. CID 11622 is a bit of false positive as for valid settings no leak would happen. CID 11810: Uninitialized scalar field (UNINIT_CTOR) Non-static class member _setMaxFarDistance is not initialized in this constructor nor in any functions that it calls. CID 11811: Uninitialized pointer field (UNINIT_CTOR) Non-static class member _displayTexturesGroupingNode is not initialized in this constructor nor in any functions that it calls. CID 11622: Resource leak (RESOURCE_LEAK) Calling allocation function "operator new(unsigned long long)". Variable "" is not freed or pointed-to in function "osg::StateSet::StateSet()". [show details] Assigning: "sharedStateSet" = storage returned from "new osg::StateSet". 282 osg::StateSet* sharedStateSet = new osg::StateSet; Variable "sharedStateSet" is not freed or pointed-to in function "osg::Object::setDataVariance(osg::Object::DataVariance)". [show details] 2011-04-27 16:02 robert * Fixed Coverity reported issue. CID 11588: Resource leak (RESOURCE_LEAK) Calling allocation function "operator new[](unsigned long long)". Assigning: "dataPtr" = storage returned from "new unsigned char[newTotalSize]". 2011-04-27 16:01 robert * Fixed 2 Coverity reported issues. Following are both false positives as the the scope they are in will always assign the object to a ref counted structure. I've modified the code to use ref_ptr<> to just make it clear that it's underscope, although this is not strictly neccessary as the code is OK, I introduced this for clarity and robustness in presence of exceptions. CID 11586: Resource leak (RESOURCE_LEAK) Calling allocation function "operator new(unsigned long long)". Variable "" is not freed or pointed-to in function "osg::VertexBufferObject::VertexBufferObject()". [show details] Assigning: "vbo" = storage returned from "new osg::VertexBufferObject". CID 11587: Resource leak (RESOURCE_LEAK) Calling allocation function "operator new(unsigned long long)". Variable "" is not freed or pointed-to in function "osg::ElementBufferObject::ElementBufferObject()". [show details] Assigning: "ebo" = storage returned from "new osg::ElementBufferObject". 2011-04-27 16:00 robert * Fixed Coverity reported issue. CID 11636: Allocation size mismatch (SIZECHECK) "my_alloc(sizeof (struct PlyProperty) /*36*/ * elem->nprops, 1292, "..\\..\\..\\..\\src\\osgPlugins\\ply\\plyfile.cpp")" allocates memory. [show details] Allocating a multiple of 36 bytes to pointer "other->props", which needs 8 bytes. 2011-04-26 19:31 robert * Fixed 1 Coverity Low Impact issue "Unused pointer value (UNUSED_VALUE) Pointer "indices" returned by "this->_vertexAttribList[0ULL].indices.get()" is never used." Report highlighted the fact that later code wasn't using the indices variable when it should have been, so potentially a higher impact that the severity suggested by Coverity. 2011-04-26 19:29 robert * Fixed 3 Coverity Low Impact performance issues relating to "Big parameter passed by value". 2011-04-26 15:24 robert * Updated version after 2.9.13 dev release 2011-04-26 14:55 robert * Updated ChangeLog and AUTHORS for 2.9.13 dev release 2011-04-26 12:07 robert * From Mattias Helsing, "Fixes two of the osgWidget examples that were broken due to changed virtual function prototypes in osgWidget/EventInterface" 2011-04-26 12:05 robert * From Craig Bosma,"Please find attached a fix for shared contexts on OS X, with the Cocoa backend. The NSOpenGLContext* _context member of GraphicsHandleCocoa was never set on successfully creation, so even if the dynamic_cast to GraphicsHandleCocoa succeeds, we get a bogus (NULL) pointer on retrieving the actual NSOpenGLContext* (line 1013). This should fix the problem, as well as cause GraphicsWindowCocoa to report the correct name "GraphicsWindowCarbon" -> "GraphicsWindowCocoa". " 2011-04-26 11:51 robert * From Farshid Lashkari, "I believe their is small error in how OutputStream handles the WriteImageHint. In the "writeImage" method, it converts the WriteImageHint to an internal "decision" flag. During this conversion, it seems to be swapping the behavior for WRITE_EXTERNAL_FILE and WRITE_USE_EXTERNAL. I've attached what I believe to be the correct conversion." 2011-04-21 17:16 robert * From Mattias Helsing, "Fixes installation of the osgViewer headers that got broken with rev 12208 and 12231. The windowing system specific headers under include/osgViewer/api/ are again installed under include/osgViewer/api/ Works in recent ubuntu with cmake-2.8.4 and msvc2010 with cmake-2.8.2" 2011-04-21 17:04 robert * From Johannes Baeuerele, "I have extended the pvr reader plugin to support etc1 compression(GL_ETC1_RGB8_OES). The changes attached to this submission are based on today's trunk. The pvr format which can be used as a wrapper for different compressed and uncompressed formats supports this compression algorithm. The original pvr compression uses the pvrtc format. The handling of pvrtc is already implemented in the pvr plugin. PVR provides wrapper functionality for some formats, e.g. etc or even dxt/dds. Our target system (gles2) is able to use the etc compression format. With minor changes in the submitted files, there is no need to write a separate plugin. However the original pvr texture compression formats are not supported on our target, which is the reason for this extension. The changes mainly consist in the definition on new enum values in the classes and headers of ReaderWriterPVR,Image and Texture. I also found some locations where the handling of the original pvr textures was not implemented. These are also part of this submission." 2011-04-21 13:34 robert * From Marius Heise, "here is a patch that implements Win32 HW-synced swapping using wglJoinSwapGroupNV, wglBindSwapBarrierNV and the existing traits. It was tested with multiple ATI FirePro S400 cards. I also fixed the vsync implementation introduced with rev.11357 that was crashing with the Windows Error #170. So I removed your temporary /* */ around the vsync condition..." 2011-04-21 13:01 robert * From Fred Smith, "GraphicsWindowWin32::setWindow currently creates a context with no regards to the Traits, like createWindow does. That is, it calls ::wglCreateContext to create a context, not the member method createContextImplementation(), which takes into an account the Traits. In my situation, this prevents a GL 3.x context from being created. " 2011-04-21 12:53 robert * From Jorge Ciges, "1rst - Changes in Cmake: They make possible "make install" with the android building. 2nd - Script to use a 3rd party directory with basic libraries: libjpeg,libpng,libtiff,giflib,freetype,curl,gdal. 3rd - Change in the GLES library loading for Android. That should make GLES2 work properly. 4rth- Included two defines RGB8_OES and RGBA8_OES as a substitute in GLES for RGB8 and RGBA8 5th - OpenGL and GLSL version identification changed to recognize GLES versions properly " 2011-04-21 12:12 robert * From Cedric Pinson, "I have tried some model that produces crashes in the dae plugin because of empty node: if (GetFloat4Param(cot->getParam()->getRef(), f4)) {...} in the model I have tested cot->getParam()->getRef() return 0x0 and make it crahes inside GetFloat4Param. I have added a test before calling GetFloat4Param if (cot->getParam()->getRef() != 0 && GetFloat4Param(cot->getParam()->getRef(), f4)) {...} " 2011-04-21 12:06 robert * From Tomas Hogarth, "Attached are the complete changed files GraphicsWindowIOS and GraphicsWindowIOS.mm. The change is in regard to the ability to adapt to device orientation. We did just have a bool indicating the window would adapt to all orientations. I have changed this to a bit mask allowing the user to specify individual orientations or combinations. enum DeviceOrientation{ PORTRAIT_ORIENTATION = 1<<0, PORTRAIT_UPSIDEDOWN_ORIENTATION = 1<<1, LANDSCAPE_LEFT_ORIENTATION = 1<<2, LANDSCAPE_RIGHT_ORIENTATION = 1<<3, ALL_ORIENTATIONS = PORTRAIT_ORIENTATION | PORTRAIT_UPSIDEDOWN_ORIENTATION | LANDSCAPE_LEFT_ORIENTATION | LANDSCAPE_RIGHT_ORIENTATION }; typedef unsigned int DeviceOrientationFlags; The main motivation for this is to easily allow the user to specifiy that the device is in a horizontal orientation rather then having to rotate the view matrix. All flags have been tested individually as well as in combinations. The default is ALL_ORIENTATIONS to keep the exiting functionality for anyone who hasn't specified WindowData for their context traits. " 2011-04-20 19:20 robert * From Sukender, Here is a tiny update to FileNameUtils. It brings getPathRoot() and isAbsolutePath() to the public side of the lib. 2011-04-20 17:15 robert * From Guillaume Taze, "This is a fix for the error popups which appeared when reading a corrupted file on windows. Errors are redirected to std::err instead." Note from Robert Osfield, changed jpeg error report output from stderr to standard OSG notification system using OSG_WARN. 2011-04-20 11:45 robert * Added releaseGLObjects(State*) support into osg::FrameBufferObject, osg::RenderBin and osg::RenderStage to ensure proper clean up of FBO's on closing a graphics context. 2011-04-19 14:19 robert * From Magnus Kessler, "A few minor fixes in the documentation strings of ReaderWriterFLT.cpp" 2011-04-19 14:11 robert * From Bradley Anderegg, "The first change just exposes the archive extension list so that external applications can determine if an archive extension is valid. The second change is a bug fix in Registry::read(const ReadFunctor&) where if you pass in valid options they get wiped out after the archive is loaded but before being passed along to the plugin." 2011-04-19 13:32 robert * From Paul Martz, "To summarize the fix: OpenGL eye coords are negative outside Cartesian quadrant 1. As a result, the center of projection is eye coord (0,0), which (when used as st tex coords) looks up the lower left corner of the texture. However, in projective texturing, you usually want eye coord (0,0) to look up the center of the texture. Accomplishing this mapping requires not just a lookat and perspective transform, but also a translate and scale." 2011-04-19 12:01 robert * From Jan Peciva, "please find attached proposed fix for ON_DEMAND rendering. The biggest issue was that the windows did not act on repaint request (WM_PAINT, EXPOSE,...) Detailed explanation: - I implemented requestRedraw using the push approach (not using GraphicsWindow::_requestRedraw flag that I was considering) as there may be multiple viewers reading the flag and fighting to reset it after the paint request, while some viewers may not spot the request to redraw - I made windows call GraphicsWindow::requestRedraw when they receive appropriate message (WM_PAINT, EXPOSE, RESIZE,...) - There were issues on Linux that windows did not want to close using x button. Resolved by moving the test for DeleteWindow event from swapBuffersImplementation() to GraphicsWindowX11::checkEvents(). The difficulty was that DeleteWindow event is not coming using _eventDisplay, but through _display. - The last difficulty was that it is necessary to call ViewerBase::checkWindowStatus() to set _done to true when all windows are closed. This did not happened recently in ON_DEMAND run scheme. I put the call to checkWindowStatus() to eventTraversal. " 2011-04-19 11:46 robert * Removed spaces from end of lines 2011-04-19 11:40 robert * Ran svn propset -R svn:eol-style native . on the OpenSceneGraph 2011-04-19 09:54 robert * Improved the handling of unitialized bounding box 2011-04-19 09:53 robert * Cleaned up example 2011-04-18 12:58 robert * Updated SO version number 2011-04-18 12:35 robert * Added IncrementalCompileOperation::compileAllForNextFrame(uint) method and supporting functionality that tell the IncrementalCompileOperation to compile all pending objects during next draw traversal, for specified number of frames. 2011-04-14 15:47 robert * From Stephan Huber, "attached you'll find some enhancements for the iphone-part of the readme." 2011-04-14 15:45 robert * From Magnus Kessler, "The standard width for the windows cmd and terminals on many Unix systems is 80 columns. I reorganized some of the help strings to make the output of osgconv --help --all fit to 80 columns. This avoids difficult to read line breaks added by the terminal program itself." 2011-04-14 15:22 robert * Cleaned up DXT1 support 2011-04-14 15:21 robert * Added IF (WIN32) around OSG_USE_UTF8_FILENAME 2011-04-14 10:44 robert * Added osgDB::Option string entries: supportsOption("dds_dxt1_rgb","set the pixel format of DXT1 encoded images to be RGB"); supportsOption("dds_dxt1_rgba","set the pixel format of DXT1 encoded images to be RGBA"); supportsOption("dds_dxt1_detect_rgba","For DXT1 encode images set the pixel format according to presence of transparent pixels."); And set the default not to modify and detect the RGB or RGBA pixel format for DXT images. 2011-04-14 09:16 robert * Added setting of the internal texture format 2011-04-13 19:28 robert * quitened down debug output 2011-04-13 19:26 robert * Introduced new code for detecting DXT1 images catogoriesed as RGB that actually have a 1 bit alpha, therefore re-interpreting these as RGBA. 2011-04-13 10:44 robert * Added handling of DXT1 in osg::Image::isImageTranslucent() 2011-04-11 19:11 robert * Added support for explitly requesting DXT1a and DXT1c compression 2011-04-04 10:16 robert * From Stephan Huber, "Attached you'll find a fixed GraphicsWindowCocoa-implementation which should fix the reported bugs. the osgkeyboard-example works now, but not the numbers of the keypad, as they hilight only for KEY_KP_Left, KEY_KP_Right, KEY_KP_Up, KEY_KP_DOWN etc and not for KEY_KP_0 - KEY_KP_9." 2011-03-31 14:57 robert * Added OPENTHREADS_ATOMIC_USE_MUTEX Cmake options that allows you to override the default detection of atomic implementatition, making it possible to force the use of Mutex for OpenThreads::Atomic, and as a consequence for use of Mutex for Referenced::ref/unref() counting. 2011-03-30 15:15 robert * From Tim Moore, Fixes to race in DatabasePager where a parent PagedLOD of newly loaded subgraph has been expired. Clean up of visitor naming to make it clearer what role it has. 2011-03-23 14:01 robert * Added m4v as a handled movie file extension 2011-03-21 21:28 robert * Added dciimage library to DCMTK libs 2011-03-21 21:28 robert * Improved handling of RGB data. 2011-03-19 16:25 robert * Added .get() to fix build 2011-03-18 12:21 robert * Adde an isFileADicom(..) method to enable the loader to automatically identifier dicom files without making any assumptions about the file extension 2011-03-18 11:23 robert * Added extra DCMTK libraries to search and link line to enable build against new DCMTK-3.6.0 release 2011-03-17 17:33 robert * Added support for new SampleDensityWhenMovingProperty into .p3d format, with it default to 0.02. One can override this value via the sampleDensityWhenMoving="value" property in the volume tag, i.e. CardiacCT To switch the feature off set the value to 0, i.e. CardiacCT 2011-03-17 15:37 robert * Added SampleDensityWhenMovingProperty to control LOD property of osgVolume. 2011-03-17 13:56 robert * Changed the view movement detection code so that it uses the new CullVisitor::Identifier to indentifier cull traversals, this enables the code to properly detect movement when osgViewer::Renderer uses double buffering of SceneView. 2011-03-17 13:54 robert * Added set up of CulLVisitor::Identifier so that the double buffered SceneView/CullVisitor share the same Identifier. 2011-03-17 13:54 robert * Added CullVisitor::Identifier to help with cull operations that require a consistent identifier for cull traveresals when osgViewer::Renderer uses double buffering. 2011-03-17 11:49 robert * First cut at LOD support in RayTracedTechnique, which lowers the number of samples taken when the view of the volume is changing. 2011-03-16 13:48 robert * From Torben Dannhauer, "adds an additional library name of libpng ( libpng15 ) to search fo" 2011-03-16 13:41 robert * From Alan Dickinson,"I tested out my changes against the trunk and everything worked fine... except I noticed that the CMAKE_BUILD_POSTFIX is set incorrectly for a undefined or blank BUILD_TYPE. So here is the one line change to the CMakeLists.txt to rectify this omission." 2011-03-16 10:51 robert * Added hud and billboard support to image, stereo_image, pdf, browser and vnc image placement 2011-03-15 19:54 robert * Added support hud property for title, bullets and paragraph tags 2011-03-15 14:04 robert * From Sukender, "Fixed a case where getUniqueName() does not work properly" 2011-03-15 14:02 robert * From Torben Dannhauer, update to reflect addition of NVTT to Windows 3rdPartyPackage 2011-03-15 13:53 robert * Added checked against GL version number for enabled _isTexture3DSupported. 2011-03-15 13:40 robert * Fixed warning 2011-03-15 13:30 robert * Added OSG_EXPORT to declaration of View::Slave. 2011-03-15 12:48 robert * Re-enabled the fallback compute of bounding volume. 2011-03-15 12:26 robert * Fixed updating of text position when PositionData.position is not modified by tag but other elements of PositionData are - such as when billboarding 2011-03-14 21:36 robert * Implemented billboard="on" option for image, bullet and paragraph tags 2011-03-14 11:29 robert * Added support for placing comments at end of each line. 2011-03-14 10:07 robert * From Farshid Lashkari, "Another update. I added a LIMIT_NEAREST enum which implements your previous suggestion of rejecting bounding volumes further from the nearest existing intersection. I only implemented this for LineSegmentIntersector. I'd appreciate it if you could double check the math I added to LineSegmentIntersector::intersects() for checking if the bounding sphere is further away. The results of this are promising. I'm getting noticeable performance increase for line intersections with scenes containing many drawables. " 2011-03-14 09:59 robert * From Torben Dannhauer, warning fix for a false positive warning generated by VS about "not all control pathes return a value". 2011-03-11 17:20 robert * From Farshid Lashkari, removal of redundent spaces at the end of lines. 2011-03-11 16:31 robert * From Benjamin Wasty and David Guthrie, "currently, non-alpha-numeric keys are not recognized (except as modifiers) in osgQt, so I added the mapping code from my Qt integration to GraphicsWindowQt (which is based on Delta3D code from David Guthrie - he gave me permission to submit it under OSGPL)." 2011-03-11 11:25 robert * From Sukender, "Added support for texcoords scale and offset (UV scaling and offset in Lib3DS Materials), for texture unit 0." 2011-03-11 11:20 robert * Fixed the case insenstive search under unices 2011-03-11 10:24 robert * From Mourad Boufarguine, "There is a redundant cmake code at the end of osgViewer cmake script. The install command is issued in SETUP_LIBRARY macro." "I spotted this when i tried a make install on the android port :) I saw some weird copy commands of osgViewer headers. I managed to get all osg headers copied to cmake_install_prefix/include upon make install, but i can't (yet) get the libraries to be copied to cmake_install_prefix/lib (see attached files)" 2011-03-11 10:18 robert * From Alan Dickinson, "I modified the CPack and CMake files to utilze the CMAKE_INSTALL_PREFIX when building RPM packages. I also modified the CMake and pkgconfig files to append the _POSTFIX extenstion based on the CMAKE_BUILD_TYPE. Additionally I fixed packaging/ld.so.conf.d/openscenegraph.conf.in to add a '/' betweeen the arguments since the CMAKE_INSTALL_PREFIX can't end with a '/'. " 2011-03-10 14:53 robert * From Mourad Boufarguine, "I gave osg android port a try on Windows using cygwin, and it worked like a charm (only a tiny problem with osgViewer, when cross compiling for android using cygwin, the windows path in osgViewer/CMakeLists.txt is used rather than the android one, fix attached). " 2011-03-10 14:44 robert * From Mourad Boufarguine, "I gave projects folders in VS a try, it works for applications, plugins and examples but not for the osg core libraries. Attached OsgMacroUtils.cmake is a tiny fix for this. OpenThreads is addressed seperately." 2011-03-10 10:56 robert * From Rafa Gaitan, "Attached the fix to remove the symlinks created with make install." 2011-03-10 10:52 robert * From Michael Platings, "I'm guessing that the stack corruption was caused by calling GetFullPathNameW with the nBufferLength argument as the number of bytes in the buffer, rather than the number of characters. I've attached code that uses GetFullPathNameW et al. with _countof() rather than sizeof() and this works fine." 2011-03-09 17:35 robert * Quitened down timing stats 2011-03-09 16:30 robert * From Johannes Baeuerle, fix for memory leak 2011-03-09 15:55 robert * From Jan Peciva, "please, find attached updates to Inventor plugin: - improved transparency - do not treat 32-bit textures as transparent textures unless they really contain transparent pixels - error messages forwarded to osg::notify" 2011-03-09 14:44 robert * From Sukender, "1. Made code a bit more readable/cleaner. 2. Removed unecessary code. Also made sure the images names are not truncated in the middle of an UTF8 character. You'll find there a function called utf8TruncateBytes(), which may be moved in core OSG (osgDB/ConvertUTF I guess). Feel free to do it if you feel it that way. " 2011-03-09 14:15 robert * From Piotr Gwiazdowski, "So there's config setting OSG_DISABLE_MSVC_WARNINGS which should disable pragmas that turn off specific warnings for MSVC. Unfortunately it's presence is only checked in osg/Export header, making other Export headers disable warnings no matter what, which is kind of incoherent. My fix adds #include to every Export header. I've also unified checking whether to disable warnings to current osg/Export way: #if defined(_MSC_VER) && defined(OSG_DISABLE_MSVC_WARNINGS). Attachment contains all changed Export files in their original locations." 2011-03-09 13:10 robert * From Eric Sokolowsky, "I have updated the pnm plugin to use streams instead of C-style I/O. Attached is src/osgPlugins/pnm/ReaderWriterPNM.cpp" 2011-03-09 13:05 robert * From Tassilo Glander,"I patched the cmake configuration to support folders, which are really handy to organize the many projects in the OSG solution into examples, applications and core libs in the IDE. This feature has been introduced to cmake in 2.8.3, on older versions it should be ignored silently. I tested on Visual Studio 2008 with cmake 2.8.3 and 2.8.4. See the screenshots for comparison [img]osg_solution.png[/img] This needs few changes: activate on global cmakelist.txt: [code]set_property(GLOBAL PROPERTY USE_FOLDERS On)[/code] set appropriate folder names for project type in osgMacroUtils.cmake: [code]SET_TARGET_PROPERTIES(${CORELIB_NAME} PROPERTIES FOLDER "OSG Core")[/code] similar for examples, applications" 2011-03-09 12:29 robert * From Piotr Gwiazdowski, "Recently I've been having some trouble with osgWidget::StyleManager (I'll omit osgWidget namespace from now on). It seems to me that there are some inconsistency in the code. In Style there are multiple applyStyle method overloads, applying style for different widgets/windows built-in in osgWidget. Plus you can do overrides. It's good so far. The problem lies in StyleManager::_applyStyleToObject (which calls _coearceAndApply, which calls _applySpecificStyle, which calls Style::applyStyle). With current implementation Style::applyStyle variants for Input, Window, Frame::Corner, Frame::Border, Window::EmbeddedWindow are never called, because their classes' names are omitted in methods' if/else if block, making it impossible to use styles with most than half of built-in widget/window types. My fix simply adds couple else if blocks, making each Style::applyStyle variant callable. By the way, I think that next update should add Style::applyStyle overload for Table class and add proper className overloads for Input and Window." 2011-03-09 12:15 robert * Removed the repeated called to jas_init() and jas_image_clearfmts() calls to make it possible to use the reading multi-threaded 2011-03-09 11:22 robert * From Dietmar Funck, "I've noticed an issue with osgUtil::RenderStage::runCameraSetUp() if the number of buffer attachments of the camera decreases according to privous calls. This happens because RenderStage::_bufferAttachmentMap is updated only for the number of buffers the camera has when runCameraSetUp is called. For example if there were 4 attachments and now only 3, only the first three elements of _bufferAttachmentMap are changed. The fourth is just as before - however it shouldn't be there. Calling _bufferAttachmentMap.clear() before resolves this problem. " 2011-03-09 11:15 robert * From Cedric Pinson, "I have just adjusted the FindCOLLADA function to let it find library on gnu/linux." 2011-03-09 11:13 robert * From Sukender, "I fixed the writing but never thought about the reading part... Here is the fix for reading path containing %23 (= '#') characters." 2011-03-09 11:06 robert * Updated versions for next OSG dev release 2011-03-09 10:35 robert * Changed the use of a viewer thread to be off by default because it was causing the application to crash when any users input was recieved 2011-03-08 17:05 robert * Fixed error in X11 string name 2011-03-08 16:35 robert * From Rafa Gaitan and Jorge Izquierdo, build support for Android NDK. "- In order to build against GLES1 we execute: $ mkdir build_android_gles1 $ cd build_android_gles1 $ cmake .. -DOSG_BUILD_PLATFORM_ANDROID=ON -DDYNAMIC_OPENTHREADS=OFF -DDYNAMIC_OPENSCENEGRAPH=OFF -DANDROID_NDK=/ -DOSG_GLES1_AVAILABLE=ON -DOSG_GL1_AVAILABLE=OFF -DOSG_GL2_AVAILABLE=OFF -DOSG_GL_DISPLAYLISTS_AVAILABLE=OFF -DJ=2 -DOSG_CPP_EXCEPTIONS_AVAILABLE=OFF $ make If all is correct you will have and static OSG inside: build_android_gles1/bin/ndk/local/armeabi. - GLES2 is not tested/proved, but I think it could be possible build it with the correct cmake flags. - The flag -DJ=2 is used to pass to the ndk-build the number of processors to speed up the building. - make install is not yet supported." 2011-03-08 15:31 robert * Fixed indentation 2011-03-08 13:51 robert * From Rafa Gaitan, "I have added the macro SETUP_LIBRARY, similar to SETUP_PLUGIN or SETUP_EXE, in order to have a unique entry point to build the libraries. With this changes the android integration will be less painful (currently is a big IF(ANDROID) for each CMakeLists.txt) and more maintainable in the future. I hope next submissions will be for supporting android from my colleague Jorge. " 2011-03-07 14:42 robert * Added comments 2011-03-07 13:45 robert * Changed all .c++ to .cpp's 2011-03-07 12:35 robert * Added --color r g b a, --wall-color r g b a, --back-color r g b a options for setting the colours of faces via materials. and --image filename, --wall-image filename, --back-image filename options to set the textures used, note, texcoords are not currently set up so texels used will be 0,0. 2011-03-07 12:33 robert * Enabled the settng/getting of the Text3D's WallStateSet and BackStateSet along with use of these in the rendering implementation to allow separate colour and other state to be assigned to the front, wall and back faces. 2011-03-03 15:52 robert * Moved intial cut of depth partition support into osgViewer::View via two new methods: /** Convenience method for setting up multiple slave cameras that depth partition the specified camera.*/ bool setUpDepthPartitionForCamera(osg::Camera* cameraToPartition, DepthPartitionSettings* dps=0); /** Convenience method for setting up multiple slave cameras that depth partition each of the view's active cameras.*/ bool setUpDepthPartition(DepthPartitionSettings* dsp=0); 2011-03-03 12:33 robert * Introduced a new more generic function for settings up the depth partitioning of viewer cameras. 2011-03-02 16:40 robert * Build fix 2011-03-02 16:24 robert * Made parameter a little easier to adjust and commented out verbose debug info 2011-03-02 16:09 robert * Implemented first cut of more flexible depth partitioning code. 2011-03-01 16:21 robert * Fixed typo 2011-03-01 15:04 robert * Added support for passing the --depth-partition distance, throw to the depth partition slave camera setup. 2011-03-01 14:50 robert * Added experiment depth partioning support in the form of an slave camera configuration. 2011-03-01 14:48 robert * Added support for an View::Slave::UpdateSlaveCallback 2011-02-26 16:04 robert * Fixed handling of write and reading of straight Node objects in the scene graph. 2011-02-26 15:52 robert * Changed the handling of unkown nodes on write so that the code now ignores the non supported nodes allows the overall write to continue. 2011-02-24 11:54 robert * Removed TrapezoidalShadowMap due to discovery of patent on algorithm. 2011-02-23 22:52 cedricpinson * Cedric Pinson: Fix divide by zero when Action has 0 frames, and add a warning message because it means something wrong on input data 2011-02-23 16:49 robert * Fixed typo 2011-02-23 16:46 robert * From Wojciech Lewandowski, intial cut at new TrapezoidalShadowMap ShadowTechnique 2011-02-23 16:45 robert * From Wojciech Lewandowski, various tweaks to osgShadow shadow mapping classes to improve consistency and enable more debug info output 2011-02-23 14:09 robert * Inverted the orientation of the 't' transparency control so that it's full on at the bottom of the screen, and full transparent at the bottom. 2011-02-23 13:56 robert * Added support for negative --xMultipler, --yMultiple and --zMultiplier values 2011-02-23 12:48 robert * Added support for positive values of --xMultiple --yMultiplier and --zMultiplier 2011-02-23 12:13 robert * Changed the default number of components for a RGB to 4 so it appears as an RGBA 2011-02-23 11:43 robert * Added error reporting for old options 2011-02-23 11:28 robert * Added -n option 2011-02-23 10:37 robert * Added extra check for GL_BGR and GL_BGRA formats and messages describing image format loaded 2011-02-22 14:21 robert * Added test code to explore problems with LightSpacePerspectiveShadowMap implementation handling of different datasets and camera settings. 2011-02-22 11:59 robert * Added support for GL_BGR and GL_BGRA pixel formats 2011-02-22 10:53 robert * Changed the handling of erroneous dicom files so that the loading of a directory of dicom files is not abondonded when one or more erroneous files are encountered. 2011-02-21 12:29 robert * Added computePositions() call to Text3D::resizeGLObjectsBuffers(uint) 2011-02-21 10:02 robert * Added missing Terrain.h reference 2011-02-20 09:57 robert * Fixed build of various LiSPSM algorithms 2011-02-20 09:55 robert * Added --fov and --light-pos and --light-dir command line parameters 2011-02-18 11:04 mplatings * Disabled the RGB components of the opacity texture 2011-02-14 16:24 robert * From Philipp Svehla, "We’ve added support for users to override the default values for child elements in asset tags (for the collada writer). This support was added for the following child elements: - contributor - author - authoring_tool - comments - copyright - source_data - created - keywords - modified - revision - subject - title - unit - name - meter - up_axis With this support, users are able to include additional information in their models. Additionally, tools such as sketchup that support asset tags use the values appropriately within their imported models." 2011-02-14 16:09 robert * From Tim Moore, "This patch fixes some performance problems with the DXF loader. It removes some unnecessary copies of vertex coordinates (which were causing an exponential explosion). It also replaces BIND_PER_PRIMITIVE normals with BIND_PER_VERTEX so that the resulting geometry will be on the fast path." 2011-02-14 16:05 robert * Added copyop parameter to cloneOptions() method 2011-02-14 15:59 robert * From Tim Moore, "The non-virtual cloneOptions() method, which is now used by DatabasePager, breaks derived classes of osgDB::Options. This patch uses the clone() method to clone Options." 2011-02-14 15:43 robert * From Sukender, "Here is an minor update for Jasper finder. It adds debug cache value for Windows/MSVC builds, and adds search paths." 2011-02-14 15:04 robert * From Jan Peciva, "Improvements: - Use OSG routines to load images instead of simage library (removes dependency on 3rdParty simage library). Applies to Coin Inventor clone only. " 2011-02-14 15:01 robert * Moved ProgramBinary into osg::Program scope 2011-02-14 14:16 robert * From Sukender, "Here are two sumbissions for DAE. 1. daeRGeometry.cpp (rev 12132). A tiny sumbission which fixes a quite important bug: a parameter was forgotten in Collada ReaderWriter, and texture coordinates could not be loaded properly. So: " Added missing paramter when calling createGeometryData(). Fixes missing texture coordinates (in "bind_vertex_input"). " 2. ReaderWriterDAE.cpp (rev 12132): " Added "baseImageDir" as a plugin string data, in order to manually specify base directory to use when relativising image file names. This is used to properly write files, when images are not located in a subdirectory (like "../images" for some software). " 2011-02-14 13:54 robert * From Johannes Bauerle, "I experienced problems using binary shaders in osgt files (=the osg-serializer plugins). At runtime std::bad_alloc errors were thrown when using binary shaders. The reason is that the .osgt text files do not provide size information about the contained binary shader hence leading to a bad allocation when reading the shader data, probably size 0 ? The reader method in the responsible serializer class (serializers/osg/BinaryShader) is correct and does not need to be changed as it queries the size as expected. The writer method supports two paths(binary output .osgb and text output .osgt/.osgx). Only the text path is affected as the binary path writes the size. I extended the writer in the text path by the size information. The results before and after the fix are shown below: Erroneous code for binary shader in osgt file before fix: Data { 0a 0d 0 ... } Corrected code for binary shader in osgt file after fix: Data 524 { 0a 0d 0 ... } After my fix the the thrown error disappeared." 2011-02-14 13:50 robert * From Jahannes Bauerle, "l discovered that the shader class(/src/osg/Shader.cpp) shows wrong behavior when using binary shaders . When shader objects are compared the reference pointer behind the _shaderBinary member is not included in the comparison. I included binary shaders into an osgt model file. These shaders only consists of the binary shader code, I did not supply the text version additionally. When loading the model the osg::Optimizer threw away all shaders except the first one. In the current trunk version of the file two shader objects are identical despite differing _shaderBinary members as the compare method of the Shader class does not include the comparison of that member. The fix in this submission adds the check for identity of the referenced binary shaders to the shader class. When comparing two shader objects with text source shaders the new lines of comparison are not even executed as the comparison returns false in the previous lines when the text shaders differ. With this fix I get expected behavior, the Optimizer handles the different shaders correctly." 2011-02-14 12:55 robert * Set debug message to INFO 2011-02-14 12:54 robert * From Michael Platings, I've added initial support to osg for glGetProgramBinary and glProgramBinary. This means that shader programs can now be cached to disk and later reloaded, which is much faster than linking shaders from source code. This should mean significantly shorter load times for people who use lots of combinations of shaders. 2011-02-14 12:14 robert * Fixed typo 2011-02-11 12:11 robert * From Jean-Sebastien Guay, event handler for controlling the field of view of the viewer's camera using 0, - and = keys. 2011-02-11 11:08 robert * Update ChangeLog 2011-02-11 09:18 robert * Added check against the NodePath being empty. 2011-02-10 14:24 robert * Tweak to output details 2011-02-10 14:09 robert * Updated AUTHORS and Contributors.cpp files 2011-02-10 12:23 robert * From Martin von Gagern, build fix for latest ffmpeg changes 2011-02-08 14:36 robert * Added const 2011-02-07 14:19 robert * Implementated experimental reuse of PBO's after download 2011-02-04 12:43 robert * Added support for enabling the assignment of PixelBufferObjects to loaded Images to aid the download of images to the GPU. Feature can be enabled/disabled (default) by setting the env : OSG_ASSIGN_PBO_TO_IMAGES to ON or OFF 2011-02-04 10:27 robert * Added support for getting the current screen refresh rate using the XrandR extension. 2011-02-03 17:07 robert * Refactored NodeTrackerManipulator to use osg::ObserverNodePath rather than it's only local equivilant. 2011-02-03 14:27 robert * Added call to GraphicsCostEstimator::calibrate. 2011-02-03 12:42 robert * Moved GraphicsCostEstimator ref pointer into osg::State 2011-02-03 12:22 robert * Moved GraphicsCostEstimator from osgUtil into core OSG library 2011-02-02 17:23 robert * From Jean-Sebastien Guay, build fix 2011-02-02 16:44 mplatings * Updated information about the FBX SDK version 2011-02-01 18:12 robert * From Sukender, "Vertices in DOUBLE PRECISION were not handled by Remapper classes. I added missing virtual methods." 2011-02-01 12:18 robert * Fixed the setting of the Drawable modes 2011-02-01 12:18 robert * Added experimental timing and PBO usage into ICO+GCE classes 2011-02-01 12:17 robert * Fixed bug in PixelBufferObject constructor for the case when a null Image is passed in to it. Added extra checks for NULL buffer data. 2011-01-31 11:40 robert * Ran: svn propset svn:eol-style native include/*/* svn propset svn:keywords "Author Date Id Revision" include/*/* 2011-01-31 11:35 robert * svn propset svn:keywords "Author Date Id Revision" include/OpenThreads/* 2011-01-31 10:41 robert * Set eol-style to native. 2011-01-28 14:24 robert * Temporarily disabled the cost estimate code for the 2.9.11 release 2011-01-28 13:54 robert * From Ulrich Hertlein, "I adapted the Cocoa implementation so that it reports the unmodified key and the modified key as requested. Can other OS X developers please test the attached file, to make sure it works for everybody? I fixed the problem with the caps-lock-key, too." 2011-01-28 12:34 robert * Fixed size of default font 2011-01-28 11:07 robert * From Per Fahlberg, warning fixes 2011-01-28 10:59 robert * From Mathias Froehlich, "Driven by the last qfontimplementation changes, I realized, that I never contributed my testcase/demo for the original implementation. This attached change is similar to osgtext but uses the QFontImplementation in a Qt based viewer. With that, it should be easier for all of us to test changes in qfontimplementation" 2011-01-28 10:53 robert * From Ulrich Hertlien, "the changes from r12126 (see below) in dae/domSourceReader.h cause compiler errors on OS X with gcc-4.2.1: In file included from /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/dae/daeRAnimations.cpp:3: /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/dae/domSourceReader.h:43: error: explicit specialization in non-namespace scope 'class osgDAE::domSourceReader' /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/dae/domSourceReader.h:45: error: explicit specialization in non-namespace scope 'class osgDAE::domSourceReader' /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/dae/domSourceReader.h:47: error: explicit specialization in non-namespace scope 'class osgDAE::domSourceReader' /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/dae/domSourceReader.h:49: error: explicit specialization in non-namespace scope 'class osgDAE::domSourceReader' /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/dae/domSourceReader.h:51: error: explicit specialization in non-namespace scope 'class osgDAE::domSourceReader' ... The attached file fixes this." 2011-01-28 10:50 robert * From Mourad Boufarguine, "This is a tiny fix for some typos in osg code." 2011-01-27 18:49 robert * From Andreas Roth, "simple fix to support quad buffer stereo in osgQt" 2011-01-27 17:14 robert * From Eric Buehler, "I believe that the osgWidget::Window::HA_CENTER alignment should be center aligned rather than by the origin, as the osgWidget::Window::VA_TOP causes. The current setAnchorHorizontal() command doesn't center the center of the object, it just center's the object's origin. The following change to osgWidget::Window::update() will correct that behavior so that it is consistent with setAnchorVertical() behavior. " 2011-01-27 17:12 robert * From Sukender, "I found the bug I was chasing! Here is my "twin" submission, from latest trunk rev: 12124. 1. DAE submission: DAE plugin now correctly writes images URI in Collada file, when images are used twice. I also greatly improved readability and maintenability of geometry reading (mainly daeRGeometry.cpp), by factorizing code, templatizing it (for double/single precision), and removing ugly macros. 2. osgDB submission: I updated osgDB::getPathRelative(): it is now far more readable, it handles more cases (especially when you want to relativise "a/c" from "a/b", which results in "../c"), and I added comments to make it clearer to maintain." 2011-01-27 16:23 robert * From Alexander Sinditskiy, "reason of this changes described in http://forum.openscenegraph.org/viewtopic.php?t=7596 and another problem is: example osgkeyboard is not work (keys not highlight) if user have 2 keyboard layout native and english and current user layout is native I try to explain my changes we need something that is identify key without modifier keys and layout -> this is UnmodifedKey I think osg must have its own UnmodifiedKeys table. Code must be run same on different platforms. This can de guaranteed by UnmodifiedKeys table. Mikhail Izmestev helped me. He implemented VirtualKey changes in GraphicsWindowX11" 2011-01-27 09:41 robert * Removed the executable property from source files 2011-01-26 18:47 robert * Implement first pass at texture compile estimation 2011-01-26 16:47 robert * Replaced CompileStats with GraphicsCostEstimator 2011-01-26 16:46 robert * From Mourad Biyfarguine, "This is a fix to some 'potentially uninitialized local variable' warnings in src/osg/glu/libutil/mipmap.cpp." 2011-01-26 16:45 robert * From Mathias Froehlich, build fix for Solaris 2011-01-26 16:10 robert * From Wang Rui, "I've found a problem when using QFont (osgQt/QFontImplementation.cpp) to read fonts: only the first character of a whole text is correctly shown and others are disappeared. I haven't got into the font implementation so can't explain why this happened and how it should work under other platforms, but it seems to be fixed by specifying width and height of the glyph object. The source file is attached for future developments. At present it just works for my own project. :-) " 2011-01-26 12:51 robert * Moved GraphicsCostEstimator into osgUtil. 2011-01-26 12:07 robert * Implemented first pass at geometry cost estimation. 2011-01-25 16:48 robert * Fixed warnings 2011-01-25 11:11 robert * Further work on GraphicsCostEstimator classes 2011-01-24 21:12 robert * From Mathias Froehlich, build fixes 2011-01-24 20:45 robert * Added osggraphicscost example as a base of for developing and testing the new osgUtil::GraphicsCostEsimator class. 2011-01-24 11:45 cedricpinson * From Michael Platings, Fix animation duration when adding channel to animation 2011-01-21 14:11 robert * Added #include to fix build 2011-01-21 13:40 robert * From Sukender, " DAE plugin was linking ORIGINAL images in the Collada file, using image->getName() as a path (even if images were modified in memory!). As the behaviour was not the one of other plugins (3DS, FBX, and such), I made the plugin relativise images filenames (as those plugins) and write the image which is in memory. However, in order to avoid removing features, I kept the previous behaviour but moved it in an option. Here are the options of the plugin I changed: - daeForceTexture was unclear in this new context and removed in favor of two new options - daeLinkOriginalTexturesNoForce: Writes reference to the original image if found, instead of writing the image in memory - daeLinkOriginalTexturesForce: Writes reference to the original image even if not found, instead of writing the image in memory Of course, if you specify no option, images are written as for other plugins. Other thing I changed is the UTF8 support as I told you in a previous conversation. Now there is a simple option, "daeNamesUseCodepage", which makes all names except filenames (materials, animation, geometries...) be considered as encoded using current codepage. If so, they'll be converted to UTF8 when writing; else they are written directly. Of course, filenames follow OSG_USE_UTF8_FILENAME as usual. I did " 2011-01-21 12:17 mplatings * From Sukender: I had to call code from the FBX plugin (to relativise paths). I thus extracted it from FBX and moved it in osgDB (FileNameUtils) 2011-01-21 11:46 robert * From Sukender, getPathRelative() method. 2011-01-20 12:34 robert * Added export to see if it address Mingw link problems 2011-01-20 12:32 robert * From Matthew Johnson-Roberson, "Small fix for operation thread to protect the access to _operations vector by functions getNumOperationsInQueue() and empty(). It is simply an addition of OpenThreads::ScopedLock lock(_operationsMutex); to protect against accessing while writing which was segfaulting in VPB specifically in void ThreadPool::run(osg::Operation* op) in the waiting loop while (_operationQueue->getNumOperationsInQueue() >= _maxNumberOfOperationsInQueue) " 2011-01-20 12:27 robert * From Per Fahlberg, warning fixes 2011-01-20 12:23 robert * From Simon Julier, "I have been using the ply plugin to read files created by bundler and pmvs2 (http://grail.cs.washington.edu/software/pmvs/). This program generates models in the form of vertices only. However, the existing ply reader implementation was not able to handle the models generated in a satisfactory manner for two reasons: 1. It did not support normals applied to individual vertices. 2. It would only support red / green / blue colour triples, but the pmvs models are generated with diffuse colours. (The PLY format, http://local.wasp.uwa.edu.au/~pbourke/dataformats/ply/, lists specular and ambient colour forms as well.) To partially overcome these limitations, please find attached modified versions of src/osgPlugins/ply/vertexData.cpp src/osgPlugins/ply/vertexData.h The changes I've made are: 1. I have changed the boolean hasColor flag to a vertexField (which is a boolean operation on an enum) to indicate what fields are present in the ply file. (This is required because Turk's ply reader spits out warnings for every line where you try to read fields which do not exist.) 2. I have modified the code to apply valid normals to either triangles or vertices. 3. I have kludged in "support" for the various colour variants. Specifically, all the colour specified can be read from the file. However, they are all applied in the same way (namely as a colour array, bound to each vertex)." 2011-01-19 10:57 robert * From Simon Julier, "I ran across linking errors with osgdb_exr. Specifically, I found it was necessary to link against libImlIlf, libImlThread, libHalf, libIex and libzip. I have attached a patch, against the trunk from 13:30 today, which consists of the following: 1. CMakeModules/FindOpenEXR.cmake: Look for libIlmThread and libIex as well. 2. src/osgPlugins/CMakeList.txt: Only include the exr subdirectory if both the OpenEXR and zip libraries were found. 3. src/osgPlugins/exr/CMakeLists.txt: Add ZIP_LIBRARY to TARGET_EXTERNAL_LIBRARIES." 2011-01-19 10:38 robert * From Sukender, normalized option names 2011-01-19 10:31 robert * From Sukender, "Added ability for writer to read from Vec3/4d/f. Plugin now warns if it finds another type of data" 2011-01-19 09:53 robert * From Sukender, "Factorized the depth loop ("while ( lastDepth >= _nodePath.size() )...") into a method called updateCurrentDaeNode(). Added missing calls into apply(osg::LightSource &) and daeWriter::apply(osg::Camera &) and daeWriter::apply(osg::CameraView &)" 2011-01-19 09:36 robert * From Sukender, "Fixed ReaderWriterDAE::ConvertFilePathToColladaCompatibleURI(): It now handles paths containing '#' character as expected." 2011-01-19 09:34 robert * From Sukender and Robert Osfield, clean up of options 2011-01-18 16:14 robert * From Michael Platings, "I've attached a fix for a subtle bug that causes animations (and quite possibly other things) to be serialized incorrectly. For the following code: #define MYMACRO(NAME) myOutputStream << #NAME; MYMACRO(Group) you would expect that "Group" would be output. However, as there are many overloaded operator<< functions, none of which take a const char* argument, the function that's actually called is operator<<(bool). Hence what actually gets output is "TRUE". An actual example of this is in serializers\osgAnimation\Animation.cpp, WRITE_CHANNEL_FUNC2. So the simple solution to this is to add operator<<(const char*), attached. " 2011-01-18 15:00 robert * Moved the StateSet query and texcoord settings to within the if (vertices) block to avoid an attempt to dereferences geometry->getStateSet() when non Geometry drawable is intersected. 2011-01-18 11:20 robert * Fixed CompileSet so it returns true when there is nothing to compile at all. 2011-01-18 09:54 robert * Build fix 2011-01-17 17:17 robert * Implemented better coupling of DatabasePager and IcrementalCompileOperation, removing functional duplication and opening the door to dynamic enabling/disabling of pre compile based on load. 2011-01-17 09:10 robert * Added getNum methods 2011-01-15 18:12 robert * First steps on the path to integrating ImageProcessor 2011-01-14 14:30 robert * From Guy Volckaert, "Changes to the openflight plugin to support replacing double sided polygons by 2 opposite facing polygons. This is sometimes required to resolved lighting and intersection issues. A new import option was was added to activate this feature called "replaceDoubleSidedPolys". 2011-01-14 13:31 robert * From Sukender, "- Lowered one notify level (it's now coherent with the "if" just above)" 2011-01-14 12:08 robert * From Wang Rui, "I'd like to submit a small new feature to the osgmanipulator example which could fix the dragger size in screen, so that no matter how we zoom in/out the camera, the dragger will never be scaled. This is what 3D graphics software like 3dsmax and maya behave, which helps users select and manipulate draggers more easily. You may turn on the feature with the new --fixedDraggerSize argument: # osgmanipulator.exe --fixedDraggerSize --dragger TranslateAxisDragger cessna.osg " 2011-01-14 12:03 robert * From Sukender, "TIFF plugin now outputs messages coming from libtiff. " 2011-01-14 11:49 robert * From Sukender, "Small submission: - 3DS reader now takes care to not create Texture2D duplicates" 2011-01-14 11:46 robert * Fixed for build with non autoatic ref_ptr<> to C pointer conversion 2011-01-14 11:00 robert * From Brad Christiansen, "Attached is a fix which implements the lazy loading of optional layers (if requested) in the new osgb/osgt formats." 2011-01-13 18:49 robert * Updated so version number 2011-01-13 18:05 robert * From Tim Moore, added missing ImageProcessor header reference 2011-01-13 14:59 robert * Added ImageProcessor interface class and plugin mechnanism for ImageProcessor implementations to osgDB::Registry. Add NVidiaTextureTools based plugin that provides an ImageProcessor implementation within an nvtt plugin. 2011-01-12 19:29 robert * Refactored the way that the DatabasePager passes the Terrain decorator node onto the TerrainTile. The DatabasePager now passes the Terrain pointer into the ReaderWriter's via osgDB::Options object, rather than pushing a NodePath containing the Terrain onto NodeVisitor. This change means that the DatabasePager nolonger needs to observer the whole NodePath and will be lighter and quicker for it. The change also means that ReadFileCallback can now run custom NodeVisitor's on the scene graph without having to worry about TerrainTile's constructing scene graphs prior to the Terrain being assigned. Also changed is the NodeVisitor::DatabaseRequestHandler which now requires a NodePath to the node that you wish to add to rather than just the pointer to the node you wish to add to. This is more robust when handling scenes with multiple parental paths, whereas previously errors could have occurred due to the default of picking the first available parental path. This change means that subclasses of DatabasePager will need to be updated to use this new function entry point. 2011-01-12 17:39 robert * Fixed comment 2011-01-11 17:29 robert * From Sukender, "FBX plugin did not relay the osgDB::ReaderWriter::Options* when writing images (the writeImage() call). Now it does." 2011-01-11 17:29 robert * Changed dos endings to unix line endings 2011-01-11 17:23 robert * From Mikhail Izmestev, "Current osgManipulator::AntiSquishCallback stops update traversal of childrens." 2011-01-11 17:20 robert * From Wojciech Lewandowski, "We encountered a problem when we tried overloading StandardManipulator class. Linker was unable to find StandardManipulator::AnimationData methods. Prefixing AnimationData with OSGGA_EXPORT removed the issue. Fixed header is attached." 2011-01-11 17:18 robert * From Chris Hanson, "As an extension to this excellent work: http://forum.openscenegraph.org/viewtopic.php?t=7285 This file adds the same string API wrapper to the State object for other older apps that track Uniforms by string. The original comment about performance is preserved." 2011-01-11 17:05 robert * Changed debug messages to INFO 2011-01-11 17:04 robert * From Glenn Waldron, "Attached is a fix to State::convertVertexShaderSourceToOsgBuiltIns. The method was incorrectly inserting new declarations before a GLSL "#version" directive, which must always be the first line in a shader. This patch detects the #version directive and ensures that new declarations are inserted after it. Attached is the modified State.cpp file. I have also attached a sample transcript, showing the new code working properly. I ran it against osgEarth's shaders and it works as expected. " 2011-01-11 16:58 robert * From Tim Moore, "This patch fixes a race condition in Renderer::ThreadSafeQueue that was causing some notifications of available SceneView objects to be missed. I saw a very noticeable performance problem (60 fps -> 8 fps) in DrawThreadPerContext mode in an osgEarth application before this patch. I had high hopes that this change might fix the much-discussed multiple GPU problem; no such luck, but I think the root cause of that is probably a similar threading issue." 2011-01-11 16:18 robert * From Guy Volckaert, warning fixes 2011-01-11 11:39 robert * Added more flexible testing of Text3D 2011-01-11 11:39 robert * Unified more of the 2D and 3D text setup, fixed bugs in Text3D setup which address the problems of black 3D text and the kerning causing problems with font positioning. 2011-01-10 13:28 robert * Improved the handling of application argument output when the options are very long. 2011-01-05 11:43 robert * Added check for invalid face size to prevent a crash 2011-01-04 10:21 robert * Added extra checks to osg::Geometry::verifyArrays(std::ostream&) 2011-01-03 19:41 robert * Added osg::Geometry::verifyArray(std::ostream&) method to enable checks to be done on osg::Geometry to see if the arrays are big enough to handle the primitives used in the geometry. Added usage of verifyArray into osgfilecache so that it reports any problems on reading files in paged database. 2010-12-24 19:47 robert * Added iterator include 2010-12-24 19:19 robert * Refactored IncrementalCompileOperation to make it more flexible. 2010-12-23 13:11 robert * Fixed warnings 2010-12-23 10:45 robert * Deleted old makefile files that are no longer required now we have CMake 2010-12-23 10:07 robert * From Per Fahlberg, "The FindCOLLADA.cmake module failed to find the static libs for the latest collada dom, attached is the fixed file." 2010-12-23 10:05 robert * From Ulrich Hertlein (applied by Robert Osfield), "OpenThreads/win32/Win32Condition.h is not used anymore and could be removed from the repository and win32/OpenThreads.mak and win32/CMakeLists.txt." 2010-12-23 09:59 robert * From Jean-Sebastien, "In my auto-build today there are 3 errors caused by using a ref_ptr in a function taking a T* when building without the implicit conversion." 2010-12-22 20:11 robert * Converted FrameStamp::g/setFrameNumber from int to uint 2010-12-21 12:54 robert * From Tim Moore, Dereference the databaseRequest while the queue is locked. This prevents the request from being deleted at an unpredictable time within addLoadedDataToSceneGraph. 2010-12-21 12:51 robert * Introduced a local reference to the appropriate EasyCurl object to avoid seperate getEasyCurl() incurring a mutex lock overhead. 2010-12-21 10:23 robert * Improved indentation to make it more readable and consistent with OSG. 2010-12-21 09:36 robert * Cleaned up the frame number increment. 2010-12-21 09:12 robert * From Paul Martz, Fix for "in expGeometryRecords.cpp lines 813-820, we write the UV list data incorrectly. According to the FLT spec, the data should be grouped per-vertex, not per-layer. We should have: UV for vertex 0, layer 1 UV for vertex 0, layer 2 UV for vertex 1, layer 1 UV for vertex 1, layer 2 ...etc... Instead, we have this: UV for vertex 0, layer 1 UV for vertex 1, layer 1 ...etc... UV for vertex 0, layer 2 UV for vertex 1, layer 2 ...etc..." 2010-12-20 17:04 robert * From Andy Skinner, "In this file I’ve changed TriangleFunctor to TemplatePrimitiveFunctor, and added operator() methods for: · points (just look at points in frustum) · lines (simple line clip—replace the external point) · quadrilaterals (call operator() for triangles twice)" 2010-12-20 16:23 robert * From Andy Skinner, "We use a shared array for our OpenSceneGraph arrays, and the existing (deprecated) OSG plugin casts the Array to IntArray and FloatArray and the like. Because our arrays don’t use FloatArray, this crashes for us. Attached is src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp. It gets the data pointer out and casts it to a pointer to the element type, rather than casting the array object itself. This seems to work." 2010-12-20 12:17 robert * Moved the GL3 include to within the code block that handles GL1/GL2 2010-12-20 12:03 robert * Fixed memory leak by introducing use of ref_ptr<> 2010-12-20 12:02 robert * From Kim Seokhwan, "Error fix in example/osganimationmorph/osganimationmorph.cpp in this file, function, osg::Geometry* getShape(const std::string& name) (line 51) tries to use null pointer when model is not provided. I added simple comment in attached file." 2010-12-20 10:49 robert * From Trajce Nikolov, Fixes to avoid cracks in older archives, tested with archives 2.0, 2.1, 2.2 . 2010-12-19 13:25 robert * From Trajce Nicklov, "I went thru the TileMapper today very carefuly and I remove all the tileStack approach - it made everything simplier and I think more proper. Cleaned the code as well. It was tested on huge archive with many lods as well with variable lods. Fix attached." 2010-12-17 13:43 robert * From Tim Moore, fix for race conditions in takeOrGenerate() methods 2010-12-17 11:46 robert * Fixed warnings 2010-12-17 11:19 robert * Added --speed command line parameter to osgviewer to enable control of the speed that animation paths are played back at. 2010-12-17 10:59 robert * Fixed the GLBufferObjectSet::deleteAllGLBufferObjets() and TextureObjectSet::deletaAllTextureObjects() methods and improved the checkConsistency() usage so it's now possible to switch if off completed from being compiled in. 2010-12-15 19:44 robert * Fixed the size computation 2010-12-15 16:30 robert * Removed no longer used static member variables 2010-12-15 12:34 robert * Improvements to GLBufferObject and TextureObject pools 2010-12-14 20:22 robert * Added report of ration of current size to max target size for buffer. 2010-12-14 20:07 robert * Added --speed option and output of buffer object and texture object pool stats at the end of the animation path. 2010-12-14 20:07 robert * Added AnimationCompletedCallback, s/getTimeScale and s/getTimeOffset() method to enable finer control of AnimationPathManipulator. 2010-12-14 19:29 robert * Added methods for checking sizes of various buffer object/texture object pool sizes. 2010-12-14 15:28 robert * Removed redundent MinimumNumberOfTextureObjectsToRetainInCache static variable 2010-12-14 14:32 robert * Improved the parsing of output filename 2010-12-14 13:43 robert * Added GLBufferObjectManager::reportStats() 2010-12-14 10:42 robert * From Alan Dickenson, "I modified the CPack CMake files to provide the ability to easily create packages of the OpenSceneGraph components. I modified the OsgCPackConfig.cmake.in and OsgCPack.cmake files to expose access to select the package generator mechanism through cmake CPACK_GENERATOR option. The user can specify the type of package generator (i.e. rpms. deb, NSIS, tar, zip, etc) that they would like to use from the CPack supported packages/installation methods. I also changed the CPACK_PACKAGE_FILE_NAME to use OSG_PACKAGE_FILE_NAME which contains the name of each component so all of the component packages can be generated without renaming the files. This should make it even easier to create distribution packages for the various linux, windows and mac distribution methods supported by CPack." 2010-12-14 08:58 robert * Moved Performer and Inventor plugins into block protected to only compile when not using GLES. 2010-12-14 08:53 robert * From Wang Rui, "A modified version is attached. The blank while generating is in fact used to avoid dual update traversals of the scene, which is not allowed in my application (but I forgot the reason ;-) Now the blank problem will disappear. Inactive mode is also available, using the --inactive mode and --camera-eye and --camera-hpr to set camera position: ./osgposter --output-poster --poster output.bmp --tilesize 800 600 --finalsize 8000 6000 cow.osg --inactive --camera-eye 0 0 20 " 2010-12-13 17:54 robert * Renamed osgviewerQtContext to osgviewerQt, and removed deprecated examples from CMakeLists.txt 2010-12-13 17:50 robert * Moved osgviewerQT and osgviewQtWidget to deprecated as osgviewerQtContext will no be the main Qt example 2010-12-13 17:50 robert * Moved osgbrowser into svn/trunk. 2010-12-13 17:49 robert * Move osgcegui into deprecated 2010-12-13 17:37 robert * Have moved FindXUL.cmake to deprecated 2010-12-13 17:36 robert * Have moved gecko plugin to deprecated 2010-12-13 17:09 robert * Added resizeGLObjectBuffers(uint) and relaseGLObjects(State*) to BufferData. 2010-12-13 16:25 robert * Moved GraphicsWindowQt from osgviewerQtContext into osgQt. 2010-12-13 13:41 robert * Fixed warnings 2010-12-13 13:37 robert * From Wang Rui, "Attachment is an example of rendering 3D scenes to high resolution screenshots. I uses a queue of Camera objects to do offscreen rendering with the Camera::attach() function. The entire picture is split into many tiles and it will take a few seconds while attaching and detaching cameras with tiles. You may select to output every tile as an image file, or combine them together to create a large poster, for example, a 12800 x 9600 image. Start the program like this: ./osgposter --output-poster --poster output.bmp --tilesize 800 600 --finalsize 8000 6000 cow.osg Adjust the scene camera to a suitable position and press 'p' or 'P' on the keyboard. Wait until sub-cameras dispatching is finished. And the poster file will be created while closing window. A 8000 x 6000 output.bmp will be created to show a fine-printed cow. :) The command below may also help: ./osgposter --help " 2010-12-13 12:16 robert * Form Richard Schmidt, "The following features were added: * the glsl plugin now supports processing #includes. The file extension sets the shader type. * the registry releases gl objects of the shared state manager " 2010-12-13 11:34 robert * From Wang Rui, "I implemented a customized viewer event traversal here to read state changes from the DirectInput devices and add events to the event queue. I've tested with the keyboard and joystick supports. Because of only having a very old 6-button gamepad, I can't do more experiments. Hope this will bring more ideas to those who face similar problems, especially simulation game designers. :) I didn't map all DirectInput key values to GUIEventAdapter key symbols. Users may add more in the buildKeyMap() function freely. The mouse handling operations are also ignored, but will be easily improved in the same way of creating keyboard and joystick devices. Please add a line: FIND_PACKAGE(DirectInput) in the CMakeLists of root directory. And in the examples/CMakeLists.txt: IF(DIRECTINPUT_FOUND) ADD_SUBDIRECTORY(osgdirectinput) ENDIF(DIRECTINPUT_FOUND) DirectX SDK 2009 is used here, but an older version like DX8 should also work in my opinion. " 2010-12-13 10:46 robert * From Eduardo Poyart, "The attached patch fixes a race condition that caused OSG to try to render the scene before the window is realized. It works ok in my osgviewerWX-derived application under Linux." 2010-12-12 10:00 robert * Added TODO notes 2010-12-12 09:58 robert * From Wojciech Lewandowski, added docs on Swap Method env vars and command line options 2010-12-12 09:52 robert * From Trajce Nikolov, "attached is a fix for the txp loader (in TileMapper). The code was giving wrong parent tile ids using the stack - I implemented differnt approach for that" 2010-12-12 09:40 robert * From David Fries, "The ffmpeg lockmanager was introduced in ffmpeg 52 30 1, but later backported to 52 20 1, so add that to the version check in ReaderWriterFFmpeg.cpp." 2010-12-12 09:37 robert * From David Fries, "Avoid a terrapage crash with outstanding requests to a removed archive file. ReaderWriterTXP::getArchiveName will create an archive if it doesn't exist. This is causing a crash if the terrain is removed and there are outstanding database requests in the database pager. The request will create a new archive, and as the archive is newly create doesn't have the materials etc to support the subtile that was just loaded. To fix the problem getArchiveName will only return existing archives. createArchiveName was added to create archives. " 2010-12-12 09:22 robert * From Wojciech Lewandowski, "As suggested I have added missing method to PerContextProgram. Tested with our programs. I see that we should expect some performance penalty for using this method. It won’t be painful in my current case because I have only a few animated characters. But I suspect some day I will have to fix osgCal to use int UniformIds natively for larger crowds." 2010-12-12 08:56 robert * From Wang Rui, "I've found a possible bug in the new SmoothingVisitor implementation (with a great 'crease angle' feature), which will crash if the normal array is already set but without BIND_PER_VERTEX. I just believe that we should reallocate the normal array in these cases, as the old implementation does. " 2010-12-12 08:54 robert * Introuced a local typedef of the index array type to keep the functor parameters consistent 2010-12-11 15:12 robert * From Cedric Pinson, "Here a small fix about gdal plugin used to read dem file, if you dont setup the log level to INFO it does not work. It's because of this line: OSG_INFO << " GetGeoTransform == "<< dataset->GetGeoTransform(geoTransform)<<" I have just put the function outside of an stream stuff, and it works. It's possible we have other code like that in other plugins, I guess it's a side effect of the MACRO stuff about notification." 2010-12-10 15:27 robert * Refactor of DatabasePage/IncrementalCompileOperation to use the IncrementalCompileOperator for compiling objects 2010-12-10 13:22 robert * Build fixes to keep up with changes in head inclusions/API in osgDB 2010-12-09 12:16 robert * Added handling of CoordinateSystemNode when they decorate a loaded model, copying the contents of the CoordinateSystemNode across to the Terrain node 2010-12-08 11:01 robert * Updated version number for 2.9.11 dev release 2010-12-08 10:34 robert * From Ulrich Hertlein, "attached are patches to osgTerrain that fix some typos and add a bit of documentation. " 2010-12-08 09:54 robert * Added protection against the Registry from being deleted prior to the proxy objects unregistering themselves 2010-12-08 09:52 robert * Fixes for benign threading memory contentions. 2010-12-06 10:35 robert * Renamed YES and NO enums with more description names that don't overlap with iOS #define's 2010-12-03 19:04 robert * Updated ChangeLog and AUTHORS for release 2010-12-03 17:50 robert * From Johannes Bauerle, "When trying to use the osgText functionality in an osg application built without support for the fixed function pipeline I got a lot of warning messages about invalid calls. I found two indirect calls to the glTexEnv in the file Text.cpp: state.applyTextureAttribute(0,getActiveFont()->getTexEnv()); In the attached fix I surrounded these calls with #ifdef's checking for OSG_GL_FIXED_FUNCTION_AVAILABLE to ensure that the above function is only called when the fixed function pipeline is available. " 2010-12-03 17:20 robert * Removed redundent call. 2010-12-03 14:24 robert * Commented out debug message 2010-12-03 14:18 robert * Introduced bool Texture2D::textureObjectValid(State) and bool SubloadCallback::textureObjectValid(Texture2D&,State&) method to make it tell Texture2D::apply() whether the texture object is still valid or whether it's no longed valid for the any changes to the image attached to the Texture 2010-12-02 14:20 robert * From Ulrich Hertlein, "Attached; here's a summary of the changes: - CMakeLists.txt -- don't look for GL when compiling for iOS (device or simulator), look for OGLES instead -- use architecture i386 for simulator -- removed iphoneos-version-min for simulator - examples/osgviewerIPhone/CMakeLists.txt -- added build dependencies for osgdb_osg, osgdb_freetype, osgdb_imageio -- added framework QuartzCore link dependency - src/osgDB/CMakeLists.txt -- don't link against Carbon on iOS (device or simulator) - src/osgPlugins/freetype/CMakeLists.txt -- don't link against OpenGL on iOS device or simulator - src/osgViewer/CMakeLists.txt -- link against OpenGLES on iOS (device or simulator) - src/osgPlugins/imageio/CMakeLists.txt -- compile ReaderWriterImageIO_IOS.cpp as Objective-C++ " 2010-12-02 14:13 robert * From Mathias Froehlich, "Attached are most of the fixes that are required to build osg on solaris and hpux. I have skipped irix this time as irix is too dead to keep osg building there. As usual, solaris does not like member templates in stl containers. Some headers missing and link problems due to missing libraries." 2010-12-02 14:01 robert * Ran dos2unix to fix line endings 2010-12-02 13:53 robert * From Brad Christiansen, commented out debug messages 2010-12-02 09:39 robert * Removed redudent makeCurrentImplementation() that was causing a crash in osgscreencapture. 2010-12-01 20:14 robert * Updated AUTHORS and Contributors.cpp to reflect new ChangeLog correctly 2010-12-01 19:49 robert * From Jason Daly, "OK, I dug a bit into the CMake scripts and found a fairly obvious solution to the QtWebkit issue on RHEL 6 (see my other message on osg-users). I just moved the osgQtWidgets example in examples/CMakeLists.txt under the check for QtWebKit. Fix is attached:" 2010-12-01 14:03 robert * Updated ChangeLog 2010-12-01 13:33 robert * From Fabien Lavignotte, "I use Texture2D::copyTexImage2D to generate some textures at each frame on a PagedLOD databases. There was some performance problems after a long run, because textures created with copyTexImage2D were not reused. After investigation, there is a problem with the Texture Pool when a texture object is created with an empty profile, and then move after creation to TextureObjectSet with good profile using setAllocated method. I have just changed a little bit the code of Texture2D::copyTexImage2D, to generate the texture object with the good profile at the start." 2010-11-30 16:22 robert * From "Matthew Roberso, I've attached a small fix to the src/osgWrappers/serializers/osg/Texture2DArray.cpp against the svn head r11965 it simply calls setTextureDepth before attempting to load the individual textures into the array. Currently without that the loading fails with the following printout "Warning: Texture2DArray::setImage(..) failed, the given layer number is bigger then the size of the texture array." and the texture array is empty if loaded from an osga/b." 2010-11-30 14:36 robert * Fixed the readObject method so it could handle reading from a file contains any valid type of osg::Object 2010-11-30 12:34 robert * Added passing of existingObj parameter 2010-11-30 11:34 robert * From Stephan Huber, compile fix for iOS 2010-11-30 09:26 robert * From Ulrich Hertlein and Stephan Huber, improves to iOS build 2010-11-30 08:12 robert * From Wang Rui, Compile fixes 2010-11-29 17:43 robert * From Tim Moore, "Here is initial support for uniform buffer objects. The binding between a buffer object and an indexed target is implemented as a new StateAttribute, UniformBufferBinding. I've included an example program based on the code in the ARB_uniform_buffer_object specification. A few things remain to do: * The binding between a uniform block in a shader program and a buffer indexed target number is fixed, like a vertex attribute binding. This is too restrictive because that binding can be changed without relinking the program. This mapping should be done by name in the same way that uniform values are handled i.e., like a pseudo state attribute; * There's no direct way yet to query for the offset of uniforms in uniform block, so only the std140 layout is really usable. A helper class that implemented the std140 rules would be quite helpful for setting up uniform blocks without having to link a program first; * There's no direct support for querying parameters such as the maximum block length, minimum offset alignment, etc. Having that information available outside of the draw thread would make certain instancing techniques easier to implement." 2010-11-29 09:32 robert * Removed deperecated variables that are no longer used. 2010-11-26 18:19 robert * From Tomas Holgarth and Stephan Huber, " attached you'll find the second part of the IOS-submission. It contains * GraphicsWindowIOS, which supports external and "retina" displays, multisample-buffers (for IOS > 4.0) and multi-touch-events * an ios-specific implementation of the imageio-plugin * an iphone-viewer example * cMake support for creating a xcode-project * an updated ReadMe-file describing the necessary steps to get a working xcode-project-file from CMake Please credit Thomas Hogarth and Stephan Huber for these changes. This brings the ios-support in line with the git-fork on github. It needs some more testing and some more love, the cmake-process is still a little complicated. You'll need a special version of the freetype lib compiled for IOS, there's one bundled in the OpenFrameworks-distribution, which can be used." Notes, from Robert Osfield, modified CMakeLists.txt files so that the IOS specific paths are within IF(APPLE) blocks. 2010-11-26 17:37 robert * From Katharina Plugge, fix for regression in handling of multitexturing. 2010-11-26 17:35 robert * From Eduardo Poyart, OSG patch: made it read ancillary IndexedStrings into MultiSwitch 2010-11-26 17:32 robert * Updated ChangeLog 2010-11-26 13:54 robert * From Marin Platings and Robert Osfield, fix of Uniform unique ID by making osg::Object::setName() virtual. 2010-11-26 12:44 robert * From Martin Beck, " recently we noticed a little mistake for 3DS files using instances of the same meshs: Every groupnode gets the same name instead of the (correct) instance name of the object. The fix only consists of two additional lines which check whether an instance_name is given for the object and then uses this one instead of the node name." 2010-11-26 12:23 robert * From Fabien Lavignotte, "There was a small bug when using the new serializer with AnimationPath. The serializer assumes NO_LOOPING is the defaut for LoopMode, but in fact it is LOOP. The new serializer avoids to write default values in text mode, so the loop mode is not always correctly set." 2010-11-26 12:22 robert * Removed debug messages 2010-11-26 10:31 robert * From Magnus Kessler, "Typo in usage string of examples/osganalysis please specifies -> please specify" 2010-11-25 16:06 robert * From Thomas Hogarth and Stephan Huber, "attached you'll find part one of iphone-support. It includes * support for NPOT-textures on IOS * support for FBOs (only renderToTexture for now) on IOS (should work for other OpenGL ES 1/2 targets, too) * FileUtils-support for IOS" 2010-11-25 13:00 robert * From Tim Moore, fix to stats timing 2010-11-25 12:30 robert * From Michael Platings, To address performance bottleneck that occurs when using large number of uniforms introduced a name to uniqued ID scheme for Uniforms so comparisons can be done on a uint rather than a string. 2010-11-25 12:07 robert * From Hartwig Wiesmann, "in the files Image, Observer and TerrainTechnique unused parameters exist resulting in a couple of compiler warnings (depending on the compiler settings though). The attached patches comment out the unused parameter names. " 2010-11-25 11:59 robert * From Magnus Kessler, "applications/osgconv: fix typo in tool options transprent -> transparent" 2010-11-25 11:40 robert * Removed default assignement of GeometryTechnique as the TerrainTechniquePrototype. 2010-11-24 20:26 robert * From Wang Rui, "I'd like to provide a quick updates of the new tessellation shader serializers and dotosgwrappers. It includes reading/writing supports for the two new shader types and the GL_PATCHES enum. The setParameterfv() method is not wrapped at present because it is still not finished. Enum serialziers don't require back-compatibility checks if only add/remove enum items, so I'm not going to use the new UPDATE_TO_VERSION macro this time." 2010-11-24 20:20 robert * From Jean-Sebastien Guay, build fixes for windows. 2010-11-24 17:01 robert * Added workaround for AMD/ATI driver bug 2010-11-24 10:38 robert * From Tim Moore, Fix for drivers that don't properly support timer extensions. "" 2010-11-24 10:09 robert * From Wojciech Lewandowski, "1: fix for a issue with MinimalShadowMap and LightSpacePerspectiveShadowMapVB techniques ignoring minLightMargin parameter. 2: minor tweak for a DebugHUD drawn improperly case when multiple slave views shared one window. It now uses slave view viewport to correctly position DebugHUD. 3: deactivated ConvexPolyhedron notifications (they were accidentaly activated when you replaced osg::notify calls with OSG_NOTIFY macro). These warnings are useful only for shadow map developer working on shadow volume optimizations. So there is no sense in having them active all the time." 2010-11-23 17:33 robert * Moved TextNode from osgText into example/osgtext3D in prep for 3.0 2010-11-23 14:50 robert * From Holger Helmich, Tessellation shader support 2010-11-23 11:11 robert * From David Callu, "Here a fix for pssm. Problem 1 : With GLSL, multi pass to apply each shadow map is not required. Problem 2 : GLSL code use "shadow2DProj" build-in function to look up in shadow texture. Projection is orthogonal so "shadow2D" build-in function is sufficient. Problem 3: Bad calcul in osgShadow::ParallelSplitShadowMap::calculateLightViewProjectionFormFrustum(..) provide some visual error in specific configuration. to reproduce pssm_bug.jpg, you need to add a light direction in osgshadow.cpp example (done in joint osgshadow.cpp file) then "osgshadow --noUpdate --pssm --maxFarDist 500 --minNearSplit 500 --mapcount 6 --debug-color model_test.3ds" As you can see in pssm_bug.jpg and pssm_fix.jpg, performance is really better when Problem 1 is fixed. " 2010-11-22 19:38 robert * Build fixes for building OSG with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set to OFF 2010-11-22 19:18 robert * Fixed typo 2010-11-22 17:39 robert * From Michael Platings, "the attached cmake file recognises the latest version of the FBX SDK, and now works correctly on 64 bit Windows." 2010-11-22 17:37 robert * From Michael Platings, "the build is broken if you have the OSG_REF_PTR_IMPLICIT_OUTPUT_CONVERSION turned off - the attached files fix this." 2010-11-22 17:30 robert * From Stephan Huber, "attached you'll find a proposal for handling multi-touch-events with osgGA. My approach is to bundle all touchpoints into one custom data structure which is attached to an GUIEventAdapter. The current approach simulates a moving mouse for the first touch-point, so basic manipulators do work, sort of. I created a MultiTouchTrackballManipulator-class, one touch-point does rotate the view, two touch-points pan and zoom the view as known from the iphone or other similar multi-touch-devices. A double-tap (similar to a double-click) resets the manipulator to its home-position. The multi-touch-trackball-implementation is not the best, see it as a first starting point. (there's a demo-video at http://vimeo.com/15017377 )" 2010-11-22 15:52 robert * Fixed indentation 2010-11-22 11:31 robert * From Johan Nouvel, "I've attached ReaderWriterVRML2.h. It is the same as the previous one, I've just add supportsOption() calls." 2010-11-22 11:22 robert * Fixed typo of commercial 2010-11-22 10:41 robert * From Hartwig Wiesmann, fix to font search path under OSX. 2010-11-22 10:37 robert * From Brad Christiansen, "Attached is a very small change to allow the Collada libs for VS 2010 to be found automatically." 2010-11-19 18:26 robert * From Katherina Plugge, "if using multitexturing and converting osg files to OpenFlight texture coordinates get corrupted. The texture coordinates for slot 1 and following are not computed correctly (see thread http://forum.openscenegraph.org/viewtopic.php?t=6993). The attached files solve the problem. " 2010-11-19 18:07 robert * From Sukender, fix for precision of Plane::asVec4() 2010-11-19 17:47 robert * Commented out debug output 2010-11-19 17:47 robert * Update SOVERSION 2010-11-19 09:57 robert * Update Text wrappers to handle new Color member 2010-11-19 09:57 robert * Updated SO version to reflect changes in API of osgText 2010-11-18 17:59 robert * Moved text color into TextBase, added support for colour into Text3D 2010-11-18 17:18 robert * Added resetting of the freetype size when getting Glyph3D glyph's as otherwise use of 2D and 3D Text would cause incorrect text sizing. 2010-11-18 12:03 robert * Improved handling of pending orphaned texture objects and max texture pool size. 2010-11-17 14:06 robert * From Jean-Sebastien Guay, Changed debug info in State::frameCompleted() to OSG_INFO 2010-11-17 10:19 robert * Added texture pool handler to print out results from texture pool 2010-11-17 10:16 robert * Added quite size test. 2010-11-15 17:21 robert * From Sherman Wilcox, "added the following to the ADD_LIBRARY list -- ${OPENSCENEGRAPH_VERSIONINFO_RC}" 2010-11-12 11:04 robert * Fixed warnings 2010-11-12 09:48 robert * Fixed crash on intialization of static applications by moving the static mutexes inside singleton methods. 2010-11-11 16:51 robert * Moved finding of RSVG, Poppler-glib and GtkGl out into their own Find*.cmake modules to enable easier specialization. 2010-11-11 11:47 robert * From Wang Rui, "I've finally completed the static build support for dotosg wrapper and serialization libraries. My submission mainly includes: 1. Add two new macros USE_DOTOSGWRAPPER_LIBRARY and USE_SERIALIZER_WRAPPER_LIBRARY. Applications using static OSG must include corresponding static-link libraries and use these two macros to predefine native format wrappers. Please see osgstaticviewer and present3D in the attachment for details. 2. Add a LibraryWrapper.cpp file in each osgWrappers/deprecated-dotosg/... and osgWrappers/serializers/... subfolder, which calls all USE_...WRAPPERS macros inside. The LibraryWrapper file is automatically generated by the wrapper_includer.cpp (with some slight fixes), which is also attached for your reference. The deprecated-dotosg/osgAnimation is not included because it doesn't us REGISTER_DOTOSGWRAPPER to define its wrappers. 3. Modify the ReaderWriterOSG.cpp to prevent calling loadWrappers() when static build. 4. An uncorrelated fix to Serializer and ObjectWrapper.cpp, which ensures version variables of serialziers are initialized, and serializers out-of-version are not written to model files. " 2010-11-11 10:53 robert * From Wang Rui, "The latest modification of osg/State uses the GLuint64EXT type, which belongs to GL_EXT_timer_query and should be decalared to avoid compiling errors if the extension is not supported. I've attached this small fix." 2010-11-11 10:42 robert * From Mark Sciabica, "It's not Windows API calls that are causing the problem. It's a new templated constructor of std::pair not being able to automatically convert 0 to a pointer. Rather than use preprocessor checks and #defines, I think a cleaner solution is to cast the std::pair arguments to the appropriate types to help the compiler out. I attached an updated version of the file implementing this." 2010-11-10 16:58 robert * From Tim More and Robert Osfield, implementation of ARB_timer_query based GPU timing stats syncronization. Initial email from Tim : "I've implemented using a timestamp, available with ARB_timer_query and OpenGL 3.3, to gather GPU stats. This is nice because it can accurately fix the GPU draw time with respect to the other times on the stats graph, rather than having to estimate the wall time of the end of GPU drawing. This also prevents anomalies like the GPU phase starting before the draw phase..." Changes to Tim's submission by Robert: Removal of need for swap buffer callback in ViewerBase.cpp, by integrating a osg::State::frameCompleted() method that does the stats timing collection. Introduction of a GraphicsContext::swapBuffersCallbackOrImplementation() method that calls the State::frameCompleted() and the swap buffers callback or the swapImplementation as required. 2010-11-10 12:50 robert * From Mourad Boufarguine, "This is a small fix to osg::createGeodeForImage to adapt Tex coords to image origin. " 2010-11-09 17:17 robert * Added traversal of salve camera subgraphs when the slave camera doesn't share it's scene graph wiht the View's master scene graph. 2010-11-09 15:48 robert * From Wang Rui with small tweak from Robert Osfield, fix of memory leak in gif plugin when using GifImageStream 2010-11-09 14:57 robert * From Wang Rui, "I'm now testing static building of OSG and found a possible bug in the present3D application. As static-link present3d should depend on freetype, png, pdf and some other plugins, any mis-compiling of these plugins will make present3d fail to be built. Some lirbaries like poppler and cairo are not popular under Windows, so it is very common that we don't have osgdb_pdf compiled and thus get errors when building present3d. I've modified the CMakeLists and present3d.cpp to avoid this problem." 2010-11-09 14:39 robert * From Sukender, "As discussed in osg-users, I found output directories with CMake >= 2.8.1 are wrong under MSVC (As Chuck said, it's to be related to CMake, and not MSVC). But I also found rev. 11354 (from Wang Rui) added a change in OsgMacroUtils which adresses a similar issue: Wang told the "../../bin" prefix wasn't working. However I think the fix isn't correct because it checks the MSVC version instead of the CMake version. Here is my fix, against latest trunk (root CMakeLists.txt, and CMakeModules/OsgMacroUtils.cmake). Tests I made: | Unix Makefiles | MSVC 9 | MSVC 10 x64 --------------------------------------------------- CMake 2.4 | | OK | N/A CMake 2.6.4 | | OK | N/A CMake 2.8.0 | | OK | broken support? CMake 2.8.2 | | OK | OK " 2010-11-09 13:23 robert * Refactored the versioning of serializers so it now uses a _firstVersion and _lastVersion make it possible to specify what range of versions support each serializer. 2010-11-09 12:41 robert * From Wang Rui, "I'd like to submit my latest modification of the serialization IO functionalities. It includes two main parts: a version checking macro for handling backward-compatiblity since 3.0, and enhencement of current schema mechanism. I also change the option handling process to use getPluginStringData(), and add new USE_SERIALIZER_WRAPPER macro in the Registry header to allow for static-link usage as well. The enhencement of schema machanism just tells the type of each serializer while outputting them, such as: osg::Group = Children:1 The meaning of the number can be found in the osgDB/Serializer header, BaseSerializer::Type enum. It may help 3rdparty utilities understand the structure of the wrapper and do some reflection work in the future. The new macro UPDATE_TO_VERSION can help indicate the InputStream (no affect on the writer) that a serializer is added/removed since certain OSG version. An example wrapper file is also attached. The Geode_modified.cpp is based on the serializers/osg/Geode.cpp file (hey, don't merge it :-), but assumes that a new user serializer 'Test' is added since version 65 (that is, the OSG_SOVERSION): REGISTER_OBJECT_WRAPPER( Geode, ... ) { ADD_USER_SERIALIZER( Drawables ); // origin ones UPDATE_TO_VERSION( 65 ) { ADD_USER_SERIALIZER( Test ); // a serializer added from version 65 } } All kinds of ADD_... macros following UPDATE_TO_VERSION will automatically apply the updated version. The braces here are only for typesetting! While reading an osgt/osgb/osgx file, OSG will now check if the file version (recorded as the writer's soversion, instead of previous meaningless "#Version 2") is equal or greater than Test's version, and try reading it, or just ignore it if file version is lesser. And we also have the REMOVE_SERIALIZER macro will mark a named serializer as removed in some version, with which all files generated by further versions will just ignore it: UPDATE_TO_VERSION( 70 ) { REMOVE_SERIALIZER( Test ); } This means that from version 70, the serializer Test is removed (but not actually erased from the list) and should not be read anymore. If the read file version is less than 70 (and equal or greater than 65), Test will still be handled when reading; otherwise it will be ignored to keep compatiblity on different OSG versions. " 2010-11-08 15:49 robert * From Johan Nouvel, "Some times ago, I have coded an osg to vrml2 writer. Today, I have updated our writer to osg 2.9.9. As it works (for our needs at least) I've done and attached a tar.gz file for the VRML2 plugin with a new part to write a VRML2 file from an osg one. The read part is the same as in osg 2.9.9. The write part code is in convertToVRML.cpp and .h files. It works for some osg nodes (group, geode, matrixTransform, positionAttitudeTransform and geometry). Textures are converted to jpeg (if not translucent) or png (if translucent). There are some options that could be given to the writer (with -O switch) : convertTextures=0 to copy textures without converting them to jpeg or png convertTextures=-1 do not copy textures, keep them in their original format and location convertTextures=-2 do not use textures, parse only geometry convertTextures=-3 (default) convert textures to jpeg or png ones. textureUnit=X in case of multiple textures, X= texture unit to use (default value=0) directoryTexture=aPath when texture will be copied, it will be in this directory, not in the current one." 2010-11-08 12:28 robert * From Jean-Sebastien Guay, "As promised, here is the fix for the background size. I also added another instance variable _lineHeight to clean up the code a bit more. Also I've done the osguserstats example. I've kept the "toy example" that was in the modified osgviewer.cpp I had sent you, because they show different uses of custom stats lines (a value displayed directly, a value without bars and a value with bars and graph). I also added a function and a thread that will sleep for a given number of milliseconds and record this time in the stats. I think it clearly shows how to record the time some processing takes and add that to the stats graph, whether the processing takes place on the same thread as the viewer or on another thread. BTW, feel free to modify the colors I've given to each user stats line... I'm not very artistic. :-) I've also added more doc comments to the addUserStats() method in ViewerEventHandlers, so hopefully the arguments are clear and the way to get the results you want is also clear. Maybe I went overboard, but the function makes some assumptions that may not be obvious and has many arguments, so I preferred to be explicit." 2010-11-05 17:31 robert * From David Fries and Robert Osfield, fix for handling remote GLX server that declares GL 3.0 support but doesn't actually implement it correctly. 2010-11-05 17:24 robert * From Javier Taibo, "ere is the new code with Billboard "rotate around axis" functionality. A new AutoRotateMode was added. I named it ROTATE_TO_AXIS to be consistent with the other AutoRotateModes, even though it changes from how is called in Billboard (AXIAL_ROT). Setters and getters for rotation axis and normal were also added to the AutoTransform class interface. The implementation is mainly a copy-paste from Billboard code. " 2010-11-05 17:09 robert * From Alexander Irion, "Please find another bugfix for the ReaderWriterGZ. This time, the writing did not work for me - the created output file could not be deflated by zip. " 2010-11-05 17:07 robert * From Ulrich Hertlein, "attached is a tiny cleanup for ReaderWriterFFmpeg that provides more accurate descriptions for some extensions and also adds 'm2ts' for MPEG-2 transport streams. " 2010-11-05 17:04 robert * From Sukender, "1. More handled cases in MergeGeometryVisitor - Algorithm doesn't try to merge double and single precision arrays together - Algorithm doesn't try to merge incompatible geometries (ex: one with "vertices + texoords", and another with only vertices) 2. Better TextureAtlasBuilder Algorithm is still sub-optimal, but it now tries to fill more blanks, using "unused space in the current line". (Don't know if I already submitted it, but I guess not) One day, someone should try to find a good solution to this NP-problem... For instance : http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.140.200&rep=rep1&type=pdf " 2010-11-05 11:21 robert * From Peter Bear, "Attached is a fix for the detection of GDAL 1.7.0. The previous CMake file only supported up to 1.6, this fix supports 1.7." 2010-11-05 10:29 robert * From Alaxandre Irion, "Trying to load the attached texture file "texture.dds.gz" fails and causes the following warning on the console: ReadDDSFile warning: couldn't read mipmapData The issue is caused, when the last block of data is read from the file (less than chunk size of 16384 bytes). The read operation in ReaderWriterGZ::read() then sets the eof and fail bit in the stream and the lines if (fin.fail()) { (void)inflateEnd(&strm); return false; } causes the reading to be aborted with the last read data not beeing inflated. Please find the attached fix for this problem." 2010-11-05 09:12 robert * From Wang Rui, "Attached is a fix to the latest PVR plugin to make it compile under MSVC. I've added definition to uint_32 and replaced std::max() with osg::maximum(), because it is not supported by some VisualStudio versions." 2010-11-04 17:53 robert * From Fabien Lavingotte and Robert Osfield, Fixed handling of texture pool size when TextureObject::setAllocate(..) is called. 2010-11-04 15:24 robert * From Jan Klimke, "I did recently some work understanding the osgAnimation classes. Here the osganimationsolid example seems not to be very helpful at the moment. There are basically no comments in it and additionally there is a second animation defined which was simply not working (wrong channel type for angle animation). I added some comments and fixed the example to contain 2 working animations by now. I think this could help others who are trying to understand the osgAnimation plugin. " 2010-11-04 13:53 robert * From Jason Beverage, "Here is a small change to the DirectShow plugin to support finding the video and sound pins by type rather than searching for them by name since the names of the pins can change based on what kind of file you are opening. This also removes the need for an explicit check to see if the file is a .wmv file. Also changes to the directshow plugin's CMakeLists.txt. It is not necessary to link against d3dx9 to build the plugin. " 2010-11-04 11:39 robert * From Sukender, "I replaced std::min() with osg::minimum() in RandomRateCounter, to avoid including the STL header (Or else it doesn't compile under MSVC 10)." 2010-11-04 11:05 robert * From David Callu, fix in FrameBufferObject when using Texture2Darray and GeometryShader. 2010-11-04 11:02 robert * From Per Fahlberg, "I have added support for PowerVR texture compression. osg::Texture and osg::Image have been modified to support the texture formats and I have added a plugin to load pvr files. All modified files are in the attached zip. " 2010-11-03 10:37 robert * From Wang Rui, "additional FFmpegParameters class in the ffmpeg plugin for setting parameters before opening the video file, which benefits from getPluginStringData() as shown in the ReaderWriter implementation. Now we can use ffmpeg to render webcam video (using the vfwcap device) under Windows: osgmovie 0 -e ffmpeg -O "format=vfwcap frame_rate=25" The number 0 just indicates a default device number in ffmpeg. I think this can work under Linux, too, and should be a bit better than comparing the filename with a '/dev/' string. Just type: ./osgmovie /dev/yourcam -e ffmpeg -O "format=video4linux2 frame_rate=30 size=320x240"" 2010-11-03 10:37 robert * From Wang Rui, "a new parsePluginStringData() method in the osgDB::Options class which will be automatically executed to parse option string to the string data map" 2010-11-03 10:04 robert * From Jean-Sebastien Guay, "For a long time now I've wanted to be able to add custom values into the stats handler's graph. Here is my proposal of how I'd do this. It's surely not perfect and I'm open to suggestions, but I've already made more changes than I wanted to in order to be able to implement this... The user calls statsHandler->addUserStatsLine() providing: - the label they want for that line in the graph - the text and bar colors they want in the graph - the stats names they want queried (one for time taken, one for begin and one for end time) and a few settings for how these will be displayed. Then all they have to do is call viewer->getViewerStats()->setAttribute(framenumber, name, value) for their three attributes each frame and they'll have their stats in the graph. They can also give only a time taken attribute (or some other numerical value they want printed, which can be averaged or not), or only begin+end attributes, and the graph will accordingly display only the (average or not) numerical value or only the bars. Along the way I cleaned up the existing code a bit: * Each time the setUpScene() or createCameraTimeStats() methods added a line to the graph, they did pretty much the same thing, so I moved that into a separate method called createTimeStatsLine() which is called by setUpScene() and createCameraTimeStats(). * I moved the font, characterSize, startBlocks and leftPos variables to member variables, since they were being passed around everywhere but were set only once at the beginning. * The geode on which stats lines are added is also kept in a member variable, and createCameraTimeStats() adds the per-camera lines to this geode instead of returning a new Group with a new Geode. This further reduces the number of variables the createCameraTimeStats() method needs as input. " 2010-11-03 09:51 robert * From Jean-Sebastien Guay, "For a while now I've been bugged (pun) by a problem in the stats graph I submitted a long time ago. When it scrolled, sometimes it would scroll too little, leading to an empty space at the left that would grow as time went by. I was in that code today for something else so I fixed it. " 2010-11-03 09:28 robert * From David Fries, "Fix remote X11 crash querying GL_NUM_EXTENSIONS In osg::isGLExtensionOrVersionSupported in src/osg/GLExtensions.cpp when using indirect X11 rendering, glGetIntegerv( GL_NUM_EXTENSIONS, &numExt ); is leaving numExt uninitilized causing the following glGetStringi to return NULL when the extension number isn't present. Passing NULL to std::string() then crashes. This is with the following nVidia driver. OpenGL version string: 3.3.0 NVIDIA 256.35 I went ahead and initialized some of the other variables before glGetInitegerv in other files as well. I don't know for sure which ones can fail, so I don't know which are strictly required. " 2010-11-02 14:00 robert * From Chuck Seberino, "Here is a minor fix for the vrml plugin when building with Visual Studio 2010. 2010 has updated STL/TR1 libraries that create a naming conflict with the current source. The fix is to remove the 'using boost::next' line and use the fully-qualified boost::next to get rid of the ambiguity. Here is the patch and attached changes." 2010-11-02 12:15 robert * From Brad Christiansen and Robert Osfield, "I have added the new function as suggested. The change was made against trunk from an hour or so ago. I haven't tested the performance yet (and probably won't get a chance till next week) but I have checked my terrains still work. I defaulted the equalization to off as I thought this was best until we can look into why there is the performance hit. ", note from Robert, tweaked the names and enabled the code path. 2010-11-02 11:44 robert * From Mikhail Izmestev, "There is bug in GLBufferObject::compileBuffer when changed not first buffer entry, then generated new wrong offset. " 2010-11-02 11:27 robert * Fixed function name 2010-11-02 11:19 robert * From Javier Taibo, " In current SVN code, when exporting an osgParticle::Particle object to the .osg file format, it crashes if no drawable was set in the particle. In the attached file (src/osgWrappers/deprecated-dotosg/osgParticle/IO_Particle.cpp) I have added a check for the existence of the drawable before writing it to the file. " 2010-11-01 17:19 robert * From John Ivar Haugland & Robert Osfield, fix for bug in VisualStudio where it adds an redundent '/n' on the end of the command line arguments for no reason. 2010-11-01 17:05 robert * From Alexander Irion, "When a osg::Geometry node is loaded from a ".osgb" file, there is no element buffer object created for the primitives element indices, although _useVertexBufferObjects is enabled. This bug decreases the rendering performance." 2010-11-01 17:02 robert * From Sukender, fix for incorrect for loop test. 2010-11-01 13:57 robert * From Jan Peciva, "attaching Matrix_implementation fix for two problems: - using m.getPerspective( fovy, tmp, tmp, tmp ) to get only FOV does not work. The reason is that getPerspective is taking tmp as reference - thus all the three variables points to the same memory location. Then, zNear (third parameter) is used inside the method, while zNear content was spoiled by zFar that was written to the same place, resulting in fovy set to nan. I consider that it is the right of programmers to use 3 times tmp as parameter and I fixed the code in the method. I have done the same for getFrustum and getLookAt. - I fixed makeFrustum to accept infinite zFar. (Some graphics techniques like shadow volumes require placing zFar to infinity to avoid visual artifacts.)" Note from Robert Osfield, change the local near & far variable names to temp_near and temp_far MS Visual Studio has a record of using near and far names. 2010-11-01 11:06 robert * From Jean-Sebastien Guay, osgDB functions to expand wildcards - required to aid windows consule usage as this doesn't not automatically expand * usage. 2010-11-01 10:52 robert * From Jean-Sebastien Guay and Robert Osfield, cleaned up the way that unix/windows file separators are managed. 2010-11-01 10:31 robert * From Mathias Goldau, "Added very brief documentation when to use the triangle mesh class. I generated the make doc_openscenegraph target to verify that this change does not break something. " 2010-10-29 15:18 robert * From Mikhail Izmestev, "I have discovered problem with draggers from osgManipulator in HUD. This problem caused because osgManipulator::Dragger uses matrices of top camera instead last absolute Camera in NodePath. I attached modified osgManipulator/Dragger.cpp file, where added code for finding last absolute camera. With this changes draggers works in HUD. Example for demonstrate this problem you can find in osg-users list [1]. Mikhail. [1] http://thread.gmane.org/gmane.comp.graphics.openscenegraph.user/62636 " 2010-10-29 09:56 robert * From Sherman Wilcox, "there's a bug in the cmake file for the tiff plugin. See attached. The problem was that the output files were not properly setting the debug/release libs due to this cmake bug. What occurred was the release lib was set in all configurations." 2010-10-29 09:35 robert * 2010-10-29 08:33 robert * Added X11_X11_LIB to LIB_EXTRA_LIBS when build X11 version of osgViewer to enable use of Mesa's GLES/EGL implementation 2010-10-29 08:31 robert * Fixed warning 2010-10-28 15:52 robert * Commented out unused ElapsedTimer 2010-10-28 14:04 robert * Added use ObjectWrapper's FinishObjectReadCallback to fix VertexBufferObject handling in osg::Geometry and a call to the TileLoaded callback in osgTerrain. 2010-10-28 14:04 robert * Added FinishedObjectReadCallback to ObjectWrapper which allows wrappers to register their own handling of post processing of objects once they have been read. 2010-10-28 14:01 robert * Added handling of vertex buffer objects into osg::Geometry copy constructor. 2010-10-28 14:01 robert * Improved code style consistency 2010-10-28 14:00 robert * Quitened down debug messages 2010-10-27 13:49 robert * Fixed getEnableDepthWrites() naming. 2010-10-26 14:59 robert * Added command line options: --tristripper --no-tristripper --smoother --no-smoother --remove-duplicate-vertices / --rdv --optimize-vertex-cache / --ovc --optimize-vertex-order / --ovo 2010-10-25 13:42 robert * Added number of primitive sets to on screen stats 2010-10-23 09:51 robert * Added -o postfile option to allow the output of processed files Disabled tri-stripping when simplifing to fix performance issue that introduces. 2010-10-22 16:44 robert * Added StateSetManipulator usage 2010-10-22 16:35 robert * Added support for enable VBO's and doing simplification. 2010-10-22 12:28 robert * Cleaned up main loop, so it's more readable, seperating out the paging and non paging implementations 2010-10-22 12:19 robert * Added paging support to osganalysis example 2010-10-21 16:29 robert * Integrated IncementalCompileOperation into DatabasePager. Improved various facilities in IncrementalCompileOperation. 2010-10-21 16:28 robert * Added new osganalysis example as a testbed for profiling peformance of various aspects of OSG/OpenGL and scene graphs. 2010-10-14 18:16 robert * Introduction of IncrementalCompileOperation support to DatabasePager. 2010-10-14 13:35 robert * Introduced SubloadCallback::generatdTextureObject() method. 2010-10-14 12:20 robert * From Wang Rui, warning fix. 2010-10-14 11:10 robert * From Brad Christiansen, fix function entry points under Windows to address crash 2010-10-14 09:31 robert * From Wang Rui, QT based OpenThreads implementation 2010-10-13 15:03 robert * Added support for using a custom osg::Geometry that attempts to force the OpenGL driver to download the texture object to graphics card. Calling IncrementalCompileOperation::assignForceTextureDownloadGeometry() assigns a geometry to the job. 2010-10-09 11:51 robert * Changed the _ARB cube map defines to non ARB versions. 2010-10-09 11:27 robert * Removed redudent set up of GL_ cubemap defines as these are now also in include/osg/Texture 2010-10-08 18:53 robert * Tempory fix for regression due to remove of glPushAttrib/glPopAttrib 2010-10-08 18:13 robert * Disabled the build of Qt examples when building against GLES1 & 2 as Qt GL includes OpenGL headers itself that cause conflict. 2010-10-08 17:13 robert * Build fixes for GLES1, GLES2 and GL3 2010-10-08 11:20 robert * Refactored the Texture3D extension setup in osg::Texture3D and gluBuild3DMipmaps and gluBuild3DMipmapLevels. 2010-10-07 11:53 robert * Introduced osg namespace to new local GLU functions 2010-10-07 10:51 robert * Introduced new gluScaleImage function that uses a PixelStorageModes structure to pass in details on image packing, rather than relying upon glGet's to get the values. 2010-10-06 19:09 robert * Added #define GL_PROXY_TEXTURE_3D 2010-10-06 18:51 robert * Fixed warning 2010-10-06 18:37 robert * Changed tabs to 8 spaces 2010-10-06 18:34 robert * From Jean-Sebastien Guay and Robert Osfield, build fix for Windows 2010-10-06 18:29 robert * Added #define for Windows build 2010-10-06 17:19 robert * Added #define GLAPIENTRY to attempt to resolve some Windows build issues 2010-10-06 16:36 robert * Added #define's and local include to fix Windows GL 1.1 build against 2010-10-06 16:29 robert * From Jean-Sebasien Guay, fix windows compile error 2010-10-06 15:33 robert * Removed gluois.h reference 2010-10-06 15:14 robert * Removed usage gluos.h and redundent gluint.h 2010-10-06 14:44 robert * Copied libutil and libtess implementations in form Mesa 7.9/src/glu into the src/osg/glu, changed extensions from .c to .cpp and got compiling as C files as part of the osg core library. Updated and cleaned up the rest of the OSG to use the new internal GLU. 2010-10-04 15:23 robert * Improved the handling of matrices in serialization so that it's more reliable, change was to use doubles for reading and writing matrices regardless of type of Matrix being serialized. Change does break backwards compatibility though, so code path supporting original format has been left in for the time being. However, this code is not reliable enough and is over complicated compared to the simplified handling. Once the new code has been bedded down for a while I'll remove this code block. 2010-10-04 11:29 robert * From Stephan Huber, "just a follow-up: I looked at the code of osg/Referenced.cpp and notice a discrepancy in getOrCreateObserverSet. For the atomic- and mutex-codepaths the newly created observerset gets manually ref'ed, but not in the codepath used when OPENTHREADS_ATOMIC_USE_MUTEX is defined. I added the manual ref and tadaaa, the crash went away." 2010-10-04 11:24 robert * Added glMultMatrixf path for GLES1 2010-10-04 11:19 robert * Added checks for NULL images to prevent crashes when no valid images are created 2010-10-01 18:02 robert * From Wojciech Lewandowski, "As promised I prepared a patch to expose WGL_SWAP_METHOD / PFD_SWAP_METHOD selection via GraphicsContext::Traits. Since Traits don't define any enums (I guess to be simple to use) I tried to keep it that way and have added two boolean values: swapCopy & swapExchange. It is somewhat similar approach to GDI PixelFormatDescription were both options can be present together. Feel free to replace it with enum if you find it more appropriate. I also uderstand that there is a need to select system wide default method and have also modified DisplaySettings to contain swapMethod parameter. Swap method in Traits uses value set in DisplaySettings as default. Proper environment and command line args were added. Its possible to define default DeisplaySettings swap method in standard way via system flags or with comand line. Env Vars: OSG_SWAP_METHOD = DEFAULT | COPY | EXCHANGE or Command Line: --swap-method DEFAULT | COPY | EXCHANGE I also added handling of WM_ERASEBKGND in GraphicsWindowWin32. It may be unneccessary but code should be safer this way than without handling it. I have placed a comment explaining the reason above the change. Changes were made against today trunk. PS. I tested only Windows code. I briefly checked X11 & Cocoa files but have not noticed SwapMethod to be used there. " 2010-10-01 17:07 robert * 2010-10-01 15:58 robert * From Magnes Kessler, "Attached are some fixes for the environment variable help strings in DisplaySettings. They contain spelling fixes and an attempt to use consistent expressions throughout." 2010-10-01 15:37 robert * From Wojciech Lewandowski,"These are our changes to DatabasePager. To check if parent PLOD is registered, I resurrected PagedLODList::containsPagedLOD() method. This method was available some time ago, but got removed and was not currently present in trunk. To add this method I had to also modify the DatabasePager header. " 2010-09-30 16:57 robert * From Magnus Kessler, "After a closer look at this particular issue, I used some grep and sed magic to fix all occurrences of "macro's" and "paramter". " 2010-09-30 16:31 robert * From Craig Bosma, "Attached is an updated Image.cpp that fixes a very specific compatability regression that was introduced almost 2 years ago in r8834. The IVE version number was bumped to 32 because of the change in binary layout, but the guard for reading/writing the new field was checked against 31. Of course this only causes a problem (as for us) when you've produced IVE files at version 31, which no longer load (or crash) when loaded by newer OSG/IVE versions." 2010-09-30 16:03 robert * From Chuck Seberino, "Here is a small optimization in osgDB/Serializer that only uses a single accessor call when retrieving serializable values during writing. This is a sizable win for some of my code since the getter() methods are non-trivial. I also removed some explicit namespace qualifiers to be consistent with the rest of the codebase." 2010-09-30 14:25 robert * From WojciechLewandowski, Added DispaySettings::SwapMethod and support for it in GraphicsContext::Traits 2010-09-30 09:40 robert * From Stephan Huber, fixed build under OSX 10.5. 2010-09-30 09:34 robert * From Wang Rui, "I've fixed the problem that osgx format doesn't read the Font property and wrapped string correctly. The first problem happened because the matchString() made a mistake in comparing two strings with the same start but different size. The second just needs complete rewriting of writeWrappedString() and readWrappedString() in src/osgPlugins/osg/XmlStreamOperator.h I also fixed a possible bug in osgDB::XmlParser that doesn't handle control characters (like " to ") when reading node attributes, because the writeWrappedString() and readWrappedString() now depend heavily on control characters. An additional improvement is that osgx now supports comments." 2010-09-29 13:21 robert * Fixed Text3D's handling of character aspect ratio. 2010-09-29 12:45 robert * Moved handling of character aspect ratio into osgText::Style. 2010-09-29 12:38 robert * Added command line option for writing out the scene graph to file. 2010-09-29 11:34 robert * Moved set/getFont from Text/Text3D into TextBase 2010-09-29 11:09 robert * Removed getScale() parameter from osgText::Font 2010-09-29 10:54 robert * Fixed type of numberical constant 2010-09-27 17:11 robert * Moved Text3D across to using Style for character thickness. Quitened down debug messages in 3D text geometry creation. Improved the Text3D implementation of the new 3D text geometry. 2010-09-27 16:18 robert * Added support for osgText::Style into osgText::Text3D. Refactored Text3D implementation to use new GlyphGeometry class. Implemented GlyphGeometry backend and cleaned up Glyph3D interface. 2010-09-27 09:58 robert * Changed the reading of animation paths so that it's always done without using the osgDB object cache. This fixes a bug of reusing the animination path in an P3D file. 2010-09-26 11:02 robert * Added include to fix compile error 2010-09-24 14:53 robert * From Alexander Wiebel, "I did some spell checking in my spare time. Here come 20 files." 2010-09-24 14:40 robert * From Jean-Sebastien Guay, "Changeset 10833 renames discardAllDeletedGLObjects() to discardAllGLObjects() in src/osg/GLObjects.cpp, but the declaration of the function in include/osg/GLObjects remained. So an app using an old version of OSG that called this function would now fail with a linker error instead of a compile error as it should. Removed the declaration. Also fixed a small typo in the following doxygen comment." 2010-09-24 14:38 robert * From Mikhail Izmestev, "This patch fixes operator >> used with std::istream without std::ios::skipws flag. This allow using boost::lexical_cast with osg vectors types, because boost's lexical_cast disable std::ios::skipws flag of std::istream before using operator >>. " 2010-09-24 12:59 robert * From Eric Wing, QTKit plugin for reading movies under OSX using QTKit + CoreVideo 2010-09-24 12:57 robert * Moved Style and Bevel classes out into their own include/osgText/Style header. Introduced GlyphGeometry class for handling the geometry data for rendering 3D text 2010-09-23 16:12 robert * Refactored the handling of readImage/writeImage/readObject/writeObject to avoid double setting of unique ID's, fixing the problem in reading/writing files with images 2010-09-22 09:50 robert * Added deprecated notices. 2010-09-21 11:40 robert * Updated ChangeLog and AUTHORS file for release 2010-09-21 10:28 robert * From David Guthrie, "The cocoa version of the window for Mac OS X doesn't implement the requestWarpPointer function, but it turns out that the code from the Carbon version of the window is the same because it uses the windowing interface, so it this version, based on 2.8.3 GraphicsWindowCocoa, I copied the function over. The trunk version it also missing the function and the code looks to be very similar, so I assume it will transfer simply enough. " 2010-09-20 16:04 robert * From Per Fahlberg, "imageio was not spelled correctly when registering the plugin, attached is a fixed version of ReaderWriterImageIO.cpp." 2010-09-20 11:50 robert * From Wang Rui, reverted changes to osgPartcile that caused problems with osgparticleeffects. 2010-09-20 11:02 robert * From Ulrich Hertlein, "attached is a fix that addresses these compiler warnings from the 64-bit OS X build: /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/3ds/WriterNodeVisitor.cpp: In function ?std::string getFileName(const std::string&)?: /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/3ds/WriterNodeVisitor.cpp:88: warning: comparison is always false due to limited range of data type /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/3ds/WriterNodeVisitor.cpp: In function ?bool is83(const std::string&)?: /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/3ds/WriterNodeVisitor.cpp:102: warning: comparison is always false due to limited range of data type /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/3ds/WriterNodeVisitor.cpp: In function ?bool is3DSpath(const std::string&, bool)?: /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/3ds/WriterNodeVisitor.cpp:118: warning: comparison is always false due to limited range of data type /Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/3ds/WriterNodeVisitor.cpp:121: warning: comparison is always true due to limited range of data type The code was using 'unsigned int' in places where it should've used 'size_t' for correct comparison with 'std::string::npos' (which is size_t). " 2010-09-17 15:41 robert * From Mathieu Marache, "This modified version of FindCOLLADA finds it correctly when installed with macports as in 'port install collada-dom'" 2010-09-17 15:39 robert * Add clamping of the maximum number of particles per frame to avoid too many particles being introduced at once when the particle system comes back on screen. 2010-09-17 14:26 robert * Updated ChangeLog, AUTHORS for 2.9.9 dev release 2010-09-17 13:33 robert * Build fixes for when OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION is disabled 2010-09-17 13:09 robert * Reverted changes from Vivien Delage as there were some regressions discovered. Will need to revist this code to deal with bugs that Vivien was tackling. 2010-09-17 11:20 robert * From Ulrich Hertlein, "I've added a command line switch '--testOcclusion' that enables display of other models in front and behind the outlined object." 2010-09-16 13:04 robert * From Magnus Kessler, "Changes to the quicktime plugin to remove unused variables and an unused static function." 2010-09-16 10:33 robert * From Alexander Wiebel, "I came across some functions in Vec* that I thought could benefit from some doxygen documentation. Additionally, I made the comment on value_type more meaningful (in my opinion)." 2010-09-16 09:49 robert * From Magnus Kessler, "I'm resubmitting a slightly different version of the changes you left out for osg/Camera. The ::glName issue masked the fact that the "(..)" isn't handled well in doxygen and leads to "(." in the generated files. I'm also submitting a minor documentation fix to osgGA/DriveManipulator to get it out of my patch queue ;)" 2010-09-16 09:09 robert * From March Sciabica, "Here is the solution I coded up over the weekend. For improved performance option, I added a flag to control whether the depth writing pass is performed. Since text is alpha-blended when rendering, it is placed in the transparent bin and rendered back to front. Writing to the depth buffer should therefore be unnecessary. Indeed, rendering something behind text (or any blended object) after that object is drawn will give incorrect results whether the depth buffer is written or not. I therefore think it is safe to keep this option off by default. Users can turn it on for any special needs they have. I did not fix the existing backdrop implementations to work with the new code since this new method of rendering intrinsically handles backdrops correctly. Its results are more accurate than all of the existing backdrop implementations. Its only downside is that it requires two passes if depth buffer updates are desired, whereas DEPTH_RANGE and POLYGON_OFFSET achieve their (less accurate) results in one pass. The NO_DEPTH_BUFFER method also only uses one pass, but it disables depth tests and not depth writes so will have serious problems if anything is drawn in front of the text before OR after the text is drawn. Given the better all-around behavior of the new method, I believe the other backdrop implementations can be safely removed. Code that adjusts the backdrop implementation will of course be broken if the member functions are removed. For this reason I left them in, but set the new rendering method as the default backdrop implementation. At the very least I think the old backdrop implementations should be deprecated and removed at a later date. " Note from Robert Osfield, testing this submission with osgtext I found that the text would not render correctly when different text labels were overlapping in deth and screen space. I change _enableDepthWrites to default to true and found the that which artifacts still occurred around the alpha blended edges the artifacts where better than issue with occlusion of nearer pixels that was happening with _enableDepthWrites set to false.I therefore set the _enableDepthWrites to true as I feel it's the lesser of the two artefacts. 2010-09-16 08:46 robert * From Mathias Fielder, "i found an issue with the serializer writing shared arrays. At OutputStream::writeArray(), if the currently latest array is shared the full array content will be written. The following code snippet will reproduce this issue: Code: osg::Vec2 vec(0.f, 0.f); osg::Array* sharedArray = new osg::Vec2Array(1, & vec); // create 2 geometries sharing same array osg::Geometry* geom0 = new osg::Geometry; osg::Geometry* geom1 = new osg::Geometry; geom0->setVertexArray(sharedArray); geom1->setVertexArray(sharedArray); osg::ref_ptr geode = new osg::Geode; geode->addDrawable(geom0); geode->addDrawable(geom1); std::stringstream buffer; // write node osg::ref_ptr options = new osgDB::Options("Ascii"); osgDB::ReaderWriter* rw = osgDB::Registry::instance()->getReaderWriterForExtension("osgt"); osgDB::ReaderWriter::WriteResult wr = rw->writeNode(*geode, buffer, options.get()); // print result; array will be written twice with full content, though with same ID std::cout << buffer.str() << std::endl; // trying to read back node will print warnings about unmatched properties osgDB::ReaderWriter::ReadResult rr = rw->readNode(buffer, options.get()); To fix this i made a change in OutputStream::writeArray(). I think the same issue applies to OutputStream::writeObject(). So i made the same change there. " 2010-09-15 13:24 robert * From Paul de Repentigny, Commented out section of code that didn't work properly 2010-09-15 13:04 robert * Fixed warning 2010-09-15 12:50 robert * From Magnus Kessler, "Fix a small typo in present3D usage string" 2010-09-15 12:00 robert * From Magnus Kessler, "Attached are a number of files where I have tried to fix up some of the documentation. I have accumulated them over some time, but rebased onto the subversion trunk." 2010-09-15 11:36 robert * From Laura Cerritelli, "I modified TXPPagedLOD::traverse to prevent the terrain from inappropriately unloading the higher level of detail tiles. It wasn?t updating the frame number of the tile or the range it was traversing, causing PagedLOD::removeExpiredChildren to always consider the range expired." 2010-09-15 11:32 robert * From Wang Rui, "I've fixed some pen-slips in SharedStateManager.cpp, which writing the last few examples for my to-be-finished book. I also do a minor fix to the share() method to make it work for geodes, too." 2010-09-15 11:27 robert * From Lukasz Izdebski, "I made some changes in OcclusionQueryNode file. I move declaration of classes TestResult, QueryGeometry from cpp to header file and made a void createSupportNodes() a virtual method. Now is possible to inherit from class OcclusionQueryNode." 2010-09-15 11:10 robert * Renamed file3ds and options member variables to _file3ds and _options to avoid confusion and keep the code consistent with the rest of the class/OSG. Added _option parameter to writeImageFile(..) call. 2010-09-15 10:50 robert * From Todd Furlong, "I made a couple of changes to the osgFX::Outline class (SVN patch attached). I had a couple of issues with it that I was trying to resolve: 1. When an outline object was occluded by another object, the backfacing wireframe was exposed. To fix that, I removed the disabling of GL_DEPTH_TEST. 2. In some cases, the outline color was the same color as the geometry being drawn instead of the specified color. I'm not sure I have completely fixed this issue, but I did make some changes to match up to how we do a scribe effect." 2010-09-15 10:24 robert * Added https, ftp and ftps to list of supported server protocols, and add ability for curl plugin to ignore the need for a server address when .curl extension is used. 2010-09-15 09:56 robert * From Jan Peciva, "please, find attached improved Stencil and StencilTwoSided classes. Goals: - to handle INCR_WRAP values nicely if not supported by OpenGL (old hardware) - to support two side stenciling of OpenGL 2.0. Current implementation does not work on ATI as it uses Nvidia extension. Ready for commit: - Stencil and Stencil.cpp - please, review them Ready with "hack": - StencilTwoSided.cpp: please, see the line 113 in apply(): glEnable(GL_STENCIL_TEST_TWO_SIDE); This line used to be in getModeUsage() as usage.usesMode(GL_STENCIL_TEST_TWO_SIDE); but it produces OpenGL errors on ATI as it is unknown value there (it is Nvidia extension). Problems with my "glEnable" solution: - it enables two side stenciling forever, and it will disturb any other single-side stenciling in the scene graph. " 2010-09-15 09:24 robert * From Wang Rui, "I've changed it back to _alive, _current_size and _current_alpha, and placed them one by one for setTexCoordPointer() to use. All size() methods are now renamed to volume(). At present only the CompositePlacer will use it for randomly choose a place according to the volumes of all children. " 2010-09-14 15:47 robert * Form Wang Rui, "An initial GLSL shader support of rendering particles. Only the POINT type is supported at present. The attached osgparticleshader.cpp will show how it works. It can also be placed in the examples folder. But I just wonder how this example co-exists with another two (osgparticle and osgparticleeffect)? Member variables in Particle, including _alive, _current_size and _current_alpha, are now merged into one Vec3 variable. Then we can make use of the set...Pointer() methods to treat them as vertex attribtues in GLSL. User interfaces are not changed. Additional methods of ParticleSystem are introduced, including setDefaultAttributesUsingShaders(), setSortMode() and setVisibilityDistance(). You can see how they work in osgparticleshader.cpp. Additional user-defined particle type is introduced. Set the particle type to USER and attach a drawable to the template. Be careful because of possible huge memory consumption. It is highly suggested to use display lists here. The ParticleSystemUpdater can accepts ParticleSystem objects as child drawables now. I myself think it is a little simpler in structure, than creating a new geode for each particle system. Of course, the latter is still compatible, and can be used to transform entire particles in the world. New particle operators: bounce, sink, damping, orbit and explosion. The bounce and sink opeartors both use a concept of domains, and can simulate a very basic collision of particles and objects. New composite placer. It contains a set of placers and emit particles from them randomly. The added virtual method size() of each placer will help determine the probability of generating. New virtual method operateParticles() for the Operator class. It actually calls operate() for each particle, but can be overrode to use speedup techniques like SSE, or even shaders in the future. Partly fix a floating error of 'delta time' in emitter, program and updaters. Previously they keep the _t0 variable seperately and compute different copies of dt by themseleves, which makes some operators, especially the BounceOperator, work incorrectly (because the dt in operators and updaters are slightly different). Now a getDeltaTime() method is maintained in ParticleSystem, and will return the unique dt value (passing by reference) for use. This makes thing better, but still very few unexpected behavours at present... All dotosg and serialzier wrappers for functionalities above are provided. ... According to some simple tests, the new shader support is slightly efficient than ordinary glBegin()/end(). That means, I haven't got a big improvement at present. I think the bottlenack here seems to be the cull traversal time. Because operators go through the particle list again and again (for example, the fountain in the shader example requires 4 operators working all the time). A really ideal solution here is to implement the particle operators in shaders, too, and copy the results back to particle attributes. The concept of GPGPU is good for implementing this. But in my opinion, the Camera class seems to be too heavy for realizing such functionality in a particle system. Myabe a light-weight ComputeDrawable class is enough for receiving data as textures and outputting the results to the FBO render buffer. What do you think then? The floating error of emitters (http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/2009-May/028435.html) is not solved this time. But what I think is worth testing is that we could directly compute the node path from the emitter to the particle system rather than multiplying the worldToLocal and LocalToWorld matrices. I'll try this idea later. " 2010-09-14 13:19 robert * From Ulrich Hertlein, "not sure how severe this is but I believe there's a bug in Texture.cpp:applyTexImage2D_subload: unsigned char* data = = (unsigned char*)image->data(); if (needImageRescale) { // allocates rescale buffer data = new unsigned char[newTotalSize]; // calls gluScaleImage into the data buffer } const unsigned char* dataPtr = image->data(); // subloads 'dataPtr' // deletes 'data' In effect, the scaled data would never be used. I've also replaced bits of duplicate code in Texture1D/2D/2DArray/3D/Cubemap/Rectangle that checks if the texture image can/should be unref'd with common functionality in Texture.cpp. " 2010-09-14 13:19 robert * Moved GL_RED and associated GL defines that aren't defined by GLES into the include/osg/Image to aid portability. 2010-09-09 16:49 robert * From Jean-Sebastien Guay, "osgWidget::WindowManager did nothing in its keyUp event, and in particular didn't call any callbacks. Since I wanted to have callbacks on keyUp, I copied what it does on keyDown, which works for me. I could have just used keyDown and saved myself the trouble, but you know me... :-) osgWidget::Input: [Functional changes] - Previously, the field would be filled with spaces up to its max length, and typing would just replace the spaces. Also, there was a _textLength variable that kept track of the real length of text in the field, since the osgText::Text's length just reflected the length of spaces+text entered. This was not great, as you could still select the spaces with the mouse and it just feels hacky. So I changed it to only contain the text entered, no spaces, and _textLength was removed since it's now redundant (the osgText::Text's length is used instead). - Fixed the selection size which (visually only) showed one more character selected than what was really selected. - Fixed selection by dragging the mouse, it would sometimes not select the last character of the string. - Cursor will now accurately reflect whether insert mode is activated (block cursor) or we're in normal mode (line cursor) like in most editors. - Implemented Ctrl-X (cut) - Added a new clear() method that allows the field to be emptied correctly. Useful for a command line interface, for example (hint, hint). - Mouse and keyboard event handler methods would always return false, which meant selecting with the mouse would also rotate the trackball, and typing an 's' would turn on stats. [Code cleanup] - Renamed the (local) _selectionMin and _selectionMax variables which are used in a lot of places, as the underscores would lead to think they were members. Either I called them selection{Min|Max} or delete{Min|Max} where it made more sense. - Fixed some indenting which was at 3 spaces (inconsistently), I'm sure I didn't catch all the lines where this was the case though. - Put spaces between variable, operator and value where missing, especially in for()s. Again I only did this where I made changes, there are probably others left. The result is that delete, backspace, Ctrl-X, Ctrl-C, Ctrl-V, and typing behaviour should now be consistent with text editor conventions, whether insert mode is enabled or not. I hope. :-) Note, there's a nasty const_cast in there. Why isn't osgText::Font::getGlyph() declared const? Also, as a note, the current implementation of cut, copy and paste (in addition to being Windows only, yuck) gets and puts the data into an std::string, thus if the osgText::String in the field contains unicode characters I think it won't work correctly. Perhaps someone could implement a proper clipboard class that would be cross-platform and support osgText::String (more precisely other languages like Chinese) correctly? Cut, copy and paste are not critical to what I'm doing so I won't invest the time to do that, but I just thought I'd mention it. " 2010-09-09 10:44 robert * From Torben Dannhauer, "I extended the attached CMAKE module to search for the collada libraries of my VS2008 3rdParty package if no other library is found. No CMAKE should recognize all libraries of the VS2008 3rdParty Package." 2010-09-09 10:17 robert * From Joachim Pouderoux, "Please find attached a very small fix for the DXF reader. The bug made OSG crash with some files. Actually, itr was incremented into the loop and after the test with nlist.end(). Then, the unreferencing of itr when nlist is equals to nlist.end() caused the crash." 2010-09-09 10:14 robert * From Joachim Pouderoux, "I have added the support for wkbMultiPolygon & wkbMultiPolygon25D in the OGR plugin (it was mysteriously missing and no prevent warning messages was print)." 2010-09-09 10:09 robert * From Tassilo Glander, "I want to submit a fix for the plugin to load .x model files (Direct X). The current version crashes when encountering global materials, as also reported in the forum by the author of the plugin. The problem in mesh.cpp (app. ln 247) is, that references to global materials that are given in curly brackets {} are not supported by the reader. However, curly brackets seem to be common, according to Bourke. Unfortunately, I found no specification. However, also the DirectX model viewer that comes with the DirectX-SDK (August 2009) expects curly brackets and refuses models without them. My fix checks 2 more cases ("{ aMaterial }" -> 3 tokens and "{aMaterial}" -> 1 token), and extracts the material name for the lookup. I don't know if this is the most elegant solution, but the tokenizer seems to split based on white spaces. You can reproduce the bug with the attached model (box.x), which loads fine in other tools, such as 3DSmax, DeepExploration or the DirectX model viewer. When I remove the curly brackets at the reference of "myGlobalMaterial", it loads in osgviewer, but is not standard conform. " 2010-09-09 10:03 robert * From Roland Smeenk, "this submission adds a "Fast Drawable" line to the camera scene statistics. It shows the total number of sorted and unsorted drawables that use the fastpath for rendering." 2010-09-09 09:47 robert * From Jean-Sebastien Guay, "I've added a second ctor where no argument is optional, and documented that it's meant to be used when the InteractiveImage is going to be used in a fullscreen HUD. " 2010-09-09 09:05 robert * Added version check for av_lockmgr_register support. 2010-09-09 08:47 robert * From Nathan Monteleone and Robert Osfield, submission email from Nathan: "I discovered a problem with POINT_ROT_EYE billboards in IntersectionVisitor: because we pass in just the model matrix to Billboard::computeBillboardMatrix, the billboard gets the wrong up vector. It really needs to take the view matrix into account to get the correct up vector. This version of IntersectionVisitor.cpp is made against today's SVN. It corrects the problem by computing the billboard matrix using the complete modelview, and then multiplies by the inverse of the view matrix before pushing onto IntersectionVisitor's model stack. The only code I changed is in apply(Billboard&)." notes from Robert, refactored the matrix multiplication code and the use of RefMatrix to make Nathan's changes more efficient. 2010-09-08 11:02 robert * Cleaned up debug info, and changed Text3D across to using GL_NORMALIZE instead of GL_RESCALE_NORMAL. 2010-09-08 10:46 robert * Added support for honouring PrimitiveSet names in new smoothing algorithm 2010-09-08 08:09 robert * From Jean-Sebastien Guay, build fixes for Windows 2010-09-07 19:55 robert * Removed files that have been moved into osgText. 2010-09-07 18:20 robert * Moved Glyph and Glyph3D out of Font header/source file into their own header/source file. 2010-09-07 18:18 robert * Moved TextNode into osgText. Cleaned up freetype plugin so it no longer does tesselation - instead Glyph and TextNode do this. 2010-09-06 15:43 robert * Further work on new 3D text support 2010-09-03 15:03 robert * Added basic wiring up of TextTechnique to 3D glyph code 2010-09-03 09:10 robert * Removed now redundent Font3D files 2010-09-03 09:08 robert * Refactored to use a typedef of Font to Font3D rather than have a separate Font3D class 2010-09-03 08:26 robert * Refactored osgText::Font so that it now supports both 2D and 3D glyphs. Added TextNode.h and TextNode.cpp to examples/osgtext3D in prep for introducing the new node to osgText library 2010-09-02 07:55 robert * Added to Text::resizeGLObjectBuffers(uint) the follow: _textureObjectBuffer.resize(maxSize); _texParametersDirtyList.resize(maxSize); 2010-08-25 16:59 robert * Implemented a greedy triangle associate technique to minimize the number of duplicate vertices required to produce crease angles. 2010-08-25 14:34 robert * Changed --flat to --flat-shaded to avoid conflict with oiginal --flat ratio control. 2010-08-25 11:07 robert * Cleaned up main and introduced --samples , --flat, --smooth command line controls. Add StatsHandler to viewer to enable review of different settings on number vertices/triangles. 2010-08-25 11:06 robert * Added support for controlling the number of curves samples to generate on Glyph3D's. Set via Font3D::setNumberCurveSamples(num). 2010-08-24 16:08 robert * Implemented the shell geometry code 2010-08-24 16:06 robert * Added "SORT_BACK_TO_FRONT" and "SORT_FRONT_TO_BACK" RenderBin's to default prototype list 2010-08-24 14:22 robert * Refactored 3d text geometry creation code so that the text is all placed in one osg::Geometry. 2010-08-20 10:24 robert * Fixed bug in handling large osg::Geometry. 2010-08-19 16:24 robert * Implemented generation of front, back and bevel geometries to complete the 3d glyphs. 2010-08-18 11:14 robert * Improved the detection of problem vetices and associated triangles 2010-08-17 19:48 robert * Fixed indentation 2010-08-17 19:48 robert * Implemented basic duplication of points that sit on sharp edges. 2010-08-17 13:25 mplatings * From Donn Mielcarek: The fbx plugin won't compile using gcc 4.3.2. I made the following minor changes: 1. WriterNodeVisitor.cpp needed limits.h added to the headers. 2. gcc does not allow structures to be defined inside of functions, so I moved the definition of PolygonRef out of the function to a global scope (right above the function readMesh). I also removed a bunch of embedded carriage returns 2010-08-17 13:10 robert * Added support for RGTC1 and RGTC2 enums 2010-08-16 15:02 robert * From Guillaume Taze, "Here are some bugs fix : - missing copy attribute _referenceFrame in ClipNode in copy constructor - checked iterators against the end in osgText - close codec context in ffmpeg plugin to avoid memory leak " 2010-08-16 14:54 robert * From Maria Ten, "Importing 3ds files with a texture for the diffuse component and other one for opacity does not work with the osg 3ds plugin. In the attached file, there is a fix to solve this issue but it does not support textures without alpha channel in the opacity component (like black and white textures used in 3ds max to achieve the transparency). There is attached a test 3ds file too. " 2010-08-16 14:39 robert * From Wang Rui, "Attachment is the implementation of the writing operation of the TGA format. I wrote it just for one of my client. At present it only outputs uncompressed RGBA images, but the OSG community can go deeper at any time." 2010-08-16 14:24 robert * Added material setName. 2010-08-16 14:14 robert * Added support for USE_RGBT1_COMPRESSION and USE_RGBT2_COMPRESSION 2010-08-16 14:11 robert * From Lukasz Izdebski, "Texture: added support for GL_EXT_texture_compression_rgtc, I added support (read and write ) for BC4 BC5 Block Compression to dds file format." 2010-08-16 11:03 robert * Changed setTransformation(eye, center, up) paramter ordering to match gluLookAt conventions. 2010-08-16 10:11 robert * From Bradley Anderegg, "I fixed a problem with a stack overflow error in Particle.cpp. When the hexagon particle renders it does a glPushMatrix with no matching glPopMatrix, I simply added a glPopMatrix at the end of the rendering code." 2010-08-16 09:35 robert * From Alexander Wiebel, "Documentation of PrimitiveSet" 2010-08-09 17:02 robert * From David Fries, merge from a series of related submission emails: "enable thread locking in libavcodec This is required for a multithreaded application using ffmpeg from another thread." "Prevent the audio from videos from hanging on exit if they are paused. The video decoder already has similar logic." "Add a way to retrieve the creation time for MPEG-4 files." "fmpeg, improve wait for close logic Both audio and video destructors have been succesfully using the logic, if(isRunning()) { m_exit = true; join(); } since it was introduced, but the close routines are using, m_exit = true; if(isRunning() && waitForThreadToExit) { while(isRunning()) { OpenThreads::Thread::YieldCurrentThread(); } } which not only is it doing an unnecessary busy wait, but it doesn't guaranteed that the other thread has terminated, just that it has progressed far enough that OpenThreads has set the thread status as not running. Like the destructor set the m_exit after checking isRunning() to avoid the race condition of not getting to join() because the thread was running, but isRunning() returns false. Now that FFmpeg*close is fixed, call it from the destructor as well to have that code in only one location." 2010-08-09 16:19 robert * Aded option for doing a glFlush() after compiling texture objects, with a dedicated compile thread default to issuing the glFlush. 2010-08-09 16:14 robert * Cleaned up the inline methods 2010-08-08 15:45 robert * From Stephan Huber, "attached you'll find a small enhancement for GraphicsWindowCocoa, so osgViewer behaves smarter, when the computer will reboot or shutdown. In older versions the reboot/shutdown got cancelled by GraphicsWindowCocoa, now it behaves more system conform. " 2010-08-08 15:44 robert * Removed the erroneous subclassing from osg::Observer 2010-08-08 15:34 robert * From Farshid Lashkari, "This patch simply reduces some messages output in osg::Program from NOTICE to INFO, since they are not important for most users." 2010-08-08 15:32 robert * From Cedric Pinson, "I used the lod of the texture manager to track the instance, and it seems that the number of current active texture is wrong. It's because of the line in Texture::TextureObjectSet::flushDeletedTextureObjects _parent->getNumberActiveTextureObjects() += numDeleted;" 2010-08-04 08:35 cedricpinson * From Rob Smith, makes hardware skinning use of the existing stateset 2010-07-31 10:33 robert * From Jan Peciva, "I am sending pov plugin for exporting scene to POV-Ray format. POV-Ray is photorealistic ray tracer." 2010-07-31 10:22 robert * From Jeremy Moles, "The version of GCC I use (4.4.3-4ubuntu5) gives the following warning about the Observer header: /home/cubicool/local/include/osg/Observer: In copy constructor ?osg::ObserverSet::ObserverSet(const osg::ObserverSet&)?: /home/cubicool/local/include/osg/Observer:66: warning: base class ?class osg::Referenced? should be explicitly initialized in the copy constructor I've been fixing this by hand by using the attached Observer header; it does exactly what the warning requests. Purely cosmetic, I believe, but other than that OSG seems to compile w/ -W -Wall just fine." 2010-07-31 10:20 robert * From Farshid Lashkari, "I noticed that some of my applications output the following notification message: no PixelBufferObject 00000000, 00000000 pbo=00000000 It's kind of annoying since there is nothing actually wrong. The message is generated from TextureRectangle::applyTexImage_subload when it fails to create a pbo, even if the Image object is not even requesting to use a pbo. This message is not generated by all the other code in TextureRectangle.cpp & Texture.cpp that also attempts to create pbo's. I've modified TextureRectangle.cpp to remove this message, so it is at least consistent with the other code." 2010-07-31 10:18 robert * From Warren Macchi, "While tracing texture artifacts with the 2.9.8 dev release we uncovered what looks like a type in the "src\osgPlugins\dae\ daeRMaterials.cpp" file. Line 1094 reads: ^^^ parameters.filter_min = getFilterMode(sampler->getMagfilter()-> getValue(), false); whereas it should read ^^^ parameters.filter_mag = getFilterMode(sampler->getMagfilter()-> getValue(), false); " 2010-07-31 10:17 robert * From Brad Christiansen, "To build OSG using Visual Studio 2010 Terrain.cpp requires #include . This is a very common fix when using 2010 due to changes in Microsoft STL. " 2010-07-31 09:21 robert * Fixed build 2010-07-31 09:04 robert * From Ryan Kawicki, "I found a memory leak within the Terrex plugin. Out application has the ability to switch to different types of terrains on the fly. This problem only exists in this type of situation. The TXPArchive is held by the ReadWriterTXP class. When the TXPNode, which is the top level node, is released from memory, the archive associated to that TXPNode is also released. The issue is that the reference count on the TXPArchive never gets to zero. The reason why the reference count never gets to zero is because the TXPParse, which is owned by the TXPArchive, stores a ref_ptr to the TXPArchive. You can then see why this becomes a problem. The TXPParser's ref_ptr cannot be unreferenced since the TXPArchive has not released the TXPParser. Since the TXPParser is fully contained within the TXPArchive, I don't see the reason to have the TXPParser have a ref_ptr to the TXPArchive. I've made this change locally and have had no problems and our memory leak has been fixed. " 2010-07-31 09:03 robert * From Ryan Kawicki, fixed indentation 2010-07-31 08:57 robert * From Stephan Huber, "changed the CmakeFiles for OpenThreads and the osg-frameworks, so they are versioned by OPENSCENEGRAPH_SOVERSION. " And from a later email: "Attached you'll find a fixed version of ModulInstall.cmake. Hopefully it works for old CMake-versions. I removed the offending line, and the compile went fine on my end." 2010-07-31 08:56 robert * Added output of triangles at problem vertices 2010-07-30 19:39 robert * Beginning of crease angle support for SmoothingVisitor to all it duplicate vertices are creases thus enabling separate normals for triangles adjacent to the creases. 2010-07-30 16:06 robert * Changed emit() to emitParticles() to avoid collision with Qt. 2010-07-29 16:09 robert * From Wang Rui, fixes to handling of indentation. 2010-07-26 11:12 robert * Added bevel geometry 2010-07-26 11:06 robert * Clean up boudnary code 2010-07-26 08:41 robert * Added a os<