Compare commits

..

88 Commits

Author SHA1 Message Date
Robert Osfield
d3706a24e4 Updated for 3.6.1 2018-05-28 08:58:21 +01:00
Philippe Renon
0a4a31d17b Notify: silence warning about unused argument 2018-05-28 07:54:42 +01:00
Robert Osfield
3838267770 Updated ChangeLog 2018-05-23 19:54:10 +01:00
Robert Osfield
2c39714dff Updates for 3.6.1-rc7 2018-05-23 19:53:12 +01:00
Robert Osfield
4291636619 Updated REMOVE_SERIALIZER( ImageAttachment ); block to use 154 version to retain compatibility with binaries made with 153 SOVERSION prior to the Imageattachement change 2018-05-23 17:02:28 +01:00
Robert Osfield
189e4e3a64 Implemented StateGraph reuse in in scene graph Canera's RenderStage. 2018-05-23 14:30:31 +01:00
Robert Osfield
a6ef1cd66b Fixed warning of RenderLeaf's having multiple references in CullVisitor::createOrReuseRenderLeaf() but forcing a clean up of the StateGraph at the end of RenderStage::draw() 2018-05-23 14:13:27 +01:00
Robert Osfield
f2012eeeb8 Added check to make sure that glEnablei and glDisablei are only called when the capability is non zero to fix GL invalid value error. 2018-05-23 07:47:15 +01:00
Robert Osfield
e2aeab2b60 Fixed type of Timer_t under Windows 2018-05-23 06:32:42 +01:00
Robert Osfield
dce4b81728 Updates for rc6 2018-05-22 09:04:48 +01:00
gwaldron
e4adb509e0 osgText: perform pixel size computation in double-precision to prevent coordinate jitter 2018-05-21 20:04:45 +01:00
Robert Osfield
eae5f9b958 Moved the rotation to before the scale 2018-05-21 18:14:18 +01:00
Robert Osfield
9c6951e4ba Fixed typos 2018-05-21 13:18:29 +01:00
Robert Osfield
dce6684c59 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:10:40 +01:00
Robert Osfield
43058ac1d5 Updated ChangeLog and README.md for rc5 2018-05-20 13:39:44 +01:00
Robert Osfield
55c0afbe3a Restructed SCREEN auto scaling so that it's removes the rotation of the modelview matrix so that the XY coords of the text map directly to window xy coords for all text alignment types 2018-05-20 13:22:58 +01:00
Robert Osfield
b34461febe Updates in prep for 3.6.1-rc5 2018-05-18 15:49:28 +01:00
Robert Osfield
e3c47b60e0 Moved REGISTER_WINDOWINGSYSTEMINTERFACE from include/osg/GraphicsContext to include/osgViewer/GraphicsWindow and added OSGVIEWER_EXPORT 2018-05-18 14:58:53 +01:00
Robert Osfield
7602b868f4 Added GL_RED and GL_RG support to _readColor()/Image::getColor(); 2018-05-18 13:55:01 +01:00
Robert Osfield
880a100a60 Cleaned up the WindowingSystemInterface registration 2018-05-18 12:52:50 +01:00
Robert Osfield
3b563ab21b Fixed create of graphics context by explicting adding USE_GRAPHICSWINDOW to force the WindowingSystemInterface to initialize 2018-05-18 12:47:34 +01:00
Robert Osfield
a86c6dc2c6 Quitened down unsupport compression output when passing in a file with a non rgb extension 2018-05-18 12:42:20 +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
26acc9a6b1 Fixed support for update and event callbacks on StateSet/Uniform/StateAttributes on View(er) Cameras. 2018-05-14 09:46:39 +01:00
Robert Osfield
510a231e14 Renamed the counter used to enable traversal order sorting 2018-05-14 08:43:08 +01:00
Robert Osfield
3bbbbd07ea Improved the handling of precision 2018-05-14 08:24:02 +01:00
Robert Osfield
640b03b671 Fixed crash when using ShapeDrawable with a TriangleMesh or ConvexHull shape due to missing texture coords 2018-05-13 11:52:06 +01:00
Robert Osfield
7a3e0445ba Updated for rc 2018-05-13 09:23:38 +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
Robert Osfield
66251abd38 Updates for 3.6.1-rc4 2018-05-12 12:47:08 +01:00
Robert Osfield
312ce9ad05 Build fixes for OSG_USE_REF_PTR_IMPLICIT_OUTPUT set to OFF 2018-05-12 12:41:42 +01:00
Robert Osfield
362e355db2 Rewrote TextBase::computeMatrix(..) computation of the scaling factor with slower but easier to understand and more robust code 2018-05-12 11:40:25 +01:00
Robert Osfield
cf2e3227cc Removed use of deprecated cmake policy 2018-05-12 07:51:51 +01:00
Robert Osfield
01f69e6b10 Moved constructors and destructors to .cpp 2018-05-11 11:16:43 +01:00
Robert Osfield
a211ea4e68 Revert "Moved the Options constructors and destructor implementaions into the cpp to make it easier to do debugging"
This reverts commit 0fc7aa8cc0.
2018-05-11 11:11:48 +01:00
Robert Osfield
fcde92ad89 Fixed crash the occurred when passing in a osgDB::Options to the ObjectCache that doesn't have any references to it. 2018-05-11 09:00:22 +01:00
Robert Osfield
0fc7aa8cc0 Moved the Options constructors and destructor implementaions into the cpp to make it easier to do debugging 2018-05-11 08:58:30 +01:00
Robert Osfield
be363ef8d4 Fixed build when OSG_ENVVAR_SUPPORTED is disabled and quietened down warnings using OSG_UNUSED* macros 2018-05-10 18:58:29 +01:00
Robert Osfield
b1daa6a693 Changed the ordering of the build include directory and the source include directory to avoid build issues on systems where a different version of the OSG has been built in-source then another built out-of-source resulting in conflicts 2018-05-10 18:50:17 +01:00
Robert Osfield
05793cb104 Fixed typo 2018-05-10 16:59:56 +01:00
Robert Osfield
a5c421863e Updates for 3.6.1-rc3 2018-05-06 07:47:23 +01:00
Robert Osfield
e79edabf98 Restructed the handling of SCREEN_COORD scaling to better handle window resizing 2018-05-05 15:47:28 +01:00
Robert Osfield
d95993554e Added C++ specific path for calling std::map<>::erase() to avoid issues with std::map<>::erase implementation that invalidates iterators 2018-05-05 12:31:00 +01:00
Robert Osfield
f49e1d32c9 Replaced std::auto_ptr<> usage as it's deprecated in C++11 and will be removed in C++17 2018-05-05 12:28:45 +01:00
OpenSceneGraph git repository
a15d4532fa Merge pull request #545 from emminizer/fix-gl3-text-bad-mode
Text only applies GL_TEXTURE_2D modes when fixed function is availabl…
2018-05-04 16:11:31 +01:00
Daniel Emminizer
27955ae8e9 Text only applies GL_TEXTURE_2D modes when fixed function is available. Prevents GL3 Core Profile console spam. 2018-05-04 06:44:13 -04:00
Robert Osfield
c078968f66 Added non const version of State::getActiveDisplaySettings() 2018-05-04 10:54:02 +01:00
Robert Osfield
f90edd0d9f Added check for null to prevent null entries getting into the cache 2018-05-04 09:44:43 +01:00
Robert Osfield
62a9f87f45 Added osg::MakeString class to make it easier to create std::string's using std::ostream style << usage. 2018-05-04 09:31:57 +01:00
Robert Osfield
f510613d55 Fixed null pointer warning 2018-05-04 09:22:54 +01:00
Björn Blissing
645704dfd3 Check existence of path before reading image
When loading texture images inside the FBX plugin check that the path
exists before trying to read the image. This is done to avoid
unnecessary warnings inside the readRefImageFile function.
2018-05-03 16:13:24 +01:00
Robert Osfield
13d56b8b37 Updated ChangeLog 2018-05-02 09:14:04 +01:00
Robert Osfield
c5990c4f65 Updates for the 3.6.1-rc2 2018-05-02 09:10:54 +01:00
Robert Osfield
94c4baccad Updated SO version to reflect change in ABI 2018-04-30 11:55:17 +01:00
OpenSceneGraph git repository
bb1e208d30 Merge pull request #542 from psyinf/fix_particle_system_header
FIX: <osgParticle> removed unimplemented functions from header
2018-04-30 11:44:02 +01:00
Sebastian Messerschmidt
fce55993bc FIX: <osgParticle> removed unimplemented functions from header 2018-04-30 11:16:02 +02:00
Robert Osfield
31c9dbc881 Fixed particle update bug where a ParticleSystem wouldn't start when loaded during the frame loop due to the _last_frame value not being set. 2018-04-27 11:25:46 +01:00
Robert Osfield
c9b0fcaa32 Updated ChangeLog, README.md and rc number for 3.6.1-rc1 2018-04-26 10:21:53 +01:00
Robert Osfield
37a63d37e2 Split up #pragma so that there only three parameters per line to aovid Intel driver bug crash 2018-04-26 09:52:32 +01:00
Robert Osfield
1daacced5a Renamed text.vert and text.frag to osgText_Text.vert and .frag to avoid name overlapping with user shaders. 2018-04-26 09:52:32 +01:00
Julien Valentin
cea33e40df add wrapper for osg::DrawIndirectBufferObject 2018-04-25 09:49:56 +01:00
Robert Osfield
2b3ac015bb Renamed CMake variable + C++ #define to OSG_GL_CONTEXT_VERSION 2018-04-24 17:06:07 +01:00
Robert Osfield
1aa0a80de7 Added OSG_GL_CONTEXT_STRING cmake variable to set include/osg/GL headers that sets Traits::glContextVersion. 2018-04-24 16:22:13 +01:00
OpenSceneGraph git repository
4dd1156444 Merge pull request #537 from openscenegraph/revert-536-default-gl3-context
Revert "When GL3 build is enabled, default context requested is version 3.3, …"
2018-04-24 15:38:02 +01:00
OpenSceneGraph git repository
c10f298dc6 Revert "When GL3 build is enabled, default context requested is version 3.3, …" 2018-04-24 15:37:44 +01:00
OpenSceneGraph git repository
e8c0033f5f Merge pull request #536 from emminizer/default-gl3-context
When GL3 build is enabled, default context requested is version 3.3, …
2018-04-24 15:36:11 +01:00
Robert Osfield
31c29f4318 Refactored the handling of glyph and shadow alpha values to make the text and shadow clearer for fonts with narrow glyphs 2018-04-24 15:33:03 +01:00
Robert Osfield
e0be94389e Refactored the handling of text bounding box to provide more stable bounding box computation 2018-04-24 13:52:53 +01:00
Daniel Emminizer
d660b29ef0 When GL3 build is enabled, default context requested is version 3.3, enabling core profile by default. 2018-04-24 06:31:32 -04:00
Alberto Luaces
490d3a8f21 Small fix for uncaught typo. 2018-04-23 11:03:37 +01:00
Alberto Luaces
02c310982e Fix typos and spelling. 2018-04-23 11:03:37 +01:00
OpenSceneGraph git repository
c3008512f1 Merge pull request #534 from emminizer/fix-msvc-includes
Fix includes for MSVC 2015 build.
2018-04-23 11:02:03 +01:00
Daniel Emminizer
22d2fae30c Fix includes for MSVC 2015 build. 2018-04-20 13:16:43 -04:00
Robert Osfield
dac9ed17f1 Updated ChangeLog 2018-04-20 15:58:27 +01:00
Robert Osfield
709194c88c Replaced osgUtil::IntersectVisitor usage with osgUtil::InteresectionVisitor 2018-04-20 14:32:34 +01:00
Robert Osfield
8de8af6850 Removed TriStripVisitor for default set of Optimizer passes as it doesn't generate efficient scene graphs 2018-04-20 11:48:46 +01:00
Robert Osfield
7bda8083fb Added osgUtil::optimizeMesh(osg::Node* node) convinience method 2018-04-20 11:48:39 +01:00
Robert Osfield
a082b57c3f Removed usage of the osgUtil::TriStripVisitor is it generates osg::Geometry that perform very poorly when using VBO and VAO's vs GL DisplayLists.
With DisplayLists being deprecated in GL and VBO and VAO becoming standard it's best to standardize on using the osgUtil::MeshOptimizers instead of TripStrupVisitor
2018-04-20 11:44:44 +01:00
Robert Osfield
547340659f Fixed the set*Binding() methods so that they assign BufferObjects when required 2018-04-19 19:43:14 +01:00
Robert Osfield
29d12ddcbc Fixed messages 2018-04-19 19:42:51 +01:00
Robert Osfield
f95fdd4d4e Fixed the GLBufferObject size computation so that it takes into account padding. 2018-04-19 19:41:51 +01:00
Robert Osfield
bf6db4eee7 Replaced the use of osgUtil::TriStripVisitor with ogUtil::MeshOptimizer usage to improve performance.
Fixed set setColorArray assignement to pass in the color binding
2018-04-19 19:36:19 +01:00
Robert Osfield
fe39589771 Fixed the handle of boundary equalization 2018-04-18 10:15:01 +01:00
Robert Osfield
d88f0c4cd1 Added --equalize-boundaries -e command line option to call terrain->setEqualizeBoundaries(true) 2018-04-18 10:03:52 +01:00
Robert Osfield
a2a026e116 Updated version number in prep for future 3.6.1 release. 2018-04-16 17:53:38 +01:00
Robert Osfield
38ad6ed3b3 Fixed inline Drawable::draw(..) method 2018-04-16 17:18:49 +01:00
Robert Osfield
9d72bf4712 Fixed Geometry::drawImplmentation() handling of VBO's to prevent them from being used when display lists are used. 2018-04-16 17:18:37 +01:00
Robert Osfield
15429198b8 Replaced osgViewer::GraphicsWindow dynamic_cast as it's not neccessary. 2018-04-15 08:25:57 +01:00
271 changed files with 1456 additions and 1103 deletions

View File

@@ -3,8 +3,8 @@
#
SET(OPENSCENEGRAPH_MAJOR_VERSION 3)
SET(OPENSCENEGRAPH_MINOR_VERSION 6)
SET(OPENSCENEGRAPH_PATCH_VERSION 0)
SET(OPENSCENEGRAPH_SOVERSION 156)
SET(OPENSCENEGRAPH_PATCH_VERSION 1)
SET(OPENSCENEGRAPH_SOVERSION 157)
# set to 0 when not a release candidate, non zero means that any generated
@@ -26,25 +26,10 @@ if(COMMAND cmake_policy)
# tell CMake to prefer CMake's own CMake modules when available
# only available from cmake-2.8.4
if(${CMAKE_MAJOR_VERSION} GREATER 2 OR
(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 8) OR
(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 8 AND ${CMAKE_PATCH_VERSION} GREATER 3))
if("${CMAKE_VERSION}" VERSION_GREATER 2.8.3)
cmake_policy(SET CMP0017 NEW)
endif()
# cmake-2.6.1 introduces policy cmp0008 decide how to treat full path libraries that do not appear to be valid library file names
# quote from cvslog "Such libraries worked by accident in the VS IDE and Xcode generators in CMake 2.4 and below."
if(${CMAKE_MAJOR_VERSION} GREATER 2 OR
(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 6) OR
(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 6 AND ${CMAKE_PATCH_VERSION} GREATER 0))
cmake_policy(SET CMP0008 OLD)
endif()
# nicer version check - but needs at least CMake 2.6.2? Worth upgrading the requirements?
#if("${CMAKE_VERSION}" VERSION_GREATER 2.8.10)
# or even easier (available in cmake-2.6)
#if(POLICY CMPxyzw)
endif()
IF(APPLE)
@@ -330,13 +315,14 @@ IF(UNIX AND NOT ANDROID)
ENDIF()
INCLUDE_DIRECTORIES(${OpenSceneGraph_SOURCE_DIR}/include/)
# Make the headers visible to everything
IF(NOT ${PROJECT_BINARY_DIR} EQUAL ${PROJECT_SOURCE_DIR})
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/include)
ENDIF()
INCLUDE_DIRECTORIES(${OpenSceneGraph_SOURCE_DIR}/include/)
INCLUDE_DIRECTORIES(SYSTEM ${OPENGL_INCLUDE_DIR})
# Common global definitions
@@ -556,9 +542,13 @@ ELSE()
OPTION(OSG_CPP_EXCEPTIONS_AVAILABLE "Set to OFF to disable compile of OSG components that use C++ exceptions." ON)
ENDIF()
SET(OSG_GL_CONTEXT_VERSION "1.0" CACHE STRING "GL Context String to pass when creaing graphics contexts")
# Map the OSG_GL*_AVAILABLE settings to OpenGL header settings
IF (OSG_GL3_AVAILABLE)
SET(OSG_GL_CONTEXT_VERSION "3.3")
IF (APPLE)
SET(OPENGL_HEADER1 "#include <OpenGL/gl.h>" CACHE STRING "#include<> line for OpenGL Header")
SET(OPENGL_HEADER2 "#include <OpenGL/gl3.h>" CACHE STRING "#include<> line for additional OpenGL Headers if required")

358
ChangeLog
View File

@@ -1,3 +1,361 @@
Wed, 23 May 2018 19:53:12 +0100
Author : Robert Osfield
Updates for 3.6.1-rc7
Wed, 23 May 2018 17:02:28 +0100
Author : Robert Osfield
Updated REMOVE_SERIALIZER( ImageAttachment ); block to use 154 version to retain compatibility with binaries made with 153 SOVERSION prior to the Imageattachement change
Wed, 23 May 2018 14:30:31 +0100
Author : Robert Osfield
Implemented StateGraph reuse in in scene graph Canera's RenderStage.
Wed, 23 May 2018 14:13:27 +0100
Author : Robert Osfield
Fixed warning of RenderLeaf's having multiple references in CullVisitor::createOrReuseRenderLeaf() but forcing a clean up of the StateGraph at the end of RenderStage::draw()
Wed, 23 May 2018 07:47:15 +0100
Author : Robert Osfield
Added check to make sure that glEnablei and glDisablei are only called when the capability is non zero to fix GL invalid value error.
Wed, 23 May 2018 06:32:42 +0100
Author : Robert Osfield
Fixed type of Timer_t under Windows
Tue, 22 May 2018 09:04:48 +0100
Author : Robert Osfield
Updates for rc6
Mon, 21 May 2018 13:26:04 -0400
Author : gwaldron
osgText: perform pixel size computation in double-precision to prevent coordinate jitter
Mon, 21 May 2018 18:14:18 +0100
Author : Robert Osfield
Moved the rotation to before the scale
Mon, 21 May 2018 13:18:29 +0100
Author : Robert Osfield
Fixed typos
Mon, 21 May 2018 13:10:40 +0100
Author : Robert Osfield
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.
Sun, 20 May 2018 13:39:44 +0100
Author : Robert Osfield
Updated ChangeLog and README.md for rc5
Sun, 20 May 2018 13:22:58 +0100
Author : Robert Osfield
Restructed SCREEN auto scaling so that it's removes the rotation of the modelview matrix so that the XY coords of the text map directly to window xy coords for all text alignment types
Fri, 18 May 2018 15:49:28 +0100
Author : Robert Osfield
Updates in prep for 3.6.1-rc5
Fri, 18 May 2018 14:58:53 +0100
Author : Robert Osfield
Moved REGISTER_WINDOWINGSYSTEMINTERFACE from include/osg/GraphicsContext to include/osgViewer/GraphicsWindow and added OSGVIEWER_EXPORT
Fri, 18 May 2018 13:53:39 +0100
Author : Robert Osfield
Added GL_RED and GL_RG support to _readColor()/Image::getColor();
Fri, 18 May 2018 12:52:50 +0100
Author : Robert Osfield
Cleaned up the WindowingSystemInterface registration
Fri, 18 May 2018 12:47:34 +0100
Author : Robert Osfield
Fixed create of graphics context by explicting adding USE_GRAPHICSWINDOW to force the WindowingSystemInterface to initialize
Fri, 18 May 2018 12:42:20 +0100
Author : Robert Osfield
Quitened down unsupport compression output when passing in a file with a non rgb extension
Fri, 18 May 2018 10:00:10 +0100
Author : Robert Osfield
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.
Mon, 14 May 2018 09:34:04 +0100
Author : Robert Osfield
Fixed support for update and event callbacks on StateSet/Uniform/StateAttributes on View(er) Cameras.
Mon, 14 May 2018 08:43:08 +0100
Author : Robert Osfield
Renamed the counter used to enable traversal order sorting
Mon, 14 May 2018 08:24:02 +0100
Author : Robert Osfield
Improved the handling of precision
Sun, 13 May 2018 11:52:06 +0100
Author : Robert Osfield
Fixed crash when using ShapeDrawable with a TriangleMesh or ConvexHull shape due to missing texture coords
Sun, 13 May 2018 09:23:38 +0100
Author : Robert Osfield
Updated for rc
Sun, 13 May 2018 09:18:31 +0100
Author : Robert Osfield
Removed _traverseNumber variable that was duplicating the one in NodeVisitor base class
Sat, 12 May 2018 12:47:08 +0100
Author : Robert Osfield
Updates for 3.6.1-rc4
Sat, 12 May 2018 12:41:42 +0100
Author : Robert Osfield
Build fixes for OSG_USE_REF_PTR_IMPLICIT_OUTPUT set to OFF
Sat, 12 May 2018 11:40:25 +0100
Author : Robert Osfield
Rewrote TextBase::computeMatrix(..) computation of the scaling factor with slower but easier to understand and more robust code
Sat, 12 May 2018 07:51:51 +0100
Author : Robert Osfield
Removed use of deprecated cmake policy
Fri, 11 May 2018 11:15:45 +0100
Author : Robert Osfield
Moved constructors and destructors to .cpp
Fri, 11 May 2018 11:11:48 +0100
Author : Robert Osfield
Revert "Moved the Options constructors and destructor implementaions into the cpp to make it easier to do debugging"This reverts commit 0fc7aa8cc096e59b9366df60c1fdbd0803ac4481.
Fri, 11 May 2018 09:00:22 +0100
Author : Robert Osfield
Fixed crash the occurred when passing in a osgDB::Options to the ObjectCache that doesn't have any references to it.
Fri, 11 May 2018 08:58:30 +0100
Author : Robert Osfield
Moved the Options constructors and destructor implementaions into the cpp to make it easier to do debugging
Thu, 10 May 2018 18:58:29 +0100
Author : Robert Osfield
Fixed build when OSG_ENVVAR_SUPPORTED is disabled and quietened down warnings using OSG_UNUSED* macros
Thu, 10 May 2018 18:50:17 +0100
Author : Robert Osfield
Changed the ordering of the build include directory and the source include directory to avoid build issues on systems where a different version of the OSG has been built in-source then another built out-of-source resulting in conflicts
Thu, 10 May 2018 16:59:56 +0100
Author : Robert Osfield
Fixed typo
Sun, 6 May 2018 07:47:23 +0100
Author : Robert Osfield
Updates for 3.6.1-rc3
Sat, 5 May 2018 15:47:28 +0100
Author : Robert Osfield
Restructed the handling of SCREEN_COORD scaling to better handle window resizing
Sat, 5 May 2018 12:31:00 +0100
Author : Robert Osfield
Added C++ specific path for calling std::map<>::erase() to avoid issues with std::map<>::erase implementation that invalidates iterators
Sat, 5 May 2018 12:28:45 +0100
Author : Robert Osfield
Replaced std::auto_ptr<> usage as it's deprecated in C++11 and will be removed in C++17
Fri, 4 May 2018 16:11:31 +0100
Author : OpenSceneGraph git repository
Merge pull request #545 from emminizer/fix-gl3-text-bad-modeText only applies GL_TEXTURE_2D modes when fixed function is availabl…
Fri, 4 May 2018 06:44:13 -0400
Author : Daniel Emminizer
Text only applies GL_TEXTURE_2D modes when fixed function is available. Prevents GL3 Core Profile console spam.
Fri, 4 May 2018 10:54:02 +0100
Author : Robert Osfield
Added non const version of State::getActiveDisplaySettings()
Fri, 4 May 2018 09:44:43 +0100
Author : Robert Osfield
Added check for null to prevent null entries getting into the cache
Fri, 18 Nov 2016 14:56:05 +0000
Author : Robert Osfield
Added osg::MakeString class to make it easier to create std::string's using std::ostream style << usage.
Fri, 4 May 2018 09:22:54 +0100
Author : Robert Osfield
Fixed null pointer warning
Thu, 3 May 2018 12:56:08 +0200
Author : Björn Blissing
Check existence of path before reading imageWhen loading texture images inside the FBX plugin check that the path
exists before trying to read the image. This is done to avoid
unnecessary warnings inside the readRefImageFile function.
Wed, 2 May 2018 09:14:04 +0100
Author : Robert Osfield
Updated ChangeLog
Wed, 2 May 2018 09:10:54 +0100
Author : Robert Osfield
Updates for the 3.6.1-rc2
Mon, 30 Apr 2018 11:55:17 +0100
Author : Robert Osfield
Updated SO version to reflect change in ABI
Mon, 30 Apr 2018 11:44:02 +0100
Author : OpenSceneGraph git repository
Merge pull request #542 from psyinf/fix_particle_system_headerFIX: <osgParticle> removed unimplemented functions from header
Mon, 30 Apr 2018 11:16:02 +0200
Author : Sebastian Messerschmidt
FIX: <osgParticle> removed unimplemented functions from header
Fri, 27 Apr 2018 11:23:07 +0100
Author : Robert Osfield
Fixed particle update bug where a ParticleSystem wouldn't start when loaded during the frame loop due to the _last_frame value not being set.
Thu, 26 Apr 2018 10:21:53 +0100
Author : Robert Osfield
Updated ChangeLog, README.md and rc number for 3.6.1-rc1
Thu, 26 Apr 2018 09:49:35 +0100
Author : Robert Osfield
Split up #pragma so that there only three parameters per line to aovid Intel driver bug crash
Thu, 26 Apr 2018 09:36:52 +0100
Author : Robert Osfield
Renamed text.vert and text.frag to osgText_Text.vert and .frag to avoid name overlapping with user shaders.
Wed, 25 Apr 2018 09:48:02 +0100
Author : Julien Valentin
add wrapper for osg::DrawIndirectBufferObject
Tue, 24 Apr 2018 17:05:03 +0100
Author : Robert Osfield
Renamed CMake variable + C++ #define to OSG_GL_CONTEXT_VERSION
Tue, 24 Apr 2018 16:22:13 +0100
Author : Robert Osfield
Added OSG_GL_CONTEXT_STRING cmake variable to set include/osg/GL headers that sets Traits::glContextVersion.
Tue, 24 Apr 2018 15:38:02 +0100
Author : OpenSceneGraph git repository
Merge pull request #537 from openscenegraph/revert-536-default-gl3-contextRevert "When GL3 build is enabled, default context requested is version 3.3, …"
Tue, 24 Apr 2018 15:37:44 +0100
Author : OpenSceneGraph git repository
Revert "When GL3 build is enabled, default context requested is version 3.3, …"
Tue, 24 Apr 2018 15:36:11 +0100
Author : OpenSceneGraph git repository
Merge pull request #536 from emminizer/default-gl3-contextWhen GL3 build is enabled, default context requested is version 3.3, …
Tue, 24 Apr 2018 15:33:03 +0100
Author : Robert Osfield
Refactored the handling of glyph and shadow alpha values to make the text and shadow clearer for fonts with narrow glyphs
Tue, 24 Apr 2018 13:52:53 +0100
Author : Robert Osfield
Refactored the handling of text bounding box to provide more stable bounding box computation
Tue, 24 Apr 2018 06:31:32 -0400
Author : Daniel Emminizer
When GL3 build is enabled, default context requested is version 3.3, enabling core profile by default.
Fri, 20 Apr 2018 21:16:46 +0200
Author : Alberto Luaces
Small fix for uncaught typo.
Fri, 20 Apr 2018 18:18:22 +0200
Author : Alberto Luaces
Fix typos and spelling.
Mon, 23 Apr 2018 11:02:03 +0100
Author : OpenSceneGraph git repository
Merge pull request #534 from emminizer/fix-msvc-includesFix includes for MSVC 2015 build.
Fri, 20 Apr 2018 13:16:43 -0400
Author : Daniel Emminizer
Fix includes for MSVC 2015 build.
Fri, 20 Apr 2018 15:58:27 +0100
Author : Robert Osfield
Updated ChangeLog
Fri, 20 Apr 2018 14:32:34 +0100
Author : Robert Osfield
Replaced osgUtil::IntersectVisitor usage with osgUtil::InteresectionVisitor
Fri, 20 Apr 2018 10:24:17 +0100
Author : Robert Osfield
Removed TriStripVisitor for default set of Optimizer passes as it doesn't generate efficient scene graphs
Fri, 20 Apr 2018 09:57:04 +0100
Author : Robert Osfield
Added osgUtil::optimizeMesh(osg::Node* node) convinience method
Fri, 20 Apr 2018 11:42:31 +0100
Author : Robert Osfield
Removed usage of the osgUtil::TriStripVisitor is it generates osg::Geometry that perform very poorly when using VBO and VAO's vs GL DisplayLists. With DisplayLists being deprecated in GL and VBO and VAO becoming standard it's best to standardize on using the osgUtil::MeshOptimizers instead of TripStrupVisitor
Thu, 19 Apr 2018 19:43:14 +0100
Author : Robert Osfield
Fixed the set*Binding() methods so that they assign BufferObjects when required
Thu, 19 Apr 2018 19:42:51 +0100
Author : Robert Osfield
Fixed messages
Thu, 19 Apr 2018 19:41:51 +0100
Author : Robert Osfield
Fixed the GLBufferObject size computation so that it takes into account padding.
Thu, 19 Apr 2018 19:36:19 +0100
Author : Robert Osfield
Replaced the use of osgUtil::TriStripVisitor with ogUtil::MeshOptimizer usage to improve performance. Fixed set setColorArray assignement to pass in the color binding
Wed, 18 Apr 2018 10:02:43 +0100
Author : Robert Osfield
Fixed the handle of boundary equalization
Wed, 18 Apr 2018 09:33:12 +0100
Author : Robert Osfield
Added --equalize-boundaries -e command line option to call terrain->setEqualizeBoundaries(true)
Mon, 16 Apr 2018 17:53:38 +0100
Author : Robert Osfield
Updated version number in prep for future 3.6.1 release.
Mon, 16 Apr 2018 15:08:24 +0100
Author : Robert Osfield
Fixed inline Drawable::draw(..) method
Mon, 16 Apr 2018 15:05:11 +0100
Author : Robert Osfield
Fixed Geometry::drawImplmentation() handling of VBO's to prevent them from being used when display lists are used.
Sun, 15 Apr 2018 08:25:57 +0100
Author : Robert Osfield
Replaced osgViewer::GraphicsWindow dynamic_cast as it's not neccessary.
Sat, 7 Apr 2018 18:35:19 +0100
Author : Robert Osfield
Fixed typo
Sat, 7 Apr 2018 17:59:55 +0100
Author : Robert Osfield
Renamed osg::ComputeDispatch to osg::DispatchCompute to make sure the nameing between GL and OSG is consistent i.e glDispatchCompute -> osg::DispatchComputeUpdated AUTHORS.txt, NEWS.txt and README.txt for CMakeLists.txt for 3.6.0 release
Sat, 7 Apr 2018 07:19:14 +0100
Author : Robert Osfield
Updated ChangeLog
Sat, 7 Apr 2018 07:18:41 +0100
Author : Robert Osfield
Updated for rc7

View File

@@ -25,7 +25,7 @@ If details below are not sufficient then head over to the openscenegraph.org to
Robert Osfield.
Project Lead.
7th April 2018.
28th May 2018.
---

View File

@@ -5,7 +5,7 @@
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk>
<uses-feature android:glEsVersion="0x00010001"/> <!-- OpenGL min requierements (1.1) -->
<uses-feature android:glEsVersion="0x00010001"/> <!-- OpenGL min requirements (1.1) -->
<uses-permission android:name="android.permission.INTERNET"/>
<application android:label="@string/app_name" android:icon="@drawable/osg">

View File

@@ -5,7 +5,7 @@
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk>
<uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requierements (2.0) -->
<uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requirements (2.0) -->
<uses-permission android:name="android.permission.INTERNET"/>
<application android:label="@string/app_name" android:icon="@drawable/osg">

View File

@@ -393,8 +393,6 @@ public:
while (arguments.read("--dl")) { modifyDrawableSettings = true; useDisplayLists = true; }
while (arguments.read("-s", simplificatioRatio)) {}
while (arguments.read("--tristripper")) { useTriStripVisitor=true; }
while (arguments.read("--no-tristripper")) { useTriStripVisitor=false; }
while (arguments.read("--smoother")) { useSmoothingVisitor=true; }
while (arguments.read("--no-smoother")) { useSmoothingVisitor=false; }
@@ -426,7 +424,6 @@ public:
OSG_NOTICE<<"Running simplifier with simplification ratio="<<simplificatioRatio<<std::endl;
float maxError = 4.0f;
osgUtil::Simplifier simplifier(simplificatioRatio, maxError);
simplifier.setDoTriStrip(useTriStripVisitor);
simplifier.setSmoothing(useSmoothingVisitor);
node->accept(simplifier);
}

View File

@@ -84,7 +84,7 @@ struct MyRigTransformHardware : public osgAnimation::RigTransformHardware
CommonProgram = new osg::Program;
CommonProgram->setName("HardwareSkinning");
//set default source if _shader is not user setted
//set default source if _shader is not user set
if (!vertexshader.valid())
{
vertexshader = osgDB::readRefShaderFile(osg::Shader::VERTEX,"skinning.vert");

View File

@@ -245,7 +245,7 @@ int main( int argc, char **argv )
traits->depth = src_traits->depth;
traits->pbuffer = true;
} else {
//viewer would use fullscreen size (unknown here) pbuffer will use 4096 x4096 (or best avaiable)
//viewer would use fullscreen size (unknown here) pbuffer will use 4096 x4096 (or best available)
traits->width = 1 << 12;
traits->height = 1 << 12;
traits->pbuffer = true;

View File

@@ -509,7 +509,7 @@ int main( int argc, char **argv )
// any option left unread are converted into errors to write out later.
arguments.reportRemainingOptionsAsUnrecognized();
// report any errors if they have occurred when parsing the program aguments.
// report any errors if they have occurred when parsing the program arguments.
if (arguments.errors())
{
arguments.writeErrorMessages(std::cout);

View File

@@ -91,7 +91,7 @@ private:
bool createMap(MapMode mapMode, bool first=false);
/*!
Creates a two dimensional noise map and initalizes _noiseMap with it
Creates a two dimensional noise map and initializes _noiseMap with it
*/
bool createNoiseMap();

View File

@@ -34,7 +34,7 @@ class DePeePass
DePeePass();
/*!
Desctructor cleans the whole depth peeling pass
Destructor cleans the whole depth peeling pass
*/
~DePeePass();

View File

@@ -381,7 +381,7 @@ AppState::AppState(osgViewer::Viewer* viewer_)
textProjection = new Projection;
textProjection->setMatrix(Matrix::ortho2D(0,1280,0,1024));
textProjection->addChild(textGeode);
// "texture not available" text displayed when the user trys to
// "texture not available" text displayed when the user tries to
// display the depth texture while multisampling.
osgText::Text* noCanDo = new osgText::Text;
noCanDo->setFont(fontName);

View File

@@ -74,7 +74,7 @@ int main( int argc, char **argv )
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options]");
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");
arguments.getApplicationUsage()->addCommandLineOption("-i <filename>","Input scene (or presentation) filename.");
arguments.getApplicationUsage()->addCommandLineOption("-o <filename>","Base ouput filename of the images, recommended to use something like Images/image.png");
arguments.getApplicationUsage()->addCommandLineOption("-o <filename>","Base output filename of the images, recommended to use something like Images/image.png");
arguments.getApplicationUsage()->addCommandLineOption("--cs <filename>","Load pre-generated configuration file for run.");
arguments.getApplicationUsage()->addCommandLineOption("--ouput-cs <filename>","Output configuration file with settings provided on commandline.");
arguments.getApplicationUsage()->addCommandLineOption("-p <filename>","Use specificied camera path file to control camera position.");

View File

@@ -96,7 +96,7 @@ int main(int argc, char *argv[])
osg::ArgumentParser arguments(&argc,argv);
// set up the usage document, in case we need to print out how to use this program.
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates ping pong rendering with FBOs and mutliple rendering branches. It uses Conway's Game of Life to illustrate the concept.");
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates ping pong rendering with FBOs and multiple rendering branches. It uses Conway's Game of Life to illustrate the concept.");
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] --startim start_image");
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");
arguments.getApplicationUsage()->addCommandLineOption("--startim","The initial image to seed the game of life with.");

View File

@@ -124,7 +124,7 @@
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
- I used BufferTemplate class written 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.
@@ -1145,7 +1145,7 @@ osg::Group* createAirplane( float detailRatio, const osg::Vec4& hullColor, const
return root.release();
}
// createStaticRendering() shows how to use any OSG graph ( wheter it is single osg::Geode, or sophisticated osg::PagedLOD tree covering whole earth )
// createStaticRendering() shows how to use any OSG graph ( whether it is single osg::Geode, or sophisticated osg::PagedLOD tree covering whole earth )
// as a source of instance data. This way, the OSG graph of arbitrary size is at first culled using typical OSG mechanisms, then remaining osg::Geometries
// are sent to cull shader ( cullProgram ). Cull shader does not draw anything to screen ( thanks to GL_RASTERIZER_DISCARD mode ), but calculates if particular
// instances - sourced from above mentioned osg::Geometries - are visible and what LODs for these instances should be rendered.

View File

@@ -125,7 +125,7 @@ int main( int argc, char **argv )
osg::ArgumentParser arguments(&argc,argv);
// set up the usage document, in case we need to print out how to use this program.
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates how to create a scene programatically, in this case a hang gliding flying site.");
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates how to create a scene programmatically, in this case a hang gliding flying site.");
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] filename ...");
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");

View File

@@ -39,7 +39,7 @@
#include "stdio.h"
// callback to make the loaded model oscilate up and down.
// callback to make the loaded model oscillate up and down.
class ModelTransformCallback : public osg::NodeCallback
{
public:

View File

@@ -326,7 +326,7 @@ int main( int argc, char **argv )
arguments.getApplicationUsage()->addCommandLineOption("--texture <width> <height> <depth>","Allocate a 3D texture of specified dimensions.");
arguments.getApplicationUsage()->addCommandLineOption("--texture <width> <height>","Allocate a 2D texture of specified dimensions.");
arguments.getApplicationUsage()->addCommandLineOption("--texture <width>","Allocate a 1D texture of specified dimensions.");
arguments.getApplicationUsage()->addCommandLineOption("--geometry <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using OpenGL Dislay Lists.");
arguments.getApplicationUsage()->addCommandLineOption("--geometry <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using OpenGL Display Lists.");
arguments.getApplicationUsage()->addCommandLineOption("--geometry-va <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using Vertex Arrays.");
arguments.getApplicationUsage()->addCommandLineOption("--geometry-vbo <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using Vertex Buffer Objects.");
arguments.getApplicationUsage()->addCommandLineOption("--fbo <width> <height>","Allocate a FrameBufferObject of specified dimensions.");

View File

@@ -290,7 +290,7 @@ int main( int argc, char **argv )
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates use of convex planer occluders.");
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] filename ...");
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");
arguments.getApplicationUsage()->addCommandLineOption("-m","Mannually create occluders");
arguments.getApplicationUsage()->addCommandLineOption("-m","Manually create occluders");
// initialize the viewer.
osgViewer::Viewer viewer;

View File

@@ -444,7 +444,7 @@ void build_world(osg::Group *root)
// the second one will be a little bit more complex, showing how to
// create custom operators.
// To avoid inserting too much code in a single function, we have
// splitted the work into two functions which accept a Group node as
// split the work into two functions which accept a Group node as
// parameter, and return a pointer to the particle system they created.
osgParticle::ParticleSystem *ps1 = create_simple_particle_system(root);

View File

@@ -317,7 +317,7 @@ public:
// insert particle effects alongside the hit node, therefore able to track that nodes movement,
// however, this does require us to insert the ParticleSystem itself into the root of the scene graph
// separately from the main particle effects group which contains the emitters and programs.
// the follow code block implements this, note the path for handling particle effects which arn't attached to
// the follow code block implements this, note the path for handling particle effects which aren't attached to
// moving models is easy - just a single line of code!
// tell the effects not to attach to the particle system locally for rendering, as we'll handle add it into the

View File

@@ -155,7 +155,7 @@ int main( int argc, char** argv )
root->addChild( parent.get() );
root->addChild( updater.get() );
// FIXME 2010.9.19: the updater can't be a drawable; otehrwise the ParticleEffect will not work properly. why?
// FIXME 2010.9.19: the updater can't be a drawable; otherwise the ParticleEffect will not work properly. why?
updater->addParticleSystem( ps.get() );
osg::ref_ptr<osg::Geode> geode = new osg::Geode;

View File

@@ -747,7 +747,7 @@ int main( int argc, char **argv )
osg::ref_ptr<Album> album = new Album(arguments,width,height);
// creat the scene from the file list.
// create the scene from the file list.
osg::ref_ptr<osg::Group> rootNode = album->getScene();
if (!rootNode) return 0;

View File

@@ -16,9 +16,7 @@
* THE SOFTWARE.
*/
/* osgpick sample
* demonstrate use of osgUtil/PickVisitor for picking in a HUD or
* in a 3d scene,
/* osgpick sample - Mouse picking in a 3d scene,
*/
#include <osgUtil/Optimizer>

View File

@@ -50,7 +50,7 @@ int main(int argc, char** argv)
if (script.valid()) scripts.push_back(script.get());
}
// assgin script engine to scene graphs
// assign script engine to scene graphs
model->getOrCreateUserDataContainer()->addUserObject(osgDB::readFile<osg::ScriptEngine>("ScriptEngine.lua"));
model->getOrCreateUserDataContainer()->addUserObject(osgDB::readFile<osg::ScriptEngine>("ScriptEngine.python"));
model->getOrCreateUserDataContainer()->addUserObject(osgDB::readFile<osg::ScriptEngine>("ScriptEngine.js"));

View File

@@ -120,7 +120,7 @@ int main(int argc, char* argv[])
sampler2=(osg::Sampler*)(*it)->getTextureAttribute(0, osg::StateAttribute::SAMPLER);
}
if(sampler1.valid()&&sampler2.valid()){
OSG_WARN<<"2samplers manipulator setted"<<std::endl;
OSG_WARN<<"2samplers manipulator set"<<std::endl;
viewer.addEventHandler(new SamplersKeyboardEventHandler(sampler1.get(), sampler2.get()));
}
}
@@ -185,7 +185,7 @@ int main(int argc, char* argv[])
im->dirty();
tex2->setImage(im);
}
///Overrided Filtering setup
///Overridden Filtering setup
tex1->setFilter(osg::Texture::MAG_FILTER,osg::Texture::NEAREST);
tex1->setFilter(osg::Texture::MIN_FILTER,osg::Texture::NEAREST);

View File

@@ -26,11 +26,16 @@
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgViewer/GraphicsWindow>
#include <sstream>
#include <iostream>
#define MIN_NEARFAROFFSET 0.1
// force the WIndowingSystem to initialize to allow us to create a graphics context.
USE_GRAPHICSWINDOW()
class SliceProcessor
{
public:
@@ -187,7 +192,7 @@ int main( int argc, char **argv )
// pass frame stamp to the SceneView so that the update, cull and draw traversals all use the same FrameStamp
sceneView->setFrameStamp(frameStamp.get());
// update the viewport dimensions, incase the window has been resized.
// update the viewport dimensions, in case the window has been resized.
sceneView->setViewport(0,0,traits->width,traits->height);

View File

@@ -610,7 +610,7 @@ int main( int argc, char **argv )
osg::TexMat* texmatLeft = new osg::TexMat;
osg::TexMat* texmatRight = new osg::TexMat;
// creat the scene from the file list.
// create the scene from the file list.
osg::ref_ptr<osg::Switch> rootNode;
if (!onDisk) rootNode = createScene(fileList,texmatLeft,texmatRight,radius,height,length);
else rootNode=new osg::Switch();

View File

@@ -235,7 +235,7 @@ class Teapot : public osg::Drawable
// of OpenGL primitives.
virtual void drawImplementation(osg::RenderInfo&) const
{
// teapot(..) doens't use vertex arrays at all so we don't need to toggle their state
// teapot(..) doesn't use vertex arrays at all so we don't need to toggle their state
// if we did we'd need to something like following call
// state.disableAllVertexArrays(), see src/osg/Geometry.cpp for the low down.

View File

@@ -379,6 +379,11 @@ int main(int argc, char** argv)
terrain->setVerticalScale(verticalScale);
terrain->setBlendingPolicy(blendingPolicy);
if (arguments.read("--equalize-boundaries") || arguments.read("-e"))
{
terrain->setEqualizeBoundaries(true);
}
if (useDisplacementMappingTechnique)
{

View File

@@ -61,7 +61,7 @@ class /*OSGTEXT_EXPORT*/ TextTechnique : public osg::Object
/// default TextTechnique implementation used if no other is specified on TextNode
static osg::ref_ptr<TextTechnique>& getDefaultTextTechinque();
/// start building a new charater layout
/// start building a new character layout
virtual void start();
/// called by Layout engine to place individual characters
@@ -70,7 +70,7 @@ class /*OSGTEXT_EXPORT*/ TextTechnique : public osg::Object
/// called by Layout engine to place individual characters
virtual void addCharacter(const osg::Vec3& position, const osg::Vec3& size, Glyph3D* glyph, Style* style);
/// finish building new charater layout
/// finish building new character layout
virtual void finish();
/// provide traversal control

View File

@@ -4,7 +4,7 @@
#include <osgGA/TrackballManipulator>
// This is an implementation of SimpleViewer that is designed to be subclassed
// and used as a GtkDrawingArea in a GTK application. Because of the implemention
// and used as a GtkDrawingArea in a GTK application. Because of the implementation
// of GTK, I was unable to derive from GtkWidget and instead had to "wrap" it.
// Conceptually, however, you can think of an OSGGTKDrawingArea as both an OSG
// Viewer AND GtkDrawingArea.

View File

@@ -211,7 +211,7 @@ osg::Node * CreateAdvancedHierarchy( osg::Node * model )
// Set default VirtualProgram in root StateSet
// With main vertex and main fragment shaders calling
// lighting and texture functions defined in aditional shaders
// lighting and texture functions defined in additional shaders
// Lighting is done per vertex using simple directional light
// Texture uses stage 0 TexCoords and TexMap

View File

@@ -45,10 +45,10 @@ public:
Affinity& operator = (const Affinity& rhs) { if (&rhs!=this) { activeCPUs = rhs.activeCPUs; } return *this; }
/** add a specfied cpu core from the list to have affinity to. */
/** add a specified cpu core from the list to have affinity to. */
void add(unsigned int cpuNmber) { activeCPUs.insert(cpuNmber); }
/** remove a specfied cpu core from the list to have affinity to. */
/** remove a specified cpu core from the list to have affinity to. */
void remove(unsigned int cpuNmber) { activeCPUs.erase(cpuNmber); }
/** return true if affinity has been provided for specific CPU cores.*/

View File

@@ -190,7 +190,7 @@ public:
/**
* Set the thread's schedule priority. This is a complex method.
* Beware of thread priorities when using a many-to-many kernel
* entity implemenation (such as IRIX pthreads). If one is not careful
* entity implementation (such as IRIX pthreads). If one is not careful
* to manage the thread priorities, a priority inversion deadlock can
* easily occur (Although the OpenThreads::Mutex & OpenThreads::Barrier
* constructs have been designed with this scenario in mind). Unless

View File

@@ -152,6 +152,14 @@ class BufferObjectProfile
class GLBufferObjectSet;
class GLBufferObjectManager;
inline unsigned int computeBufferAlignment(unsigned int pos, unsigned int bufferAlignment)
{
if (bufferAlignment<2) return pos;
if ((pos%bufferAlignment)==0) return pos;
return ((pos/bufferAlignment)+1)*bufferAlignment;
}
class OSG_EXPORT GLBufferObject : public GraphicsObject
{
public:
@@ -235,9 +243,7 @@ class OSG_EXPORT GLBufferObject : public GraphicsObject
unsigned int computeBufferAlignment(unsigned int pos, unsigned int bufferAlignment) const
{
if (bufferAlignment<2) return pos;
if ((pos%bufferAlignment)==0) return pos;
return ((pos/bufferAlignment)+1)*bufferAlignment;
return osg::computeBufferAlignment(pos, bufferAlignment);
}
unsigned int _contextID;
@@ -431,10 +437,10 @@ class OSG_EXPORT BufferObject : public Object
const BufferObjectProfile& getProfile() const { return _profile; }
/** Set whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immmediately so that it may be reused.*/
/** Set whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immediately so that it may be reused.*/
void setCopyDataAndReleaseGLBufferObject(bool copyAndRelease) { _copyDataAndReleaseGLBufferObject = copyAndRelease; }
/** Get whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immmediately.*/
/** Get whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immediately.*/
bool getCopyDataAndReleaseGLBufferObject() const { return _copyDataAndReleaseGLBufferObject; }

View File

@@ -158,7 +158,7 @@ public:
};
/** Convenience function for getting the CallbackObject associated with specificed name from an Object's UserDataContainer.*/
/** Convenience function for getting the CallbackObject associated with specified name from an Object's UserDataContainer.*/
inline CallbackObject* getCallbackObject(osg::Object* object, const std::string& name)
{
osg::UserDataContainer* udc = object->getUserDataContainer();
@@ -171,7 +171,7 @@ inline CallbackObject* getCallbackObject(osg::Object* object, const std::string&
}
/** Convenience function for getting the CallbackObject associated with specificed name from an Object's UserDataContainer.*/
/** Convenience function for getting the CallbackObject associated with specified name from an Object's UserDataContainer.*/
inline const CallbackObject* getCallbackObject(const osg::Object* object, const std::string& name)
{
const osg::UserDataContainer* udc = object->getUserDataContainer();

View File

@@ -566,7 +566,7 @@ inline void Drawable::draw(RenderInfo& renderInfo) const
State::SetCurrentVertexArrayStateProxy setVASProxy(state, vas);
vas->bindVertexArrayObject();
state.bindVertexArrayObject(vas);
drawInner(renderInfo);
@@ -576,7 +576,11 @@ inline void Drawable::draw(RenderInfo& renderInfo) const
}
// TODO, add check against whether VAO is active and supported
if (state.getCurrentVertexArrayState()) state.getCurrentVertexArrayState()->bindVertexArrayObject();
if (state.getCurrentVertexArrayState())
{
//OSG_NOTICE<<"state.getCurrentVertexArrayState()->getVertexArrayObject()="<< state.getCurrentVertexArrayState()->getVertexArrayObject()<<std::endl;
state.bindVertexArrayObject(state.getCurrentVertexArrayState());
}
#ifdef OSG_GL_DISPLAYLISTS_AVAILABLE

View File

@@ -56,6 +56,13 @@
#endif
#endif
// helper macro's for quieten unused variable warnings
#define OSG_UNUSED(VAR) (void)(VAR)
#define OSG_UNUSED2(VAR1, VAR2) (void)(VAR1); (void)(VAR2);
#define OSG_UNUSED3(VAR1, VAR2, VAR3) (void)(VAR1); (void)(VAR2); (void)(VAR2);
#define OSG_UNUSED4(VAR1, VAR2, VAR3, VAR4) (void)(VAR1); (void)(VAR2); (void)(VAR3); (void)(VAR4);
#define OSG_UNUSED5(VAR1, VAR2, VAR3, VAR4, VAR5) (void)(VAR1); (void)(VAR2); (void)(VAR3); (void)(VAR4); (void)(VAR5);
/**
\namespace osg

View File

@@ -433,7 +433,7 @@ class OSG_EXPORT Image : public BufferData
/** Ensure image dimensions are a power of two.
* Mipmapped textures require the image dimensions to be
* power of two and are within the maxiumum texture size for
* power of two and are within the maximum texture size for
* the host machine.
*/
void ensureValidSizeForTexturing(GLint maxTextureSize);

View File

@@ -194,11 +194,11 @@ class OSG_EXPORT Node : public Object
/** Get the list of node paths parent paths.
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node. */
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specified node. */
NodePathList getParentalNodePaths(osg::Node* haltTraversalAtNode=0) const;
/** Get the list of matrices that transform this node from local coordinates to world coordinates.
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node. */
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specified node. */
MatrixList getWorldMatrices(const osg::Node* haltTraversalAtNode=0) const;

View File

@@ -154,7 +154,7 @@ class OSG_EXPORT PagedLOD : public LOD
/** Get the number of children that the PagedLOD must keep around, even if they are older than their expiry time.*/
unsigned int getNumChildrenThatCannotBeExpired() const { return _numChildrenThatCannotBeExpired; }
/** Set wether you want to disable the paging in of external nodes.*/
/** Set whether you want to disable the paging in of external nodes.*/
void setDisableExternalChildrenPaging(bool flag) { _disableExternalChildrenPaging = flag; }
bool getDisableExternalChildrenPaging() const { return _disableExternalChildrenPaging; }

View File

@@ -47,7 +47,7 @@ class OSG_EXPORT Referenced
Referenced();
/** Deprecated, Referenced is now always uses thread safe ref/unref, use default Refernced() constructor instead */
/** Deprecated, Referenced is now always uses thread safe ref/unref, use default Referenced() constructor instead */
explicit Referenced(bool threadSafeRefUnref);
Referenced(const Referenced&);

View File

@@ -747,7 +747,7 @@ class TessellationHints : public Object
// forward declare;
class Geometry;
/** Convenience class for populating an Geomtry with vertex, normals, texture coords and primitives that can render a Shape. */
/** Convenience class for populating an Geometry with vertex, normals, texture coords and primitives that can render a Shape. */
class OSG_EXPORT BuildShapeGeometryVisitor : public ConstShapeVisitor
{
public:
@@ -768,10 +768,13 @@ class OSG_EXPORT BuildShapeGeometryVisitor : public ConstShapeVisitor
virtual void apply(const CompositeShape&);
void Normal(const Vec3f& v) { _normals->push_back(v); }
void Normal3f(float x, float y, float z) { _normals->push_back(Vec3(x,y,z)); }
void TexCoord2f(float x, float y) { _texcoords->push_back(Vec2(x,y)); }
void Vertex(const Vec3f& v) { _vertices->push_back(v); }
void Vertex3f(float x, float y, float z) { _vertices->push_back(Vec3(x,y,z)); }
void Normal3f(float x, float y, float z) { Normal(Vec3(x,y,z)); }
void TexCoord(const Vec2f& tc) { _texcoords->push_back(tc); }
void TexCoord2f(float x, float y) { TexCoord(Vec2(x,y)); }
void Vertex(const Vec3f& v);
void Vertex3f(float x, float y, float z) { Vertex(Vec3(x,y,z)); }
void setMatrix(const Matrixd& m);

View File

@@ -834,11 +834,13 @@ class OSG_EXPORT State : public Referenced
/** Get the const DisplaySettings */
inline const DisplaySettings* getDisplaySettings() const { return _displaySettings.get(); }
/** Get the DisplaySettings that is current active DisplaySettings to be used by osg::State, - if DisplaySettings is not directly assigned then fallback to DisplaySettings::instance(). */
inline DisplaySettings* getActiveDisplaySettings() { return _displaySettings.valid() ? _displaySettings.get() : osg::DisplaySettings::instance().get(); }
/** Get the const DisplaySettings that is current active DisplaySettings to be used by osg::State, - if DisplaySettings is not directly assigned then fallback to DisplaySettings::instance(). */
inline const DisplaySettings* getActiveDisplaySettings() const { return _displaySettings.valid() ? _displaySettings.get() : osg::DisplaySettings::instance().get(); }
/** Set flag for early termination of the draw traversal.*/
void setAbortRenderingPtr(bool* abortPtr) { _abortRenderingPtr = abortPtr; }

View File

@@ -19,7 +19,7 @@
namespace osg {
#if defined(_MSC_VER)
typedef __int64 Timer_t;
typedef unsigned __int64 Timer_t;
#else
typedef unsigned long long Timer_t;
#endif

View File

@@ -203,14 +203,14 @@ protected:
};
/** Convenience function for getting the User Object associated with specificed name from an Object's UserDataContainer.*/
/** Convenience function for getting the User Object associated with specified name from an Object's UserDataContainer.*/
inline Object* getUserObject(osg::Object* object, const std::string& name)
{
osg::UserDataContainer* udc = object->getUserDataContainer();
return udc ? udc->getUserObject(name) : 0;
}
/** Convenience function for getting the User Object associated with specificed name from an Object's UserDataContainer.*/
/** Convenience function for getting the User Object associated with specified name from an Object's UserDataContainer.*/
inline const Object* getUserObject(const osg::Object* object, const std::string& name)
{
const osg::UserDataContainer* udc = object->getUserDataContainer();

View File

@@ -28,7 +28,7 @@ class Vec2i
/** Number of vector components. */
enum { num_components = 2 };
/** Vec member varaible. */
/** Vec member variable. */
value_type _v[2];
Vec2i() { _v[0]=0; _v[1]=0; }

View File

@@ -28,7 +28,7 @@ class Vec2ui
/** Number of vector components. */
enum { num_components = 2 };
/** Vec member varaible. */
/** Vec member variable. */
value_type _v[2];
Vec2ui() { _v[0]=0; _v[1]=0; }

View File

@@ -28,7 +28,7 @@ class Vec3i
/** Number of vector components. */
enum { num_components = 3 };
/** Vec member varaible. */
/** Vec member variable. */
value_type _v[3];
Vec3i() { _v[0]=0; _v[1]=0; _v[2]=0; }

View File

@@ -28,7 +28,7 @@ class Vec3ui
/** Number of vector components. */
enum { num_components = 3 };
/** Vec member varaible. */
/** Vec member variable. */
value_type _v[3];
Vec3ui() { _v[0]=0; _v[1]=0; _v[2]=0; }

View File

@@ -28,7 +28,7 @@ class Vec4i
/** Number of vector components. */
enum { num_components = 4 };
/** Vec member varaible. */
/** Vec member variable. */
value_type _v[4];
Vec4i() { _v[0]=0; _v[1]=0; _v[2]=0; _v[3]=0; }

View File

@@ -28,7 +28,7 @@ class Vec4ui
/** Number of vector components. */
enum { num_components = 4 };
/** Vec member varaible. */
/** Vec member variable. */
value_type _v[4];
Vec4ui() { _v[0]=0; _v[1]=0; _v[2]=0; _v[3]=0; }

View File

@@ -16,6 +16,7 @@
#include <ostream>
#include <istream>
#include <sstream>
#include <osg/Vec4d>
#include <osg/Vec4ub>
@@ -35,6 +36,43 @@
namespace osg {
/** Convinience class for building std::string using stringstream.
* Usage:
* MakeString str;
* std::string s = str<<"Mix strings with numbers "<<0" ;
* std::string s2 = str.clear()<<"and other classes such as ("<<osg::Vec3(0.0,1.0,3.0)<<)" ; */
class MakeString
{
public:
MakeString() {}
std::stringstream sstream;
template<typename T>
MakeString& operator << (const T& t)
{
sstream << t;
return *this;
}
MakeString& operator << (std::ostream& (*fun)(std::ostream&))
{
sstream << fun;
return *this;
}
inline MakeString& clear() { sstream.str("") ; return *this; }
inline operator std::string () const { return sstream.str(); }
inline std::string str() const { return sstream.str(); }
inline const char* c_str() const { return sstream.str().c_str(); }
};
inline std::ostream& operator << (std::ostream& output, const MakeString& str) { output << str.str(); return output; }
//////////////////////////////////////////////////////////////////////////
// Vec2f streaming operators
inline std::ostream& operator << (std::ostream& output, const Vec2f& vec)

View File

@@ -30,6 +30,8 @@ extern OSG_EXPORT int osg_system(const char* str);
#ifdef __cplusplus
#include <string>
#if defined(OSG_ENVVAR_SUPPORTED)
#include <stdlib.h>
#include <sstream>
@@ -47,11 +49,16 @@ inline unsigned int getClampedLength(const char* str, unsigned int maxNumChars=4
inline std::string getEnvVar(const char* name)
{
#ifdef OSG_ENVVAR_SUPPORTED
std::string value;
const char* ptr = getenv(name);
if (ptr) value.assign(ptr, getClampedLength(ptr));
return value;
}
#else
OSG_UNUSED(name);
return std::string();
#endif
}
template<typename T>
@@ -65,6 +72,7 @@ inline bool getEnvVar(const char* name, T& value)
str >> value;
return !str.fail();
#else
OSG_UNUSED2(name, value);
return false;
#endif
}
@@ -79,6 +87,7 @@ inline bool getEnvVar(const char* name, std::string& value)
value.assign(ptr, getClampedLength(ptr));
return true;
#else
OSG_UNUSED2(name, value);
return false;
#endif
}
@@ -94,6 +103,7 @@ inline bool getEnvVar(const char* name, T1& value1, T2& value2)
str >> value1 >> value2;
return !str.fail();
#else
OSG_UNUSED3(name, value1, value2);
return false;
#endif
}
@@ -109,6 +119,7 @@ inline bool getEnvVar(const char* name, T1& value1, T2& value2, T3& value3)
str >> value1 >> value2 >> value3;
return !str.fail();
#else
OSG_UNUSED4(name, value1, value2, value3);
return false;
#endif
}
@@ -124,6 +135,7 @@ inline bool getEnvVar(const char* name, T1& value1, T2& value2, T3& value3, T4&
str >> value1 >> value2 >> value3 >> value4;
return !str.fail();
#else
OSG_UNUSED5(name, value1, value2, value3, value4);
return false;
#endif
}

View File

@@ -81,7 +81,7 @@ class ref_ptr
bool operator < (const ref_ptr& rp) const { return (_ptr<rp._ptr); }
// follows is an implmentation of the "safe bool idiom", details can be found at:
// follows is an implementation of the "safe bool idiom", details can be found at:
// http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Safe_bool
// http://lists.boost.org/Archives/boost/2003/09/52856.php

View File

@@ -135,15 +135,15 @@ namespace osgAnimation
template <class V>
inline void compute(const osg::Matrix& transform, const osg::Matrix& invTransform, const V* src, V* dst)
{
// the result of matrix mult should be cached to be used for vertexes transform and normal transform and maybe other computation
// the result of matrix mult should be cached to be used for vertices transform and normal transform and maybe other computation
for(VertexGroupList::iterator itvg=_uniqVertexGroupList.begin(); itvg!=_uniqVertexGroupList.end(); ++itvg)
{
VertexGroup& uniq = *itvg;
uniq.computeMatrixForVertexSet();
osg::Matrix matrix = transform * uniq.getMatrix() * invTransform;
const IndexList& vertexes = uniq.getVertices();
for(IndexList::const_iterator vertIDit=vertexes.begin(); vertIDit!=vertexes.end(); ++vertIDit)
const IndexList& vertices = uniq.getVertices();
for(IndexList::const_iterator vertIDit=vertices.begin(); vertIDit!=vertices.end(); ++vertIDit)
{
dst[*vertIDit] = src[*vertIDit] * matrix;
}
@@ -160,8 +160,8 @@ namespace osgAnimation
uniq.computeMatrixForVertexSet();
osg::Matrix matrix = transform * uniq.getMatrix() * invTransform;
const IndexList& vertexes = uniq.getVertices();
for(IndexList::const_iterator vertIDit=vertexes.begin(); vertIDit!=vertexes.end(); ++vertIDit)
const IndexList& vertices = uniq.getVertices();
for(IndexList::const_iterator vertIDit=vertices.begin(); vertIDit!=vertices.end(); ++vertIDit)
{
dst[*vertIDit] = osg::Matrix::transform3x3(src[*vertIDit],matrix);
}

View File

@@ -61,7 +61,7 @@ namespace osgAnimation
///normalize per vertex weights given numvert of the attached mesh
void normalize(unsigned int numvert);
///remove weakest influences in order to fit targetted numbonepervertex
///remove weakest influences in order to fit targeted numbonepervertex
void cullInfluenceCountPerVertex(unsigned int maxnumbonepervertex, float minweight=0, bool renormalize=true);
//compute PerVertexInfluenceList

View File

@@ -110,12 +110,12 @@ DECLARE_TYPE(osg::BoundingBoxd, BOUNDINGBOXD)
DECLARE_TYPE(osg::BoundingSpheref, BOUNDINGSPHEREF)
DECLARE_TYPE(osg::BoundingSphered, BOUNDINGSPHERED)
// forward decalare
// forward declare
class PropertyOutputIterator;
class PropertyInputIterator;
/** ClassInterface provides a general means of checking for supported properties of classes, and getting/setting thoses properties.
/** ClassInterface provides a general means of checking for supported properties of classes, and getting/setting those properties.
Uses the osgDB serializers to do the actual object query/get/set.
*/
class OSGDB_EXPORT ClassInterface
@@ -166,10 +166,10 @@ public:
/// run method of object
bool run(osg::Object* object, const std::string& methodName, osg::Parameters& inputParameters, osg::Parameters& outputParameters) const;
/// checked for support of specificed method
/// checked for support of specified method
bool hasMethod(const std::string& compoundClassName, const std::string& methodName) const;
/// checked for support of specificed method
/// checked for support of specified method
bool hasMethod(const osg::Object* object, const std::string& methodName) const;

View File

@@ -434,7 +434,7 @@ class OSGDB_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandl
void compileCompleted(DatabaseRequest* databaseRequest);
/** Iterate through the active PagedLOD nodes children removing
* children which havn't been visited since specified expiryTime.
* children which haven't been visited since specified expiryTime.
* note, should be only be called from the update thread. */
virtual void removeExpiredSubgraphs(const osg::FrameStamp &frameStamp);

View File

@@ -39,7 +39,7 @@ extern OSGDB_EXPORT std::string getNameLessAllExtensions(const std::string& file
extern OSGDB_EXPORT std::string getStrippedName(const std::string& fileName);
/** If 'to' is in a subdirectory of 'from' then this function returns the subpath, otherwise it just returns the file name.
* The function does \b not automagically resolve paths as the system does, so be careful to give canonical paths.
* However, the function interprets slashes ('/') ans backslashes ('\') as they were equal.
* However, the function interprets slashes ('/') and backslashes ('\') as they were equal.
*/
extern OSGDB_EXPORT std::string getPathRelative(const std::string& from, const std::string& to);
/** Gets root part of a path ("/" or "C:"), or an empty string if none found. */

View File

@@ -181,10 +181,10 @@ public:
else return 0;
}
/// set an input iterator, used directly when not using InputStream with a traditional file releated stream.
/// set an input iterator, used directly when not using InputStream with a traditional file related stream.
void setInputIterator( InputIterator* ii ) { _in = ii; }
/// start reading from InputStream treating it as a traditional file releated stream, handles headers and versioning
/// start reading from InputStream treating it as a traditional file related stream, handles headers and versioning
ReadType start( InputIterator* );
void decompress();

View File

@@ -70,14 +70,17 @@ class OSGDB_EXPORT ObjectCache : public osg::Referenced
typedef std::pair<std::string, osg::ref_ptr<const osgDB::Options> > FileNameOptionsPair;
class ClassComp {
public:
struct ClassComp
{
bool operator() (const ObjectCache::FileNameOptionsPair& lhs, const ObjectCache::FileNameOptionsPair& rhs) const;
};
typedef std::pair<osg::ref_ptr<osg::Object>, double > ObjectTimeStampPair;
typedef std::map<FileNameOptionsPair, ObjectTimeStampPair, ClassComp> ObjectCacheMap;
ObjectCacheMap::iterator find(const std::string& fileName, const osgDB::Options* options);
ObjectCacheMap _objectCache;
OpenThreads::Mutex _objectCacheMutex;

View File

@@ -95,21 +95,9 @@ class OSGDB_EXPORT Options : public osg::Object
};
Options():
osg::Object(true),
_objectCacheHint(CACHE_ARCHIVES),
_precisionHint(FLOAT_PRECISION_ALL),
_buildKdTreesHint(NO_PREFERENCE) {}
Options();
Options(const std::string& str):
osg::Object(true),
_str(str),
_objectCacheHint(CACHE_ARCHIVES),
_precisionHint(FLOAT_PRECISION_ALL),
_buildKdTreesHint(NO_PREFERENCE)
{
parsePluginStringData(str);
}
Options(const std::string& str);
Options(const Options& options,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
@@ -257,10 +245,11 @@ class OSGDB_EXPORT Options : public osg::Object
bool operator < (const Options &rhs) const;
bool operator == (const Options &rhs) const;
virtual ~Options() {}
protected:
virtual ~Options();
std::string _str;
FilePathList _databasePaths;

View File

@@ -173,10 +173,10 @@ public:
void writeObjectFields( const osg::Object* obj );
void writeObjectFields( const osg::Object* obj, const std::string& compoundName );
/// set an output iterator, used directly when not using OutputStream with a traditional file releated stream.
/// set an output iterator, used directly when not using OutputStream with a traditional file related stream.
void setOutputIterator( OutputIterator* oi ) { _out = oi; }
/// start writing to OutputStream treating it as a traditional file releated stream, handles headers and versioning
/// start writing to OutputStream treating it as a traditional file related stream, handles headers and versioning
void start( OutputIterator* outIterator, WriteType type );
void compress( std::ostream* ostream );

View File

@@ -554,7 +554,7 @@ class OSGDB_EXPORT Registry : public osg::Referenced
public:
/** Functor used in internal implementations.*/
struct ReadFunctor
struct ReadFunctor : public osg::Referenced
{
ReadFunctor(const std::string& filename, const Options* options):
_filename(filename),

View File

@@ -37,7 +37,7 @@ namespace osgFX
Cartoon();
Cartoon(const Cartoon& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
// effect class informations
// effect class information
META_Effect(
osgFX,
Cartoon,

View File

@@ -36,7 +36,7 @@ namespace osgFX
Scribe();
Scribe(const Scribe& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
// effect class informations
// effect class information
META_Effect(
osgFX,
Scribe,

View File

@@ -107,7 +107,7 @@ class OSGGA_EXPORT EventVisitor : public osg::NodeVisitor
}
// The following overrides are technically redundant as the default implementation would eventually trickle down to
// apply(osg::Node&); - however defining these explicitely should save a couple of virtual function calls
// apply(osg::Node&); - however defining these explicitly should save a couple of virtual function calls
virtual void apply(osg::Geode& node) { handle_callbacks_and_traverse(node); }
virtual void apply(osg::Billboard& node) { handle_callbacks_and_traverse(node); }
virtual void apply(osg::LightSource& node) { handle_callbacks_and_traverse(node); }

View File

@@ -66,7 +66,7 @@ as appropriate for the viewer.
Events from the windowing environment are adpated, and then fed into the GUIEventHandlers.
The GUIEventHandlers analyse and take action, and make requests of the windowing
environemnt via the GUIActionAdapter. The viewer writer should then honour these
environment via the GUIActionAdapter. The viewer writer should then honour these
requests, translating them into calls to the windowing API.
*/

View File

@@ -44,7 +44,7 @@ class OSGGA_EXPORT KeySwitchMatrixManipulator : public CameraManipulator
void addMatrixManipulator(int key, std::string name, CameraManipulator *cm);
/**
Add a camera manipulator with an autogenerated keybinding which is '1' + previous number of camera's registerd.
Add a camera manipulator with an autogenerated keybinding which is '1' + previous number of camera's registered.
*/
void addNumberedMatrixManipulator(CameraManipulator *cm);

View File

@@ -21,7 +21,6 @@
#include <osg/BoundingSphere>
#include <osg/MatrixTransform>
#include <osgUtil/SceneView>
#include <osgUtil/IntersectVisitor>
#include <osgGA/GUIEventAdapter>
#include <osgGA/GUIActionAdapter>

View File

@@ -19,6 +19,7 @@
#include <osgManipulator/RotateSphereDragger>
#include <osg/ShapeDrawable>
#include <osg/Geometry>
#include <osg/Geode>
#include <osg/LineWidth>
namespace osgManipulator {

View File

@@ -279,10 +279,6 @@ namespace osgParticle
ParticleSystem& operator=(const ParticleSystem&) { return *this; }
inline void update_bounds(const osg::Vec3& p, float r);
void single_pass_render(osg::RenderInfo& renderInfo, const osg::Matrix& modelview) const;
void render_vertex_array(osg::RenderInfo& renderInfo) const;
void new_drawImplementation(osg::RenderInfo& renderInfo) const;
typedef std::vector<Particle> Particle_vector;
typedef std::stack<Particle*> Death_stack;

View File

@@ -90,7 +90,7 @@ class OSGSHADOW_EXPORT MinimalShadowMap : public StandardShadowMap
// when scene objects are put on earth ellipsoid surface.
// Other scenarios are also possible for example when models are
// built in XZY space which would require identity matrix with swapped colums
// built in XZY space which would require identity matrix with swapped columns
osg::Matrix _modellingSpaceToWorld;
float _maxFarPlane;

View File

@@ -61,7 +61,7 @@ class OSGSHADOW_EXPORT StandardShadowMap : public DebugShadowMap
// Example: Imagine we want to swap base(0) and shadow(1) indices:
// We have to do an extra step to make sure both do not end up as 1
//
// // initialy change base to something else than 1
// // initially change base to something else than 1
// setBaseTextureCoordIndex( 100 );
// // now search and replace all gl_TexCord[1] to gl_TexCord[0]
// setShadowTextureCoordIndex( 0 );

View File

@@ -53,7 +53,7 @@ Caveats:
- It's possible to render the whole sphere by specifying elevation
and azimuth ranges round the full 360 degrees. When doing
so you may consider switching the planes, spokes, and edge lines
off, to avoid rendering artefacts, e.g. the upper and lower
off, to avoid rendering artifacts, e.g. the upper and lower
planes will be coincident.
*/
@@ -214,27 +214,27 @@ public:
/** A list of vertex arrays representing a list of lines.*/
typedef std::vector< osg::ref_ptr<osg::Vec3Array> > LineList;
/** Compute the interesection lines between subgraph and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
/** Compute the intersection lines between subgraph and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
* The resulting intersections are in the coordinate frame of the sphere segment. */
LineList computeIntersection(const osg::Matrixd& matrix, osg::Node* subgraph);
/** Compute the interesection lines between specified drawable and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
/** Compute the intersection lines between specified drawable and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
* The resulting intersections are in the coordinate frame of the sphere segment. */
LineList computeIntersection(const osg::Matrixd& matrix, osg::Drawable* drawable);
/** Compute the interesection lines between subgraph and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
/** Compute the intersection lines between subgraph and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
* The resulting intersections are in the coordinate frame of the sphere segment. */
osg::Node* computeIntersectionSubgraph(const osg::Matrixd& matrix, osg::Node* subgraph);
/** Compute the interesection lines between specified drawable and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
/** Compute the intersection lines between specified drawable and this sphere segment.
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
* The resulting intersections are in the coordinate frame of the sphere segment. */
osg::Node* computeIntersectionSubgraph(const osg::Matrixd& matrix, osg::Drawable* drawable);
/** recompute the vertex positions of the rendering meshes/lines thtat represent the sphere segment.*/
/** recompute the vertex positions of the rendering meshes/lines that represent the sphere segment.*/
void updatePositions();
/** recompute the primitives rendering meshes/lines thtat represent the sphere segment.*/

View File

@@ -73,7 +73,7 @@ public:
* placing text against noisy backgrounds.
* The color of the background shadow text is specified by setBackdropColor().
* DROP_SHADOW_BOTTOM_RIGHT will draw backdrop text to the right and down of
* the normal text. Other DROW_SHADOW_* modes do the same for their repective directions.
* the normal text. Other DROP_SHADOW_* modes do the same for their respective directions.
* OUTLINE will draw backdrop text so that it appears the text has an outline
* or border around the normal text. This mode is particularly useful against
* really noisy backgrounds that may put text on top of things that have

View File

@@ -354,10 +354,10 @@ class OSGUTIL_EXPORT CullVisitor : public osg::NodeVisitor, public osg::CullStac
RenderBin* _currentRenderBin;
std::vector<RenderBin*> _renderBinStack;
unsigned int _traversalNumber;
value_type _computed_znear;
value_type _computed_zfar;
value_type _computed_znear;
value_type _computed_zfar;
unsigned int _traversalOrderNumber;
typedef std::vector< osg::ref_ptr<RenderLeaf> > RenderLeafList;
@@ -466,7 +466,7 @@ inline RenderLeaf* CullVisitor::createOrReuseRenderLeaf(osg::Drawable* drawable,
while (_currentReuseRenderLeafIndex<_reuseRenderLeafList.size() &&
_reuseRenderLeafList[_currentReuseRenderLeafIndex]->referenceCount()>1)
{
osg::notify(osg::NOTICE)<<"Warning:createOrReuseRenderLeaf() skipping multiply refrenced entry."<< std::endl;
osg::notify(osg::INFO)<<"CullVisitor:createOrReuseRenderLeaf() skipping multiply referenced entry. _reuseRenderLeafList.size()="<< _reuseRenderLeafList.size()<<" _reuseRenderLeafList["<<_currentReuseRenderLeafIndex<<"]->referenceCount()="<<_reuseRenderLeafList[_currentReuseRenderLeafIndex]->referenceCount()<<std::endl;
++_currentReuseRenderLeafIndex;
}
@@ -474,19 +474,19 @@ inline RenderLeaf* CullVisitor::createOrReuseRenderLeaf(osg::Drawable* drawable,
if (_currentReuseRenderLeafIndex<_reuseRenderLeafList.size())
{
RenderLeaf* renderleaf = _reuseRenderLeafList[_currentReuseRenderLeafIndex++].get();
renderleaf->set(drawable,projection,matrix,depth,_traversalNumber++);
renderleaf->set(drawable,projection,matrix,depth,_traversalOrderNumber++);
return renderleaf;
}
// Otherwise need to create new renderleaf.
RenderLeaf* renderleaf = new RenderLeaf(drawable,projection,matrix,depth,_traversalNumber++);
RenderLeaf* renderleaf = new RenderLeaf(drawable,projection,matrix,depth,_traversalOrderNumber++);
_reuseRenderLeafList.push_back(renderleaf);
++_currentReuseRenderLeafIndex;
return renderleaf;
}
}
#endif

View File

@@ -91,7 +91,7 @@ public:
virtual bool outside(const osg::Vec3 &testpoint) const;
/** Tessellate the constraint loops so that the crossing points are interpolated
* and added to the contraints for the triangulation. */
* and added to the constraints for the triangulation. */
void handleOverlaps(void);
protected:

View File

@@ -107,7 +107,7 @@ class OSGUTIL_EXPORT IncrementalCompileOperation : public osg::GraphicsOperation
/** ConservativeTimeRatio governs how much of the measured spare time in each frame is used for flushing deleted and compile new OpenGL objects.
* Default value is 0.5, valid range is 0.1 to 1.0.
* A ratio near 1.0 will lead to paged databases being compiled and merged quicker but increase the chances of frame drop.
* A ratio near 0.1 will lead to paged databases being compiled and merged closer but reduse the chances of frame drop.*/
* A ratio near 0.1 will lead to paged databases being compiled and merged closer but reduce the chances of frame drop.*/
void setConservativeTimeRatio(double ratio) { _conservativeTimeRatio = ratio; }
double getConservativeTimeRatio() const { return _conservativeTimeRatio; }

View File

@@ -29,9 +29,9 @@
namespace osgUtil {
/** Deprecated */
class OSGUTIL_EXPORT Hit
{
/** Deprecated */
public:
Hit();
@@ -200,7 +200,7 @@ class OSGUTIL_EXPORT IntersectVisitor : public osg::NodeVisitor
osg::Vec3 _pseudoEyePoint;
};
/** Picking intersection visitor specialises the IntersectVistor to allow more convenient handling of mouse picking.*/
/** Deprecated Use LineSegmentIntersector/IntersectionVisitor or View::computeIntersections(..).*/
class OSGUTIL_EXPORT PickVisitor : public osgUtil::IntersectVisitor
{
public:

View File

@@ -121,5 +121,21 @@ protected:
std::map<unsigned int, unsigned int> _deduplicateUvs;
}; // SharedArrayOptimizer
inline void optimizeMesh(osg::Node* node)
{
IndexMeshVisitor imv;
node->accept(imv);
imv.makeMesh();
VertexCacheVisitor vcv;
node->accept(vcv);
vcv.optimizeVertices();
VertexAccessOrderVisitor vaov;
node->accept(vaov);
vaov.optimizeOrder();
}
}
#endif

View File

@@ -73,6 +73,9 @@ class OSGUTIL_EXPORT RenderBin : public osg::Object
virtual void reset();
void setStateGraph(StateGraph* sg) { _rootStateGraph = sg; }
StateGraph* getStateGraph() { return _rootStateGraph.get(); }
void setStateSet(osg::StateSet* stateset) { _stateset = stateset; }
osg::StateSet* getStateSet() { return _stateset.get(); }
const osg::StateSet* getStateSet() const { return _stateset.get(); }
@@ -157,6 +160,8 @@ class OSGUTIL_EXPORT RenderBin : public osg::Object
virtual ~RenderBin();
osg::ref_ptr<StateGraph> _rootStateGraph;
int _binNum;
RenderBin* _parent;
RenderStage* _stage;

View File

@@ -35,20 +35,20 @@ class OSGUTIL_EXPORT RenderLeaf : public osg::Referenced
public:
inline RenderLeaf(osg::Drawable* drawable,osg::RefMatrix* projection,osg::RefMatrix* modelview, float depth=0.0f, unsigned int traversalNumber=0):
inline RenderLeaf(osg::Drawable* drawable,osg::RefMatrix* projection,osg::RefMatrix* modelview, float depth=0.0f, unsigned int traversalOrderNumber=0):
osg::Referenced(false),
_parent(0),
_drawable(drawable),
_projection(projection),
_modelview(modelview),
_depth(depth),
_traversalNumber(traversalNumber)
_traversalOrderNumber(traversalOrderNumber)
{
_dynamic = (drawable->getDataVariance()==osg::Object::DYNAMIC);
}
inline void set(osg::Drawable* drawable,osg::RefMatrix* projection,osg::RefMatrix* modelview, float depth=0.0f, unsigned int traversalNumber=0)
inline void set(osg::Drawable* drawable,osg::RefMatrix* projection,osg::RefMatrix* modelview, float depth=0.0f, unsigned int traversalOrderNumber=0)
{
_parent = 0;
_drawable = drawable;
@@ -56,7 +56,7 @@ class OSGUTIL_EXPORT RenderLeaf : public osg::Referenced
_modelview = modelview;
_depth = depth;
_dynamic = (drawable->getDataVariance()==osg::Object::DYNAMIC);
_traversalNumber = traversalNumber;
_traversalOrderNumber = traversalOrderNumber;
}
inline void reset()
@@ -67,7 +67,7 @@ class OSGUTIL_EXPORT RenderLeaf : public osg::Referenced
_modelview = 0;
_depth = 0.0f;
_dynamic = false;
_traversalNumber = 0;
_traversalOrderNumber = 0;
}
virtual void render(osg::RenderInfo& renderInfo,RenderLeaf* previous);
@@ -92,7 +92,7 @@ class OSGUTIL_EXPORT RenderLeaf : public osg::Referenced
osg::ref_ptr<osg::RefMatrix> _modelview;
float _depth;
bool _dynamic;
unsigned int _traversalNumber;
unsigned int _traversalOrderNumber;
private:
@@ -104,7 +104,7 @@ class OSGUTIL_EXPORT RenderLeaf : public osg::Referenced
_projection(0),
_modelview(0),
_depth(0.0f),
_traversalNumber(0) {}
_traversalOrderNumber(0) {}
/// disallow copy construction.
RenderLeaf(const RenderLeaf&):osg::Referenced(false) {}

View File

@@ -323,7 +323,7 @@ class OSGUTIL_EXPORT SceneView : public osg::Object, public osg::CullSettings
/** search through any pre and post RenderStages that reference a Camera, and take a reference to each of these cameras to prevent them being deleted while they are still be used by the drawing thread.*/
void collateReferencesToDependentCameras();
/** clear the refence to any any dependent cameras.*/
/** clear the reference to any any dependent cameras.*/
void clearReferencesToDependentCameras();

View File

@@ -23,7 +23,7 @@
#include <vector>
#ifndef CALLBACK
/* Win32 calling conventions. (or a least thats what the GLUT example tess.c uses.)*/
/* Win32 calling conventions. (or a least that's what the GLUT example tess.c uses.)*/
#define CALLBACK
#endif

View File

@@ -74,7 +74,7 @@ class OSGUTIL_EXPORT UpdateVisitor : public osg::NodeVisitor
}
// The following overrides are technically redundant as the default implementation would eventually trickle down to
// apply(osg::Node&); - however defining these explicitely should save a couple of virtual function calls
// apply(osg::Node&); - however defining these explicitly should save a couple of virtual function calls
virtual void apply(osg::Geode& node) { handle_callbacks_and_traverse(node); }
virtual void apply(osg::Billboard& node) { handle_callbacks_and_traverse(node); }
virtual void apply(osg::LightSource& node) { handle_callbacks_and_traverse(node); }

View File

@@ -273,6 +273,7 @@ class GraphicsWindowEmbedded : public GraphicsWindow
virtual void raiseWindow() {}
};
struct GraphicsWindowFunctionProxy
{
GraphicsWindowFunctionProxy(CGraphicsWindowFunction function) { (function)(); }

View File

@@ -47,7 +47,7 @@ class OSGVIEWER_EXPORT ViewConfig : public osg::Object
/** configure method that is overridden by Config subclasses.*/
virtual void configure(osgViewer::View& /*view*/) const {}
/** convenience method for getting the relavent display settings to use.*/
/** convenience method for getting the relevant display settings to use.*/
virtual osg::DisplaySettings* getActiveDisplaySetting(osgViewer::View& view) const;
};

View File

@@ -23,7 +23,7 @@ namespace osgWidget {
// Externally defined; does this work in Windows?
struct LuaEngineData;
// The actual Engine itself. Every attempt is made to export the implemenation into the
// The actual Engine itself. Every attempt is made to export the implementation into the
// source file, rather than having it here.
class OSGWIDGET_EXPORT LuaEngine: public ScriptEngine
{

View File

@@ -638,7 +638,7 @@ class OSGWIDGET_EXPORT Window:
// This method is passed the additional values by which width and height should be
// modified as calculed by the parent method, Window::resize. Keep in mind that these
// values can be negative (indicating a potential "shrink" request) or positive (which
// would indicate a "grow" reqeust).
// would indicate a "grow" request).
virtual void _resizeImplementation(point_type, point_type) = 0;
// These are made into implementation functions since getting the width or height

View File

@@ -401,7 +401,7 @@ int Thread::GetConcurrency()
//----------------------------------------------------------------------------
//
// Decription: Constructor
// Description: Constructor
//
// Use: public.
//
@@ -418,7 +418,7 @@ Thread::Thread()
//----------------------------------------------------------------------------
//
// Decription: Destructor
// Description: Destructor
//
// Use: public.
//

View File

@@ -97,7 +97,7 @@ Barrier::Barrier(int numThreads) {
}
#endif // ] Priority sheduling
#endif // ] Priority scheduling
#endif // ] ALLOW_PRIORITY_SCHEDULING

View File

@@ -76,7 +76,7 @@ void condition_cleanup_handler(void *arg) {
//----------------------------------------------------------------------------
//
// Decription: Constructor
// Description: Constructor
//
// Use: public.
//
@@ -97,7 +97,7 @@ Condition::Condition() {
//----------------------------------------------------------------------------
//
// Decription: Destructor
// Description: Destructor
//
// Use: public.
//
@@ -118,7 +118,7 @@ Condition::~Condition() {
//----------------------------------------------------------------------------
//
// Decription: wait on a condition
// Description: wait on a condition
//
// Use: public.
//
@@ -145,7 +145,7 @@ int Condition::wait(Mutex *mutex) {
//----------------------------------------------------------------------------
//
// Decription: wait on a condition, for a specified period of time
// Description: wait on a condition, for a specified period of time
//
// Use: public.
//
@@ -191,7 +191,7 @@ int Condition::wait(Mutex *mutex, unsigned long int ms) {
//----------------------------------------------------------------------------
//
// Decription: signal a thread to wake up.
// Description: signal a thread to wake up.
//
// Use: public.
//
@@ -205,7 +205,7 @@ int Condition::signal() {
//----------------------------------------------------------------------------
//
// Decription: signal many threads to wake up.
// Description: signal many threads to wake up.
//
// Use: public.
//

View File

@@ -26,7 +26,7 @@ using namespace OpenThreads;
//----------------------------------------------------------------------------
//
// Decription: Constructor
// Description: Constructor
//
// Use: public.
//
@@ -101,7 +101,7 @@ Mutex::Mutex(MutexType type):
//----------------------------------------------------------------------------
//
// Decription: Destructor
// Description: Destructor
//
// Use: public.
//
@@ -118,7 +118,7 @@ Mutex::~Mutex() {
//----------------------------------------------------------------------------
//
// Decription: lock the mutex
// Description: lock the mutex
//
// Use: public.
//
@@ -133,7 +133,7 @@ int Mutex::lock() {
//----------------------------------------------------------------------------
//
// Decription: unlock the mutex
// Description: unlock the mutex
//
// Use: public.
//
@@ -148,7 +148,7 @@ int Mutex::unlock() {
//----------------------------------------------------------------------------
//
// Decription: test if the mutex may be locked
// Description: test if the mutex may be locked
//
// Use: public.
//

View File

@@ -622,7 +622,7 @@ void ArgumentParser::reportRemainingOptionsAsUnrecognized(ErrorSeverity severity
for(int pos=1;pos<argc();++pos)
{
// if an option and havn't been previous querried for report as unrecognized.
// if an option and haven't been previous querried for report as unrecognized.
if (isOption(pos) && options.find(_argv[pos])==options.end())
{
reportError(std::string("unrecognized option ")+std::string(_argv[pos]),severity);

View File

@@ -140,7 +140,7 @@ void GLBufferObject::compileBuffer()
entry.dataSource != bd ||
entry.dataSize != bd->getTotalDataSize())
{
unsigned int previousEndOfBufferDataMarker = computeBufferAlignment(entry.offset + entry.dataSize, bufferAlignment);
unsigned int previousEndOfBufferDataMarker = osg::computeBufferAlignment(entry.offset + entry.dataSize, bufferAlignment);
// OSG_NOTICE<<"GLBufferObject::compileBuffer(..) updating BufferEntry"<<std::endl;
@@ -158,7 +158,7 @@ void GLBufferObject::compileBuffer()
}
else
{
newTotalSize = computeBufferAlignment(newTotalSize + entry.dataSize, bufferAlignment);
newTotalSize = osg::computeBufferAlignment(newTotalSize + entry.dataSize, bufferAlignment);
}
}
else
@@ -620,7 +620,7 @@ osg::ref_ptr<GLBufferObject> GLBufferObjectSet::takeFromOrphans(BufferObject* bu
osg::ref_ptr<GLBufferObject> GLBufferObjectSet::takeOrGenerate(BufferObject* bufferObject)
{
// see if we can recyle GLBufferObject from the orphan list
// see if we can recycle GLBufferObject from the orphan list
{
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);
if (!_pendingOrphanedGLBufferObjects.empty())
@@ -1188,13 +1188,14 @@ void BufferObject::removeBufferData(BufferData* bd)
unsigned int BufferObject::computeRequiredBufferSize() const
{
unsigned int bufferAlignment = 4;
unsigned int newTotalSize = 0;
for(BufferDataList::const_iterator itr = _bufferDataList.begin();
itr != _bufferDataList.end();
++itr)
{
BufferData* bd = *itr;
if (bd) newTotalSize += bd->getTotalDataSize();
if (bd) newTotalSize = osg::computeBufferAlignment(newTotalSize + bd->getTotalDataSize(), bufferAlignment);
else
{
OSG_NOTICE<<"BufferObject::"<<this<<":"<<className()<<"::BufferObject::computeRequiredBufferSize() error, BufferData is 0x0"<<std::endl;

View File

@@ -42,7 +42,7 @@ void Enablei::apply(State& state) const
if (extensions->glEnablei)
{
OSG_INFO<<"extensions->glEnablei("<<_capability<<", "<<_index<<")"<<std::endl;
extensions->glEnablei(_capability, static_cast<GLuint>(_index));
if (_capability) extensions->glEnablei(_capability, static_cast<GLuint>(_index));
}
else
{
@@ -56,7 +56,7 @@ void Disablei::apply(State& state) const
if (extensions->glDisablei)
{
OSG_INFO<<"extensions->glDisablei("<<_capability<<", "<<_index<<")"<<std::endl;
extensions->glDisablei(_capability, static_cast<GLuint>(_index));
if (_capability) extensions->glDisablei(_capability, static_cast<GLuint>(_index));
}
else
{

View File

@@ -156,7 +156,7 @@ void CollectOccludersVisitor::apply(osg::OccluderNode& node)
if (node.getOccluder())
{
// computeOccluder will check if the occluder is the view frustum,
// if it ins't then the it will return false, when in it will
// if it isn't then the it will return false, when in it will
// clip the occluder's polygons in clip space, then create occluder
// planes, all with their normals facing inward towards the volume,
// and then transform them back into projection space.

Some files were not shown because too many files have changed in this diff Show More