2010-12-03 17:50 robert * src/osgText/Text.cpp: 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 * src/osg/Texture2D.cpp: Removed redundent call. 2010-12-03 14:24 robert * src/osg/Texture2D.cpp: Commented out debug message 2010-12-03 14:18 robert * include/osg/Texture2D, src/osg/Texture2D.cpp: 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 * CMakeLists.txt, examples/osgviewerIPhone/CMakeLists.txt, src/osgDB/CMakeLists.txt, src/osgPlugins/freetype/CMakeLists.txt, src/osgPlugins/imageio/CMakeLists.txt, src/osgViewer/CMakeLists.txt: 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 * applications/present3D/CMakeLists.txt, examples/osgQtWidgets/osgQtWidgets.cpp, examples/osgcluster/CMakeLists.txt, examples/osgmultiviewpaging/osgmultiviewpaging.cpp, examples/osgtext3D/TextNode.cpp, include/osg/State, include/osgText/Style, src/OpenThreads/pthreads/PThread.c++, src/osgGA/MultiTouchTrackballManipulator.cpp, src/osgPlugins/3ds/lib3ds/lib3ds_impl.h, src/osgPlugins/pvr/ReaderWriterPVR.cpp, src/osgUtil/IncrementalCompileOperation.cpp, src/osgWidget/Input.cpp: 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 * examples/osgmultiviewpaging/osgmultiviewpaging.cpp: Ran dos2unix to fix line endings 2010-12-02 13:53 robert * src/osgDB/DatabasePager.cpp: From Brad Christiansen, commented out debug messages 2010-12-02 09:39 robert * src/osgViewer/PixelBufferWin32.cpp: Removed redudent makeCurrentImplementation() that was causing a crash in osgscreencapture. 2010-12-01 20:14 robert * AUTHORS.txt, applications/osgversion/Contributors.cpp: Updated AUTHORS and Contributors.cpp to reflect new ChangeLog correctly 2010-12-01 19:49 robert * examples/CMakeLists.txt: 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 * ChangeLog: Updated ChangeLog 2010-12-01 13:33 robert * src/osg/Texture2D.cpp: 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 * src/osgWrappers/serializers/osg/Texture2DArray.cpp: 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 * src/osgPlugins/osg/ReaderWriterOSG2.cpp: 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 * src/osgDB/InputStream.cpp: Added passing of existingObj parameter 2010-11-30 11:34 robert * src/osgPlugins/imageio/CMakeLists.txt: From Stephan Huber, compile fix for iOS 2010-11-30 09:26 robert * README.txt, examples/CMakeLists.txt, examples/osgviewerIPhone/CMakeLists.txt, include/osgViewer/api/IOS/GraphicsWindowIOS, src/osgDB/CMakeLists.txt: From Ulrich Hertlein and Stephan Huber, improves to iOS build 2010-11-30 08:12 robert * include/osg/BufferIndexBinding, include/osg/BufferObject: From Wang Rui, Compile fixes 2010-11-29 17:43 robert * examples/CMakeLists.txt, examples/osguniformbuffer, examples/osguniformbuffer/CMakeLists.txt, examples/osguniformbuffer/osguniformbuffer.cpp, include/osg/BufferIndexBinding, include/osg/BufferObject, include/osg/GL2Extensions, include/osg/Program, include/osg/StateAttribute, src/osg/BufferIndexBinding.cpp, src/osg/BufferObject.cpp, src/osg/CMakeLists.txt, src/osg/GL2Extensions.cpp, src/osg/Program.cpp: 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 * include/osgDB/DatabasePager, src/osgDB/DatabasePager.cpp: Removed deperecated variables that are no longer used. 2010-11-26 18:19 robert * CMakeLists.txt, README.txt, examples/CMakeLists.txt, examples/osgviewerIPhone, examples/osgviewerIPhone/CMakeLists.txt, examples/osgviewerIPhone/iphoneViewerAppDelegate.h, examples/osgviewerIPhone/iphoneViewerAppDelegate.mm, examples/osgviewerIPhone/main.m, examples/osgviewerIPhone/osgIPhoneViewer-Info.plist, examples/osgviewerIPhone/osgPlugins.h, include/osgViewer/api/IOS, include/osgViewer/api/IOS/GraphicsWindowIOS, src/osgPlugins/imageio/ReaderWriterImageIO_IOS.cpp, src/osgViewer/CMakeLists.txt, src/osgViewer/GraphicsWindowIOS.mm, src/osgViewer/IOSUtils.h, src/osgViewer/IOSUtils.mm: 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 * src/osgPlugins/OpenFlight/FltExportVisitor.h, src/osgPlugins/OpenFlight/expGeometryRecords.cpp: From Katharina Plugge, fix for regression in handling of multitexturing. 2010-11-26 17:35 robert * include/osgSim/MultiSwitch, src/osgPlugins/OpenFlight/AncillaryRecords.cpp, src/osgPlugins/OpenFlight/PrimaryRecords.cpp, src/osgPlugins/OpenFlight/Record.h, src/osgSim/MultiSwitch.cpp: From Eduardo Poyart, OSG patch: made it read ancillary IndexedStrings into MultiSwitch 2010-11-26 17:32 robert * ChangeLog: Updated ChangeLog 2010-11-26 13:54 robert * include/osg/Object, include/osg/Uniform, src/osg/Uniform.cpp: From Marin Platings and Robert Osfield, fix of Uniform unique ID by making osg::Object::setName() virtual. 2010-11-26 12:44 robert * src/osgPlugins/3ds/ReaderWriter3DS.cpp: 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 * src/osgWrappers/serializers/osg/AnimationPath.cpp: 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 * include/osgDB/Serializer: Removed debug messages 2010-11-26 10:31 robert * examples/osganalysis/osganalysis.cpp: From Magnus Kessler, "Typo in usage string of examples/osganalysis please specifies -> please specify" 2010-11-25 16:06 robert * include/osg/GL, include/osg/GraphicsContext, src/osg/FrameBufferObject.cpp, src/osg/GraphicsContext.cpp, src/osg/Texture.cpp, src/osgDB/FileUtils.cpp, src/osgUtil/RenderStage.cpp: 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 * src/osgViewer/Renderer.cpp: From Tim Moore, fix to stats timing 2010-11-25 12:30 robert * include/osg/Program, include/osg/State, include/osg/Uniform, src/osg/Program.cpp, src/osg/Uniform.cpp: 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 * include/osg/Image, include/osg/Observer, include/osgTerrain/TerrainTechnique: 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 * applications/osgconv/osgconv.cpp: From Magnus Kessler, "applications/osgconv: fix typo in tool options transprent -> transparent" 2010-11-25 11:40 robert * src/osgTerrain/Terrain.cpp: Removed default assignement of GeometryTechnique as the TerrainTechniquePrototype. 2010-11-24 20:26 robert * src/osgDB/ObjectWrapper.cpp, src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp, src/osgWrappers/serializers/osg/Shader.cpp: 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 * examples/osgtext3D/TextNode.h, src/osgText/GlyphGeometry.cpp, src/osgText/GlyphGeometry.h: From Jean-Sebastien Guay, build fixes for windows. 2010-11-24 17:01 robert * src/osg/State.cpp: Added workaround for AMD/ATI driver bug 2010-11-24 10:38 robert * include/osg/Drawable, src/osgViewer/Renderer.cpp, src/osgViewer/StatsHandler.cpp: From Tim Moore, Fix for drivers that don't properly support timer extensions. "" 2010-11-24 10:09 robert * include/osgShadow/MinimalShadowMap, include/osgShadow/ProjectionShadowMap, src/osgShadow/ConvexPolyhedron.cpp, src/osgShadow/DebugShadowMap.cpp, src/osgShadow/MinimalCullBoundsShadowMap.cpp, src/osgShadow/MinimalDrawBoundsShadowMap.cpp, src/osgShadow/MinimalShadowMap.cpp: 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 * examples/osgtext3D/CMakeLists.txt, examples/osgtext3D/TextNode.cpp, examples/osgtext3D/TextNode.h, examples/osgtext3D/osgtext3D.cpp, include/osgText/TextNode, src/osgText/CMakeLists.txt, src/osgText/Glyph.cpp, src/osgText/GlyphGeometry.h, src/osgText/TextNode.cpp: Moved TextNode from osgText into example/osgtext3D in prep for 3.0 2010-11-23 14:50 robert * include/osg/GL2Extensions, include/osg/PrimitiveSet, include/osg/Program, include/osg/Shader, src/osg/GL2Extensions.cpp, src/osg/PrimitiveSet.cpp, src/osg/Program.cpp, src/osg/Shader.cpp, src/osg/ShaderComposer.cpp: From Holger Helmich, Tessellation shader support 2010-11-23 11:11 robert * src/osgShadow/ParallelSplitShadowMap.cpp: 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 * examples/osganalysis/osganalysis.cpp, include/osgGA/GUIEventAdapter, include/osgParticle/CompositePlacer, src/osgGA/MultiTouchTrackballManipulator.cpp: Build fixes for building OSG with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set to OFF 2010-11-22 19:18 robert * src/osgPlugins/freetype/FreeTypeFont.cpp: Fixed typo 2010-11-22 17:39 robert * CMakeModules/FindFBX.cmake: 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 * src/osg/Geometry.cpp, src/osgDB/DatabasePager.cpp, src/osgDB/ObjectWrapper.cpp, src/osgUtil/IncrementalCompileOperation.cpp: 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 * include/osgGA/EventQueue, include/osgGA/GUIEventAdapter, include/osgGA/MultiTouchTrackballManipulator, src/osgGA/CMakeLists.txt, src/osgGA/EventQueue.cpp, src/osgGA/GUIEventAdapter.cpp, src/osgGA/MultiTouchTrackballManipulator.cpp: 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 * src/osg/Geometry.cpp: Fixed indentation 2010-11-22 11:31 robert * src/osgPlugins/vrml/ReaderWriterVRML2.h: 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 * applications/osgarchive/osgarchive.cpp, applications/osgfilecache/osgfilecache.cpp, applications/osgviewer/osgviewer.cpp, examples/osgcegui/osgcegui.cpp, examples/osgdatabaserevisions/osgdatabaserevisions.cpp, examples/osgscreencapture/osgscreencapture.cpp, examples/osgshadergen/osgshadergen.cpp, examples/osguserstats/osguserstats.cpp, include/osg/GL2Extensions, include/osg/Program, include/osg/Shader, include/osg/Uniform, include/osgDB/PluginQuery, src/osg/GL2Extensions.cpp, src/osg/GLStaticLibrary.cpp, src/osg/GLStaticLibrary.h, src/osg/Shader.cpp, src/osg/StateAttribute.cpp, src/osg/Uniform.cpp, src/osgDB/PluginQuery.cpp, src/osgPlugins/cfg/ReaderWriterCFG.cpp, src/osgPlugins/dae/ReaderWriterDAE.cpp, src/osgPlugins/rot/ReaderWriterROT.cpp, src/osgPlugins/scale/ReaderWriterSCALE.cpp, src/osgPlugins/shadow/ReaderWriterOsgShadow.cpp, src/osgPlugins/trans/ReaderWriterTRANS.cpp, src/osgPlugins/view/ReaderWriterOsgViewer.cpp: Fixed typo of commercial 2010-11-22 10:41 robert * src/osgText/Font.cpp: From Hartwig Wiesmann, fix to font search path under OSX. 2010-11-22 10:37 robert * CMakeModules/FindCOLLADA.cmake: 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 * src/osgPlugins/OpenFlight/FltExportVisitor.h, src/osgPlugins/OpenFlight/expGeometryRecords.cpp: 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 * include/osg/Plane: From Sukender, fix for precision of Plane::asVec4() 2010-11-19 17:47 robert * src/osgUtil/IncrementalCompileOperation.cpp: Commented out debug output 2010-11-19 17:47 robert * CMakeLists.txt: Update SOVERSION 2010-11-19 09:57 robert * src/osgWrappers/deprecated-dotosg/osgText/IO_Text.cpp, src/osgWrappers/deprecated-dotosg/osgText/IO_TextBase.cpp, src/osgWrappers/serializers/osgText/Text3D.cpp: Update Text wrappers to handle new Color member 2010-11-19 09:57 robert * include/osg/Version: Updated SO version to reflect changes in API of osgText 2010-11-18 17:59 robert * include/osgText/Text, include/osgText/TextBase, src/osgText/Text.cpp, src/osgText/Text3D.cpp, src/osgText/TextBase.cpp: Moved text color into TextBase, added support for colour into Text3D 2010-11-18 17:18 robert * src/osgPlugins/freetype/FreeTypeFont.cpp: 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 * src/osg/Texture.cpp: Improved handling of pending orphaned texture objects and max texture pool size. 2010-11-17 14:06 robert * src/osg/State.cpp: From Jean-Sebastien Guay, Changed debug info in State::frameCompleted() to OSG_INFO 2010-11-17 10:19 robert * examples/osganalysis/osganalysis.cpp: Added texture pool handler to print out results from texture pool 2010-11-17 10:16 robert * examples/osgtext3D/osgtext3D.cpp: Added quite size test. 2010-11-15 17:21 robert * src/osgGA/CMakeLists.txt: From Sherman Wilcox, "added the following to the ADD_LIBRARY list -- ${OPENSCENEGRAPH_VERSIONINFO_RC}" 2010-11-12 11:04 robert * src/osgPlugins/Inventor/ConvertFromInventor.cpp: Fixed warnings 2010-11-12 09:48 robert * src/osgText/Font.cpp, src/osgViewer/Scene.cpp: Fixed crash on intialization of static applications by moving the static mutexes inside singleton methods. 2010-11-11 16:51 robert * CMakeLists.txt, CMakeModules/FindFLTK.cmake, CMakeModules/FindGtkGl.cmake, CMakeModules/FindPoppler-glib.cmake, CMakeModules/FindRSVG.cmake, applications/present3D/CMakeLists.txt, src/osgPlugins/CMakeLists.txt, src/osgPlugins/pdf/CMakeLists.txt: 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 * applications/present3D/CMakeLists.txt, applications/present3D/present3D.cpp, examples/osgstaticviewer/CMakeLists.txt, examples/osgstaticviewer/osgstaticviewer.cpp, include/osgDB/Registry, include/osgDB/Serializer, src/osgDB/ObjectWrapper.cpp, src/osgPlugins/osg/ReaderWriterOSG.cpp, src/osgWrappers/deprecated-dotosg/osg/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgFX/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgShadow/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgSim/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgTerrain/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgText/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgViewer/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgVolume/LibraryWrapper.cpp, src/osgWrappers/deprecated-dotosg/osgWidget/LibraryWrapper.cpp, src/osgWrappers/serializers/osg/LibraryWrapper.cpp, src/osgWrappers/serializers/osgAnimation/LibraryWrapper.cpp, src/osgWrappers/serializers/osgFX/LibraryWrapper.cpp, src/osgWrappers/serializers/osgManipulator/LibraryWrapper.cpp, src/osgWrappers/serializers/osgParticle/CompositePlacer.cpp, src/osgWrappers/serializers/osgParticle/LibraryWrapper.cpp, src/osgWrappers/serializers/osgShadow/LibraryWrapper.cpp, src/osgWrappers/serializers/osgSim/LibraryWrapper.cpp, src/osgWrappers/serializers/osgTerrain/LibraryWrapper.cpp, src/osgWrappers/serializers/osgText/LibraryWrapper.cpp, src/osgWrappers/serializers/osgVolume/LibraryWrapper.cpp: 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 * include/osg/State: 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 * src/osgPlugins/directshow/DirectShowTexture.cpp: 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 * include/osg/Drawable, include/osg/GraphicsContext, include/osg/State, include/osgViewer/Renderer, src/osg/Drawable.cpp, src/osg/GraphicsContext.cpp, src/osg/GraphicsThread.cpp, src/osg/State.cpp, src/osgViewer/Renderer.cpp: 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 * src/osg/Image.cpp: From Mourad Boufarguine, "This is a small fix to osg::createGeodeForImage to adapt Tex coords to image origin. " 2010-11-09 17:17 robert * src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp: 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 * src/osgPlugins/gif/ReaderWriterGIF.cpp: 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 * applications/present3D/CMakeLists.txt, applications/present3D/present3D.cpp: 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 * CMakeLists.txt, CMakeModules/OsgMacroUtils.cmake: 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 * include/osgDB/ObjectWrapper, include/osgDB/Serializer, src/osgDB/ObjectWrapper.cpp: 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 * include/osgDB/InputStream, include/osgDB/ObjectWrapper, include/osgDB/Registry, include/osgDB/Serializer, src/osgDB/InputStream.cpp, src/osgDB/ObjectWrapper.cpp, src/osgDB/OutputStream.cpp: 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 * src/osgPlugins/vrml/CMakeLists.txt, src/osgPlugins/vrml/ConvertToVRML.cpp, src/osgPlugins/vrml/ConvertToVRML.h, src/osgPlugins/vrml/ReaderWriterVRML2.cpp, src/osgPlugins/vrml/ReaderWriterVRML2.h: 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 * examples/CMakeLists.txt, examples/osguserstats, examples/osguserstats/CMakeLists.txt, examples/osguserstats/osguserstats.cpp, include/osgViewer/ViewerEventHandlers, src/osgViewer/StatsHandler.cpp: 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 * src/osg/GLExtensions.cpp: 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 * include/osg/AutoTransform, src/osg/AutoTransform.cpp: 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 * src/osgPlugins/gz/ReaderWriterGZ.cpp: 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 * src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp: 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 * include/osgUtil/Optimizer, src/osgUtil/Optimizer.cpp: 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 * CMakeModules/FindGDAL.cmake: 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 * src/osgPlugins/gz/ReaderWriterGZ.cpp: 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 * src/osgPlugins/pvr/ReaderWriterPVR.cpp: 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 * include/osg/Texture, src/osg/Texture.cpp: From Fabien Lavingotte and Robert Osfield, Fixed handling of texture pool size when TextureObject::setAllocate(..) is called. 2010-11-04 15:24 robert * examples/osganimationsolid/osganimationsolid.cpp: 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 * src/osgPlugins/directshow/CMakeLists.txt, src/osgPlugins/directshow/DirectShowTexture.cpp: 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 * include/osgParticle/RandomRateCounter: 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 * src/osg/FrameBufferObject.cpp: From David Callu, fix in FrameBufferObject when using Texture2Darray and GeometryShader. 2010-11-04 11:02 robert * include/osg/Texture, src/osg/Image.cpp, src/osg/Texture.cpp, src/osgPlugins/CMakeLists.txt, src/osgPlugins/pvr, src/osgPlugins/pvr/CMakeLists.txt, src/osgPlugins/pvr/ReaderWriterPVR.cpp: 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 * src/osgPlugins/ffmpeg/CMakeLists.txt, src/osgPlugins/ffmpeg/FFmpegDecoder.cpp, src/osgPlugins/ffmpeg/FFmpegDecoder.hpp, src/osgPlugins/ffmpeg/FFmpegImageStream.cpp, src/osgPlugins/ffmpeg/FFmpegImageStream.hpp, src/osgPlugins/ffmpeg/FFmpegParameters.cpp, src/osgPlugins/ffmpeg/FFmpegParameters.hpp, src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp: 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 * include/osgDB/Options, src/osgDB/Options.cpp: 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 * include/osgViewer/ViewerEventHandlers, src/osgViewer/StatsHandler.cpp: 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 * src/osgViewer/StatsHandler.cpp: 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 * examples/osgautocapture/osgautocapture.cpp, src/osg/FragmentProgram.cpp, src/osg/GLExtensions.cpp, src/osg/Shader.cpp, src/osg/State.cpp, src/osg/Texture.cpp, src/osg/Texture2DArray.cpp, src/osg/Texture3D.cpp, src/osg/VertexProgram.cpp: 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 * src/osgPlugins/vrml/ReaderWriterVRML2.cpp: 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 * include/osgTerrain/Terrain, src/osgTerrain/GeometryTechnique.cpp, src/osgTerrain/Terrain.cpp: 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 * src/osg/BufferObject.cpp: 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 * src/osgPlugins/osg/ReaderWriterOSG2.cpp: Fixed function name 2010-11-02 11:19 robert * src/osgWrappers/deprecated-dotosg/osgParticle/IO_Particle.cpp: 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 * src/osg/ArgumentParser.cpp: 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 * include/osg/Geometry, src/osg/Geometry.cpp: 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 * src/osgPlugins/3ds/WriterNodeVisitor.cpp: From Sukender, fix for incorrect for loop test. 2010-11-01 13:57 robert * src/osg/Matrix_implementation.cpp: 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 * examples/osgvolume/osgvolume.cpp, include/osgDB/FileUtils, src/osgDB/FileUtils.cpp: 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 * include/osgDB/FileNameUtils, src/osgDB/FileNameUtils.cpp: From Jean-Sebastien Guay and Robert Osfield, cleaned up the way that unix/windows file separators are managed. 2010-11-01 10:31 robert * examples/osghud/CMakeLists.txt, include/osg/Shape: 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 * src/osgManipulator/Dragger.cpp: 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 * src/osgPlugins/tiff/CMakeLists.txt: 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 * examples/osganalysis/osganalysis.cpp: 2010-10-29 08:33 robert * src/osgViewer/CMakeLists.txt: 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 * src/osg/glu/libutil/error.cpp: Fixed warning 2010-10-28 15:52 robert * src/osg/Geometry.cpp: Commented out unused ElapsedTimer 2010-10-28 14:04 robert * src/osgWrappers/serializers/osg/Geometry.cpp, src/osgWrappers/serializers/osgTerrain/TerrainTile.cpp: 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 * include/osgDB/ObjectWrapper, src/osgDB/ObjectWrapper.cpp: 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 * include/osg/CopyOp, src/osg/Geometry.cpp: Added handling of vertex buffer objects into osg::Geometry copy constructor. 2010-10-28 14:01 robert * src/osgPlugins/ive/Geometry.cpp: Improved code style consistency 2010-10-28 14:00 robert * src/osgUtil/IncrementalCompileOperation.cpp: Quitened down debug messages 2010-10-27 13:49 robert * include/osgText/Text: Fixed getEnableDepthWrites() naming. 2010-10-26 14:59 robert * examples/osganalysis/osganalysis.cpp: 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 * examples/osganalysis/osganalysis.cpp, include/osgUtil/Statistics, src/osgUtil/IncrementalCompileOperation.cpp, src/osgViewer/Renderer.cpp, src/osgViewer/StatsHandler.cpp: Added number of primitive sets to on screen stats 2010-10-23 09:51 robert * examples/osganalysis/osganalysis.cpp: 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 * examples/osganalysis/osganalysis.cpp: Added StateSetManipulator usage 2010-10-22 16:35 robert * examples/osganalysis/osganalysis.cpp: Added support for enable VBO's and doing simplification. 2010-10-22 12:28 robert * examples/osganalysis/osganalysis.cpp: Cleaned up main loop, so it's more readable, seperating out the paging and non paging implementations 2010-10-22 12:19 robert * examples/osganalysis/osganalysis.cpp, include/osgUtil/IncrementalCompileOperation, src/osgUtil/IncrementalCompileOperation.cpp: Added paging support to osganalysis example 2010-10-21 16:29 robert * include/osg/Image, include/osgDB/DatabasePager, include/osgUtil/IncrementalCompileOperation, src/osg/Geometry.cpp, src/osg/Image.cpp, src/osgDB/DatabasePager.cpp, src/osgUtil/GLObjectsVisitor.cpp, src/osgUtil/IncrementalCompileOperation.cpp, src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp: Integrated IncementalCompileOperation into DatabasePager. Improved various facilities in IncrementalCompileOperation. 2010-10-21 16:28 robert * examples/CMakeLists.txt, examples/osganalysis, examples/osganalysis/CMakeLists.txt, examples/osganalysis/osganalysis.cpp: 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 * include/osgDB/DatabasePager, include/osgDB/SharedStateManager, include/osgUtil/IncrementalCompileOperation, src/osgDB/CMakeLists.txt, src/osgDB/DatabasePager.cpp, src/osgDB/SharedStateManager.cpp, src/osgViewer/View.cpp, src/osgViewer/Viewer.cpp, src/osgViewer/ViewerBase.cpp: Introduction of IncrementalCompileOperation support to DatabasePager. 2010-10-14 13:35 robert * include/osg/Texture2D, src/osg/Texture2D.cpp: Introduced SubloadCallback::generatdTextureObject() method. 2010-10-14 12:20 robert * src/OpenThreads/qt/QtThreadPrivateData.h: From Wang Rui, warning fix. 2010-10-14 11:10 robert * include/osg/GLU, src/osg/glu/libtess/tess.h: From Brad Christiansen, fix function entry points under Windows to address crash 2010-10-14 09:31 robert * src/OpenThreads/CMakeLists.txt, src/OpenThreads/qt, src/OpenThreads/qt/CMakeLists.txt, src/OpenThreads/qt/QtBarrier.cpp, src/OpenThreads/qt/QtBarrierPrivateData.h, src/OpenThreads/qt/QtCondition.cpp, src/OpenThreads/qt/QtConditionPrivateData.h, src/OpenThreads/qt/QtMutex.cpp, src/OpenThreads/qt/QtMutexPrivateData.h, src/OpenThreads/qt/QtThread.cpp, src/OpenThreads/qt/QtThreadPrivateData.h: From Wang Rui, QT based OpenThreads implementation 2010-10-13 15:03 robert * include/osgUtil/IncrementalCompileOperation, src/osgUtil/IncrementalCompileOperation.cpp: 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 * src/osg/glu/libutil/mipmap.cpp: Changed the _ARB cube map defines to non ARB versions. 2010-10-09 11:27 robert * include/osg/TextureCubeMap: Removed redudent set up of GL_ cubemap defines as these are now also in include/osg/Texture 2010-10-08 18:53 robert * src/osgText/Text.cpp: Tempory fix for regression due to remove of glPushAttrib/glPopAttrib 2010-10-08 18:13 robert * examples/CMakeLists.txt: 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 * examples/CMakeLists.txt, examples/osgviewerQtContext/GraphicsWindowQt, src/osg/glu/libutil/error.cpp, src/osg/glu/libutil/mipmap.cpp, src/osgText/Text.cpp, src/osgWrappers/serializers/osgSim/OverlayNode.cpp: Build fixes for GLES1, GLES2 and GL3 2010-10-08 11:20 robert * include/osg/GLU, include/osg/Texture3D, src/osg/Texture3D.cpp, src/osg/glu/libutil/mipmap.cpp: Refactored the Texture3D extension setup in osg::Texture3D and gluBuild3DMipmaps and gluBuild3DMipmapLevels. 2010-10-07 11:53 robert * examples/osgphotoalbum/PhotoArchive.cpp, examples/osgtexture3D/osgtexture3D.cpp, include/osg/GLU, include/osgUtil/Tessellator, src/osg/Image.cpp, src/osg/glu/libtess/tess.cpp, src/osg/glu/libtess/tess.h, src/osg/glu/libutil/error.cpp, src/osg/glu/libutil/mipmap.cpp, src/osgPlugins/lwo/Tessellator.cpp, src/osgText/Glyph.cpp: Introduced osg namespace to new local GLU functions 2010-10-07 10:51 robert * examples/osgphotoalbum/PhotoArchive.cpp, include/osg/GLU, include/osg/Image, src/osg/Image.cpp, src/osg/Texture.cpp, src/osg/glu/libutil/mipmap.cpp: 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 * src/osg/glu/libutil/mipmap.cpp: Added #define GL_PROXY_TEXTURE_3D 2010-10-06 18:51 robert * src/osg/glu/libutil/mipmap.cpp: Fixed warning 2010-10-06 18:37 robert * src/osg/glu/libutil/mipmap.cpp: Changed tabs to 8 spaces 2010-10-06 18:34 robert * src/osg/glu/libutil/mipmap.cpp: From Jean-Sebastien Guay and Robert Osfield, build fix for Windows 2010-10-06 18:29 robert * include/osg/Texture3D: Added #define for Windows build 2010-10-06 17:19 robert * src/osg/glu/libtess/tess.h, src/osg/glu/libutil/mipmap.cpp: Added #define GLAPIENTRY to attempt to resolve some Windows build issues 2010-10-06 16:36 robert * include/osg/Image, src/osg/glu/libutil/error.cpp, src/osg/glu/libutil/mipmap.cpp: Added #define's and local include to fix Windows GL 1.1 build against 2010-10-06 16:29 robert * include/osg/GLU: From Jean-Sebasien Guay, fix windows compile error 2010-10-06 15:33 robert * src/osg/CMakeLists.txt: Removed gluois.h reference 2010-10-06 15:14 robert * src/osg/CMakeLists.txt, src/osg/glu/libtess/geom.cpp, src/osg/glu/libtess/gluos.h, src/osg/glu/libtess/mesh.cpp, src/osg/glu/libtess/normal.cpp, src/osg/glu/libtess/priorityq.cpp, src/osg/glu/libtess/render.cpp, src/osg/glu/libtess/sweep.cpp, src/osg/glu/libtess/tess.cpp, src/osg/glu/libtess/tessmono.cpp, src/osg/glu/libutil/error.cpp, src/osg/glu/libutil/glue.cpp, src/osg/glu/libutil/gluint.h, src/osg/glu/libutil/gluos.h, src/osg/glu/libutil/mipmap.cpp: Removed usage gluos.h and redundent gluint.h 2010-10-06 14:44 robert * CMakeLists.txt, CMakeModules/OsgMacroUtils.cmake, examples/CMakeLists.txt, include/osg/GLExtensions, include/osg/GLU, include/osgUtil/SceneGraphBuilder, include/osgUtil/Tessellator, src/osg/CMakeLists.txt, src/osg/Config.in, src/osg/GLExtensions.cpp, src/osg/Image.cpp, src/osg/State.cpp, src/osg/Texture.cpp, src/osg/Texture1D.cpp, src/osg/glu, src/osg/glu/libtess, src/osg/glu/libtess/README, src/osg/glu/libtess/alg-outline, src/osg/glu/libtess/dict-list.h, src/osg/glu/libtess/dict.cpp, src/osg/glu/libtess/dict.h, src/osg/glu/libtess/geom.cpp, src/osg/glu/libtess/geom.h, src/osg/glu/libtess/gluos.h, src/osg/glu/libtess/memalloc.cpp, src/osg/glu/libtess/memalloc.h, src/osg/glu/libtess/mesh.cpp, src/osg/glu/libtess/mesh.h, src/osg/glu/libtess/normal.cpp, src/osg/glu/libtess/normal.h, src/osg/glu/libtess/priorityq-heap.cpp, src/osg/glu/libtess/priorityq-heap.h, src/osg/glu/libtess/priorityq-sort.h, src/osg/glu/libtess/priorityq.cpp, src/osg/glu/libtess/priorityq.h, src/osg/glu/libtess/render.cpp, src/osg/glu/libtess/render.h, src/osg/glu/libtess/sweep.cpp, src/osg/glu/libtess/sweep.h, src/osg/glu/libtess/tess.cpp, src/osg/glu/libtess/tess.h, src/osg/glu/libtess/tessmono.cpp, src/osg/glu/libtess/tessmono.h, src/osg/glu/libutil, src/osg/glu/libutil/error.cpp, src/osg/glu/libutil/glue.cpp, src/osg/glu/libutil/gluint.h, src/osg/glu/libutil/gluos.h, src/osg/glu/libutil/mipmap.cpp, src/osgPlugins/CMakeLists.txt, src/osgText/Glyph.cpp, src/osgUtil/Tessellator.cpp: 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 * include/osgDB/DataTypes, include/osgDB/InputStream, include/osgDB/Serializer, src/osgDB/InputStream.cpp, src/osgDB/OutputStream.cpp: 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 * src/osg/Referenced.cpp: 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 * src/osgParticle/Particle.cpp: Added glMultMatrixf path for GLES1 2010-10-04 11:19 robert * examples/osgvolume/osgvolume.cpp: Added checks for NULL images to prevent crashes when no valid images are created 2010-10-01 18:02 robert * src/osgViewer/GraphicsWindowWin32.cpp: 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 * include/osgDB/Serializer: 2010-10-01 15:58 robert * src/osg/DisplaySettings.cpp: 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 * include/osgDB/DatabasePager, src/osgDB/DatabasePager.cpp: 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 * examples/osgvirtualprogram/VirtualProgram.h, include/osg/BlendColor, include/osg/BlendEquation, include/osg/BlendFunc, include/osg/ClampColor, include/osg/ClipPlane, include/osg/ColorMask, include/osg/ColorMatrix, include/osg/CullFace, include/osg/Depth, include/osg/Fog, include/osg/FragmentProgram, include/osg/FrontFace, include/osg/Hint, include/osg/Light, include/osg/LightModel, include/osg/LogicOp, include/osg/Multisample, include/osg/Point, include/osg/Scissor, include/osg/Stencil, include/osg/TexEnvFilter, include/osg/VertexProgram, include/osg/Viewport, include/osgFX/Validator, src/osg/PointSprite.cpp, src/osg/PolygonStipple.cpp, src/osg/Program.cpp, src/osg/StencilTwoSided.cpp, src/osg/Texture1D.cpp, src/osg/Texture2D.cpp, src/osg/Texture2DArray.cpp, src/osg/Texture2DMultisample.cpp, src/osg/Texture3D.cpp, src/osg/TextureCubeMap.cpp, src/osg/TextureRectangle.cpp, src/osgPlugins/cfg/VisualChooser.cpp: 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 * src/osgPlugins/ive/Image.cpp: 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 * include/osgDB/Serializer: 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 * include/osg/DisplaySettings, include/osg/GraphicsContext, src/osg/DisplaySettings.cpp, src/osg/GraphicsContext.cpp: From WojciechLewandowski, Added DispaySettings::SwapMethod and support for it in GraphicsContext::Traits 2010-09-30 09:40 robert * src/osgPlugins/QTKit/ReaderWriterQTKit.mm: From Stephan Huber, fixed build under OSX 10.5. 2010-09-30 09:34 robert * include/osgDB/XmlParser, src/osgDB/XmlParser.cpp, src/osgPlugins/osg/XmlStreamOperator.h: 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 * src/osgText/Text3D.cpp: Fixed Text3D's handling of character aspect ratio. 2010-09-29 12:45 robert * examples/osgtext3D/osgtext3D_orig.cpp, include/osgText/Text3D, include/osgText/TextBase, src/osgText/Text.cpp, src/osgText/Text3D.cpp, src/osgText/TextBase.cpp: Moved handling of character aspect ratio into osgText::Style. 2010-09-29 12:38 robert * examples/osgtext/osgtext.cpp: Added command line option for writing out the scene graph to file. 2010-09-29 11:34 robert * include/osgText/Text, include/osgText/Text3D, include/osgText/TextBase, src/osgText/Text.cpp, src/osgText/Text3D.cpp, src/osgText/TextBase.cpp, src/osgWrappers/deprecated-dotosg/osgText/IO_Text.cpp, src/osgWrappers/deprecated-dotosg/osgText/IO_Text3D.cpp, src/osgWrappers/deprecated-dotosg/osgText/IO_TextBase.cpp, src/osgWrappers/serializers/osgText/Text.cpp, src/osgWrappers/serializers/osgText/Text3D.cpp, src/osgWrappers/serializers/osgText/TextBase.cpp: Moved set/getFont from Text/Text3D into TextBase 2010-09-29 11:09 robert * include/osgText/Font, src/osgPlugins/freetype/FreeTypeFont.cpp, src/osgPlugins/freetype/FreeTypeFont.h, src/osgText/Text3D.cpp, src/osgText/TextNode.cpp: Removed getScale() parameter from osgText::Font 2010-09-29 10:54 robert * src/osg/CullSettings.cpp: Fixed type of numberical constant 2010-09-27 17:11 robert * include/osgText/Text3D, src/osgText/Glyph.cpp, src/osgText/GlyphGeometry.cpp, src/osgText/Text3D.cpp: 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 * examples/osgtext3D/osgtext3D_orig.cpp, include/osgText/Glyph, include/osgText/Text3D, src/osgPlugins/freetype/FreeTypeFont.cpp, src/osgText/Glyph.cpp, src/osgText/GlyphGeometry.cpp, src/osgText/GlyphGeometry.h, src/osgText/Text3D.cpp: 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 * src/osgPresentation/SlideShowConstructor.cpp: 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 * include/osgText/Glyph: Added include to fix compile error 2010-09-24 14:53 robert * include/osg/AlphaFunc, include/osg/AnimationPath, include/osg/ArgumentParser, include/osg/TexEnv, include/osg/TexEnvFilter, include/osg/TexGen, include/osg/TexGenNode, include/osg/TexMat, include/osg/Texture, include/osg/Texture1D, include/osg/Texture2D, include/osg/Texture2DArray, include/osg/Texture3D, include/osg/TextureCubeMap, include/osg/Timer, include/osg/TransferFunction, include/osg/Vec2f, include/osg/Vec3s, include/osg/VertexProgram, include/osg/Viewport: From Alexander Wiebel, "I did some spell checking in my spare time. Here come 20 files." 2010-09-24 14:40 robert * include/osg/GLObjects: 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 * CMakeLists.txt, include/osg/Version, include/osg/io_utils: 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 * CMakeLists.txt, CMakeModules/FindCoreVideo.cmake, CMakeModules/FindQTKit.cmake, src/osgDB/Registry.cpp, src/osgPlugins/CMakeLists.txt, src/osgPlugins/QTKit, src/osgPlugins/QTKit/CMakeLists.txt, src/osgPlugins/QTKit/ReaderWriterQTKit.mm: From Eric Wing, QTKit plugin for reading movies under OSX using QTKit + CoreVideo 2010-09-24 12:57 robert * include/osgText/Font, include/osgText/Glyph, include/osgText/Style, include/osgText/TextNode, src/osgText/CMakeLists.txt, src/osgText/Glyph.cpp, src/osgText/Style.cpp, src/osgText/TextNode.cpp: 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 * include/osgDB/InputStream, include/osgDB/OutputStream, src/osgDB/InputStream.cpp, src/osgDB/OutputStream.cpp: 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 * include/osgText/Font3D: Added deprecated notices. 2010-09-21 11:40 robert * AUTHORS.txt, ChangeLog: Updated ChangeLog and AUTHORS file for release 2010-09-21 10:28 robert * include/osgViewer/api/Cocoa/GraphicsWindowCocoa, src/osgViewer/GraphicsWindowCocoa.mm: 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 * src/osgPlugins/imageio/ReaderWriterImageIO.cpp: 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 * examples/osgparticleshader/osgparticleshader.cpp, include/osgParticle/ParticleProcessor, include/osgParticle/ParticleSystemUpdater, src/osgParticle/ParticleProcessor.cpp, src/osgParticle/ParticleSystemUpdater.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_ParticleSystemUpdater.cpp, src/osgWrappers/serializers/osgParticle/ParticleSystemUpdater.cpp: From Wang Rui, reverted changes to osgPartcile that caused problems with osgparticleeffects. 2010-09-20 11:02 robert * src/osgPlugins/3ds/WriterNodeVisitor.cpp: 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 * CMakeModules/FindCOLLADA.cmake: 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 * include/osgParticle/RandomRateCounter: 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 * AUTHORS.txt, ChangeLog, applications/osgversion/Contributors.cpp: Updated ChangeLog, AUTHORS for 2.9.9 dev release 2010-09-17 13:33 robert * examples/osgtext3D/osgtext3D.cpp, examples/osgtext3D/osgtext3D_test.cpp, src/osgPlugins/pov/POVWriterNodeVisitor.cpp, src/osgText/GlyphGeometry.cpp, src/osgText/Text3D.cpp: Build fixes for when OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION is disabled 2010-09-17 13:09 robert * include/osgViewer/api/Win32/GraphicsWindowWin32, src/osgViewer/GraphicsWindowWin32.cpp: 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 * examples/osgoutline/osgoutline.cpp: 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 * src/osgPlugins/quicktime/QTLiveUtils.cpp, src/osgPlugins/quicktime/QuicktimeLiveImageStream.cpp: From Magnus Kessler, "Changes to the quicktime plugin to remove unused variables and an unused static function." 2010-09-16 10:33 robert * include/osg/Vec2b, include/osg/Vec2d, include/osg/Vec2f, include/osg/Vec2s, include/osg/Vec3b, include/osg/Vec3d, include/osg/Vec3f, include/osg/Vec3s, include/osg/Vec4b, include/osg/Vec4d, include/osg/Vec4f, include/osg/Vec4s, include/osg/Vec4ub: 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 * include/osg/Camera, include/osgGA/DriveManipulator: 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 * include/osgText/Text, src/osgText/Text.cpp: 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 * src/osgDB/OutputStream.cpp: 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 * src/osgPlugins/dxf/dxfEntity.cpp: From Paul de Repentigny, Commented out section of code that didn't work properly 2010-09-15 13:04 robert * examples/osgparticleshader/osgparticleshader.cpp: Fixed warning 2010-09-15 12:50 robert * applications/present3D/present3D.cpp: From Magnus Kessler, "Fix a small typo in present3D usage string" 2010-09-15 12:00 robert * CMakeLists.txt, examples/osggeometry/osggeometry.cpp, examples/osgoccluder/osgoccluder.cpp, include/osg/Camera, include/osg/CameraView, include/osg/GraphicsContext, include/osg/OccluderNode, include/osg/Referenced, include/osg/observer_ptr, include/osgDB/ReaderWriter, include/osgViewer/CompositeViewer, include/osgWidget/Browser: 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 * src/osgPlugins/txp/TXPPagedLOD.cpp: 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 * src/osgDB/SharedStateManager.cpp: 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 * include/osg/OcclusionQueryNode, src/osg/OcclusionQueryNode.cpp: 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 * src/osgPlugins/3ds/WriterNodeVisitor.cpp, src/osgPlugins/3ds/WriterNodeVisitor.h: 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 * src/osgFX/Outline.cpp: 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 * src/osgDB/Registry.cpp, src/osgPlugins/curl/ReaderWriterCURL.cpp: 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 * include/osg/Stencil, include/osg/StencilTwoSided, src/osg/Stencil.cpp, src/osg/StencilTwoSided.cpp: 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 * include/osgParticle/BoxPlacer, include/osgParticle/CompositePlacer, include/osgParticle/MultiSegmentPlacer, include/osgParticle/Particle, include/osgParticle/Placer, include/osgParticle/SectorPlacer, include/osgParticle/SegmentPlacer, src/osgParticle/Particle.cpp, src/osgParticle/ParticleSystem.cpp: 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 * examples/CMakeLists.txt, examples/osgparticleshader, examples/osgparticleshader/CMakeLists.txt, examples/osgparticleshader/osgparticleshader.cpp, include/osgParticle/AngularDampingOperator, include/osgParticle/BounceOperator, include/osgParticle/BoxPlacer, include/osgParticle/CompositePlacer, include/osgParticle/DampingOperator, include/osgParticle/DomainOperator, include/osgParticle/ExplosionOperator, include/osgParticle/MultiSegmentPlacer, include/osgParticle/Operator, include/osgParticle/OrbitOperator, include/osgParticle/Particle, include/osgParticle/ParticleProcessor, include/osgParticle/ParticleSystem, include/osgParticle/ParticleSystemUpdater, include/osgParticle/Placer, include/osgParticle/SectorPlacer, include/osgParticle/SegmentPlacer, include/osgParticle/SinkOperator, src/osgParticle/BounceOperator.cpp, src/osgParticle/CMakeLists.txt, src/osgParticle/DomainOperator.cpp, src/osgParticle/ModularProgram.cpp, src/osgParticle/Particle.cpp, src/osgParticle/ParticleProcessor.cpp, src/osgParticle/ParticleSystem.cpp, src/osgParticle/ParticleSystemUpdater.cpp, src/osgParticle/SinkOperator.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_AngularDampingOperator.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_BounceOperator.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_DampingOperator.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_DomainOperator.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_ExplosionOperator.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_OrbitOperator.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_Particle.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_ParticleSystem.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_ParticleSystemUpdater.cpp, src/osgWrappers/deprecated-dotosg/osgParticle/IO_SinkOperator.cpp, src/osgWrappers/serializers/osgParticle/AngularDampingOperator.cpp, src/osgWrappers/serializers/osgParticle/BounceOperator.cpp, src/osgWrappers/serializers/osgParticle/DampingOperator.cpp, src/osgWrappers/serializers/osgParticle/DomainOperator.cpp, src/osgWrappers/serializers/osgParticle/ExplosionOperator.cpp, src/osgWrappers/serializers/osgParticle/OrbitOperator.cpp, src/osgWrappers/serializers/osgParticle/Particle.cpp, src/osgWrappers/serializers/osgParticle/ParticleSystem.cpp, src/osgWrappers/serializers/osgParticle/ParticleSystemUpdater.cpp, src/osgWrappers/serializers/osgParticle/SinkOperator.cpp: 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 * include/osg/Texture, src/osg/Image.cpp, src/osg/Texture.cpp, src/osg/Texture1D.cpp, src/osg/Texture2D.cpp, src/osg/Texture2DArray.cpp, src/osg/Texture3D.cpp, src/osg/TextureCubeMap.cpp, src/osg/TextureRectangle.cpp: 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 * include/osg/Image: 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 * include/osgDB/DataTypes, include/osgWidget/Input, src/osgPlugins/osg/BinaryStreamOperator.h, src/osgWidget/Input.cpp, src/osgWidget/WindowManager.cpp: 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 * CMakeModules/FindCOLLADA.cmake, include/osgViewer/api/Win32/GraphicsWindowWin32, src/osgViewer/GraphicsWindowWin32.cpp: 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 * src/osgPlugins/dxf/dxfEntity.cpp: 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 * src/osgPlugins/ogr/ReaderWriterOGR.cpp: 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 * src/osgPlugins/x/mesh.cpp: 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 * include/osgUtil/Statistics, src/osgUtil/RenderBin.cpp, src/osgUtil/Statistics.cpp, src/osgViewer/Renderer.cpp, src/osgViewer/StatsHandler.cpp: 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 * examples/osgQtWidgets/osgQtWidgets.cpp, include/osgViewer/ViewerEventHandlers, src/osgViewer/ViewerEventHandlers.cpp: 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 * src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp: Added version check for av_lockmgr_register support. 2010-09-09 08:47 robert * src/osgUtil/IntersectionVisitor.cpp: 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 * src/osgPlugins/freetype/FreeTypeFont.cpp, src/osgText/Font.cpp, src/osgText/Glyph.cpp, src/osgText/Text3D.cpp, src/osgUtil/SmoothingVisitor.cpp: Cleaned up debug info, and changed Text3D across to using GL_NORMALIZE instead of GL_RESCALE_NORMAL. 2010-09-08 10:46 robert * src/osgUtil/SmoothingVisitor.cpp: Added support for honouring PrimitiveSet names in new smoothing algorithm 2010-09-08 08:09 robert * include/osgText/TextNode, src/osgText/CMakeLists.txt: From Jean-Sebastien Guay, build fixes for Windows 2010-09-07 19:55 robert * examples/osgtext3D/CMakeLists.txt, examples/osgtext3D/GlyphGeometry.cpp, examples/osgtext3D/GlyphGeometry.h, examples/osgtext3D/TextNode.cpp, examples/osgtext3D/TextNode.h: Removed files that have been moved into osgText. 2010-09-07 18:20 robert * include/osgText/Glyph, src/osgText/Glyph.cpp: Moved Glyph and Glyph3D out of Font header/source file into their own header/source file. 2010-09-07 18:18 robert * examples/osgtext3D/CMakeLists.txt, examples/osgtext3D/GlyphGeometry.cpp, examples/osgtext3D/GlyphGeometry.h, examples/osgtext3D/TextNode.cpp, examples/osgtext3D/osgtext3D.cpp, include/osgText/Font, include/osgText/TextNode, src/osgPlugins/freetype/FreeTypeFont.cpp, src/osgPlugins/txf/TXFFont.cpp, src/osgQt/QFontImplementation.cpp, src/osgText/CMakeLists.txt, src/osgText/DefaultFont.cpp, src/osgText/Font.cpp, src/osgText/GlyphGeometry.cpp, src/osgText/GlyphGeometry.h, src/osgText/TextNode.cpp: 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 * examples/osgtext3D/GlyphGeometry.cpp, examples/osgtext3D/GlyphGeometry.h, examples/osgtext3D/TextNode.cpp, examples/osgtext3D/osgtext3D.cpp, include/osgText/Text3D, src/osgPlugins/freetype/FreeTypeFont.cpp, src/osgPlugins/freetype/FreeTypeFont.h, src/osgText/Font.cpp, src/osgText/Text3D.cpp, src/osgWrappers/serializers/osgText/Text3D.cpp: Further work on new 3D text support 2010-09-03 15:03 robert * examples/osgtext3D/TextNode.cpp, examples/osgtext3D/TextNode.h, examples/osgtext3D/osgtext3D.cpp: Added basic wiring up of TextTechnique to 3D glyph code 2010-09-03 09:10 robert * src/osgPlugins/freetype/CMakeLists.txt, src/osgPlugins/freetype/FreeTypeFont3D.cpp, src/osgPlugins/freetype/FreeTypeFont3D.h, src/osgText/Font3D.cpp: Removed now redundent Font3D files 2010-09-03 09:08 robert * include/osgQt/QFontImplementation, include/osgText/Font, include/osgText/Font3D, include/osgText/Text3D, src/osgPlugins/freetype/CMakeLists.txt, src/osgPlugins/freetype/FreeTypeFont.cpp, src/osgPlugins/freetype/FreeTypeFont.h, src/osgPlugins/freetype/FreeTypeLibrary.cpp, src/osgPlugins/freetype/FreeTypeLibrary.h, src/osgPlugins/freetype/ReaderWriterFreeType.cpp, src/osgPlugins/txf/TXFFont.cpp, src/osgPlugins/txf/TXFFont.h, src/osgQt/QFontImplementation.cpp, src/osgText/CMakeLists.txt, src/osgText/DefaultFont.cpp, src/osgText/DefaultFont.h, src/osgText/Font.cpp, src/osgText/Font3D.cpp, src/osgText/Text.cpp, src/osgText/Text3D.cpp: Refactored to use a typedef of Font to Font3D rather than have a separate Font3D class 2010-09-03 08:26 robert * examples/osgtext3D/CMakeLists.txt, examples/osgtext3D/GlyphGeometry.cpp, examples/osgtext3D/GlyphGeometry.h, examples/osgtext3D/TextNode.cpp, examples/osgtext3D/TextNode.h, examples/osgtext3D/osgtext3D.cpp, include/osgQt/QFontImplementation, include/osgText/Font, include/osgText/Font3D, include/osgText/Text, include/osgText/Text3D, src/osgPlugins/freetype/FreeTypeFont.cpp, src/osgPlugins/freetype/FreeTypeFont.h, src/osgPlugins/freetype/FreeTypeFont3D.cpp, src/osgPlugins/freetype/FreeTypeFont3D.h, src/osgPlugins/txf/TXFFont.cpp, src/osgPlugins/txf/TXFFont.h, src/osgQt/QFontImplementation.cpp, src/osgText/DefaultFont.cpp, src/osgText/DefaultFont.h, src/osgText/Font.cpp, src/osgText/Font3D.cpp, src/osgText/Text.cpp, src/osgText/Text3D.cpp, src/osgText/TextBase.cpp, src/osgWidget/Input.cpp: 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 * src/osg/Texture.cpp: Added to Text::resizeGLObjectBuffers(uint) the follow: _textureObjectBuffer.resize(maxSize); _texParametersDirtyList.resize(maxSize); 2010-08-25 16:59 robert * src/osgUtil/SmoothingVisitor.cpp: Implemented a greedy triangle associate technique to minimize the number of duplicate vertices required to produce crease angles. 2010-08-25 14:34 robert * examples/osgtext3D/osgtext3D.cpp: Changed --flat to --flat-shaded to avoid conflict with oiginal --flat ratio control. 2010-08-25 11:07 robert * examples/osgtext3D/osgtext3D.cpp: 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 * include/osgText/Font3D, src/osgPlugins/freetype/FreeTypeFont3D.cpp, src/osgPlugins/freetype/FreeTypeFont3D.h, src/osgText/Font3D.cpp: 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 * examples/osgtext3D/GlyphGeometry.cpp, examples/osgtext3D/osgtext3D.cpp: Implemented the shell geometry code 2010-08-24 16:06 robert * src/osgUtil/RenderBin.cpp: Added "SORT_BACK_TO_FRONT" and "SORT_FRONT_TO_BACK" RenderBin's to default prototype list 2010-08-24 14:22 robert * examples/osgtext3D/CMakeLists.txt, examples/osgtext3D/GlyphGeometry.cpp, examples/osgtext3D/GlyphGeometry.h, examples/osgtext3D/osgtext3D.cpp: Refactored 3d text geometry creation code so that the text is all placed in one osg::Geometry. 2010-08-20 10:24 robert * src/osgUtil/SmoothingVisitor.cpp: Fixed bug in handling large osg::Geometry. 2010-08-19 16:24 robert * examples/osgtext3D/osgtext3D.cpp: Implemented generation of front, back and bevel geometries to complete the 3d glyphs. 2010-08-18 11:14 robert * src/osgUtil/SmoothingVisitor.cpp: Improved the detection of problem vetices and associated triangles 2010-08-17 19:48 robert * src/osgUtil/Tessellator.cpp: Fixed indentation 2010-08-17 19:48 robert * src/osgUtil/SmoothingVisitor.cpp: Implemented basic duplication of points that sit on sharp edges. 2010-08-17 13:25 mplatings * src/osgPlugins/fbx/WriterNodeVisitor.cpp, src/osgPlugins/fbx/fbxRMesh.cpp: 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 * src/osgWrappers/deprecated-dotosg/osg/Texture.cpp: Added support for RGTC1 and RGTC2 enums 2010-08-16 15:02 robert * src/osg/ClipNode.cpp, src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp, src/osgText/Text.cpp: 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 * src/osgPlugins/3ds/ReaderWriter3DS.cpp: 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 * src/osgPlugins/tga/ReaderWriterTGA.cpp: 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 * src/osgPlugins/obj/ReaderWriterOBJ.cpp: Added material setName. 2010-08-16 14:14 robert * src/osgWrappers/serializers/osg/Texture.cpp: Added support for USE_RGBT1_COMPRESSION and USE_RGBT2_COMPRESSION 2010-08-16 14:11 robert * include/osg/Texture, src/osg/Image.cpp, src/osg/Texture.cpp, src/osgPlugins/dds/ReaderWriterDDS.cpp: 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 * include/osgGA/FirstPersonManipulator, include/osgGA/OrbitManipulator, include/osgGA/StandardManipulator, src/osgGA/FirstPersonManipulator.cpp, src/osgGA/OrbitManipulator.cpp, src/osgGA/StandardManipulator.cpp, src/osgGA/TerrainManipulator.cpp: Changed setTransformation(eye, center, up) paramter ordering to match gluLookAt conventions. 2010-08-16 10:11 robert * src/osgParticle/Particle.cpp: 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 * include/osg/PrimitiveSet: From Alexander Wiebel, "Documentation of PrimitiveSet" 2010-08-09 17:02 robert * include/osg/ImageStream, src/osgPlugins/ffmpeg/FFmpegDecoder.hpp, src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp, src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp, src/osgPlugins/ffmpeg/FFmpegImageStream.cpp, src/osgPlugins/ffmpeg/FFmpegImageStream.hpp, src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp: 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 * include/osgDB/DatabasePager, src/osgDB/DatabasePager.cpp: 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 * include/osgUtil/DelaunayTriangulator: Cleaned up the inline methods 2010-08-08 15:45 robert * src/osgViewer/GraphicsWindowCocoa.mm: 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 * include/osg/observer_ptr: Removed the erroneous subclassing from osg::Observer 2010-08-08 15:34 robert * src/osg/Program.cpp: 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 * src/osg/Texture.cpp: 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 * src/osgAnimation/RigTransformHardware.cpp: From Rob Smith, makes hardware skinning use of the existing stateset 2010-07-31 10:33 robert * src/osgPlugins/CMakeLists.txt, src/osgPlugins/pov, src/osgPlugins/pov/CMakeLists.txt, src/osgPlugins/pov/POVWriterNodeVisitor.cpp, src/osgPlugins/pov/POVWriterNodeVisitor.h, src/osgPlugins/pov/ReaderWriterPOV.cpp, src/osgPlugins/pov/ReaderWriterPOV.h: 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 * include/osg/Observer: 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 * src/osg/TextureRectangle.cpp: 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 * src/osgPlugins/dae/daeRMaterials.cpp: 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 * src/osgTerrain/Terrain.cpp: 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 * src/osgPlugins/txp/TXPParser.h: Fixed build 2010-07-31 09:04 robert * src/osgPlugins/txp/TXPParser.h: 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 * src/osgPlugins/txp/TXPParser.h: From Ryan Kawicki, fixed indentation 2010-07-31 08:57 robert * CMakeModules/ModuleInstall.cmake, src/OpenThreads/pthreads/CMakeLists.txt: 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 * src/osgUtil/SmoothingVisitor.cpp: Added output of triangles at problem vertices 2010-07-30 19:39 robert * examples/osgtext3D/osgtext3D.cpp, include/osgUtil/SmoothingVisitor, src/osgUtil/SmoothingVisitor.cpp: 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 * include/osgParticle/Emitter, include/osgParticle/ModularEmitter, src/osgParticle/ModularEmitter.cpp: Changed emit() to emitParticles() to avoid collision with Qt. 2010-07-29 16:09 robert * src/osgPlugins/osg/AsciiStreamOperator.h, src/osgPlugins/osg/ReaderWriterOSG2.cpp: From Wang Rui, fixes to handling of indentation. 2010-07-26 11:12 robert * examples/osgtext3D/osgtext3D.cpp: Added bevel geometry 2010-07-26 11:06 robert * examples/osgtext3D/osgtext3D.cpp: Clean up boudnary code 2010-07-26 08:41 robert * src/osgWrappers/serializers/osgTerrain/TerrainTile.cpp: Added a os<