Commit Graph

2483 Commits

Author SHA1 Message Date
Daniel Trstenjak
79f7727a59 OcclusionQueryNode: fix resetting to default query geometry
When the query geometry gets reset to its default then its
vertices have to be updated by the bounding box dimensions of
the current children of the OcclusionQueryNode.
2019-08-23 09:46:02 +02:00
OpenSceneGraph git repository
eb980136a0
Merge branch 'master' into fix_custom_query_geometry 2019-08-22 14:17:58 +01:00
Daniel Trstenjak
aff574b3ea OcclusionQueryNode: fix use case of user defined query geometry
The user defined query geometry handling has been broken in several ways.

The previous way of defining a query geometry was using the non const
`getQueryGeometry` method and overriding its members. But then
`OcclusionQueryNode` wasn't aware of the geometry change and couldn't
internally handle it correctly.

The `computeBound` method never considered a user defined query geometry and
always just overrode the vertices of the geometry.

The member `_validQueryGeometry` wasn't correctly set.

This change should fix all this issues by introducing a small backward
compatibility break. The non const `getQueryGeometry` method is removed
forcing the user to use the `setQueryGeometry` method. But then `OcclusionQueryNode`
is aware of the user defined query geometry and can handle it correctly.
2019-08-21 16:44:15 +02:00
Julien Valentin
c50235ba62
remove return of local pointer 2019-08-15 20:21:15 +02:00
Robert Osfield
edd0d3e35f Added FrameBufferAttachment::resizeGLObjectBuffers(..) and releaseGLObjects(..) methods 2019-07-12 16:11:45 +01:00
Capostrophic
da16693b4a Add asOccluderNode method to avoid dynamic casts in group child handling 2019-03-15 18:09:13 +03:00
Capostrophic
52fe3679a3 Add OSG_USE_FLOAT_QUAT build option to use single precision quaternions 2019-03-13 22:08:19 +03:00
Daniel Trstenjak
71997fa747 OcclusionQueryNode: ensure a valid query geometry
If the query geometry is invalid then don't do any occlusion queries and
never traverse the subgraphs.
2019-02-21 14:42:35 +01:00
Julien Valentin
91c6b80020 uncomment INLINE_DRAWABLE_DRAW 2019-02-20 16:55:08 +00:00
Robert Osfield
6eb0da3a16 Introduced a QueryGeometry::getQueryResult(const osg::Camera*) method as a more informative replacedment for QueryGeometry::getNumPixels(). 2019-01-26 18:12:19 +00:00
Daniel Trstenjak
f21ca61476 OcclusionQueryNode: add resetting of queries
If there's a big view change then it might not be appropriate to wait
for '_queryFrameCount' till the next query is issued, because then
geometry might pop into the view after '_queryFrameCount'.

This is especially important for applications not having a constant
frame rate, but just issue a new frame on demand.
2019-01-26 18:12:19 +00:00
Robert Osfield
587c893f84 Added separate test and rest of _currentVAO to State::resetCurrentVertexArrayStateOnMatch(..) method 2019-01-22 20:22:49 +00:00
Robert Osfield
aee747885a Changed resetCurrentVertexArrayStateOnMatch() to reset _vas tp _globalVertexArrayState and currentVAO to 0. 2019-01-21 18:13:43 +00:00
Robert Osfield
336791ca35 Added reset of the State::CurrentVertexArrayState() to prevent the State::_vas becoming a dangling pointer when VertexArrayState objects are deleted. 2019-01-21 17:38:40 +00:00
Robert Osfield
68e4341cb4 Added calling of releaseGLObjects() and resizeGLObjects() to the Camera DrawCallback's to enable the draw callbacks to clean up their own GL objects. 2019-01-19 16:18:48 +00:00
Robert Osfield
32db852c77 Moved resizeGLObjects/releaseGLObjects out of Referenced to avoid multiple inheritance warnings 2019-01-12 11:28:25 +00:00
Robert Osfield
466bbc6740 Fixed for crashes on exit associaciated with VAO usage and vairous niche usage cases 2019-01-08 19:35:37 +00:00
Robert Osfield
9a21a1d1cf Fixed build error when GL_USE_FLOAT_PLANE is used 2018-10-23 09:11:49 +01:00
Robert Osfield
5962d2580f From Andy Skinner, Added ~GLExtensions to clear cached values for context ID 2018-10-02 12:29:30 +01:00
Robert Osfield
b94c797ed6 Fixed build 2018-09-11 09:32:15 +01:00
Jason Beverage
89a5d8b513 Protect the _programSet in Shader with a mutex.
This prevents thread safety issues when Shader objects are used in
multiple programs.
2018-09-04 10:35:38 -04:00
Robert Osfield
71f134c64b Created a GLenum Texture::selectSizedInternalFormat(const osg::Image* image=0) const method to help clean up set up of glTexStorage.
Fixed typo.
2018-08-17 12:22:36 +01:00
Chris White
c3880a25b6 Remove duplication of REGISTER_WINDOWINGSYSTEMINTERFACE code
Refactor so GraphicsWindowWin32 doesn't duplicate code in
<osg/GraphicsContext>.

Also, add OSGVIEWER_EXPORT to X11WindowingSystemInterface so
X11WindowingSystemInterface examples can build on cygwin.
This change parallels that in commit 0bca415d5a.
2018-08-15 12:49:01 -04:00
Vic-Min
e7583207db Renamed USE_DEPRECATED_API to OSG_USE_DEPRECATED_API 2018-08-08 15:05:53 +03:00
OpenSceneGraph git repository
86bd4a4e8b
Merge branch 'master' into imagebinding3 2018-07-23 07:57:23 +01:00
Robert Osfield
dbcd3b0324 Added GLExtensions::isPointSpriteModeSupported to allow it to be enable for GL versions that support GL_POINT_SPRITE_ARB/GL_POINT_SPRITE_OES 2018-06-27 11:04:14 +01:00
Robert Osfield
d2c2ef3ec9 Moved osg::clampProjectionMatrix() template from CullVisitor.cpp into include/osg/CullSettings to make it easier to implement custom clampProjectionMatrix callbacks 2018-06-25 20:03:50 +01:00
Robert Osfield
8127ddc541 Fixed type of Timer_t under Windows 2018-05-23 06:34:51 +01:00
Robert Osfield
0bca415d5a Restored the REGISTER_WINDOWINGSYSTEMINTERFACE macro to the include/osg/GraphicsContext header and removed the OSGVIEWER_EXPORT as this was causing compatibility issues with osgQt.
In GraphicsWindowWin32 replaced REGISTER_WINDOWINGSYSTEMINTERFACE usage with locally implemented equivilant with the required OSGVIEWER_EXPORT.
2018-05-21 13:19:06 +01:00
Robert Osfield
c4c84d4f94 Moved REGISTER_WINDOWINGSYSTEMINTERFACE from include/osg/GraphicsContext to include/osgViewer/GraphicsWindow and added OSGVIEWER_EXPORT 2018-05-18 15:33:29 +01:00
Robert Osfield
41f7efbab6 Imoroved backwards compatibility with 3.6 2018-05-14 10:47:50 +01:00
Robert Osfield
bc600bc9f7 Fixed crash when using ShapeDrawable with a TriangleMesh or ConvexHull shape due to missing texture coords 2018-05-13 11:53:21 +01:00
Robert Osfield
ac6eaee583 Fixed build when OSG_ENVVAR_SUPPORTED is disabled and quietened down warnings using OSG_UNUSED* macros 2018-05-10 19:00:13 +01:00
Alberto Luaces
bc4f181d41 Fix typos and spelling. 2018-04-20 18:18:22 +02:00
Robert Osfield
0dd5230d82 Cleaned up inbludes and unused code 2018-04-20 14:01:21 +01:00
Robert Osfield
85c835b902 Merge branch 'master' of https://github.com/openscenegraph/OpenSceneGraph 2018-04-19 20:11:19 +01:00
Robert Osfield
0836fa602a Fixed the GLBufferObject size computation so that it takes into account padding. 2018-04-19 19:45:29 +01:00
Jason Beverage
7250cd717c Removed unimplemented Uniform::getNameID from Uniform header as it's defined in UniformBase now. 2018-04-18 14:59:51 -04:00
Robert Osfield
724dbac41c Fixed inline Drawable::draw(..) method 2018-04-16 15:08:24 +01:00
Robert Osfield
e884df59c7 Pulled in latest changes from 3.6 branch 2018-04-07 18:14:57 +01:00
Frank Bausch
72ab22e539 When testing XYZ/ECEF coordinate values that convert to LLA points with latitude = 90.0 or latitude = -90.0, the heights calculated by EllipsoidModel::convertXYZToLatLongHeight have substantial errors. With the provided change, points at the pole are handled more correctly. This has been tested against US NGA GoldData. 2018-04-04 08:50:39 +01:00
Robert Osfield
5c48904626 Rewrote the handling of AutoTransform::setAutoScaleToScreen(bool) functionality so that is disabling CullingActive when switched on. 2018-04-02 18:26:26 +01:00
Hartwig
1b3928a017 Removal of compiler warnings caused by integer conversions
In most systems today sizeof(size_t) is larger than sizeof(GLsizei). Therefore, the inclusion of GLExtensions may introduce a lot of compiler warnings as array.size() (of type size_t) is passed to a function with a parameter of type GLsizei.
2018-03-25 19:04:10 +02:00
Robert Osfield
deef029823 Fixed member variable names to avoid conflicts with osg::Node 2018-03-23 20:07:08 +00:00
Robert Osfield
76c584ab25 Added osg::UnfiromBase* StateSet::getUniformBase(..) and osg::Uniform* StateSet::getUniform(..) methods to help with backwards compatibility 2018-03-19 12:08:28 +00:00
Robert Osfield
98a7772fa7 Merge branch 'master' into shader_pipeline 2018-03-06 10:24:26 +00:00
Robert Osfield
64341cfb72 Added State::glDrawBuffer/glReadBuffer() method to implement lazy state updating for glDrawBuffer and glReadBuffer 2018-03-06 09:49:02 +00:00
Daniel Emminizer
28544a4e29 Minor typo fix on osg::StateAttribute 2018-03-05 10:26:54 -05:00
Robert Osfield
1b8567e11e Added deprecated comments for ShaderComposer 2018-03-05 14:39:07 +00:00
Robert Osfield
1ae954f5c3 Merge branch 'master' into shader_pipeline 2018-02-28 09:11:29 +00:00