From f0251bd3dad52f04f95ae2e06bc815074af112be Mon Sep 17 00:00:00 2001 From: Robert OSFIELD Date: Fri, 9 Oct 2015 08:44:45 +0000 Subject: [PATCH] updated ChangeLog git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15151 16af8721-9629-0410-8352-f15c8da7e697 --- ChangeLog | 564 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 564 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3b189133cef..c148463bc73 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,567 @@ +2015-10-08 15:58 robert + + * src/osg/GraphicsContext.cpp: Added osg::flushAllDeletedGLObjects + to clean up of graphics context after the existing + osg::deleteAllGLObjects() to catch any cases where delete doesn't + flush GL objects. + +2015-10-05 10:58 robert + + * src/osgDB/DatabasePager.cpp, src/osgDB/Registry.cpp, + src/osgViewer/ViewerBase.cpp: Introduced usage of + OSG_INIT_SINGLETON_PROXY into DatabasePager::prototype() and + Registry::instance(), removing the InitRegistry proxy object in + src/osgViewer/ViewerBase.cpp. + +2015-09-25 15:20 robert + + * include/osg/BoundingSphere: From Kristofer Tingdahl, "we had a + minor shadow problem with the osg-3.4 that pollutes our + continuous integration" + +2015-09-25 11:15 robert + + * src/osgViewer/Renderer.cpp: Added fix for case when Renderer is + assigned to a Camera that has now View + +2015-09-25 10:11 robert + + * src/OpenThreads/pthreads/PThread.cpp: From Curtis Rubel, "I would + like to submit the attached file for inclusion in future releases + of + OpenSceneGraph and the OpenThreads library. + + The changes in the file simply remove a few ifndef's that + currently + do not allow Linux systems to fully utilize the PThread real-time + scheduling API. + + Since Linux now fully supports the PThread scheduling API it + would + be beneficial to have it available to use as necessary. I have + been testing this change since OSG release 3.3.7 and have not + seen + any ill affects. + + The Priority scheduling api is further protected by another + ifdef: + + #ifdef ALLOW_PRIORITY_SCHEDULING + + that only appears to be defined in the pthreads implementation as + well. This would make it unlikely that anyone would be affected + by this unless they are intentionally wanting to run with + priority + scheduling. In which case on Linux they would need to make + these same modifications themselves to utilize it to its full + extent. + + Attached file is for the current trunk as of this date. + " + +2015-09-25 10:09 robert + + * include/osgUtil/SceneView, src/osgViewer/Renderer.cpp: Refactored + the way that FrameStamp is managed in osgViewer::Renderer to + avoid thread conflicts + +2015-09-24 14:14 robert + + * src/osgWrappers/deprecated-dotosg/osg/LibraryWrapper.cpp, + src/osgWrappers/deprecated-dotosg/osg/Texture2DArray.cpp: From + John Hedström,"Texture2DArray support for the .osg serializer" + +2015-09-24 10:52 robert + + * include/osg/Camera, src/osgWrappers/serializers/osg/Camera.cpp: + Added support for serializing + Camera::ImplicitBufferAttachmentRenderMask and + ImplicitBufferAttachmentResolveMask properties. + +2015-09-24 10:48 robert + + * src/osg/Drawable.cpp: Quietened down debug messages + +2015-09-24 09:29 robert + + * src/osgWrappers/serializers/osg/Camera.cpp: Fixed line endings. + +2015-09-23 10:41 robert + + * include/osg/ContextData: Added missing OSG_EXPORT to fix Windows + build + +2015-09-23 09:47 robert + + * examples/osganalysis/osganalysis.cpp, + examples/osgfpdepth/osgfpdepth.cpp, include/osg/BufferObject, + include/osg/ContextData, include/osg/Drawable, + include/osg/FragmentProgram, include/osg/FrameBufferObject, + include/osg/GLObjects, include/osg/Program, include/osg/Shader, + include/osg/State, include/osg/Texture, + include/osg/VertexProgram, src/CMakeLists.txt, + src/osg/BufferObject.cpp, src/osg/CMakeLists.txt, + src/osg/ContextData.cpp, src/osg/Drawable.cpp, + src/osg/FragmentProgram.cpp, src/osg/FrameBufferObject.cpp, + src/osg/GLObjects.cpp, src/osg/GraphicsContext.cpp, + src/osg/OcclusionQueryNode.cpp, src/osg/Program.cpp, + src/osg/Shader.cpp, src/osg/State.cpp, src/osg/Texture.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/osg/VertexProgram.cpp, + src/osgUtil/RenderStage.cpp, src/osgUtil/SceneView.cpp: + Refactored the GL object deletion management to use new + osg::GraphicsObjectManager/GLObjectManager base classes, and + osg::ContextData container. + + This approach unifies much of the code handling the clean up of + OpenGL graphics data, avoids lots of local mutexes and static + variables that were previously required, + and enables the clean up scheme to be easily extended by users + providing their own GraphicsObjectManager subclasses. + +2015-09-04 15:35 robert + + * src/osg/Geometry.cpp: From Jannik Heller, "I've hit what I + believe to be a bug (or at the very least, an unintuitive + behaviour) in the osg::Geometry copy constructor. I noticed it + when using osg::clone on a Geometry with vertex buffer objects, + and the copy flags DEEP_COPY_ARRAYS. To be precise, I add a + Geometry to an osgUtil::IncrementalCompileOperation, then + osg::clone the Geometry. I was getting reports from users of + random crashes happening. + + I believe the offending lines are in the osg::Geometry copy + constructor: + + if ((copyop.getCopyFlags() & osg::CopyOp::DEEP_COPY_ARRAYS)) + { + if (_useVertexBufferObjects) + { + // copying of arrays doesn't set up buffer objects so we'll need + to force + // Geometry to assign these, we'll do this by switching off VBO's + then renabling them. + setUseVertexBufferObjects(false); + setUseVertexBufferObjects(true); + } + } + + Toggling the vertex buffer objects off then on again actually + touches not only the arrays controlled by DEEP_COPY_ARRAYS, but + also the PrimitiveSets which are controlled by + DEEP_COPY_PRIMITIVES. This means if the user has copyflags of + only DEEP_COPY_ARRAYS, we are modifying arrays that belong to the + original const Geometry& we are copying from. I believe this + shouldn't be allowed to happen because we are using a const& + specifier for the original Geometry. + + In my case the osgUtil::IncrementalCompileOperation was trying to + compile the geometry, while in the main thread a clone operation + toggled the VBO's off and on, a crash ensues. + + In the attached patch, you will find a more efficient handling of + VBO's in the osg::Geometry copy constructor, so that only the + Arrays that were actually deep copied have their VBO assigned, + and no changes are made to Arrays that already had a valid VBO + assigned. In addition, the DEEP_COPY_PRIMITIVES flag is now + honored so that VBO's are set up correctly should a user copy a + Geometry with only that flag. + " + +2015-09-04 15:04 robert + + * include/osgDB/ImagePager: From Laurens Voerman, "I found that + using an ImageSequence with mode PAGE_AND_DISCARD_USED_IMAGES + triggers the (3) imageThreads to run and never stop, even when no + more work is to be done. This is due to a bug in the stop + condition currently setting the thread to stop and wait for a + signal only when no work needs to be done AND the databasepager + is paused. + It should stop and wait for a signal on either of those two. Due + to a few logical inversions it boils down to replacing || with && + + OLD _block->set((!_requestList.empty() || + !_pager->_databasePagerThreadPaused)); + NEW _block->set((!_requestList.empty() && + !_pager->_databasePagerThreadPaused));//release the threads to + run IF (work_to_be_done && not_paused) + + This bug is present since svn rev 8663 (just before 2.6.0 + release) + + + attached is a zip with the files: + + OpenSceneGraph\include\osgDB\ImagePager + + + + This file is valid for svn branch and stable 3.2 and 3.4 + branches 2.6 - 3.0 have the same bug, but other differences in + the file." + +2015-09-04 14:50 robert + + * applications/osgconv/osgconv.cpp: From Laurens Voerman, "I + crashed osgconv while compressing textures: + + osgconv --compressed-dxt1 cow.osg cow.ive + + due to different handling of the extentions in osg 3.4 and up. + + attached is a zip with the files: + + OpenSceneGraph\applications\osgconv\osgconv.cpp + + + + This file is valid for svn branch and stable3.4." + +2015-09-04 14:34 robert + + * src/osg/Geometry.cpp: From Julien Valentin, "Serializing custom + geometry i ran into a crash due to a + setVertexAttribArrayList(array) with array containing NULL + vertexAttrib. + I added a test in order to avoid it + + + Code: + void Geometry::setVertexAttribArrayList(const ArrayList& + arrayList) + { + _vertexAttribList = arrayList; + + dirtyDisplayList(); + + if (_useVertexBufferObjects) + { + for(ArrayList::iterator itr = _vertexAttribList.begin(); + itr != _vertexAttribList.end(); + ++itr) + { + if(itr->get())//ADDED + addVertexBufferObjectIfRequired(itr->get()); + } + } + } + " + + and + + "The bug i ran into is a crash reading osgt Geometry with null + vertexattribs. + The only thing i added is a not nul check on array passed to + setVertexAttribArrayList." + + --------------------This line, and those below, will be ignored-- + + M src/osg/Geometry.cpp + +2015-09-04 14:24 robert + + * CMakeLists.txt: Updated SO version for svn/trunk. + +2015-09-04 14:24 robert + + * include/osg/OperationThread: Fixed warning + +2015-09-04 14:23 robert + + * include/osgDB/OutputStream: Fixed warning by removing redundent + check + +2015-08-14 15:25 robert + + * include/osg/Texture2D, src/osg/Texture2D.cpp: Corrected the + Subload::generateTextureObject() return type to make it + consistent with Texture::generateTextureObject(..) + +2015-08-12 10:18 robert + + * src/osgVolume/Shaders/volume_frag.cpp, + src/osgVolume/Shaders/volume_iso_frag.cpp, + src/osgVolume/Shaders/volume_lit_frag.cpp, + src/osgVolume/Shaders/volume_lit_tf_frag.cpp, + src/osgVolume/Shaders/volume_mip_frag.cpp, + src/osgVolume/Shaders/volume_tf_frag.cpp, + src/osgVolume/Shaders/volume_tf_iso_frag.cpp, + src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Updated shaders + from OpenSceneGraph-Data with refactor of workaround to NVidia + driver bug + +2015-08-12 06:39 robert + + * CMakeLists.txt, README.txt: Added GL1 to the docs of the + GL_PROFILE string + Updated the date of the 3.4.0 release in the README. + +2015-08-11 20:06 robert + + * src/osgVolume/Shaders/volume_frag.cpp, + src/osgVolume/Shaders/volume_iso_frag.cpp, + src/osgVolume/Shaders/volume_lit_frag.cpp, + src/osgVolume/Shaders/volume_lit_tf_frag.cpp, + src/osgVolume/Shaders/volume_mip_frag.cpp, + src/osgVolume/Shaders/volume_tf_frag.cpp, + src/osgVolume/Shaders/volume_tf_iso_frag.cpp, + src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Refactored + workaround of NVidia nan lenght() bug. + +2015-08-11 08:43 robert + + * CMakeLists.txt, CMakeModules/FindAsio.cmake, + CMakeModules/FindLIBLAS.cmake, src/osgPlugins/CMakeLists.txt: + Moved FIND_PACKAGE(Boost) to within the individual Find scripts + that actually need it rather in the root CMakeLists.txt. + +2015-08-10 19:55 robert + + * src/osg/State.cpp: Removed spaces + +2015-08-10 19:40 robert + + * CMakeLists.txt: Fixed line endings + +2015-08-10 19:39 robert + + * src/osgVolume/Shaders/volume_frag.cpp, + src/osgVolume/Shaders/volume_iso_frag.cpp, + src/osgVolume/Shaders/volume_lit_frag.cpp, + src/osgVolume/Shaders/volume_lit_tf_frag.cpp, + src/osgVolume/Shaders/volume_mip_frag.cpp, + src/osgVolume/Shaders/volume_tf_frag.cpp, + src/osgVolume/Shaders/volume_tf_iso_frag.cpp, + src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Updated built-in + shaders from OpenSceneGraph-Data vesion that introduce + #pragma(tic) shaders that resolve the NVidia loop iteration bug. + +2015-08-10 19:18 robert + + * src/osg/Shader.cpp: Quietened down #pragma(tic) shader + composition messages + +2015-08-10 17:42 robert + + * include/osg/State, src/osg/State.cpp: Added support for injecting + GL_VENDOR strings into GLSL shaders via the new #pragma(tic) + shader composition + +2015-08-10 05:04 robert + + * include/osg/Types, src/osg/CMakeLists.txt: Build fix for VS and + installing Types + +2015-08-09 09:42 robert + + * src/osg/GL.in: Changed GLint64 and GLuint64 setup to use int64_t + and uint64_t resptectivly respectively to avoid issues with + compiling against Qt5 + +2015-08-09 09:07 robert + + * include/osgViewer/api/X11/PixelBufferX11, + src/osgViewer/PixelBufferX11.cpp: Added #ifdef guards around SGIX + specific parts to avoid build problems with GLES + +2015-08-08 08:49 robert + + * src/osgPlugins/zip/ZipArchive.cpp: From Glenn Waldron, fix error + in ZIP plugin handling of memory buffer + +2015-08-06 15:03 robert + + * src/osgText/Text.cpp: Added checks for the validity of chached + coordinate arrays. + +2015-08-06 10:09 robert + + * src/osgVolume/Shaders/volume_frag.cpp, + src/osgVolume/Shaders/volume_iso_frag.cpp, + src/osgVolume/Shaders/volume_lit_frag.cpp, + src/osgVolume/Shaders/volume_lit_tf_frag.cpp, + src/osgVolume/Shaders/volume_mip_frag.cpp, + src/osgVolume/Shaders/volume_tf_frag.cpp, + src/osgVolume/Shaders/volume_tf_iso_frag.cpp, + src/osgVolume/Shaders/volume_tf_mip_frag.cpp: Updated shaders + from OpenSceneGraph-Data. + +2015-08-03 19:14 robert + + * include/osgViewer/api/X11/PixelBufferX11, + src/osgViewer/PixelBufferX11.cpp: From Andy Skinner, "Someone was + using our code on a system that does not seem to have the SGIX + symbols used in osgViewer.cpp. + + + + I used osgSetGLExtensionsFuncPtr to remove the symbols. I don't + know how to test this path, but it did remove the symbols from + libosgViewer.so. I have also not been able yet to see if that was + sufficient for our customer. + + + + I did this by looking at other cases, and I tried to follow some + of the same practices in PixelBufferX11, like using _useSGIX in a + similar way to the previous _useGLX1_3." + +2015-07-31 13:46 robert + + * CMakeModules/OsgAndroidMacroUtils.cmake: From Terry Welsh, "I + downloaded the Android 3rdparty deps from here + http://www.openscenegraph.org/index.php/download-section/dependencies + but was not able to use them for a while. Attached are changes to + OsgAndroidMacroUtils.cmake that allow the deps to be found by + cmake. + + Specifically, all FIND_PATH commands require the + NO_CMAKE_FIND_ROOT_PATH option to actually find paths. This is + odd + because if you inspect CMAKE_FIND_ROOT_PATH it appears to be + empty. I + would expect it to have no effect at all. + + I also needed to remove quotes from this line in order for + headers to be found: + + set(FREETYPE_INCLUDE_DIRS "${FREETYPE_DIR}/include + ${FREETYPE_DIR}/include/freetype/config") + + Assuming this script worked in the past, it seems like cmake + behavior + may have changed at some point. I'm using cmake version + 2.8.12.2." + +2015-07-31 13:44 robert + + * src/osg/GLExtensions.cpp: From Jannik Heller, "Here is a patch + for the S3TC capability check. + + On a Intel HD graphics Linux system with Mesa 10.1.3, I found + that osg's Extensions::isTextureCompressionS3TCSupported() + returned false, even though S3TC compressed textures *are* in + fact working. I tested this by loading and rendering various + DXT1, DXT3 and DXT5 compressed textures in the OSG. + + "glxinfo | grep s3tc" gives: + GL_S3_s3tc + + Note, if I install the package "libtxc-dxtn-s2tc0", I get in + addition: + + glxinfo | grep s3tc + GL_EXT_texture_compression_s3tc + GL_S3_s3tc + + However, S3TC compressed textures worked correctly within the OSG + even without libtxc-dxtn-s2tc0 installed. + + I'm not sure what the differences between these extensions are, + but based on the description at + https://www.opengl.org/registry/specs/S3/s3tc.txt I would assume + that both will work for OSG's purposes. The attached patch + changes isTextureCompressionS3TCSupported() to accept either + extension." + +2015-07-31 10:59 robert + + * include/osgText/Text: Warning fix + +2015-07-31 10:54 robert + + * src/osg/Image.cpp, src/osgPlugins/3ds/ReaderWriter3DS.cpp, + src/osgPlugins/lua/LuaScriptEngine.cpp, + src/osgViewer/ViewerEventHandlers.cpp: From Kristofer Tingdahl, + warning fixes. + +2015-07-31 10:27 robert + + * src/osg/GL.in: Compile fix for Mingw. + +2015-07-23 15:46 robert + + * examples/osganalysis/osganalysis.cpp, + examples/osgcatch/osgcatch.cpp, + examples/osggraphicscost/osggraphicscost.cpp, + examples/osgmotionblur/osgmotionblur.cpp, + examples/osgshaderterrain/osgshaderterrain.cpp, + examples/osgtext/osgtext.cpp, + examples/osgthreadedterrain/osgthreadedterrain.cpp, + examples/osgvolume/osgvolume.cpp, include/osg/GraphicsThread, + include/osg/OperationThread, src/osg/GraphicsThread.cpp, + src/osg/OperationThread.cpp, src/osgUtil/GLObjectsVisitor.cpp, + src/osgUtil/IncrementalCompileOperation.cpp, + src/osgUtil/RenderStage.cpp, src/osgViewer/Renderer.cpp: Added + explicit initialization of osg::Referenced(true) to + osg::Operation subclasses as it uses virtual inhertiance from + osg::Referenced. + +2015-07-23 14:37 robert + + * include/osg/Types, include/osgViewer/ViewerBase: From Pjotr + Svetachov, buid fixes for VS2015. + +2015-07-23 14:31 robert + + * src/osgPlugins/osc/osc/OscOutboundPacketStream.cpp: Merged VS2013 + warning fixes from OSG-3.4 branch + +2015-07-23 11:11 robert + + * examples/osgSSBO/osgSSBO.cpp, examples/osgcluster/osgcluster.cpp, + examples/osggpucull/AggregateGeometryVisitor.h, + examples/osgoit/DepthPeeling.cpp, examples/osgoit/DepthPeeling.h, + examples/osgparticleeffects/osgparticleeffects.cpp, + examples/osgshadow/osgshadow.cpp, + examples/osgspotlight/osgspotlight.cpp, + examples/osgwidgetnotebook/osgwidgetnotebook.cpp, + src/osg/glu/libutil/mipmap.cpp, src/osgDB/ConvertBase64.cpp, + src/osgPlugins/3ds/WriterNodeVisitor.cpp, + src/osgPlugins/OpenFlight/FltExportVisitor.cpp, + src/osgPlugins/OpenFlight/LightSourcePaletteManager.cpp, + src/osgPlugins/OpenFlight/LightSourcePaletteManager.h, + src/osgPlugins/OpenFlight/PrimaryRecords.cpp, + src/osgPlugins/OpenFlight/expPrimaryRecords.cpp, + src/osgPlugins/freetype/FreeTypeLibrary.cpp, + src/osgPlugins/osc/OscReceivingDevice.cpp, + src/osgPlugins/osc/osc/OscHostEndianness.h, + src/osgPlugins/osga/OSGA_Archive.h, + src/osgShadow/ConvexPolyhedron.cpp, + src/osgShadow/DebugShadowMap.cpp, + src/osgShadow/OccluderGeometry.cpp, src/osgShadow/ShadowMap.cpp, + src/osgSim/SphereSegment.cpp, + src/osgUtil/DelaunayTriangulator.cpp, src/osgUtil/Optimizer.cpp, + src/osgUtil/SceneView.cpp, src/osgViewer/View.cpp, + src/osgWrappers/deprecated-dotosg/osg/NodeCallback.cpp: Warning + fixes for Clang-3.6 + +2015-07-23 09:23 robert + + * src/osgFX/BumpMapping.cpp, src/osgFX/Cartoon.cpp: Added missing + handling of lightnumber and associate lights + +2015-07-23 07:39 robert + + * src/osg/GL.in: Changed the GL_HEADER_HAS_GLINT64 and + GL_HEADER_HAS_GLUINT64 to use cmakedefine to improve handling of + when cmake doesn't find GLint64 and GLuint64. + +2015-07-22 17:01 robert + + * AUTHORS.txt, applications/osgversion/Contributors.cpp: Fixed + AUTHORS file + +2015-07-22 14:55 robert + + * applications/osgversion/Contributors.cpp: Fixed contributors list + +2015-07-22 14:52 robert + + * ChangeLog: Updated ChangeLog + 2015-07-22 14:03 robert * include/osg/AlphaFunc, include/osg/GLDefines: Moved GL_ALPHA_TEST