OpenSceneGraph-3.3.3, released on 19th December 2014, key deliverables in this dev release are:
source package : OpenSceneGraph-3.3.3.zip
svn tag: svn co http://svn.openscenegraph.org/osg/OpenSceneGraph/tags/OpenSceneGraph-3.3.3 OpenSceneGraph
Many thanks to all that have contributed with code, testing and bug fixing over the past year.
Robert.
-- ChangeLog since 3.3.2:
2014-12-19 08:27 robert
* CMakeModules/FindGLIB.cmake: Added if () block to avoid script
variables set to NOT-Found being used in searching
2014-12-19 08:25 robert
* CMakeModules/FindLIBLAS.cmake: Fixed script warnings
2014-12-18 17:47 robert
* CMakeLists.txt, CMakeModules/FindLIBLAS.cmake,
src/osgPlugins/CMakeLists.txt, src/osgPlugins/las,
src/osgPlugins/las/CMakeLists.txt,
src/osgPlugins/las/ReaderWriterLAS.cpp: From Aitor Moreno, LAS
plugin - depends upon boost and liblas and liblas-c
2014-12-18 16:52 robert
* PlatformSpecifics/Android/Application.mk.master.in: From Adrian
Clark, build fix for recent Android NDK using the old Android
build approach.
2014-12-18 15:59 robert
* CMakeLists.txt: From Mattias Helsing, "CMake have release 3.0 and
3.1 and we have some bad checks for cmake
major version when settings cmake policies in CMakeLists.txt.
This fixes it"
2014-12-18 11:36 robert
* AUTHORS.txt, applications/osgversion/Contributors.cpp: Updated
AUTHORS
2014-12-18 11:19 robert
* ChangeLog: Updated ChangeLog in prep for dev release
2014-12-18 11:09 robert
* examples/osgmovie/CMakeLists.txt: Fixed warning
2014-12-18 10:59 robert
* include/osg/DisplaySettings, src/osg/DisplaySettings.cpp: Added
DisplaySettings::s/getNvOptimusEnablement() and
OSG_NvOptimusEnablement env var control to control the setting of
the NvOptimusEnablement variable
2014-12-18 09:24 robert
* src/osgPlugins/fbx/ReaderWriterFBX.cpp: From Sukender, "Added
options to the FBX writer: an ascii/binary switch, and the
ability to select FBX version as the SDK handles it (Ex:
"FBX201300").
This allows the user to achieve backward compatibility, and debug
format issues using text output."
2014-12-18 09:03 robert
* CMakeModules/FindGStreamer.cmake: From Mattias Helsing, "The
addition of the GStreamer cmake find script broke my build
because
cmake vars weren't passed correctly to find_package_handler_args,
so
while the find script didn't find a single required GStreamer lib
or
include path it still reported GSTREAMER_FOUND=TRUE (and then
tried to
compile the new plugin). This fixes it and correctly reports
missing
components."
2014-12-17 19:21 robert
* CMakeLists.txt, CMakeModules/FindSDL2.cmake,
examples/osgmovie/CMakeLists.txt, examples/osgmovie/osgmovie.cpp:
Added support for using SDL2 to the osgmovie to enable it to
handle floating point audio formats
2014-12-17 19:20 robert
* CMakeModules/FindFFmpeg.cmake,
src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp: From Javier Taibo,
" I have found that since version 1.1, FFMPEG changed the way
audio streams are retrieved, from packed to planar format. SDL
interprets packed audio, as is used in the osgmovie example. To
make the audio work when the OSGffmpeg plug-in is compiled
against recent FFMPEG versions, FFmpegDecoderAudio must check for
planar formats and in these cases request the samples as packed.
This way all works as before. It can be checked with osgmovie
example application.
$ osgmovie --audio movie.avi.ffmpeg
FFmpegImageStream::open audio failed, audio stream will be
disabled: unknown audio format
With the attached FFmpegDecoderAudio.cpp, audio sounds correctly.
I am also attaching a modified version of FindFFmpeg.cmake that
allows to set as FFMPEG_DIR the ffmpeg compiled in the source
directory structure. It should not break anything as it only adds
some additional search paths.
"
Note from Robert Osfield, I have found in testing that audio
quality is not good for planar floating point formats, even with
adding support for SDL2 to the osgmovie example. I haven't yet
tracked down the cause of these audio problems or a solution.
2014-12-17 10:19 robert
* src/osgPlugins/fbx/ReaderWriterFBX.cpp: From Sukender, "FBX
writer was writing an empty file when the scene had a root node
being a Geode.
This was caused be the change in Drawable (now derived from Node)
and Geode (now derived from Group).
This fix simply sticks with previous behaviour. Another change
could be to adapt WriterNodeVisitor.
"
2014-12-16 17:37 robert
* src/osgPlugins/gstreamer/GStreamerImageStream.cpp: Fixed warnings
and memmory leaks
2014-12-16 17:15 robert
* src/osgPlugins/gstreamer/CMakeLists.txt,
src/osgPlugins/gstreamer/GStreamerImageStream.cpp: Fixed warnings
2014-12-16 17:08 robert
* src/osgPlugins/gstreamer/GStreamerImageStream.cpp,
src/osgPlugins/gstreamer/GStreamerImageStream.hpp: Improved
handling of invalid/unhandled files
Added support for ImageStream::LoopigMode variable
Fixed memory leak associtied with restarting videos
Changed Image::setData() to Image::dirty() to avoid resetting
data
2014-12-16 11:20 robert
* CMakeLists.txt, CMakeModules/FindGLIB.cmake,
CMakeModules/FindGStreamer.cmake, src/osgPlugins/CMakeLists.txt,
src/osgPlugins/gstreamer,
src/osgPlugins/gstreamer/CMakeLists.txt,
src/osgPlugins/gstreamer/GStreamerImageStream.cpp,
src/osgPlugins/gstreamer/GStreamerImageStream.hpp,
src/osgPlugins/gstreamer/ReaderWriterGStreamer.cpp: From Julen
Garcia, "Here there is a small plugin I use to play video files.
It is based on GStreamer http://gstreamer.freedesktop.org and I
have used the FFmpeg plugin as inspiration."
From Robert Osfield, fixed handled of row widths so that they are
padded to a 4 byte boundary as certain row widths were being
rendered incorrectly.
2014-12-16 09:34 robert
* include/osg/TriangleLinePointIndexFunctor,
include/osgUtil/MeshOptimizers, src/osgUtil/MeshOptimizers.cpp:
From Marc Helbling, "please find enclosed a submission that
should improve the VertexAccessOrderVisitor (pre-transform)
optimizer:
* it sorts primitives to keep "more complex" primitives first;
maybe you'll prefer to have this as an option (but usually it
should make more sense to pre-transform triangles before e.g.
lines)
* currently, the visitor rely on TriangleIndexFunctor and does
not take care of points and lines (see
https://github.com/openscenegraph/osg/blob/master/include/osg/TriangleIndexFunctor#L124-130).
This can lead to issues e.g. if you store the wireframe lines
along with some triangles: the triangles will be reindexed but
not the line. I've therefore added
osg/include/TriangleLinePointIndexFunctor to index triangles,
lines and points and derived VertexReorder from this class.
* to avoid issues, shared arrays are duplicated. However, in some
cases (e.g. an UV channel shared in the geometry only) this is
not required. I'm adding a SharedArrayOptimizer to optimize this:
it looks for duplicated UVs before the array duplication and
deduplicate arrays after.
"
2014-12-15 17:15 robert
* include/osgUtil/TriStripVisitor, src/osgUtil/TriStripVisitor.cpp:
From Marc Helbling, "please find the mergeTriangleStrip code
merged in osgUtil::TriStripVisitor.
I've removed the references to DrawArrays as we should no longer
produce any.
Note that:
* as the name suggest, it only works for triangle strips but
could probably be easily extended to quads
* the resulting primitive is not highly optimized; we could
probably sort the strips in order to minimize the number of
primitive restart
* as we may merge DrawElementsUInt and DrawElementUShort, the
code will only generate DrawElementsUInt"
2014-12-10 18:23 robert
* examples/osgSSBO/osgSSBO.cpp: Build fix
2014-12-10 13:05 robert
* include/osg/GLExtensions, src/osg/GLExtensions.cpp: Added OpenGL
Transform Feedback extensions.
2014-12-10 12:23 robert
* examples/CMakeLists.txt, examples/osgSSBO,
examples/osgSSBO/CMakeLists.txt, examples/osgSSBO/osgSSBO.cpp,
include/osg/BufferIndexBinding, include/osg/BufferObject,
include/osg/StateAttribute, src/osg/BufferIndexBinding.cpp,
src/osg/BufferObject.cpp: From Marcus Hein, Added support for
OpenGL SSBO and SSBB via osg::ShaderStorageBufferObject and
osg::ShaderStorageBufferBinding to core OSG library, and added
new osgSSBO example
2014-12-10 11:44 robert
* include/osg/GLDefines: Added GLDefines header
2014-12-10 11:29 robert
* src/osgPlugins/dae/daeRMaterials.cpp: From Farshid Lashkari, "The
Collada loader would crash while processing textures on certain
files. I've attached the fix."
2014-12-10 10:44 robert
* examples/osgshaderterrain/osgshaderterrain.cpp,
include/osg/GL2Extensions, src/osg/CMakeLists.txt,
src/osg/GL2Extensions.cpp, src/osgAnimation/RigGeometry.cpp,
src/osgDB/ObjectWrapper.cpp: Removed old GL2Extensions class,
replacing it with a typedef to GL2Extensions
Removed old includes to include/osg/GL2Extensions
2014-12-10 10:38 robert
* examples/osgfpdepth/osgfpdepth.cpp,
examples/osgmultitexture/osgmultitexture.cpp,
examples/osgoit/DepthPeeling.cpp,
examples/osgscreencapture/osgscreencapture.cpp,
examples/osgvertexprogram/osgvertexprogram.cpp,
include/osg/BufferObject, include/osg/FrameBufferObject,
include/osg/GL2Extensions, include/osg/GLExtensions,
include/osg/PatchParameter, include/osg/PrimitiveSet,
include/osg/Program, include/osg/Shader, include/osg/State,
include/osg/Texture, include/osg/TextureBuffer,
include/osg/Uniform, include/osgViewer/Renderer,
src/osg/ArrayDispatchers.cpp, src/osg/BlendColor.cpp,
src/osg/BlendEquation.cpp, src/osg/BlendEquationi.cpp,
src/osg/BlendFunc.cpp, src/osg/BlendFunci.cpp,
src/osg/BufferObject.cpp, src/osg/CMakeLists.txt,
src/osg/Capability.cpp, src/osg/ClampColor.cpp,
src/osg/ColorMaski.cpp, src/osg/FragmentProgram.cpp,
src/osg/FrameBufferObject.cpp, src/osg/GLExtensions.cpp,
src/osg/Geometry.cpp, src/osg/GraphicsContext.cpp,
src/osg/Image.cpp, src/osg/Multisample.cpp,
src/osg/OcclusionQueryNode.cpp, src/osg/PatchParameter.cpp,
src/osg/Point.cpp, src/osg/PointSprite.cpp,
src/osg/PrimitiveRestartIndex.cpp, src/osg/Program.cpp,
src/osg/SampleMaski.cpp, src/osg/Shader.cpp, src/osg/State.cpp,
src/osg/Stencil.cpp, src/osg/StencilTwoSided.cpp,
src/osg/Texture.cpp, src/osg/Texture1D.cpp,
src/osg/Texture2DArray.cpp, src/osg/Texture2DMultisample.cpp,
src/osg/Texture3D.cpp, src/osg/TextureBuffer.cpp,
src/osg/TextureCubeMap.cpp, src/osg/TextureRectangle.cpp,
src/osg/Uniform.cpp, src/osg/VertexAttribDivisor.cpp,
src/osg/VertexProgram.cpp, src/osgFX/SpecularHighlights.cpp,
src/osgParticle/PrecipitationEffect.cpp, src/osgText/Glyph.cpp,
src/osgUtil/GLObjectsVisitor.cpp, src/osgUtil/RenderStage.cpp,
src/osgViewer/Renderer.cpp,
src/osgViewer/ScreenCaptureHandler.cpp,
src/osgViewer/StatsHandler.cpp: Moved GL2Extensions functionality
into the include/osg/GLExtensions header and new GLExtensions
object.
Moved the #defines into new include/osg/GLDefines
Converted all GL2Extensions usage to GLExtensions usage
2014-12-10 09:11 robert
* include/osg/GLExtensions: Streamlined the extension functions
2014-12-09 21:33 robert
* include/osg/GL2Extensions: Added #ifdef's around GLsync typedef
2014-12-09 20:09 robert
* include/osg/GL2Extensions, include/osg/GraphicsContext,
include/osg/Texture, include/osg/Texture3D, src/osg/Texture.cpp:
Windows build fixes
2014-12-09 19:31 robert
* runexamples.bat: Added new examples to runexamples.bat script
2014-12-09 19:22 robert
* src/osg/Capability.cpp: Quietened down debug messages
2014-12-09 19:20 robert
* examples/CMakeLists.txt, examples/osgblenddrawbuffers,
examples/osgblenddrawbuffers/CMakeLists.txt,
examples/osgblenddrawbuffers/osgblenddrawbuffers.cpp: From Wand
Rui, "I've rewritten the osgblenddrawbuffers example to use the
new BlendFunci and Capability classes. Hope it will tell others
how to make use of the new functionality and why they are
important in modern MRT-based applications."
2014-12-09 18:30 robert
* examples/osgfpdepth/osgfpdepth.cpp,
examples/osgoit/DepthPeeling.cpp, include/osg/FrameBufferObject,
include/osg/GL2Extensions, include/osg/GraphicsContext,
src/osg/BufferObject.cpp, src/osg/FrameBufferObject.cpp,
src/osg/GL2Extensions.cpp, src/osg/GraphicsContext.cpp,
src/osg/OcclusionQueryNode.cpp, src/osg/Texture.cpp,
src/osg/Texture3D.cpp, src/osg/TextureRectangle.cpp,
src/osgUtil/RenderStage.cpp: Moved FBO Extensions into
GL2Extensions.
2014-12-09 14:58 robert
* include/osg/PrimitiveRestartIndex: Removed no longer used
Extension definition
2014-12-09 14:57 robert
* include/osg/ClampColor, include/osg/ColorMaski,
include/osg/GL2Extensions, include/osg/Multisample,
include/osg/Point, include/osg/PointSprite,
include/osg/PrimitiveRestartIndex, include/osg/Stencil,
src/osg/ClampColor.cpp, src/osg/ColorMaski.cpp,
src/osg/GL2Extensions.cpp, src/osg/Multisample.cpp,
src/osg/Point.cpp, src/osg/PointSprite.cpp,
src/osg/PrimitiveRestartIndex.cpp: Moved local Extensions structs
into GL2Extensions
2014-12-09 11:14 robert
* include/osg/GL2Extensions, include/osg/Stencil,
include/osg/StencilTwoSided, src/osg/GL2Extensions.cpp,
src/osg/Stencil.cpp, src/osg/StencilTwoSided.cpp: Moveved
Stencil/StencilTwoSided::Extensions into GL2Extensions
2014-12-09 10:37 robert
* include/osg/BlendColor, include/osg/BlendEquation,
include/osg/Capability, include/osg/GL2Extensions,
src/osg/BlendColor.cpp, src/osg/BlendEquation.cpp,
src/osg/BlendEquationi.cpp, src/osg/Capability.cpp,
src/osg/GL2Extensions.cpp: Moved local Extensions objects to
GL2Extensions
2014-12-09 10:05 robert
* examples/osgmultitexture/osgmultitexture.cpp,
include/osg/GL2Extensions, include/osg/Texture,
include/osg/Texture2DArray, include/osg/Texture3D,
src/osg/GL2Extensions.cpp, src/osg/Image.cpp,
src/osg/Texture.cpp, src/osg/Texture1D.cpp,
src/osg/Texture2DArray.cpp, src/osg/Texture2DMultisample.cpp,
src/osg/Texture3D.cpp, src/osg/TextureBuffer.cpp,
src/osg/TextureRectangle.cpp, src/osgText/Glyph.cpp: Moved
Texture*::Extensions functionality into GL2Extensions
2014-12-08 16:08 robert
* examples/osgvertexprogram/osgvertexprogram.cpp,
include/osg/FragmentProgram, include/osg/GL2Extensions,
include/osg/VertexProgram, src/osg/FragmentProgram.cpp,
src/osg/GL2Extensions.cpp, src/osg/VertexProgram.cpp: MOved
VertexProgram and FragmentProgram::Extensions into GL2Extensions.
2014-12-08 11:08 robert
* src/osgUtil/CullVisitor.cpp: Fixed memory leak in
RenderStageCache.
2014-12-07 17:31 robert
* examples/osgcubemap/osgcubemap.cpp, include/osg/GL2Extensions,
include/osg/SampleMaski, src/osg/GL2Extensions.cpp,
src/osg/SampleMaski.cpp: MOved SampleMaski::Extensions into
osg::GL2Extensions
2014-12-05 20:05 robert
* include/osg/GL2Extensions, include/osg/TextureCubeMap,
src/osg/GL2Extensions.cpp, src/osg/TextureCubeMap.cpp,
src/osgFX/SpecularHighlights.cpp: Moved TextureCubeMap::Extension
functionality into GL2Extensions
2014-12-05 17:26 robert
* include/osg/Drawable, include/osg/GL2Extensions,
include/osg/State, include/osgViewer/Renderer,
src/osg/ArrayDispatchers.cpp, src/osg/Drawable.cpp,
src/osg/GL2Extensions.cpp, src/osg/OcclusionQueryNode.cpp,
src/osg/State.cpp, src/osg/TextureRectangle.cpp,
src/osgParticle/PrecipitationEffect.cpp,
src/osgViewer/Renderer.cpp, src/osgViewer/StatsHandler.cpp: Moved
osg::Drawable::Extensions into osg::GL2Extensions
2014-12-05 10:37 robert
* examples/osgshaderterrain/osgshaderterrain.cpp,
examples/osgtransferfunction/TransferFunctionWidget.h,
src/osgPlugins/lua/LuaScriptEngine.cpp,
src/osgPlugins/lua/lua-5.2.3/src/lauxlib.c,
src/osgPlugins/lua/lua-5.2.3/src/lcode.c: Fixed windows build
warnings
2014-12-05 09:52 robert
* src/osg/BufferObject.cpp: Windows build fix
2014-12-05 08:58 robert
* include/osg/BufferObject, include/osg/Drawable,
include/osg/GL2Extensions, src/osg/Drawable.cpp: From the
GLintptr + GLsizeiptr defintions to GL2Extensions header
2014-12-04 19:03 robert
* include/osg/BlendFunc, include/osg/GL2Extensions,
src/osg/BlendFunc.cpp, src/osg/BlendFunci.cpp,
src/osg/GL2Extensions.cpp: Moved osg::BlenFunc::Extensions into
osg::GL2Extensions
2014-12-04 18:13 robert
* examples/osgscreencapture/osgscreencapture.cpp,
include/osg/BufferObject, include/osg/GL2Extensions,
include/osg/TextureBuffer, src/osg/BufferIndexBinding.cpp,
src/osg/BufferObject.cpp, src/osg/GL2Extensions.cpp,
src/osg/Geometry.cpp, src/osgViewer/ScreenCaptureHandler.cpp:
Moved GLBufferObject::Extensions structure into
osg::GL2Extensions
2014-12-04 18:12 robert
* examples/osgscreencapture/osgscreencapture.cpp: Removed redundent
spaces
2014-12-04 17:12 robert
* include/osg/GL2Extensions, src/osg/GL2Extensions.cpp: Added
glMemoryBarrier, glMapBufferRange and glBindBufferBase to
GL2Extensions
2014-12-04 16:28 robert
* src/osg/VertexAttribDivisor.cpp,
src/osgUtil/GLObjectsVisitor.cpp: Moved old
GL2Extensions::Get(..) usage across to new
osg::State::get<GL2Extensions>() usage
2014-12-04 16:22 robert
* examples/osgshaderterrain/osgshaderterrain.cpp,
include/osg/GL2Extensions, include/osg/State,
src/osg/FrameBufferObject.cpp, src/osg/GL2Extensions.cpp,
src/osg/PatchParameter.cpp, src/osg/Program.cpp,
src/osg/Shader.cpp, src/osg/State.cpp: Ported GL2Extentions
across to using the new GL extensions approach - cutting code
count by 3000 lines!
2014-12-04 15:10 robert
* src/osgDB/DatabasePager.cpp,
src/osgUtil/IncrementalCompileOperation.cpp: Build fix for when
ref_ptr<> auto conversion is disabled
2014-12-03 17:31 robert
* examples/osgmultiplerendertargets/osgmultiplerendertargets.cpp,
include/osg/Capability, include/osg/StateAttribute,
src/osg/CMakeLists.txt, src/osg/Capability.cpp: Added
osg::Capability and Cabibilityi base classes to wrap up
glEnable/glDisable + glEnablei/glDisablei functionality, with
osg::Enablei and osg::Disablei concrete implementations.
2014-12-02 17:12 robert
* include/osg/BlendEquation, include/osg/BlendEquationi,
include/osg/BlendFunc, include/osg/BlendFunci,
include/osg/ColorMaski, src/osg/BlendEquation.cpp,
src/osg/BlendEquationi.cpp, src/osg/BlendFunc.cpp,
src/osg/BlendFunci.cpp, src/osg/CMakeLists.txt,
src/osg/ColorMaski.cpp,
src/osgWrappers/serializers/osg/BlendEquationi.cpp,
src/osgWrappers/serializers/osg/BlendFunci.cpp,
src/osgWrappers/serializers/osg/ColorMaski.cpp: Added
osg::BlendFunci, osg::BlendEquationi and osg::ColorMaski
StateAttrirbutes that wrap the glBlendFunci, glBlendEquationi and
glColorMaski functions
2014-12-02 15:37 robert
* include/osg/BlendEquation, include/osg/BlendFunc,
src/osg/BlendEquation.cpp, src/osg/BlendFunc.cpp: Moved
BlendEquation across to using the new GL extension setup
approach.
2014-12-02 15:21 robert
* examples/osgblendequation/osgblendequation.cpp: Fixed typo
2014-12-02 11:10 robert
* include/osg/BlendFunc, include/osg/State, src/osg/BlendFunc.cpp:
Added a template get and get_exisiting method into osg::State
that implements a new mechanism for managing OpenGL extensions.
Refactored the BendFunc::Extensions usage to simplify it
utilizing the new osg::State extension mechanism.
2014-11-28 16:20 robert
* PlatformSpecifics/Android/android.toolchain.cmake: From Rafa
Gaitan, "I'm attaching also a new version of the toolchain with
support for the r10c ndk. This fixes some CMake Warnings and
allows to use the toolchain in macosx."
2014-11-28 16:10 robert
* CMakeLists.txt, include/OpenThreads/Version, include/osg/Version,
src/OpenThreads/CMakeLists.txt, src/osg/CMakeLists.txt: Removed
include/osg/Version and include/OpenThreads/Version headers as
these are autogenerated.
Changed the paths for the OpenThreads/osg Version headers to be
placed in the PROJECT_BINARY_DIR.
2014-11-28 10:54 robert
* include/osg/BufferObject, include/osgDB/ConvertUTF,
src/OpenThreads/pthreads/PThread.cpp, src/osg/GLExtensions.cpp:
Standardized on defined(__ANDROID__)
2014-11-28 10:52 robert
* src/osgPlugins/lua/lua-5.2.3/src/llex.c,
src/osgPlugins/lua/lua-5.2.3/src/luaconf.h: Added
getlocaledecpoint() workaround for Android build of lua plugin
2014-11-27 15:54 robert
* src/osgTerrain/GeometryPool.cpp, src/osgTerrain/shaders,
src/osgTerrain/shaders/terrain_displacement_mapping_frag.cpp,
src/osgTerrain/shaders/terrain_displacement_mapping_vert.cpp:
Added in source shaders
2014-11-27 15:39 robert
* src/osgTerrain/GeometryPool.cpp: Changed the name of shader files
2014-11-26 20:40 robert
* src/osg/CMakeLists.txt: From Jason Beverage, "It looks like the
Callback header got accidentally removed from the CMakeLists.txt
in the submission yesterday for the geometry instancing example."
2014-11-26 19:05 robert
* include/osgTerrain/DisplacementMappingTechnique,
include/osgTerrain/GeometryPool: Windows build fix
2014-11-26 17:08 robert
* applications/present3D/deprecated/Cluster.h: Fixed warnings
2014-11-26 17:04 robert
* src/osgQt/GraphicsWindowQt.cpp: Fixed warnings
2014-11-26 16:29 robert
* src/osgPlugins/ffmpeg/CMakeLists.txt: Fixed deprecated warnings
2014-11-26 16:15 robert
* src/osgPlugins/pdf/CMakeLists.txt: Fixed warning
2014-11-26 16:04 robert
* examples/osgcluster/osgcluster.cpp: Fixed warnings.
2014-11-26 16:00 robert
* src/osgPlugins/lwo/Object.cpp: Fixed warning
2014-11-26 15:59 robert
* src/osgWrappers/deprecated-dotosg/osg/StateSet.cpp: Fixed warning
2014-11-26 14:06 robert
* src/osgWrappers/serializers/osgTerrain/DisplacementMappingTechnique.cpp:
Added osgTerrain::DisplacementMappingTechnique serializer
2014-11-26 14:04 robert
* examples/osgterrain/CMakeLists.txt,
examples/osgterrain/ShaderTerrain.cpp,
examples/osgterrain/ShaderTerrain.h,
examples/osgterrain/osgterrain.cpp,
include/osgTerrain/DisplacementMappingTechnique,
include/osgTerrain/GeometryPool, src/osgTerrain/CMakeLists.txt,
src/osgTerrain/DisplacementMappingTechnique.cpp,
src/osgTerrain/GeometryPool.cpp: Renamed ShaderTerrain to
DisplacementMappingTechnique and moved it from the osgterrain
example testbed into the osgTerrain NodeKit
2014-11-26 13:36 robert
* examples/osgterrain/ShaderTerrain.cpp,
examples/osgterrain/ShaderTerrain.h,
include/osgTerrain/GeometryPool, src/osgTerrain/CMakeLists.txt,
src/osgTerrain/GeometryPool.cpp: Moved osgTerrain::GeometryPool
from osgterrain example into osgTerrain NodeKit
2014-11-25 14:37 robert
* src/osg/CMakeLists.txt: Removed GL header as it's already
included via the ${OPENSCENEGRAPH_OPENGL_HEADER} entry.
2014-11-25 10:58 robert
* examples/CMakeLists.txt, examples/osggpucull,
examples/osggpucull/AggregateGeometryVisitor.cpp,
examples/osggpucull/AggregateGeometryVisitor.h,
examples/osggpucull/CMakeLists.txt,
examples/osggpucull/DrawIndirectPrimitiveSet.cpp,
examples/osggpucull/DrawIndirectPrimitiveSet.h,
examples/osggpucull/GpuCullShaders.h,
examples/osggpucull/ShapeToGeometry.cpp,
examples/osggpucull/ShapeToGeometry.h,
examples/osggpucull/osggpucull.cpp, include/osg/BufferTemplate,
src/osg/CMakeLists.txt: From PawelKsiezopolski, "This submission
contains a new example for OSG : a geometry instancing rendering
algorithm consisting of two consequent phases :
- first phase is a GLSL shader performing object culling and LOD
picking ( a culling shader ).
Every culled object is represented as GL_POINT in the input
osg::Geometry.
The output of the culling shader is a set of object LODs that
need to be rendered.
The output is stored in texture buffer objects. No pixel is drawn
to the screen
because GL_RASTERIZER_DISCARD mode is used.
- second phase draws osg::Geometry containing merged LODs using
glDrawArraysIndirect()
function. Information about quantity of instances to render, its
positions and other
parameters is sourced from texture buffer objects filled in the
first phase.
The example uses various OpenGL 4.2 features such as texture
buffer objects,
atomic counters, image units and functions defined in
GL_ARB_shader_image_load_store
extension to achieve its goal and thus will not work on graphic
cards with older OpenGL
versions.
The example was tested on Linux and Windows with NVidia 570 and
580 cards.
The tests on AMD cards were not conducted ( due to lack of it ).
The tests were performed using OSG revision 14088.
The main advantages of this rendering method :
- instanced rendering capable of drawing thousands of different
objects with
almost no CPU intervention ( cull and draw times are close to 0
ms ).
- input objects may be sourced from any OSG graph ( for example -
information about
object points may be stored in a PagedLOD graph. This way we may
cover the whole
countries with trees, buildings and other objects ).
Furthermore if we create osgDB plugins that generate data on the
fly, we may
generate information for every grass blade for that country.
- every object may have its own parameters and thus may be
distinct from other objects
of the same type.
- relatively low memory footprint ( single object information is
stored in a few
vertex attributes ).
- no GPU->CPU roundtrip typical for such methods ( method uses
atomic counters
and glDrawArraysIndirect() function instead of OpenGL queries.
This way
information about quantity of rendered objects never goes back to
CPU.
The typical GPU->CPU roundtrip cost is about 2 ms ).
- this example also shows how to render dynamic objects ( objects
that may change
its position ) with moving parts ( like car wheels or airplane
propellers ) .
The obvious extension to that dynamic method would be the
animated crowd rendering.
- rendered objects may be easily replaced ( there is no need to
process the whole
OSG graphs, because these graphs store only positional
information ).
The main disadvantages of a method :
- the maximum quantity of objects to render must be known
beforehand
( because texture buffer objects holding data between phases have
constant size ).
- OSG statistics are flawed ( they don't know anymore how many
objects are drawn ).
- osgUtil::Intersection does not work
Example application may be used to make some performance tests,
so below you
will find some extended parameter description :
--skip-dynamic - skip rendering of dynamic objects if you only
want to
observe static object statistics
--skip-static - the same for static objects
--dynamic-area-size - size of the area for dynamic rendering.
Default = 1000 meters
( square 1000m x 1000m ). Along with density defines
how many dynamic objects is there in the example.
--static-area-size - the same for static objects. Default = 2000
meters
( square 2000m x 2000m ).
Example application defines some parameters (density, LOD ranges,
object's triangle count).
You may manipulate its values using below described modifiers:
--density-modifier - density modifier in percent. Default = 100%.
Density ( along with LOD ranges ) defines maximum
quantity of rendered objects. registerType() function
accepts maximum density ( in objects per square kilometer )
as its parameter.
--lod-modifier - defines the LOD ranges. Default = 100%.
--triangle-modifier - defines the number of triangles in finally
rendered objects.
Default = 100 %.
--instances-per-cell - for static rendering the application
builds OSG graph using
InstanceCell class ( this class is a modified version of Cell
class
from osgforest example - it builds simple quadtree from a list
of static instances ). This parameter defines maximum number
of instances in a single osg::Group in quadtree.
If, for example, you modify it to value=100, you will see
really big cull time in OSG statistics ( because resulting
tree generated by InstanceCell will be very deep ).
Default value = 4096 .
--export-objects - write object geometries and quadtree of
instances to osgt files
for later analysis.
--use-multi-draw - use glMultiDrawArraysIndirect() instead of
glDrawArraysIndirect() in a
draw shader. Thanks to this we may render all ( different )
objects
using only one draw call. Requires OpenGL version 4.3 and some
more
work from me, because now it does not work ( probably I
implemented
it wrong, or Windows NVidia driver has errors, because it hangs
the apllication at the moment ).
This application is inspired by Daniel Rákos work : "GPU based
dynamic geometry LOD" that
may be found under this address :
http://rastergrid.com/blog/2010/10/gpu-based-dynamic-geometry-lod/
There are however some differences :
- Daniel Rákos uses GL queries to count objects to render, while
this example
uses atomic counters ( no GPU->CPU roundtrip )
- this example does not use transform feedback buffers to store
intermediate data
( it uses texture buffer objects instead ).
- I use only the vertex shader to cull objects, whereas Daniel
Rákos uses vertex shader
and geometry shader ( because only geometry shader can send more
than one primitive
to transform feedback buffers ).
- objects in the example are drawn using glDrawArraysIndirect()
function,
instead of glDrawElementsInstanced().
Finally there are some things to consider/discuss :
- the whole algorithm exploits nice OpenGL feature that any GL
buffer
may be bound as any type of buffer ( in our example a buffer is
once bound
as a texture buffer object, and later is bound as
GL_DRAW_INDIRECT_BUFFER ).
osg::TextureBuffer class has one handy method to do that trick (
bindBufferAs() ),
and new primitive sets use osg::TextureBuffer as input.
For now I added new primitive sets to example (
DrawArraysIndirect and
MultiDrawArraysIndirect defined in
examples/osggpucull/DrawIndirectPrimitiveSet.h ),
but if Robert will accept its current implementations ( I mean -
primitive
sets that have osg::TextureBuffer in constructor ), I may add it
to
osg/include/PrimitiveSet header.
- I used BufferTemplate class writen and published by Aurelien in
submission forum
some time ago. For some reason this class never got into
osg/include, but is
really needed during creation of UBOs, TBOs, and possibly SSBOs
in the future.
I added std::vector specialization to that template class.
- I needed to create similar osg::Geometries with variable number
of vertices
( to create different LODs in my example ). For this reason I've
written
some code allowing me to create osg::Geometries from osg::Shape
descendants.
This code may be found in ShapeToGeometry.* files. Examples of
use are in
osggpucull.cpp . The question is : should this code stay in
example, or should
it be moved to osgUtil ?
- this remark is important for NVidia cards on Linux and Windows
: if
you have "Sync to VBlank" turned ON in nvidia-settings and you
want to see
real GPU times in OSG statistics window, you must set the power
management
settings to "Prefer maximum performance", because when "Adaptive
mode" is used,
the graphic card's clock may be slowed down by the driver during
program execution
( On Linux when OpenGL application starts in adaptive mode, clock
should work
as fast as possible, but after one minute of program execution,
the clock slows down ).
This happens when GPU time in OSG statistics window is shorter
than 3 ms.
"
2014-11-25 10:33 robert
* src/osgUtil/TriStripVisitor.cpp: Removed DrawArrays optimization
to simplify the code and open the door to adding primitive
combining.
2014-11-25 10:11 robert
* src/osg/State.cpp: Commented out
State::setUpVertexAttribAlias(..) debug message.
2014-11-24 15:19 robert
* CMakeLists.txt, CMakeModules/FindAVFoundation.cmake,
CMakeModules/FindQuickTime.cmake,
src/osgViewer/PixelBufferCocoa.mm: From Jan Klimke, "i noticed,
that there are a couple of additional flaws when building osg for
Mac OS X 10.10 Yosemite.
The mac os sdk version is recognized by the current CMAKE script
as 10.1 instead of 10.10 since it cuts the version string from
the 4th place. I introduced a more reliable version checking
based on splitting the returned version code into MAJOR MINOR and
PATCH parts and reassemble the OSG sdk version afterwards.
I replaced the existing CMake code against the following
(returning now version 10.10 as expected):
# Determine the canonical name of the selected Platform SDK
EXECUTE_PROCESS(COMMAND "/usr/bin/sw_vers" "-productVersion"
OUTPUT_VARIABLE OSG_OSX_SDK_NAME
OUTPUT_STRIP_TRAILING_WHITESPACE)
STRING(REPLACE "." ";" MACOS_VERSION_LIST ${OSG_OSX_SDK_NAME})
LIST(GET MACOS_VERSION_LIST 0 MACOS_VERSION_MAJOR)
LIST(GET MACOS_VERSION_LIST 1 MACOS_VERSION_MINOR)
LIST(GET MACOS_VERSION_LIST 2 MACOS_VERSION_PATCH)
SET(OSG_OSX_SDK_NAME
"macosx${MACOS_VERSION_MAJOR}.${MACOS_VERSION_MINOR}")
Also i added the check for the new Version to some more find
scripts.
Additionally the nil object in Objective C now seems to be
equivalent with a null_ptr that cannot be passed as GLInt
anymore. So i switched this in the PixelBufferCocoa.mm to pass a
zero instead of nil.
"
2014-11-24 14:54 robert
* include/osg/StateAttribute, include/osg/VertexAttribDivisor,
src/osg/CMakeLists.txt, src/osg/VertexAttribDivisor.cpp,
src/osgWrappers/serializers/osg/VertexAttribDivisor.cpp: Added
VertexAttribDivisor class to wrap up glVertexAttribDivisor
function
2014-11-24 14:09 robert
* examples/osgsimplegl3/osgsimplegl3.cpp: Fixed osgsimplegl3
example's set up of the main camera.
2014-11-24 14:01 robert
* include/osg/State, src/osg/State.cpp: Added numTextureUnits
parameter to the osg::State::resetVertexAttributeAlias(bool,
unit) method, and set the default to 8.
2014-11-21 20:16 robert
* src/osgDB/CMakeLists.txt, src/osgDB/FileUtils.cpp: From Alberto
Luaces,"the current code uses the preprocessor for generating the
plugin path in
a way that when CMAKE_INSTALL_PREFIX contains something along the
lines
of
/usr/x86_64-linux-gnu/
it gets substituted as
/usr/x86_64-1-gnu/
that is, the string is preprocessed again, thereby making changes
to
anything that matches any defined symbol, as "linux" in this
example
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763816).
Quoting that path directly in CMake scripts solves that problem.
"
2014-11-21 20:15 robert
* include/osg/Image: Added comment clarifying how
Image::getColor(..) out of 0..1 range texcoords are handled - now
clamped to edge.
2014-11-21 17:22 robert
* src/osg/Image.cpp: Implemented a clamp to edge policy for the
Image::g/setColor(color, texcoord).
2014-11-21 17:17 robert
* src/osg/CopyOp.cpp: Added testing for Drawables in the
CopyOp::operator(Node*) to replicate the old functionality.
2014-11-21 16:27 robert
* include/osg/Image, src/osg/Image.cpp: From Sebastian
Messerschmidt, "Added setColor function to modify an image based
on texture coordinates, parallel to the getColor functionality."
2014-11-21 14:46 robert
* examples/osgterrain/osgterrain.cpp: Added --db-affinit cpuNum
option to osgterrain example to illustrate how to set the thead
affinity of the DatabasePager threads.
2014-11-21 10:44 robert
* include/osg/Texture2DMultisample: From Sebastian Messerschmidt,
"Attached you find a change adding a getNumSamples() function to
retrieve the value set via setNumSamples."
2014-11-21 10:37 robert
* CMakeLists.txt, CMakeModules/ModuleInstall.cmake,
CMakeModules/OsgMacroUtils.cmake,
PlatformSpecifics/Android/android.toolchain.cmake,
src/CMakeLists.txt, src/OpenThreads/pthreads/CMakeLists.txt,
src/osgWrappers/serializers/osg/LibraryWrapper.cpp: From Rafa
Gaitan, "I finally had some time to change the build system for
Android using a Toolchain, which, I think, will be easier to
maintain and uses cmake standard system to build it.
My changes:
-------------------
- I changed the cmake files and added a toolchain for building
OSG in Android. The toolchain is based on the one used at OpenCV.
For building OSG for android you just need to do:
mkdir build_android_static_gles2 && cd build_android_static_gles2
cmake .. -DANDROID_NDK=<path-to-the-android-ndk>
-DCMAKE_TOOLCHAIN_FILE=../PlatformSpecifics/Android/android.toolchain.cmake
-DOPENGL_PROFILE="GLES2"
-DDYNAMIC_OPENTHREADS=OFF
-DDYNAMIC_OPENSCENEGRAPH=OFF
-DANDROID_NATIVE_API_LEVEL=15 # optional
-DANDROID_ABI=armeabim #optional
-DCMAKE_INSTALL_PREFIX=<path-to-the-install-path> #optional
make -j 8
make install
The OPENGL_PROFILE works as expected, changing it to "GLES1" it
builds and links OSG using GLES1.
The DYNAMIC_OPENTHREADS/DYNAMIC_OPENSCENEGRAPH parameters also
allows to build the dynamic libraries
- I also added some build fixes for android related to the
texture formats and added some missing USE_OSG_SERIALIZER_WRAPPER
in the osg serializer library to support loading osgb files in
static."
2014-11-21 10:21 robert
* CMakeModules/CheckAtomicOps.cmake: From Björn Blissing, fix for
ambiguous defines in Atomic.cpp when compiling with MinGW and GCC
2014-11-20 17:37 robert
* include/osg/Texture: From Claus Steuer, "XCode 6, IOs 8.1 SDK
Compile fix : There are some undefined texture formats when
compiling osg for IOs 8.1 with XCode 6 and OpenGLES2 enabled."
2014-11-20 17:00 robert
* include/osg/State: From Pjotr Svetachov, "I was experimenting
with VBO's to try to get them on par with display
lists when drawing lots of batches and noticed that my program
generated a lot of unneeded glClientActiveTexture calls. Digging
deeper I found out it came from State::disableTexCoordPointer
where
the function would call glClientActiveTexture but not
glDisableClientState because the geometry didn't have texture
coordinates for that channel. This is because in our scene there
are
some geometries that have move than one uv channels making
State::_texCoordArrayList grow. Then the method
State::applyDisablingOfVertexAttributes() will call
disableTexCoordPointer multiple times.
I rearrange the method a little to combat this. Now the logic has
the
same ordering as disableTexCoordPointersAboveAndIncluding which
already combats this."
2014-11-20 16:38 robert
* src/osgPlugins/obj/ReaderWriterOBJ.cpp: From Farshid Lashkari,
"The obj loader was overriding the existing database path list
with the file path of the model, instead of prepending the file
path to the path list. The latter seems to be more common
behavior for most of the existing loader plugins. Also, the local
options weren't actually being used when processing the scene
graph for textures. I've attached the fix for both issues."
2014-11-20 10:52 robert
* src/osgPlugins/Inventor/ConvertFromInventor.cpp: From Marc
Helbling, "here is a trivial fix in the Inventor plugin. In one
code path, the pointer validity is checked after dereferencing a
pointer that can be null (image->valid()) instead of calling
ref_ptr::valid (image.valid())."
2014-11-20 10:45 robert
* src/osgUtil/MeshOptimizers.cpp: From Marc Helbling, "I've come
across scenes that contains geometries with initialized but empty
vertex arrays and primitives and that would make some optimizers
crash.
The submission therefore only contains a test on the size of the
vertex array for the VertexCacheMissVisitor and the
VertexAccessOrderVisitor visitors."
2014-11-20 10:05 robert
* src/osg/Texture.cpp: From Christian Ruzicka, "while testing this
commit on our OSG 3.2 version, I observed that the changes for
ETC2 brake ETC1 support. Attached you'll find the changes to get
ETC1 running again"
2014-11-20 09:55 robert
* src/osgPlugins/3ds/ReaderWriter3DS.cpp: From Sukender, "Fix for
3DS reader, which may read wrong triangles. Actually, indices may
suffer a 'short int' overflow, in two places."
2014-11-20 09:41 robert
* src/osg/Texture2DArray.cpp: Fixed segfalt in Texture2DArray copy
constructor where it would apply images to an uninitialzed
vector.
2014-11-20 09:32 robert
* src/osgPlugins/fbx/fbxMaterialToOsgStateSet.cpp,
src/osgPlugins/fbx/fbxMaterialToOsgStateSet.h,
src/osgPlugins/fbx/fbxRMesh.cpp: From Marc Helbling, "patch
adding support for ambient material in the FBX plugin. It's a
straightfoward adaptation of the emissive support and has been
tested on a proprietary model."
2014-11-20 09:21 robert
* src/osgPlugins/gif/ReaderWriterGIF.cpp: From Pjotr Svetachov, fix
for build breakage with giflib 5.0.
2014-11-20 08:26 robert
* README.txt: From Per Nordqvist, "The README.txt is still somewhat
confusing so I have updated it"
2014-11-19 17:45 robert
* README.txt, configure: Removed configure script as it's no longer
required as cmake . will now default to Release
2014-11-19 17:42 robert
* CMakeLists.txt: Added CMake script to set the default
CMAKE_BUILD_TYPE to Release. Approach taken from simgear.
2014-11-19 17:29 robert
* ChangeLog, applications/osgversion/Contributors.cpp: Fixed
Contributors names
2014-11-19 17:10 robert
* src/osgPlugins/gif/ReaderWriterGIF.cpp: From Clement Boesch, "Fix
remaining bit of Giflib5 usage"
2014-11-19 11:37 robert
* src/osgWrappers/deprecated-dotosg/osg/ProxyNode.cpp: From Laurens
Voerman, "I found a new way to crach the osgviewer:
osgviewer "ProxyNode { FileNameList { cow.osgt } num_children 1
}".osgs
The proxy node reader wrongly assumes options to be non NULL.
fixed in attached zip:
src\osgWrappers\deprecated-dotosg\osg\ProxyNode.cpp
applies to both the 3.2 branch and svn trunk"
2014-11-19 11:30 robert
* examples/osgQtWidgets/osgQtWidgets.cpp,
include/osgQt/QGraphicsViewAdapter, include/osgQt/QWebViewImage,
include/osgQt/QWidgetImage, src/osgQt/QGraphicsViewAdapter.cpp,
src/osgQt/QWidgetImage.cpp,
src/osgViewer/ViewerEventHandlers.cpp: From Wang Rui, "The
submission includes some fixes for osgQt library and osgQtWidgets
example: (1) QTextEdit now works with mouse/drag events, (2)
scrollbars will change when OSG window is resizing, (3) improve
rendering efficiency of QGraphicsViewAdapter so that it works
with complex Qt UI, (4) add new setBackgroundWidget() method to
indicate a 'background widget', which will ignore mouse/key
events on it and pass them to the 3D scene."
2014-11-19 10:43 robert
* examples/osgterrain/ShaderTerrain.cpp: Changed the way that the
cell size is passed to the shader
2014-11-19 09:33 robert
* src/osg/Texture.cpp: From James Turner, "Converting the loops to
forward versions fixed the issue. The problem is size_t is
unsigned; at the limit condition it doesn’t go negative but wraps
around to 0xffffffffffffffff …. and boom."
2014-11-17 15:43 robert
* src/osgPlugins/exr/ReaderWriterEXR.cpp: Fixed typo
2014-11-17 09:19 robert
* src/osgDB/ObjectCache.cpp: Fixed typo in comment
2014-11-14 17:44 robert
* examples/osgterrain/ShaderTerrain.cpp: Added use of
GL_TRIANGLE_STRIP to cut down the size of the primitive indices
required.
2014-11-14 16:47 robert
* examples/osgterrain/ShaderTerrain.cpp: Implemented skirt
functionality
2014-11-13 09:40 robert
* include/osgDB/DatabasePager, include/osgDB/ObjectCache,
include/osgDB/Options, src/osgDB/DatabasePager.cpp,
src/osgDB/ObjectCache.cpp, src/osgDB/Options.cpp,
src/osgDB/Registry.cpp: Refactored the handling of use of the
osgDB::ObjectCache in the DatabasePager to use a local thread
specific ObjectCache to handle new additions and
then have these additions merged with the main Registry
ObjectCache during the main loop.
2014-11-11 18:28 robert
* include/osgDB/ObjectCache, include/osgDB/Registry,
src/osgDB/CMakeLists.txt, src/osgDB/ObjectCache.cpp,
src/osgDB/Registry.cpp: Moved implementation of ObjectCache
functionality out of Registry into a dedicated osgDB::ObjectCache
class.
2014-11-10 16:04 robert
* include/osgDB/DatabasePager, src/osgDB/DatabasePager.cpp: To
handle thread safe paging and use of the osgDB::Registry
ObjectCache, moved the handling of cache into
osgDB::DatabasePager.
2014-11-06 10:44 robert
* src/osgDB/InputStream.cpp: From Pjotr Svetachov, "I tried your
fix and it exposed a bug in my fix :)
The problem is that the readObjectFields method will add the
object to the _identifierMap. So all the other instances of that
image in the same file will be replaced by the created dummy
object. In my fix this was an dummy image and I didn't notice it
in our scene's, probably because it covered a small part of an
object. In your fix the dummy object was not an image and that
leads to a crash when something tries to use it as an image. I
have attached a small fix for this bug.
"
2014-11-06 10:40 robert
* include/osg/Object, include/osgDB/DatabasePager,
include/osgUtil/IncrementalCompileOperation,
src/osgDB/DatabasePager.cpp, src/osgDB/InputStream.cpp,
src/osgUtil/IncrementalCompileOperation.cpp: Introduced use of
MarkerObject to IncrmentalCompileOperation/DatabasePager as a way
of marking objects that have already been processed and compiled,
thus avoid potential threading conflicts when paged subgraphs are
reused.
2014-11-05 16:08 robert
* include/osgDB/InputStream, src/osgDB/InputStream.cpp: Added
handling of the reading of field properties to a dummy object for
cached images to avoid threading issues associated with reusing
and modifying an active object.
2014-11-05 13:38 robert
* src/osg/OperationThread.cpp: Reinstated the original mechanism
for OperationThread::cancel() that co-operatively releases
blocks/barriers to make sure the thread is able to exit
correctly.
2014-11-04 20:07 robert
* examples/osgterrain/ShaderTerrain.cpp,
examples/osgterrain/ShaderTerrain.h: Improvements to the
ShaderTerrain experiemental terrain rendering technique.
2014-11-04 20:07 robert
* src/osgTerrain/TerrainTile.cpp: Changed TerrainTile::setDirty()
to use children needing update traversal mechanism to address
threadng issues.
2014-11-04 20:06 robert
* src/OpenThreads/pthreads/PThread.cpp,
src/OpenThreads/pthreads/PThreadPrivateData.h: Change isRunning
variable to an Atomic to address possible race condition
asscoiated with reading and writing to the variable from
different threads.
2014-11-04 16:29 robert
* src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp,
src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp: Build fixes for
ffmpeg LIBAVCODEC_VERSION_MAJOR >= 56
2014-11-04 11:18 robert
* src/osgViewer/ViewerBase.cpp: Added an InitRegistry static
intiialization and destrucion static to help control the order of
construction and destruction of the osgDB::Registry.
2014-11-04 10:46 robert
* examples/osgQtBrowser/osgQtBrowser.cpp,
examples/osgunittests/MultiThreadRead.cpp,
examples/osgunittests/osgunittests.cpp,
examples/osguserstats/osguserstats.cpp,
examples/osgviewerMFC/MFC_OSG.cpp, include/osg/OperationThread,
src/OpenThreads/pthreads/PThread.cpp,
src/OpenThreads/qt/QtThread.cpp,
src/OpenThreads/sproc/SprocThread.c++,
src/OpenThreads/win32/Win32Thread.cpp,
src/osg/OperationThread.cpp, src/osgDB/DatabasePager.cpp,
src/osgDB/ImagePager.cpp, src/osgPlugins/cfg/RenderSurface.cpp,
src/osgPlugins/gif/ReaderWriterGIF.cpp,
src/osgPlugins/quicktime/QuicktimeImageStream.cpp,
src/osgPlugins/vnc/ReaderWriterVNC.cpp: Replaced use of
while(isRunning()) { YieldCurrentThread(); } style loops with use
of join() to avoid false positives being reported by valgrind
when using the helgrind tool for thread debugging.
2014-10-21 15:08 robert
* examples/osgterrain/CMakeLists.txt,
examples/osgterrain/ShaderTerrain.cpp,
examples/osgterrain/ShaderTerrain.h,
examples/osgterrain/osgterrain.cpp,
src/osgTerrain/TerrainTile.cpp: Added experimental
osgTerrain::ShaderTerrain TerrainTechnique to osgterrain example
to flesh out new shader based displacement mapping approach to
osgTerrain databases.
Requires shader files place in OpenSceneGraph-Data/shaders from
OpenSceneGraph-Data's svn/trunk to function.
Run osgterrain example with --shader command line option to
select displacement mapping shader approach.
2014-10-21 14:47 robert
* applications/osgviewer/osgviewer.cpp: Removed --sync related code
as it's now integrated into osg::DisplaySettings and osgViewer
2014-10-21 14:46 robert
* include/osg/DisplaySettings, include/osg/GraphicsContext,
src/osg/DisplaySettings.cpp, src/osg/GraphicsContext.cpp,
src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp:
Added osg::SyncSwapBuffersCallback to include/osg/GraphicsContext
and support for enabling it to include/osg/DisplaySettings, and
to the Viewer/CompositeViewer::realize() methods.
To enable the sync of swap buffers set the env var
OSG_SYNC_SWAP_BUFFERS to ON or 1, to switch off set to OFF or 0.
One can also use the --sync command line option for application
that pass on command line options to the
osg::DisplaySettings::instance().
2014-10-21 08:27 robert
* src/osg/StateSet.cpp: Removed checks against Drawable as these
are no longer required.
2014-09-17 17:40 robert
* src/osgPlugins/lua/LuaScriptEngine.cpp,
src/osgPlugins/lua/LuaScriptEngine.h,
src/osgPlugins/lua/ReaderWriterLua.cpp: Added support for writing
the file path of a script to the lua package.path to help with
loading scripts within lua.
2014-09-16 17:40 robert
* examples/osgvolume/osgvolume.cpp,
src/osgPlugins/p3d/ReaderWriterP3D.cpp,
src/osgPlugins/tf/ReaderWriterTF.cpp: Changed osgvolume example
to use the new tf plugin rather than having local code for
reading transfer function
2014-09-16 11:00 robert
* src/osgPlugins/tf/ReaderWriterTF.cpp: Added write support
2014-09-15 17:53 robert
* src/osgDB/Registry.cpp, src/osgPlugins/CMakeLists.txt,
src/osgPlugins/tf, src/osgPlugins/tf/CMakeLists.txt,
src/osgPlugins/tf/ReaderWriterTF.cpp: Added .tf & .tf-255 plugin
for reading ascii 1D transfer functon files in support for volume
rendering.
2014-09-12 14:16 robert
* include/osgUI/TabWidget, src/osgUI/TabWidget.cpp: Added basic
frame rendering for TabWidget
2014-09-10 17:03 robert
* include/osgUI/AlignmentSettings, src/osgUI/AlignmentSettings.cpp,
src/osgUI/TabWidget.cpp: Improved the alignment and sizing of
TabWidget tab headers
2014-09-10 11:59 robert
* src/osgUI/TabWidget.cpp: Implemented the selection of tabs by
clicking, using mouse wheel or arrow keys.
2014-09-09 16:12 robert
* src/osgUI/Dialog.cpp, src/osgUI/TabWidget.cpp: Improved the
handling of the dialog title text
2014-09-09 15:14 robert
* include/osgUI/Callbacks, src/osgUI/Callbacks.cpp,
src/osgUI/Dialog.cpp, src/osgUI/Widget.cpp: Moved the diaglog
title bar widgets into the Widget::GraphicsSubgraph map to avoid
them poluting the Dialog's children list and to prevent them from
being serialized.
2014-09-09 13:37 robert
* include/osgUI/TabWidget, include/osgUI/Widget,
src/osgUI/ComboBox.cpp, src/osgUI/Dialog.cpp,
src/osgUI/Label.cpp, src/osgUI/LineEdit.cpp, src/osgUI/Popup.cpp,
src/osgUI/PushButton.cpp, src/osgUI/Style.cpp,
src/osgUI/TabWidget.cpp, src/osgUI/Widget.cpp,
src/osgWrappers/serializers/osgUI/Tab.cpp,
src/osgWrappers/serializers/osgUI/Widget.cpp: Introduced
Widget::WidgetStateSet to help localize the StateSet set up by
Widget implementations from being serialized or
affecting what end users apply via the standard
Node::s/getStateSet().
Further work on TabWidget.
2014-09-08 08:53 robert
* examples/osgtransferfunction/TransferFunctionWidget.cpp: Build
fix
2014-09-05 16:04 robert
* include/osgUI/TabWidget, src/osgUI/CMakeLists.txt,
src/osgUI/TabWidget.cpp,
src/osgWrappers/serializers/osgUI/Tab.cpp,
src/osgWrappers/serializers/osgUI/TabWidget.cpp: Added shell of
new osgUI::TabWidget class
2014-09-05 11:05 robert
* include/osgDB/ObjectWrapper, include/osgDB/Serializer,
src/osgDB/ObjectWrapper.cpp,
src/osgWrappers/serializers/osgVolume/VolumeSettings.cpp:
Introduced support for specifying whether a serializer supports
different types of usage - one or more of READ_WRITE_PROPERTY,
GET_PROPERTY and SET_PROPERTY.
2014-09-03 15:54 robert
* include/osgVolume/VolumeSettings,
src/osgPresentation/deprecated/SlideShowConstructor.cpp,
src/osgVolume/VolumeSettings.cpp,
src/osgWrappers/serializers/osgVolume/VolumeSettings.cpp: Added
setting of the IsoSurfaceProperty in VolumeSettings
2014-09-03 12:28 robert
* include/osgUI/Callbacks, src/osgUI/Callbacks.cpp,
src/osgUI/Dialog.cpp, src/osgUI/PushButton.cpp: Added close
button on Dialog title bar
2014-09-02 17:01 robert
* include/osgUI/ComboBox, src/osgUI/ComboBox.cpp: Refactored the
handling of ComboBox item picking to make it faster and more
reliable
2014-09-02 10:00 robert
* src/osgUI/ComboBox.cpp: Improved handling of ComboBox popup
toggling
2014-09-02 09:14 robert
* src/osgUI/Callbacks.cpp, src/osgUI/Widget.cpp: Added support for
scaling widgets via the scoll wheel.
2014-09-02 08:41 robert
* src/osgGA/KeySwitchMatrixManipulator.cpp: Removed debugging
message
2014-09-01 19:13 robert
* include/osgUI/Callbacks, include/osgUI/Widget,
src/osgUI/CMakeLists.txt, src/osgUI/Callbacks.cpp,
src/osgUI/Dialog.cpp, src/osgUI/LineEdit.cpp,
src/osgUI/Widget.cpp: Added DragCallback class to help dialog
dragging support.
Introduced a new
Widget::computeExtentsPositionInLocalCoordinates() method that
intersects with a ray through mouse pointer and the extents of
the widget.
2014-08-28 15:11 robert
* src/osgVolume/MultipassTechnique.cpp: Improved support for
controlling the ShadingModel via the VolumeSettings object
2014-08-28 09:42 robert
* src/osgPresentation/deprecated/SlideShowConstructor.cpp,
src/osgVolume/Property.cpp: Improved handling of VolumeSettings
2014-08-27 15:08 robert
* src/osgPresentation/deprecated/SlideShowConstructor.cpp,
src/osgUI/Widget.cpp, src/osgVolume/Property.cpp,
src/osgWrappers/serializers/osgVolume/SampleRatioProperty.cpp:
Changed the osgUI behaviour so that events are set to be handled
by Widgets that have focus even if they don't directly use them.
2014-08-27 15:07 robert
* src/osg/NodeVisitor.cpp: Changed the
NodeVisitor::apply(Drawable&) to call apply(Node&)
2014-08-27 09:25 robert
* include/osgDB/Serializer,
src/osgWrappers/serializers/osgVolume/VolumeSettings.cpp: Added
support for getting osgVolumre::Property::ModifieCount
2014-08-25 16:56 robert
* include/osgDB/Serializer, include/osgVolume/Property,
include/osgVolume/VolumeSettings, src/osgVolume/Property.cpp,
src/osgWrappers/serializers/osgVolume/Property.cpp,
src/osgWrappers/serializers/osgVolume/VolumeSettings.cpp: Added
Property::getModifiedCount() + dirty() to help with tracking
changes. Added VolumeSettings serializers for Property objects
2014-08-25 13:43 robert
* include/osg/StateSet, src/osg/NodeVisitor.cpp,
src/osg/StateSet.cpp: Changed StateSet::ParentList from
vector<Object*> to vector<Node*> to reflect that Drawable is now
a Node.
2014-08-22 19:00 robert
* include/osgUI/Style, src/osgUI/Popup.cpp, src/osgUI/Style.cpp:
Improved handling of setting of the depth of the UI.
2014-08-20 14:15 robert
* src/osgUI/Style.cpp: Reordered method implemenations to make it
easier to compare similar methods
2014-08-19 16:58 robert
* src/osgPresentation/deprecated/SlideShowConstructor.cpp: Added
toggling on/off of the VolumeSettings ui via the 'E' key.
2014-08-19 16:37 robert
* src/osgPresentation/deprecated/SlideShowConstructor.cpp: Updated
VolumeSettings.lua reference to use ui prefix to work with the
new OpenSceneGraph-Data/ui/VolumeSettings.lua file.
2014-08-19 09:27 robert
* src/osgPlugins/md2/ReaderWriterMD2.cpp: Fixed MD2 danglng pointer
crash.
2014-08-19 09:00 robert
* examples/osgcallback/osgcallback.cpp: Fixed build
2014-08-19 08:57 robert
* src/osgUI/Style.cpp: Fixed build
2014-08-14 19:00 robert
* include/osgUI/ComboBox, src/osgUI/ComboBox.cpp,
src/osgWrappers/serializers/osgUI/ComboBox.cpp: Added support for
ComboBox::currentIndexChanged*(uint) callback API.
2014-08-13 09:24 robert
* src/osgPresentation/deprecated/SlideShowConstructor.cpp: Resert
default value to 1.0
2014-08-08 16:42 robert
* src/osgPlugins/txp/ReaderWriterTXP.cpp: From Ryan Kawicki, "There
is an issue where the model insets of a terrex terrain are being
removed during the loading process. The issue is described below.
- the issue here is that the plugin is removing group nodes if
that group node only has one child. becuase transforms are also
group nodes, there were cases when the transform would have only
one child under it and would cause it to remove the translation
portion. this would cause all the vertex data to be loaded around
the last matrix operation, which in our case was the origin
(0,0,0).
We work off of OSG 2.8.1 but see that this has not been addressed
on latest yet. I’ve tested this against 2.8.1 and have cleanly
applied it to my local repository off of latest."
2014-08-08 16:34 robert
* src/osgUtil/RenderStage.cpp: From Tim George, "Currently there is
a problem with using a camera with a viewport with a non 0 offset
and also using an FBO. The problem is that only area made up of
the viewports width and height is drawn based on an offset of 0,0
instead of using the viewports offset.
It is caused by line 991 in RenderStage.cpp:
Code:
fbo_ext->glBlitFramebuffer(
0, 0, static_cast<GLint>(_viewport->width()),
static_cast<GLint>(_viewport->height()),
0, 0, static_cast<GLint>(_viewport->width()),
static_cast<GLint>(_viewport->height()),
blitMask, GL_NEAREST);
which is not taking into account the viewport x and y when
performing the blit. It probably should be:
Code:
fbo_ext->glBlitFramebuffer(
static_cast<GLint>(_viewport->x()),
static_cast<GLint>(_viewport->y()),
static_cast<GLint>(_viewport->width()) +
static_cast<GLint>(_viewport->x()),
static_cast<GLint>(_viewport->height()) +
static_cast<GLint>(_viewport->y()),
static_cast<GLint>(_viewport->x()),
static_cast<GLint>(_viewport->y()),
static_cast<GLint>(_viewport->width()) +
static_cast<GLint>(_viewport->x()),
static_cast<GLint>(_viewport->height()) +
static_cast<GLint>(_viewport->y()),
blitMask, GL_NEAREST);
"
Note from Robert Osfield, made small tweak to above on merge,
changing the width+x to x+width to make it read more naturally.
2014-08-08 16:09 robert
* src/osgUtil/MeshOptimizers.cpp: From Marc Helbling, "please find
a fix for the vertex pretransform visitor
(VertexAccessOrderVisitor).
The issue with current code is that arrays are collected *before*
duplicating shared arrays which leads to arrays that are
correctly duplicated but that are not reordered.
Also the submitted patch contains a small cleaning in
GeometryArrayGathrer as the _useDrawElements variable is not
used; it is only set in the GeometryArrayGathrer constructor and
VertexAccessOrderVisitor already checks that primitives have
indexed type."
2014-08-08 15:45 robert
* include/osg/Node: From Glen Waldron, "Node: patch for
remove*Callback() methods to resolve a crash"
2014-08-08 09:28 robert
* CMakeLists.txt, include/osg/Texture: Changes to support building
against ANDROID under OSX.
2014-08-05 18:32 robert
* include/osg/Callback, include/osgUI/LineEdit,
include/osgUI/Validator, src/osgUI/CMakeLists.txt,
src/osgUI/LineEdit.cpp, src/osgUI/Validator.cpp,
src/osgWrappers/serializers/osgUI/DoubleValidator.cpp,
src/osgWrappers/serializers/osgUI/IntValidator.cpp,
src/osgWrappers/serializers/osgUI/LineEdit.cpp,
src/osgWrappers/serializers/osgUI/Validator.cpp: Implemented
osgUI::Validator, IntValidator and DoubleValidator classes that
manage validation/specialization of LineEdit widgets to work with
just integer or double values.
2014-08-01 13:07 robert
* include/osgUI/LineEdit, src/osgUI/LineEdit.cpp: Implemented
callbacks for validate(), textChanged() and returnPressed()
2014-08-01 10:57 robert
* src/osgUI/ComboBox.cpp, src/osgUI/LineEdit.cpp,
src/osgUI/PushButton.cpp, src/osgUI/Widget.cpp: Moved
responsiblity for checking current event focus onto
Widget::handleImplementations().
Added support for closing CombinBox popup when the mouse is
clicked outside the popup or combobox widget.
2014-07-31 18:29 robert
* include/osg/NodeVisitor, src/osgUI/Widget.cpp,
src/osgUtil/CullVisitor.cpp, src/osgUtil/IntersectVisitor.cpp,
src/osgUtil/IntersectionVisitor.cpp,
src/osgUtil/UpdateVisitor.cpp,
src/osgWrappers/serializers/osg/NodeVisitor.cpp: Added
NodeVisitor::INTERSECTION_VISITOR VisitorType
2014-07-30 12:48 robert
* include/osgUI/Style, src/osgUI/ComboBox.cpp,
src/osgUI/Dialog.cpp, src/osgUI/Popup.cpp, src/osgUI/Style.cpp:
Fixed rendering of Popups
2014-07-30 12:47 robert
* CMakeLists.txt: Update SO version to account for new changes to
osg::StateSet and osgUI
2014-07-30 12:47 robert
* include/osg/StateSet, include/osg/Version,
include/osgUtil/CullVisitor,
src/osgWrappers/serializers/osg/StateSet.cpp: Added
StateSet::RenderBinMode::PROTECTED_RENDERBIN_DETAILS and
OVERRIDE_PROTECTED_RENDERBIN_DETAILS options.
2014-07-29 15:50 robert
* include/osgUI/ComboBox, src/osgUI/ComboBox.cpp: Added preliminary
icon to ComboBox.
2014-07-29 15:50 robert
* src/osgUI/LineEdit.cpp: Fixed debug comment
2014-07-29 15:50 robert
* include/osgUI/Style, src/osgUI/Style.cpp: Implemented prelimary
icon support allowing UI widget to place image and model based
icons on widgets
2014-07-29 15:47 robert
* src/osgUtil/Optimizer.cpp: Added catch for NULL Transform
pointers getting into the _transformMap.
2014-07-28 16:19 robert
* include/osg/ComputeBoundsVisitor,
src/osg/ComputeBoundsVisitor.cpp: Added handling of Drawables
added directly to scene graph without Geode decorating them.
2014-07-24 14:14 robert
* include/osgUI/LineEdit, src/osgUI/LineEdit.cpp,
src/osgUI/PushButton.cpp: Added support for changing background
colour of LineEdit widget when focus changes
2014-07-24 13:25 robert
* src/osgUI/ComboBox.cpp, src/osgUI/Dialog.cpp,
src/osgUI/LineEdit.cpp, src/osgUI/PushButton.cpp: Refined the
colouring of widget to be more in sync with the defaults used in
Qt.
2014-07-23 16:36 robert
* include/osgVolume/VolumeSettings,
src/osgPlugins/p3d/ReaderWriterP3D.cpp,
src/osgVolume/VolumeSettings.cpp,
src/osgWrappers/serializers/osgVolume/VolumeSettings.cpp: Added
VolumeSettings::Filename property.
2014-07-23 15:57 robert
* src/osgUI/Style.cpp: Changed the default text colour to black
2014-07-23 14:50 robert
* src/osgPlugins/lua/LuaScriptEngine.cpp: Added writeFile support
2014-07-23 10:49 robert
* src/osgPlugins/lua/LuaScriptEngine.cpp: Added
Node:getNumParents() and Node:getParent(index) support
2014-07-22 16:02 robert
* CMakeLists.txt, include/osg/State, include/osg/Version,
src/osg/State.cpp, src/osgUtil/SceneView.cpp: Removed
State::AppliedProgramObjectSet container and Obsever usage from
osg::State to address threading bug crash.
The State::AppliedProgramObjectSet wasn't ever being used
actively in the current rev of the OSG so populating and clearing
was no longer neccessary, allowing the code to be removed
completely.
2014-07-21 16:36 robert
* applications/osgviewer/osgviewer.cpp, include/osg/Types,
src/osgPlugins/ktx/ReaderWriterKTX.h,
src/osgPlugins/osg/BinaryStreamOperator.h,
src/osgPlugins/pvr/ReaderWriterPVR.cpp: Centralized the calling
of #include <stdint.h> and VS fallback into include/osg/Types
header
2014-07-21 14:32 robert
* src/osgUtil/CullVisitor.cpp: From Pjotr Svetachov, "I think I
spotted some unneeded ref_ptrs in the cullvisitor. The call
pushModelViewMatrix or pushProjectionMatrix will already keep the
reference when adding it to the MatrixStack. In
CullVisitor::apply
methods for the billboard and the camera you already take a
pointer
instead of a ref_ptr."
2014-07-21 13:45 robert
* src/osgText/Glyph.cpp: Added setting of glPixelStore before
glTexSubImage2D call.
2014-07-21 13:43 robert
* src/osgText/Glyph.cpp: From Jaap Gas, "I want to submit a bugfix
for a crash occurring in osgText/Glyph.cpp if
the scene tree contains (large) 2D textures from images with
STRIDE.
============================================================================
#0 0x00007fffe8ea4350 in __memmove_ssse3 () from /lib64/libc.so.6
#1 0x00007fffe52ced76 in ?? () from
/usr/lib64/libnvidia-glcore.so.310.44
#2 0x00007fffe52d8e86 in ?? () from
/usr/lib64/libnvidia-glcore.so.310.44
#3 0x00007fffe53dd8be in ?? () from
/usr/lib64/libnvidia-glcore.so.310.44
#4 0x00007fffe53c2643 in ?? () from
/usr/lib64/libnvidia-glcore.so.310.44
#5 0x00007fffe53c7fdd in ?? () from
/usr/lib64/libnvidia-glcore.so.310.44
#6 0x00007fffe53cbabf in ?? () from
/usr/lib64/libnvidia-glcore.so.310.44
#7 0x00007fffe53cc1fa in ?? () from
/usr/lib64/libnvidia-glcore.so.310.44
#8 0x00007ffff30092fd in osgText::GlyphTexture::apply
(this=0x1bb8cf0, state=
...)
at
/d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/src/osgText/Glyph.cpp:234
#9 0x00007ffff56c30b6 in osg::State::applyAttributeOnTexUnit
(this=0x125f180,
unit=0, attribute=0x1bb8cf0, as=...)
at
/d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/include/osg/State:1713
#10 0x00007ffff56c2f3f in osg::State::applyTextureAttribute
(this=0x125f180,
unit=0, attribute=0x1bb8cf0)
at
/d43/jaap/dev/jaapOSG/build/OpenSceneGraph3.3.1/include/osg/State:411
#11 0x00007ffff30204da in osgText::Text::drawTextWithBackdrop
(this=0x1baed70,
state=..., colorMultiplier=...)
==============================================================================
The crash disappears if I either (1) disable the use of images
with stride
in the (public) osgGeo-library, or (2) add the following bugfix
to Glyph.cpp.
This combination gives me the confidence that I understand where
this problem
originates from, without trying to understand the full OpenGL
details.
===============================================================================
@@ -221,7 +223,12 @@
imageData[i] = 0;
}
+ glPixelStorei(GL_UNPACK_ALIGNMENT,1);
+ #if !defined(OSG_GLES1_AVAILABLE) &&
!defined(OSG_GLES2_AVAILABLE)
+ glPixelStorei(GL_UNPACK_ROW_LENGTH,getTextureWidth());
+ #endif
+
// allocate the texture memory.
glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA,
getTextureWidth(), getTextureHeight(), 0,
================================================================================
I have copied (and adapted) the added lines above from the same
source file,
where they were used in front of a similar call to
glTexSubImage2D(.) around
line 515.
"
2014-07-21 12:21 robert
* src/osgPresentation/CMakeLists.txt,
src/osgPresentation/deprecated/SlideShowConstructor.cpp: Initial
work on integtasting osgUI into Present3D
2014-07-21 12:18 robert
* include/osg/NodeVisitor: Fixed indentation
2014-07-21 09:35 robert
* src/osgUI/Style.cpp: Added debug messages
2014-07-18 17:17 robert
* src/osgWrappers/serializers/CMakeLists.txt,
src/osgWrappers/serializers/osg/NodeVisitor.cpp,
src/osgWrappers/serializers/osgGA/EventVisitor.cpp,
src/osgWrappers/serializers/osgUtil,
src/osgWrappers/serializers/osgUtil/CMakeLists.txt,
src/osgWrappers/serializers/osgUtil/CullVisitor.cpp,
src/osgWrappers/serializers/osgUtil/UpdateVisitor.cpp: Added
serailizer support for NodeVisitor, UpdateVisitor, CullVisitor
and EventVisitor
2014-07-14 15:59 robert
* examples/osgpresentation/osgpresentation.cpp,
include/osgDB/Callbacks, include/osgDB/ReadFile,
include/osgDB/ReaderWriter, include/osgDB/Registry,
include/osgDB/WriteFile, src/osgDB/Callbacks.cpp,
src/osgDB/ReadFile.cpp, src/osgDB/ReaderWriter.cpp,
src/osgDB/Registry.cpp, src/osgDB/WriteFile.cpp,
src/osgPlugins/V8/ReaderWriterV8.cpp,
src/osgPlugins/lua/ReaderWriterLua.cpp,
src/osgPlugins/python/ReaderWriterPython.cpp: Added
readScript/writeScript methods to ReaderWriter
2014-07-14 14:09 robert
* CMakeLists.txt, examples/osgpresentation/osgpresentation.cpp,
include/osg/Version, include/osgDB/ClassInterface,
include/osgDB/PropertyInterface, src/osgDB/CMakeLists.txt,
src/osgDB/ClassInterface.cpp, src/osgDB/PropertyInterface.cpp,
src/osgPlugins/lua/LuaScriptEngine.cpp,
src/osgPlugins/lua/LuaScriptEngine.h: Renamed
osgDB::PropertyInterface to osgDB::ClassInterface to better
reflect it's functionality
2014-07-04 16:45 robert
* include/osgPresentation/deprecated/SlideShowConstructor,
include/osgVolume/Property, include/osgVolume/VolumeSettings,
src/osgPlugins/p3d/ReaderWriterP3D.cpp,
src/osgPresentation/deprecated/SlideShowConstructor.cpp,
src/osgVolume/Property.cpp, src/osgVolume/VolumeSettings.cpp:
Added preliminary support for writing VolumeSettings to disk from
within Present3D in response to pressing and releasing 'Ctrl-S'.
2014-07-03 16:36 robert
* src/osgVolume/Shaders/volume_accumulateSamples_iso_frag.cpp,
src/osgVolume/Shaders/volume_accumulateSamples_mip_frag.cpp:
Updated iso and mip shaders from OpenSceneGraph-Data.
2014-07-03 13:06 robert
* src/osgPlugins/osc/OscSendingDevice.cpp,
src/osgPresentation/deprecated/PropertyManager.cpp: Added virtual
destructors
2014-07-03 13:05 robert
* src/osgPlugins/osc/OscSendingDevice.cpp: Fixed line endings
2014-07-03 13:01 robert
* include/osgPresentation/deprecated/SlideShowConstructor,
src/osgPlugins/p3d/ReaderWriterP3D.cpp,
src/osgPresentation/deprecated/SlideShowConstructor.cpp: Changed
enum usage to use the new osgVolume::VolumeSettings versions and
added support for reading a VolumeSettings file.
2014-07-03 10:01 robert
* include/osgVolume/VolumeSettings,
src/osgVolume/VolumeSettings.cpp: Refactor VolumeSettings so that
it's subclassed from osgVolume::Property
2014-07-02 16:26 robert
* include/osgVolume/VolumeSettings,
src/osgPlugins/dds/ReaderWriterDDS.cpp,
src/osgVolume/CMakeLists.txt, src/osgVolume/VolumeSettings.cpp,
src/osgWrappers/serializers/osgVolume/VolumeSettings.cpp: Added
osgVolume::VolumeSettings object
2014-07-02 15:34 robert
* examples/osgvolume/osgvolume.cpp: Changed the default image
output format to .osgb as .dds isn't able to represent signed
byte, short and int data correctly.
2014-07-02 14:14 robert
* src/osgPlugins/osg/ReaderWriterOSG2.cpp: fixed handlng of file
type of nested files within a .osgx, .osgt and .osgb file.
2014-07-02 10:25 robert
* include/osgViewer/ViewerEventHandlers: From Laurens Voerman,
"just like ClusterCullingCallback (fixed in r14322) visual studio
likes an explicit implementation of run() for
InteractiveImageHandler.
The warning is (14 times):
include\osgViewer/ViewerEventHandlers(542): warning C4250:
'osgViewer::InteractiveImageHandler' : inherits
'osgGA::EventHandler::osgGA::EventHandler::run' via dominance
(src\osgViewer\StatsHandler.cpp)
include\osgGA/EventHandler(45) : see declaration of
'osgGA::EventHandler::run'
attached a zipped version of
include\osgViewer\ViewerEventHandlers"
2014-07-01 07:31 robert
* applications/osgviewer/osgviewer.cpp: Added #include <stdint.h>
to address compile issue on some Linux distro's.
2014-06-30 15:31 robert
* examples/osgvolume/osgvolume.cpp: Add dds no flip on write option
to prevent output of .dds volume from being flipped by the dds
plugin.
2014-06-30 13:24 robert
* src/osgPlugins/3ds/WriterNodeVisitor.cpp: REmoved debug cout
2014-06-30 10:13 robert
* include/osgUtil/StateGraph: From Mikhail Izmestev, "Attached fix
to avoid vector reallocs on push_back in
StateGraph::moveStateGraph."
2014-06-30 09:12 robert
* AUTHORS.txt, ChangeLog: Updated ChangeLog and AUTHORS file
2014-06-30 08:56 robert
* CMakeLists.txt, include/osg/Version: Updated version number
2014-06-30 08:46 robert
* include/osg/Image: From Pjotr Svetachov, "Here is a small fix for
a overflow when editing large 3d volume data."
2014-06-30 08:20 robert
* src/osgPlugins/svg/ReaderWriterSVG.cpp: Removed space from
#include.
2014-06-30 07:37 robert
* src/osgPlugins/svg/ReaderWriterSVG.cpp: From Alexander
Sinditskiy, build fix to allow building against versions older
than librsvg-2.36.2
2014-06-28 06:22 robert
* include/osg/ClusterCullingCallback: Replaced using
NodeCallback::run with explict run() implementation.
2014-06-27 15:57 robert
* src/osgPlugins/ive/DataOutputStream.cpp: From Pjotr Svetachov, "I
made a small change to DataOutputStream.cpp which makes saving
Geodes possible again. This is only half a fix as it only will
save a Drawable that is part of a Geode. But this change does not
require a version bump of the .ive format. I tried it with a few
datasets we have here with the 3.2 stable branch and the trunk
with this patch and there was no difference in the .ive files
that were produced."
2014-06-27 15:55 robert
* src/osgUtil/DelaunayTriangulator.cpp: Removed unused method.
2014-06-27 15:48 robert
* src/osgUtil/Tessellator.cpp: From Laurens Voerman, "attached is a
modified version of src/osgUtil/Tessellator.cpp
current code checks for a Nullpointer and on notify level info or
above will inform you with a crash, by dereferencing it."
2014-06-27 15:39 robert
* AUTHORS.txt: Updated AUTHORS file
2014-06-27 15:38 robert
* src/osg/ApplicationUsage.cpp: Added an OSG_INIT_SINGLETON_PROXY
to make sure that the ApplicationUsage singleton gets intialized
before usage.
2014-06-27 15:36 robert
* AUTHORS.txt: Updated AUTHORS file
2014-06-27 15:30 robert
* include/osg/Camera, src/osg/GraphicsContext.cpp,
src/osgViewer/CompositeViewer.cpp, src/osgViewer/Viewer.cpp:
Added a render order sort to the list of Cameras being tested by
the *Viewer::generatePointerData(..) method to ensure that the
highest Camera gets focus.
_______________________________________________ osg-users mailing list osg-...@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Hi All,
Hi Sebastian,
I haven't had chance to try and reproduce the bug yet. The description sounds like there an initialization order issue with the osg::State. In theory the osg::State object now does the initalization, and the osg::GraphicsContext on the first makeCurrent() should ensure that it's set up correctly, in theory this should be the first set of OpenGL calls made.
What is application you are testing within? What is the platform?
Windows 7, VisualStudio 2010.
It is crashing in a minimal application as well as using osgviewer.
Have you tried to use my minimal database?
It reproduces the crash when loading it with the osgviewer and stiring around with the mouse a bit. (Also take a look at the attached picture: It shows a messed up State)
I was able to fix the crash by removing the GLExentsions::Set(contextId,0) in the State destructor. But this seems plain wrong. I suspect on my platform, the State is cleared and reinitialized for some reason.
When I can spent some time on this, I can try to create a minimal example. Just out of curiosity: Is there any reason for the State to remove the extensions for the ContextID? I suspect there is only one State per Context, which seems ok, but I cannot grasp, why it is released in my scenario.
Also I had problems after the fix loading other databases; It seems the range lists in paging are invalid. It randomly displays the wrong tiles with wrong facing. I'll try to hunt this down too.
Any suggestions how to narrow down the problem on my side?
Hi Sebastian,
On 19 January 2015 at 21:42, Sebastian Messerschmidt <sebastian.m...@gmx.de> wrote:
Windows 7, VisualStudio 2010.
It is crashing in a minimal application as well as using osgviewer.
Thanks for the additional details.
Have you tried to use my minimal database?
Haven't tried yet, will try this morning once I've got through my email and admin work.
It reproduces the crash when loading it with the osgviewer and stiring around with the mouse a bit. (Also take a look at the attached picture: It shows a messed up State)
I was able to fix the crash by removing the GLExentsions::Set(contextId,0) in the State destructor. But this seems plain wrong. I suspect on my platform, the State is cleared and reinitialized for some reason.
When I can spent some time on this, I can try to create a minimal example. Just out of curiosity: Is there any reason for the State to remove the extensions for the ContextID? I suspect there is only one State per Context, which seems ok, but I cannot grasp, why it is released in my scenario.
The design is meant to have the osg::State created by an osg::GraphicsContext and managed through the lifetime of that GraphicsContext. One shouldn't in theory be creating osg::State or destroying osg::State outside of this context usage.
Something somewhere is obviously trying to do it's own thing w.r.t osg::State, right now I don't know where this might be.
Also I had problems after the fix loading other databases; It seems the range lists in paging are invalid. It randomly displays the wrong tiles with wrong facing. I'll try to hunt this down too.
Any suggestions how to narrow down the problem on my side?
What do you mean by range lists? You'll need to send me a screen shot.
Robert.
I will now focus on why the stats is causing a crash as it's something I can reliably recreate and get a stack trace from. Fixing this might address or reveal what other things are going amiss.
Hi,
If it's of any help I've observed pretty much the same thing, when using the old geometrytechnique (win 7 VS2010). I've tried with .osgb and .ive vpb generated terrain databases.
With a singlethreaded viewer it seems to work although crashes when opening the stats.
With a multithreaded viewer though I consistently get a crash in osg::State during the first frame.
Cheers
Jamie
Code:
osg115-osgd.dll!osg::State::bindVertexBufferObject(osg::GLBufferObject * vbo) Line 516 C++
osg115-osgd.dll!osg::State::setVertexPointer(const osg::Array * array) Line 666 C++
osg115-osgd.dll!osg::Geometry::drawVertexArraysImplementation(osg::RenderInfo & renderInfo) Line 789 C++
osg115-osgd.dll!osg::Geometry::drawImplementation(osg::RenderInfo & renderInfo) Line 741 C++
osg115-osgd.dll!osg::Drawable::draw(osg::RenderInfo & renderInfo) Line 582 + 0x16 bytes C++
osg115-osgUtild.dll!osgUtil::RenderLeaf::render(osg::RenderInfo & renderInfo, osgUtil::RenderLeaf * previous) Line 81 + 0x19 bytes C++
osg115-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo & renderInfo, osgUtil::RenderLeaf * & previous) Line 487 + 0x19 bytes C++
osg115-osgUtild.dll!osgUtil::RenderStage::drawImplementation(osg::RenderInfo & renderInfo, osgUtil::RenderLeaf * & previous) Line 1402 C++
osg115-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo & renderInfo, osgUtil::RenderLeaf * & previous) Line 430 + 0x17 bytes C++
osg115-osgUtild.dll!osgUtil::RenderStage::drawInner(osg::RenderInfo & renderInfo, osgUtil::RenderLeaf * & previous, bool & doCopyTexture) Line 933 C++
osg115-osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo & renderInfo, osgUtil::RenderLeaf * & previous) Line 1241 + 0x1b bytes C++
osg115-osgUtild.dll!osgUtil::SceneView::draw() Line 1379 + 0x37 bytes C++
osg115-osgViewerd.dll!osgViewer::Renderer::draw() Line 750 + 0xf bytes C++
osg115-osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext * __formal) Line 910 + 0xf bytes C++
osg115-osgd.dll!osg::GraphicsContext::runOperations() Line 771 + 0x33 bytes C++
osg115-osgd.dll!osg::RunOperations::operator()(osg::GraphicsContext * context) Line 137 + 0xf bytes C++
osg115-osgd.dll!osg::GraphicsOperation::operator()(osg::Object * object) Line 53 + 0x19 bytes C++
osg115-osgd.dll!osg::OperationThread::run() Line 431 + 0x26 bytes C++
osg115-osgd.dll!osg::GraphicsThread::run() Line 41 C++
ot20-OpenThreadsd.dll!OpenThreads::ThreadPrivateActions::StartThread(void * data) Line 113 + 0xf bytes C++
msvcr100d.dll!_callthreadstartex() Line 314 + 0xf bytes C
msvcr100d.dll!_threadstartex(void * ptd) Line 297 C
kernel32.dll!76e4338a()
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=62397#62397
Hi Robert,
Did you have a chance to look into this?
with osgb/t serialization problems solved, are there any plans to adress the osgTerrain-Issues regarding the state-problem/missing tiles?
Basically I need a clear way to recreate problems.
But you had the issues with strange missing tiles too, right? (see the email from the January 20th.
Recompiling would be my total last Option, as it would take a week or more.
I've sent you some compiled database [1] for checking, but you were busy with shader composition.
Basically I need a clear way to recreate problems.
https://drive.google.com/file/d/0Bz3BDTPpY5sxekZhd1ZMU2VSYkU/edit
Also the first database sent (opening this thread) will be totally messed. (culling goes crazy and sometimes stats display will be garbage).
I know it would be totally better to recompile the databases, but I cannot do this with any minor release unfortunately, since it it simply takes a lot of resources.
Hi Sebastian,
On 26 February 2015 at 11:53, Sebastian Messerschmidt <sebastian.m...@gmx.de> wrote:
But you had the issues with strange missing tiles too, right? (see the email from the January 20th.
With svn/trunk I don't see any issues with the 3D.z database, just the warning about NULL Transforms that was present in OSG-3.2.2 as well.
Have you tried latest svn/trunk?
Recompiling would be my total last Option, as it would take a week or more.
Are talking about your database or your checkout of the OSG.
I've sent you some compiled database [1] for checking, but you were busy with shader composition.
Basically I need a clear way to recreate problems.
https://drive.google.com/file/d/0Bz3BDTPpY5sxekZhd1ZMU2VSYkU/edit
Also the first database sent (opening this thread) will be totally messed. (culling goes crazy and sometimes stats display will be garbage).
I know it would be totally better to recompile the databases, but I cannot do this with any minor release unfortunately, since it it simply takes a lot of resources.
Well I've done what I can, various bugs have been fixed along the way. The database you've provided is working as far as I can tell.
It's really now up to you to test at your end. Recompiling the OSG should not take "a lot of resources". I recompiled the fresh builds of the OSG under Windows and Linux this morning is prep for OSG-3.3.4, it didn't take me a week.
'm not talking recompiling OSG. I'm referring to the re-attached database from the start of this thread, which is a downscaled version of my huge database, and shows problems with culling and somehow cripples the stats-viewer.
They worked for quite a while and got broken with the new 3.3.3/4 trunks.
Sorry, if there is some misunderstanding of some kind. I tryed to debug what is going on but I'm simply clueless and I somehow would expect the attached database to still work.
I quite literally can't keep afford to chasing this stuff up with so little to go on.
It worked with older osg-versions, so database generation can be rules out. It stopped working with the 3.3.3 developer release.
It is visible only from the back-side, so stirring around with the mouse will display it. The information is in the thread, so I can only try to resummarize, what is going on.
Any idea what might got broken on the way?
With all due respect, and I have a lot for your work, I don't think that unintentional incompatibilities regarding the format can be tolerated.
In retrospective you encouraged me and others to try the trunk, and there we are ... I found a couple of bugs and tried to give as much detail and context as possible here - and also I offered to do whatever needed t chase down the bug.
I do understand, that you cannot spend your time on chasing arbitrary bugs, with no samples, context etc. provided, but please try to see it from my point of view: Things got broken, and I don't know how to fix them.
You don't seem to like my name ;-)Hi Stephan,
CheersRobert.
Hi Robert,
You don't seem to like my name ;-)Hi Stephan,
The fix works great! All older VPB-databases are running smoothly again, saving us weeks of compilation. Where can I donate? :-)