Commit Graph

589 Commits

Author SHA1 Message Date
Robert Osfield
189e4e3a64 Implemented StateGraph reuse in in scene graph Canera's RenderStage. 2018-05-23 14:30:31 +01:00
Robert Osfield
1476f829c4 Introduced a local StateGraph hierarchy into CullVisitor::apply(osg::Camera&) and RenderBin to fixed RTT Camera bug where multiple RTT Camera end up with the rendering back end results assigned to them which occured when RTT Camera's share the same StateSet or null StateSet. 2018-05-18 10:00:10 +01:00
Robert Osfield
510a231e14 Renamed the counter used to enable traversal order sorting 2018-05-14 08:43:08 +01:00
Robert Osfield
00a946bc2e Removed _traverseNumber variable that was duplicating the one in NodeVisitor base class 2018-05-13 09:18:31 +01:00
Alberto Luaces
02c310982e Fix typos and spelling. 2018-04-23 11:03:37 +01:00
Robert Osfield
709194c88c Replaced osgUtil::IntersectVisitor usage with osgUtil::InteresectionVisitor 2018-04-20 14:32:34 +01:00
Robert Osfield
7bda8083fb Added osgUtil::optimizeMesh(osg::Node* node) convinience method 2018-04-20 11:48:39 +01:00
Robert Osfield
4447190dd6 Refactored osgUtil::ShaderGen to use #pragma(tic) shader composition. 2018-03-14 08:22:45 +00:00
Robert Osfield
d313184cd0 Added fine grained checking for GL errors in the GLObjectVisitor so that the OSG's default pre compile stage provides better feesback on any GL errors. 2017-12-06 09:51:57 +00:00
OpenSceneGraph git repository
1126812f8f Merge pull request #372 from openscenegraph/text_improvements
Text improvements, introducing implementation of Signed Distance Function texture generation and new shaders for outlines and shadows replacing old multi-pass approach
2017-10-26 14:26:01 +01:00
Robert Osfield
248805fedd Fixed pre compilation osg::Program state leaking into the main scene graph rendering 2017-10-25 16:13:26 +01:00
Hartwig
41e9cd3157 Replacement of commas with semicolons 2017-10-22 15:04:33 +02:00
Julien Valentin
f97b1626b3 fix nodevisitor construction 2017-08-21 18:33:56 +02:00
luzpaz
2cd31f65e4 misc. typo fixes
mostly non-user-facing but some doxy.
2017-08-15 12:23:49 -04:00
Robert Osfield
badb914d46 Tidied up spacing 2017-05-25 08:56:53 +01:00
Robert Osfield
5f446e0022 Fixed naming of OSG_USE_DEPRECATED_API 2017-05-25 08:48:45 +01:00
Robert Osfield
a60aed70b5 Replaced DimensionMask naming with more appropriate PrimitiveMask nameing. 2017-05-24 18:36:52 +01:00
Robert Osfield
265efb85a1 Initial work on adding KdTree support for PolytopeIntersector. 2017-05-11 15:25:10 +01:00
Robert Osfield
a95d66a587 Replaced dynamoc_cast<osg::CullStack*> with asCullStack() to improve performance of AutoTransform, screen size based LOD and PagedLOD. 2017-04-26 17:10:58 +01:00
scrawl
e0f7d3241a Fix MergeGeometryVisitor to work with a Group instead of Geode 2017-02-24 01:05:57 +01:00
scrawl
6deefe0646 Remove seemingly redundant handling of Geode in GLObjectsVisitor 2017-02-03 18:10:37 +01:00
scrawl
e38c3d0303 Fix handling of in-scenegraph Drawables in SmoothingVisitor, TriStripVisitor and GraphicsCostEstimator 2017-02-03 17:55:55 +01:00
scrawl
4e1a2d3246 Fix handling of in-scenegraph Drawables in ShaderGenVisitor 2017-02-03 17:51:03 +01:00
scrawl
e48aa118b6 Fix handling of in-scenegraph Drawables in MeshOptimizers 2017-02-03 17:48:18 +01:00
scrawl
c901694290 Fix handling of in-scenegraph Drawables in DrawElementTypeSimplifier 2017-02-03 17:43:42 +01:00
scrawl
853418db94 Remove redundant handling of Geode in DisplayRequirementsVisitor 2017-02-03 17:42:21 +01:00
scrawl
a858b2a2cd Add a comment explaining some confusing code in UpdateVisitor and EventVisitor 2017-02-03 17:39:56 +01:00
scrawl
a13b66135f Fix handling of in-scenegraph drawables in osgUtil::Simplifier 2017-02-03 17:35:40 +01:00
scrawl
f13fbff251 Remove CheckGeometryVisitor which was a no-op 2017-01-20 23:02:15 +01:00
scrawl
4a05caf4f7 MakeFastGeometryVisitor: fix handling of Geometries that are directly in the scene graph not attached to a Geode 2017-01-20 23:01:04 +01:00
scrawl
833f37ea57 StateVisitor: remove redundant code for Geode handling 2017-01-20 22:49:17 +01:00
scrawl
f229b19496 TessellateVisitor: fix handling of Geometries that are directly in the scene graph not attached to a Geode 2017-01-20 22:47:51 +01:00
scrawl
41cbf9a45e FlattenStaticTransformsVisitor: fix handling of Drawables that are directly in the scene graph not attached to a Geode 2017-01-20 22:43:58 +01:00
scrawl
ff1a9a195a StaticObjectDetectionVisitor: make use of apply(Drawable) visitor function 2017-01-20 21:48:45 +01:00
scrawl
764b2f60c6 TextureAtlasVisitor: fix handling of Drawables that are directly in the scene graph not attached to a Geode 2017-01-20 21:47:21 +01:00
scrawl
dc2689f779 TextureVisitor: remove redundant code for Geode handling 2017-01-20 21:47:13 +01:00
scrawl
7611f95078 RemoveEmptyNodesVisitor: remove redundant code for Geode handling 2017-01-20 21:46:03 +01:00
Robert Osfield
b04271f93e Fixed crash in handling of an osg::Callback attached to a Drawable as update callback.
Added handling of osg::Callback when attavhed to a Drawable as a cull callback.
2016-11-23 18:19:59 +00:00
Robert Osfield
961bffcca4 Added automatic assignment of _markerObject to CompileSet. 2016-10-11 11:29:29 +01:00
Robert Osfield
9d9025a6b4 Changed the default paramter for the osgUtil::StateToCompile to retain the OSG-3.4 ABI and fixed indentation. 2016-08-15 12:13:07 +01:00
Robert Osfield
06cb31a3d2 Added automatic assignment of _markerObject to CompileSet. 2016-08-15 11:46:48 +01:00
Robert Osfield
fd0af1d9df Added Optimizer::BufferObjectVisitor and associated BUFFER_OBJECT_SETTINGS value to enable it via the OSG_OPTIMZIER env var.
The BufferObjectVisitor enbales vertex buffer objects usage on Drawable in the scene graph.
2016-07-11 09:52:07 +01:00
Marc Helbling
da47f8a156 Adds an indexMesh option to disable mesh reindexation
This mainly breaks gles/osgjs when stripifying a MorphGeometry. It also
usually doesn't make sense to reindex an already indexed mesh.
2016-07-01 18:12:36 +02:00
Alberto Luaces
260cbab518 Typo fixes 2016-05-30 12:30:05 +01:00
Robert Osfield
7b34ca0a39 Added using to quieten warning 2016-04-29 10:39:57 +01:00
Robert Osfield
1219a6d3bf Added more osg::Object::as*() methods and usage of these through the code base to avoid use of dynamic_cast<> when using UpdateVisitor/CullVisitor/EventVIisitor etc. 2016-01-20 15:13:19 +00:00
Robert Osfield
340615de55 Replaced dynamic_cast<*Callback> with as*Callback() implementation/usage. 2016-01-18 19:04:28 +00:00
Robert Osfield
7409820a8f Added Simplifier::requiresDownSampling()/requiresDownSamplingImplementation() to make it possible for the
Simplfifer::ContinueSimplificationCallback to be able to decide whether up or downsampling is required,
removing the previous hardwards reliance on getSampleRatio<1.0.
2016-01-18 11:50:07 +00:00
Robert Osfield
dd996a3289 Introduced CMake option OSG_PROVIDE_READFILE option that defaults to ON, but when switched to OFF disables the building of the osgDB::read*File() methods,
forcing users to use osgDB::readRef*File() methods.  The later is preferable as it closes a potential threading bug when using paging databases in conjunction
with the osgDB::Registry Object Cache.  This threading bug occurs when one thread gets an object from the Cache via an osgDB::read*File() call where only
a pointer to the object is passed back, so taking a reference to the object is delayed till it gets reassigned to a ref_ptr<>, but at the same time another
thread calls a flush of the Object Cache deleting this object as it's referenceCount is now zero.  Using osgDB::readREf*File() makes sure the a ref_ptr<> is
passed back and the referenceCount never goes to zero.

To ensure the OSG builds when OSG_PROVIDE_READFILE is to OFF the many cases of osgDB::read*File() usage had to be replaced with a ref_ptr<> osgDB::readRef*File()
usage.  The avoid this change causing lots of other client code to be rewritten to handle the use of ref_ptr<> in place of C pointer I introduced a serious of
templte methods in various class to adapt ref_ptr<> to the underly C pointer to be passed to old OSG API's, example of this is found in include/osg/Group:

    bool addChild(Node* child); // old method which can only be used with a Node*

    tempalte<class T> bool addChild(const osg::ref_ptr<T>& child) { return addChild(child.get()); } // adapter template method

These changes together cover 149 modified files, so it's a large submission. This extent of changes are warrent to make use of the Object Cache
and multi-threaded loaded more robust.



git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15164 16af8721-9629-0410-8352-f15c8da7e697
2015-10-22 13:42:19 +00:00
Robert Osfield
7aae720636 Refactored the way that FrameStamp is managed in osgViewer::Renderer to avoid thread conflicts
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15138 16af8721-9629-0410-8352-f15c8da7e697
2015-09-25 10:09:27 +00:00