Commit Graph

4518 Commits

Author SHA1 Message Date
Robert Osfield
611b7afb07 Added OSG_EXPORT 2016-10-11 11:29:29 +01:00
Robert Osfield
56ed225f17 Removed Particle::Shape support for QUAD_TRIANGLESTRIP, HEXAGON, USER as these are unlikely to be used as their implementation prevents refactoring to use vertex array code paths 2016-10-11 11:29:29 +01:00
Robert Osfield
c637010c9d Refactored ImpostorSprite so that it no longer uses GLBeginEndAdapter 2016-10-11 11:29:29 +01:00
Robert Osfield
7c432fbe11 Refactored osgSim::SphereSegment so that it no longer uses GLBeginEndAdapter 2016-10-11 11:29:29 +01:00
Robert Osfield
e5ab4355be Added osg::convertShapeToGeometry(...) convinience functions for creating osg::Geometry from osg::Shape descriptions. 2016-10-11 11:29:29 +01:00
Robert Osfield
83b5cabac9 Refactored ShapeDrawable so that it is subclassed from osg::Geometry rather than osg::Drawable.
Created a BuildShapeGeometryVisitor visitor that can create osg::Geometry for osg::Shape objects
2016-10-11 11:29:29 +01:00
Robert Osfield
f842750342 Removed no longer used member variables 2016-10-11 11:29:29 +01:00
Robert Osfield
65884f296b Removed no longer used data structures 2016-10-11 11:29:29 +01:00
Robert Osfield
16da432be3 Moved FOG_COORD and SECONDARY_COLOR #define's from State header into VertexArrayState.cpp 2016-10-11 11:29:29 +01:00
Robert Osfield
359b136b5e Added check against State::useVertexBufferObjects(..) so that Display Lists are only used when VBO is OFF. 2016-10-11 11:29:29 +01:00
Robert Osfield
961bffcca4 Added automatic assignment of _markerObject to CompileSet. 2016-10-11 11:29:29 +01:00
Robert Osfield
94891778c4 Restructred the enabling of vertex array object support to allow one to set enable the default via osg::State.
Added OSG_VERTEX_BUFFER_HINT env var to osg::DisplaySettings with VERTEX_BUFFER_OBJECT/VBO, VERTEX_ARRAY_OBJECT/VAO and NO_PREFERENCE to allow one to foce on VBO or VAO usage.

Restructred BufferObject assigned in osg::Geometry

Added
2016-10-11 11:29:29 +01:00
Robert Osfield
ee31921520 Streamlined State::_is*Supported variables 2016-10-11 11:29:29 +01:00
Robert Osfield
1d75089bf8 Build fixes when compiling wuth CMake options OPENGL_PROFILE set to GLCORE 2016-10-11 11:29:29 +01:00
Robert Osfield
e3c663bb02 Removed deprecated code paths and moved implementations into headers 2016-10-11 11:29:29 +01:00
Robert Osfield
bf28e2d037 Refactored the VertexArrayState's handling of vertex attribute aliasing 2016-10-11 11:29:29 +01:00
Robert Osfield
1f147f6bc6 Moved implementations from .cpp's to headers as inline methods to improve performance. 2016-10-11 11:29:29 +01:00
Robert Osfield
97df15b205 Improved naming of createVertexArrayState(..) method 2016-10-11 11:29:29 +01:00
Robert Osfield
83f73df814 Added State::useVertexArrayObject() member to streamline toggling on/off of VAO usage 2016-10-11 11:29:29 +01:00
Robert Osfield
a4e682bb28 Added support for clean up Vertex Array Objects 2016-10-11 11:29:29 +01:00
Robert Osfield
4131d2da34 Added intialization of the VAO in Geometry::compileGLObjects() and refined the invocation of updates to the VAO 2016-10-11 11:29:29 +01:00
Robert Osfield
078598872f Added lazy setting of arrays for osg::Geometry using vertex_array_object 2016-10-11 11:29:29 +01:00
Robert Osfield
4b4cd13d31 Implemented lighter weight setting of the CurrentVertexArrayState and introduced GlobalVertexArrayState. 2016-10-11 11:29:29 +01:00
Robert Osfield
7d83d735ad Implemented a different approach to vertex array object support to enable creation of a single global vertex array object as well as provide individual vertex array objects per Drawable when required. 2016-10-11 11:29:29 +01:00
Robert Osfield
4d8a29b987 Added ability to initializer GL vertex array object id with Geometry::compileGLObjects().
Improved the handling of buffer object state when not using VAO's
2016-10-11 11:29:29 +01:00
Robert Osfield
14d1483b06 Experimental support for OpenGL Vertex Array Object 2016-10-11 11:29:29 +01:00
scrawl
295742c0d7 Fix typo in processor affinity API 2016-10-10 18:02:38 +02:00
Robert Osfield
7ba7b13aa0 Fixed VisualStudio warning
Added local implementation of asEventHandler()
2016-10-07 14:51:39 +01:00
Robert Osfield
268d89c426 Fixed VisualStudio warning
Added local implementation of asEventHandler()
2016-10-07 14:45:33 +01:00
Robert Osfield
91538d90f8 Added ViewerBase::s/getUseConfigureAffinity(bool flag) to allow users to toggle whether they want the ViewerBase::setUpThreads() method to call ViewerBase::configureAffinity() or not. 2016-10-07 12:17:03 +01:00
Robert Osfield
ee97db3488 Introduced OpenThreads::Affinity support into osg::Camera, osg::GraphicsContext::Traitse, osgDB::DatabasePager and osgViewer::ViewerBase/Viewer/CompositeViewer.
Added ViewerBase::configureAffinity() to help with the setting of the affinity of camera, graphics context and pager threads
2016-10-07 12:17:03 +01:00
Robert Osfield
77c5e96ccb Added DatabasePager::setProcessorAffinity(const OpenThreads::Affinity&) support to allow the database threads to have affinity to user controls sets of CPU cores. 2016-10-07 12:17:03 +01:00
Robert Osfield
00aac43cdb Added missing export 2016-10-07 12:17:03 +01:00
Robert Osfield
bc44da49e6 Introduced new OpenThreads::Affinity class to wrap up specification of thread affinity.
Simplified the OpenThreads::SetProcessorAffinityOfCurrentThread/Thread::SetProcessorAffinity() to utilize the new Affinity class
2016-10-07 12:17:03 +01:00
Robert Osfield
0f8a5a86e2 Introduced OpenThreads::SetProcessorAffinityMaskOfCurrentThread(unsigned long cpumask) and Threads::setProcessorAffinityMask(unsigned long cpumask) to allow finer grained control over the CPU affinity. 2016-10-07 12:17:03 +01:00
Robert Osfield
8de4c76582 Fixed crash and double call bug in handle event callbacks attached to Drawable 2016-10-06 18:27:23 +01:00
Robert Osfield
56a7208891 Removed Qt dependency examples, osgQt NodeKit and qfont plugin as these are now provided by the separate osgQt project 2016-09-26 09:31:22 +01:00
Robert Osfield
b0df75e674 Cleaned up the spacing and const of various method parameters.
Added non const versions of StateSet::getAttributePair() and getTextureAttributePair()
2016-09-20 17:01:26 +01:00
OpenSceneGraph git repository
b75546acaf Merge pull request #131 from filnet/master
StandardManipulator: use proper bit mask when clearing a relative flag
2016-09-15 07:50:51 +01:00
Philippe Renon
e367792f6d StandardManipulator: use proper bit mask when clearing a relative flag 2016-09-14 14:32:35 +02:00
Laurens Voerman
55b8c380d8 wrong Meta_Shape tag in ConvexHull 2016-09-12 16:49:35 +02:00
Robert Osfield
cb6e6ff2be Fixed warnings, deprecated another out of date method 2016-09-05 15:35:54 +01:00
Robert Osfield
a494cd71e8 Fixed typo 2016-09-05 07:59:15 +01:00
Robert Osfield
79ff8ba273 Merge branch 'Submissions2e' of https://github.com/LaurensVoerman/OpenSceneGraph into LaurensVoerman-Submissions2e 2016-09-02 18:26:11 +01:00
OpenSceneGraph git repository
14bdadaf86 Merge pull request #123 from LaurensVoerman/Submissions2f
Submissions2f
2016-09-02 17:44:57 +01:00
OpenSceneGraph git repository
8d827ced1b Merge pull request #117 from LaurensVoerman/Submissions2a
bugfix: wrong class name in META_Object macro for osg::Enablei /disable
2016-09-02 17:35:47 +01:00
OpenSceneGraph git repository
def6508308 Merge pull request #118 from LaurensVoerman/Submissions2b
fix colliding include guards and spurious #define OSGUI_EXPORT
2016-09-02 17:34:20 +01:00
Laurens Voerman
1da43a5960 added copyconstructor for osgAnimation::BasicAnimationManager 2016-08-29 13:03:36 +02:00
Laurens Voerman
628f8fd9dc added call to copy constructor for virtual base classes in copy constructor of derived classes, removed these for abstract classes 2016-08-29 10:41:40 +02:00
Laurens Voerman
ca877a8424 fix colliding include guards and spurious #define OSGUI_EXPORT 2016-08-29 09:40:21 +02:00
Laurens Voerman
dd223002dd bugfix: wrong class name in META_Object macro for osg::Enablei osg::Disablei 2016-08-29 09:37:14 +02:00
Robert Osfield
0ad09d6dad Fixed unused variable warnings 2016-08-26 19:18:00 +01:00
Robert Osfield
322adc266c Merge branch 'master' of https://github.com/openscenegraph/OpenSceneGraph 2016-08-26 18:00:52 +01:00
Robert Osfield
11ddd53eb4 Removed redundent Referenced::s/getThreadSafeReferenceCounting() and associated static and env vars as there are now inapprorpiate and no longer supported 2016-08-26 17:59:30 +01:00
James Turner
ea9f479674 Attempt to fix broken DLL exports from osgDB
Only export the osgDB method implementations, instead of the entire
class, and hence avoid exporting symbols from the base class, which
then conflict with other compilation units when linking.

This avoids the need for /FORCE:MULTIPLE linker option with MSVC.
2016-08-15 22:21:44 +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
Robert Osfield
74f1cc1ec4 Improved casting to address crashes when handling classes that use virtual inheritance. 2016-07-06 11:36:47 +01:00
Robert Osfield
dce1473a53 Seperated out the scene->requiresRedraw() method into a osgViewer::Viewer::requiresRedraw() method to make the functionality clearer and easier to override. 2016-07-05 11:54:31 +01:00
Philippe Renon
22d53357d3 split requiresUpdateSceneGraph() into requires update and requires redraw (wip) 2016-07-04 23:19:20 +02:00
Julien Valentin
36930dcd18 Added serializer support for RigTransforms 2016-07-04 20:19:58 +01:00
Robert Osfield
82ab389fd6 Added Vec2,3,4 for b, ub, s, us, i, ui. 2016-07-04 13:36:28 +01:00
Julien Valentin
50f6cf6a69 Added missing xzyw accessor to Vec4ub 2016-07-04 10:01:17 +01:00
Robert Osfield
b7bf94b4c6 Added const 2016-07-02 14:45:10 +01:00
Robert Osfield
7a63538fb9 Removed inappropriate use of Vec3us in osgAnimation as this relies upon nonexistant functionality in Vec3us and in general just doesn't make sense to attempt to use float point maths with a unsigned short. 2016-07-02 10:44:40 +01:00
OpenSceneGraph git repository
9ae4a4fc27 Merge pull request #95 from marchelbling/tristripvisitor_index_option
Adds an indexMesh option to disable mesh reindexation
2016-07-01 18:07:16 +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
Marc Helbling
43443928d0 Updates osgAnimation
This updates is mainly for the gles plugint to work correctly.

* adds Quaternion array
* reintroduces `KeyframeContainer::linearInterpolationDeduplicate`
* fixes MorphGeometry OSG serialization (target names)
2016-07-01 17:04:15 +02:00
Björn Blissing
ed7d49c5d2 CleanUpOperation added to Viewer
Sometimes there is need to do cleanup with valid graphic contexts
before closing these contexts. The added operation runs a graphics
operation on each context before closing them.
2016-06-30 22:09:22 +02:00
Robert Osfield
990c04d4b9 Moved the scene related requiresUpdateSceneGraph() implementation details from View into Scene.
Added check against the ImagePager.
2016-06-29 15:34:11 +01:00
OpenSceneGraph git repository
48c1d0e8da Merge pull request #81 from filnet/checkneedtodoframe
refactor common code from CompositeViewer::checkNeedToDoFrame() and Viewer::checkNeedToDoFrame() into View
2016-06-29 15:15:31 +01:00
Robert Osfield
00b1173e70 Added osg::ScissorIndexed that wraps up glScissorIndexed function 2016-06-29 15:11:02 +01:00
Robert Osfield
412e9fc3dd Added osg::DepthRangeIndexed class to wrap up glDepthRangeIndexed functionality. 2016-06-29 12:28:28 +01:00
Robert Osfield
8d7d5d12a1 Added osg::ViewportIndexed that adds support for glViewportIndexed 2016-06-29 11:26:54 +01:00
Laurens Voerman
ec74518868 Added glViewerArray, glSissorArray, glDepthRangeArray etc. GL extension support 2016-06-29 09:53:04 +01:00
Robert Osfield
5c25a3a0ea Added initializers 2016-06-27 15:06:54 +01:00
Robert Osfield
27595e9f02 Added initializers 2016-06-27 14:53:32 +01:00
Julien Valentin
c8a7ce4e52 Rolbacked RigGeometry with the hackyfix (I just add the compute boundcallback in the copy consturctor)
Modified headers of RigTransforms to comply with osg metamodel
2016-06-27 11:51:32 +01:00
Julien Valentin
ce28b2e43e MorphGeometry fixes 2016-06-25 18:15:57 +01:00
Robert Osfield
40ccf503e4 Fixed warnings 2016-06-25 17:19:00 +01:00
Robert Osfield
ca0fff8313 Added extern and export 2016-06-25 16:32:58 +01:00
Robert Osfield
1204c32430 Changed back to requiring osgDB namespace so it's clearer where function comes from. 2016-06-25 16:13:56 +01:00
Robert Osfield
ed59753741 Added namespace prefix 2016-06-25 16:10:56 +01:00
Robert Osfield
6d7d58fa12 Added osgDB::stringcopy and stringcopyfixedsize 2016-06-25 16:08:15 +01:00
Robert Osfield
39317acd42 Changed return type to unsigned int to make it more compatible with serialization 2016-06-25 12:35:34 +01:00
Robert Osfield
949aca196d Refactored handling of StateAttiribute's that override the StateAttiribute::getMember() so that when they change their Member value they update the StateSet parents that own them to keep the StateSet's maps coherent. 2016-06-25 12:24:19 +01:00
Cedric Pinson
0ecb52ff82 Submitted with fixes by Julian Valentin 2016-06-25 07:49:56 +01:00
Robert Osfield
6bbd5299b6 Removed unused member variable 2016-06-24 12:12:50 +01:00
Robert Osfield
b9c3377d88 Added initializers 2016-06-24 12:11:09 +01:00
Robert Osfield
601884131e Added initializers 2016-06-24 11:58:38 +01:00
Robert Osfield
c8d668b298 Added depecated message to redundent shape classes 2016-06-24 09:46:19 +01:00
Robert Osfield
eb4dcba21a Removed unused variable 2016-06-23 16:32:45 +01:00
Robert Osfield
07137f4111 Fixed unitialized variables 2016-06-23 16:32:02 +01:00
Robert Osfield
1f73376476 Restructed the GLExtensions(..) constructor so that it now intializes all the variables to NULL if there is not a valid graphics context present 2016-06-23 12:19:59 +01:00
Robert Osfield
bc8452512f Added initializers and handling of null case 2016-06-23 11:03:38 +01:00
Robert Osfield
5955d362a6 Added initializer 2016-06-22 12:10:49 +01:00
Robert Osfield
a5ec8b7eda Added initializers 2016-06-22 12:08:10 +01:00
Robert Osfield
1d7f75c490 Added initializer 2016-06-22 12:03:10 +01:00
Robert Osfield
f2704e0bf3 Removed dead code 2016-06-22 11:58:45 +01:00
Robert Osfield
f7afd3bab2 Added initializer 2016-06-22 11:51:04 +01:00
Robert Osfield
acaf9fd720 Added initializer 2016-06-22 11:48:30 +01:00
Robert Osfield
97acecdf66 Added initializer 2016-06-22 11:41:58 +01:00
Robert Osfield
8a83bd73bb Added missing initializers 2016-06-22 11:39:11 +01:00
Robert Osfield
471e556e91 Added initializers 2016-06-22 11:27:15 +01:00
Robert Osfield
67cc776696 Added default_value() template to help with creating templates that need to initialize members that are floats etc. 2016-06-22 11:26:11 +01:00
Robert Osfield
d5f18590fd Added intializers 2016-06-22 10:35:37 +01:00
Ralf Habacker
7876c7915b clang 6.0 compile fixes. 2016-06-20 10:32:42 +01:00
Ralf Habacker
69929f596f Fix finding object cache entries. 2016-06-20 10:26:12 +01:00
Robert Osfield
7d34e8f441 Build fixes to reflect removal of deprecated_osg::Geometry 2016-06-17 12:49:44 +01:00
Julien Valentin
e236acfed5 Added OpenGL extensions related to shader subroutine 2016-06-17 10:35:25 +01:00
Julien Valentin
78b99c7143 Refactored osg::TextureBuffer to support assigning any type of osg::BufferData rather than just osg::Image as was previously required.
Refactored osgforest and osggpucull examples to take account of changes to TextureBuffer.

Added osg::DrawIndirectBufferBinding.
2016-06-15 19:05:35 +01:00
Robert Osfield
819ce6c0d1 Removed redundent _boundingBoxComputed 2016-06-14 18:27:27 +01:00
Ralf Habacker
85cd1c456f Identify files in object cache by filename and optional provided options.
Objects with the same filename may be different from others based on the provided
plugin options. Using filename *and* the provided options as object cache key
helps to avoid fetching the wrong object.
2016-06-14 12:27:33 +01:00
Julien Valentin
2ac8379cfc osgDB Wrapper Associates Revision Tagging 2016-06-14 11:43:45 +01:00
Robert Osfield
4c5ca932c8 Added #include <string> in case other headers don't include it. 2016-06-13 16:24:01 +01:00
Philippe Renon
dfc9eec3c3 make osgViewer::View::requiresUpdateSceneGraph() virtual 2016-06-11 17:05:00 +02:00
Philippe Renon
37ef07ce7e refactor common code from CompositeViewer::checkNeedToDoFrame() and Viewer::checkNeedToDoFrame() into View 2016-06-11 16:58:51 +02:00
Julien Valentin
ac26ba7e5b Shader subroutine related funcs added 2016-06-09 10:48:05 +01:00
Robert Osfield
8bfe67b37b Fixed unused parameter warning. 2016-06-08 10:54:36 +01:00
Robert Osfield
b1539418b3 Fixed unused parameter warning. 2016-06-08 09:46:58 +01:00
Robert Osfield
aef2574b8d Fixed -Wextra warnings 2016-06-08 09:46:09 +01:00
Robert Osfield
ef73d2449e Fixed -Wextra warnings 2016-06-08 09:20:16 +01:00
Robert Osfield
10e27681dd Fixed "unreferenced formal parameter" warnings 2016-06-07 08:53:42 +01:00
Robert Osfield
27caa9c1b1 Removed redundent _EXT 2016-06-06 12:05:28 +01:00
Jethro Leevers
08a823d857 Added support for GL_LINE_STRIP_ADJACENCY_EXT 2016-06-06 11:59:56 +01:00
Björn Blissing
e8f103afc9 VS2015 build fix 2016-06-03 17:22:28 +01:00
Robert Osfield
afe89e8d94 Added float variants of osg::PI etc. in the form osg::PIf
Converted osg::PI usage to osg::PIf in ShapeDrawable.cpp to address Windows build errors
2016-06-03 11:28:10 +01:00
Robert Osfield
41ce857c93 Fixed clang warnings 2016-06-03 09:33:47 +01:00
Robert Osfield
d038866649 Fixed method to match parent class. 2016-06-02 14:31:44 +01:00
Robert Osfield
d3c6dc6f34 Fixed doxygen warnings 2016-06-01 14:20:14 +01:00
Julien Valentin
5a4a5c3507 Added glDrawArraysIndirect, glMultiDrawArraysIndirect, glDrawElementsIndirect and glMultiDrawElementsIndirect extensions. 2016-06-01 10:01:44 +01:00
Pjotr Svetachov
1823341cce small optimization to the osgb/t serializers. 2016-05-31 11:27:30 +01:00
Jannik Heller
55e5d74a1c Fixed typo of method name 2016-05-30 13:44:54 +01:00
Alberto Luaces
260cbab518 Typo fixes 2016-05-30 12:30:05 +01:00
Robert Osfield
c36c0033fd Fixed shadows warnings 2016-05-23 20:02:36 +01:00
Robert Osfield
5260e3a35e Fixed build error introduced by c3f2711b09 2016-05-23 11:31:02 +01:00
rdiankov
da34da18ca add safety checking when dereferencing ref_ptr 2016-05-21 21:29:14 +02:00
Robert Osfield
ae3ba28fee Fixes shadows warnings 2016-05-20 13:38:34 +01:00
Adri
89a2ed7da4 Extra header include.
Removed an extra header include for <QGLWidget>
2016-05-19 18:53:15 +01:00
Jannik Heller
a5b05f77ea This submission removes the define / code path OSG_USE_BOUND that was never used. The class osg::Bound used by this code doesn't exist either. 2016-05-19 17:32:24 +01:00
Robert Osfield
fe6238d126 Added osg::GraphicsContext::WindowingSystemInterfaces singleton for managing multiple WIndowinSystemInterface
implementations being registered at the same time.

One usage case for this functionality to support usage of Wayland and X11 in the same version of the osgViewer.

As part of the new functionality there is now a osg::GraphicsContext::Traits::windowingSystemPreferrence string
that default to empty, but if defined will ensure that a specific WindowingSystemInterface is utilized when
you do a generic call like osg::createGraphicsContext().

Also implemented is standard proxy object for registering the new contexts and removing them automatically, and
declaration of standard graphicswindow_name() C entry point to help with static build linking.
2016-05-16 13:45:31 +01:00
Robert Osfield
7b34ca0a39 Added using to quieten warning 2016-04-29 10:39:57 +01:00
Robert Osfield
eb50a15b52 Fixed ShaderComposer::releaseGLObjects(State*) const method as it's const was missing.
Rewrote the ShaderComposer::releaseGLObjects() const method to pass on the releaseGLObjects() calls to any associated Program or Shader objects.
2016-04-18 20:46:45 +01:00
Robert Osfield
459ae5ce64 Changed the default value paramter to be consistent with the non templated version of StateSet::setTextureAttributeAndModes(..) 2016-03-29 20:24:05 +01:00
Robert Osfield
68430ee8e5 Added a local implementation of SlideEventHandler::checkNeedToDoFrame() so that Present3D can toggle on/off the need for continuous rendering to only slides that require it,
enabling slides with no animation to sit iddle rather keeping rendering, reducing CPU/GPU overhead and saving power.
2016-03-10 16:35:08 +00:00
Robert Osfield
f5b5202296 From Joe Thompson, "OpenSceneGraph cannot be built with Visual Studio 2008.
The file osg-OpenSceneGraph-3.4.0\include\osg\Types
typedefs int8_t, int16_t, int32_t and int64_t
These are typedefed as signed __intX in several other places.
With VS2008, this causes an error "int8_t redifined, different basic types"
Explicitly declaring them signed fixes the error."
2016-03-02 09:18:26 +00:00
Robert Osfield
bb79e523d4 From Konstantin Matveyev, "Two classes (with wrappers) added to osgAnimation: UpdateVec2fUniform and UpdateVec4fUniform" 2016-03-01 15:09:12 +00:00
Robert Osfield
d055216740 From Wee See and Robert Osfield, Introduced StatsHandler::collectWhichCamerasToRenderStatsFor(osgViewer::ViewerBase* viewer, osgViewer::ViewerBase::Cameras& cameras) method to make it
possible to customize which Cameras the handler renders stats for.
2016-03-01 11:06:39 +00:00
Robert Osfield
5d03bb9a2b From Jannik Heller, "This submission fixes a stuttering issue that may occur when occlusion query nodes are in view. The problem is that OSG retrieves the occlusion query result without first checking if it's available (GL_QUERY_RESULT_AVAILABLE). Thus, the driver has to sync with the GPU i.e. wait for all queued draw calls to complete. This is particularly bad in V-Synced situations where the driver may be using multi frame queueing techniques - coupled with the fact that OSG only runs an occlusion query every 5th frame, results in very unpleasant stuttering in some situations.
The change I made is to check GL_QUERY_RESULT_AVAILABLE before retrieving the query, to ensure that there won't be a stall. If the query result is not available yet, we'll leave it alone and try again in the next frame.

Had to make a few more changes than I'd liked, mostly because the TestResult mechanism wasn't designed for holding on to query objects for more than one frame. As well, I'm thinking that RetrieveQueriesCallback and ClearQueriesCallback could be merged together, if we wanted to go for more refactoring. For though now my strategy is to make as little changes as possible. Let me know what you think of the patch."
2016-03-01 10:37:41 +00:00