Commit Graph

148 Commits

Author SHA1 Message Date
Robert Osfield
066760738b From Ali Botorabi, fixed the setDefault() fallback to properly handle the case
when no scene view light is requested.
2005-12-01 14:37:15 +00:00
Robert Osfield
2ce7718a66 From Eric Wing, fixes for "warning: converting of negative value '-0x00000000000000001' to 'unsigned int'" 2005-11-29 11:39:07 +00:00
Robert Osfield
736a8433ca Added FBO deletion support, and better FBO querry and fallback mechansim in RenderStage. 2005-11-24 15:18:12 +00:00
Robert Osfield
0ec0327b96 Added scene stats support to osgProducer::ViewerEventHandler. 2005-11-11 17:00:36 +00:00
Robert Osfield
857b3e03c3 Added sorting and clearing of pre and post RenderStages stored in RenderStage,
and added some debugging comments which are currently commented out from compilation -
these are left in just in case future debug work requires them.
2005-11-08 11:46:52 +00:00
Robert Osfield
d3b1ee6b57 Changed the occluder traversal so that checks the children of the SceneView's Cameara
rather than starting at the camera itself.
2005-11-08 09:36:42 +00:00
Robert Osfield
ab1bd48511 Moved SceneView across to use an osg::CameraNode to store the projection and view matrices,
the viewport, the clear colour and the subgraph needing rendered.  This is done
transparently so all existing functionality will behave as before.  What it does
add is the ability to set a SceneView directly by a single osg::CameraNode when required.
2005-10-28 13:11:56 +00:00
Robert Osfield
f46044084a From Farshid Lashkari & Robert Osfield: Added support for VERTICAL_INTERLACE and HORIZONTAL_INTERLACE
stereo modes use the stencil buffer.
2005-10-25 15:43:04 +00:00
Robert Osfield
285418d6f8 From Brede Johansen, changed osg_InverseViewMatrix to osg_ViewMatrixInverse to bring
into line with OpenGL shader languague conventions.

From Robert Osfield, changed the SceneView::ActiveUnforms enum to from INVERSE_VIEW_MATRIX_UNIFORM
VIEW_MATRIX_INVERSE_UNIFORM to be convistent with the above change.
2005-10-25 09:23:21 +00:00
Robert Osfield
fb524952b6 Renamed osgUtil::RenderGraph to osgUtil::StateGraph 2005-10-13 12:51:00 +00:00
Robert Osfield
c0d6126313 From Domenico Mangieri, addded some missing const qualifiers in osgUtil::SceneView. 2005-08-22 13:58:23 +00:00
Robert Osfield
84618ffcb3 Merged RenderToTextureStage functionality into RenderStage 2005-08-17 10:12:49 +00:00
Robert Osfield
facb0e2638 From Pavel Moloshtan, Byte2,3,4 and Short2,3,4 classes and their Array counterparts.
With a few build tweaks and bug fixes by Robert Osfield.
2005-07-05 15:57:53 +00:00
Robert Osfield
955cc1ec2a Added s/getClearMask() support to osg::ClearNode, osgUtil::SceneView and the
.osg plugin.
2005-05-18 19:55:14 +00:00
Robert Osfield
fb34b22e34 Cleaned up API of BindAttributeLocation, added deletion of shader objects. 2005-05-11 11:41:44 +00:00
Robert Osfield
a6e8378a72 Removed debug info 2005-05-08 19:21:43 +00:00
Robert Osfield
d1a1b1d95c Added more comprehensive releaseGLObjects(State*=0) throughout Nodes,
Drawables,StateSet, and osgDB::Registry.

Added cleanup_frame() from to osgProducer::OsgCamerGroup to help with proper
clean of OpenGL objects before exit, and modified osgviewer, osghangglider,
osgwindows examples to do the extra frame call to cleanup_frame() before exit.
2005-05-07 20:47:09 +00:00
Robert Osfield
cdab058b32 Added osg_DeltaFrameTime uniform to default set. 2005-05-06 10:32:31 +00:00
Robert Osfield
2798d58a41 Added support for osg_FrameNumber, osg_FrameTime, osg_ViewMatrix, osg_InverseViewMatrix
into SceneView, controlled via a setActiveUniforms(.) method.
2005-05-05 12:30:54 +00:00
Robert Osfield
7117ff4bd3 Added support for controlling the frequency of checking for OpenGL errors
via:

        enum CheckForGLErrors
        {
            /** NEVER_CHECK_GL_ERRORS hints that OpenGL need not be checked for, this
                is the fastest option since checking for errors does incurr a small overhead.*/
            NEVER_CHECK_GL_ERRORS,
            /** ONCE_PER_FRAME means that OpenGl errors will be checked for once per
                frame, the overhead is still small, but at least OpenGL errors that are occurring
                will be caught, the reporting isn't fine grained enough for debugging purposes.*/
            ONCE_PER_FRAME,
            /** ONCE_PER_ATTRIBUTE means that OpenGL errors will be checked for after
                every attribute is applied, allow errors to be directly associated with
                particular operations which makes debugging much easier.*/
            ONCE_PER_ATTRIBUTE
        };

        /** Set whether and how often OpenGL errors should be checked for.*/
        void setCheckForGLErrors(CheckForGLErrors check) { _checkGLErrors = check; }

        /** Get whether and how often OpenGL errors should be checked for.*/
        CheckForGLErrors getCheckForGLErrors() const { return _checkGLErrors; }
2005-04-29 20:56:20 +00:00
Robert Osfield
30d20fcf55 From Farshid Lashkari, removed redundent fusion distance calculations from computeRightEyeProjectionImplementation and
computeLeftEyeProjectionImplementation methods.
2005-04-28 05:21:27 +00:00
Robert Osfield
678b22ce83 Updated Copyright notices to 1998-2005. 2005-04-14 21:41:28 +00:00
Robert Osfield
6f22082c0b Removed the _initVisitor traversal for update() to prevent OpenGL being called at the wrong time. 2004-10-26 18:11:26 +00:00
Robert Osfield
4192ef796b Added CullingSettngs::s/getInheritanceMask() and inheritCullSettings(,) method. 2004-10-12 09:54:03 +00:00
Robert Osfield
b9e4235d85 Added releaseAllGLObjects() convinience method. 2004-09-23 20:01:40 +00:00
Robert Osfield
54b45ce3bc Updated to DatabasePager support 2004-09-21 21:33:52 +00:00
Robert Osfield
364d40061d Added glReadBuffer after each instance of glDrawBuffer to ensure that
the any reads are done to the appropriate buffer.
2004-08-02 09:30:13 +00:00
Robert Osfield
3bca9ec9cf Added SceneView::Options for SceneView::setDefaults(options) and
OsgCameraGroup::setRealizeSceneViewOptions(options) to allow better control
of what functionality is compiled in by default.
2004-07-20 10:17:22 +00:00
Robert Osfield
aa833acfd3 Added support for releasing GLObjects, and renamed DisplayListVisitor the
GLObjectVisitor to better fit its function, and added support for releasing
objects as well as compiling them.
2004-07-20 05:37:59 +00:00
Robert Osfield
e81d3ea000 Made the constructor's default value for _lightingMode be NO_SCENEVIEW_LIGHT 2004-07-08 22:10:44 +00:00
Robert Osfield
47dd0ece28 Added new TerrainManipulator to osgGA, and new callback for getting the
CoordinateFrame for a given X,Y,Z location.
2004-05-06 11:01:16 +00:00
Robert Osfield
5836d60fbd Added osg::CullSettings class as a way of collecting all the various
settings related to the cull traversal in one place, so we can keep APIs
for settings these values more consistent.
2004-04-30 15:35:31 +00:00
Robert Osfield
5d79eb1c9d Added support for fine grained computation of the near plane, by taking
into account individual primitives culled against the view frustum.

Added better support for computing the near far for billboards.
2004-04-29 22:21:06 +00:00
Robert Osfield
678c456fc8 Made s/getBackgroundColor() deprecated, and add in new s/getClearColor() to
replace it.
2004-04-27 19:09:58 +00:00
Robert Osfield
519496754c Added dynamic_cast<DisplayListiVisitor> into SceneView::init() method to
properly check for class type before doing setState().
2004-02-03 19:07:32 +00:00
Robert Osfield
e266385769 Moved the InitVisitor::setState() into the SceneView::init() method to make
sure that it always has the correct State object at the of the init.
2004-02-02 16:55:29 +00:00
Robert Osfield
39d7afaed2 Added support for CullVisitor::clampProjectionMatrixCallback 2004-01-28 10:49:23 +00:00
Robert Osfield
f230f5a132 Added support into osgProducer::Viewer for flushing and compiling GL objects
via a Producer post swap callback.
2004-01-05 13:40:36 +00:00
Robert Osfield
1158e4605d Added support for updating the SceneView projection matrix from the values
of near and far computed during the cull traversal.
2003-12-15 23:23:45 +00:00
Robert Osfield
5295d68fd3 Added _maximumNumberOfActiveOccluders variable to CollectOccludersVisitor(), to
limit the maximum number of occluders used in the cull traversal, default is
now 10.

Added set/getCollectOccluderVisitor() method into SceneView to allow control
of the the settings of the CollectOccluderVisitor.
2003-12-11 16:46:45 +00:00
Robert Osfield
0034d026d2 Added commented out lines for setting orange blue anaglyphic stereo. The
analgyphic block really needs to have the color mask set up optionally, this
is something to configure in the future.
2003-12-08 19:25:08 +00:00
Robert Osfield
27dbfa9810 Added copying of reference to the main CullVisitor's DatabaseRequestHandler over
to the left/right eye CullVisitor to ensure that the database works in stereo.
2003-10-29 19:22:19 +00:00
Robert Osfield
594f25b5d1 Added SceneView::s/getDrawBufferValue(GLenum) to allow customization of what
glDrawBuffer() value is set on each frame.
2003-10-17 10:25:59 +00:00
Robert Osfield
4700b8902c Introduced new DisplaySettings::set/getDisplayType() and environemtal variables
to and command line arguments to set it.

Added support for using the DisplaySettings::getDisplayType() to detect use
of a Head Mounted Display when doing stereo so that the asymtric frustum can
be switched off.
2003-10-01 15:56:52 +00:00
Robert Osfield
7d69f8e193 Added getPerspective() method to Matrix* and SceneView 2003-09-29 13:14:34 +00:00
Robert Osfield
69c4e87bb7 Added osg::State::popAllStateSets() method to pop all remain StateSet's off
the state stack, thus readying the state object to recieve a new frame.

Removed the state.reset() call in osgUtil::SceneView::cull() as this was
causing problems with stats producing inheritance of state when toggling
stats on.
2003-09-10 21:22:47 +00:00
Robert Osfield
1c3b2b2554 Standardised the culling flags between CullingSet and CullStack, and
made ENABLE_ALL_CULLING enable all culling including the near and far plane.
DEFAULT_CULLING is now used for the default as uses the same original
values as ENABLE_ALL_CULLING once did - view frustum culling with near and
far culling. SceneView now uses DEFAULT_CULLING.
2003-08-20 12:50:54 +00:00
Robert Osfield
8a737dd2ca Added support for clampping the near and far values in othrographic projection.
Fixed the handling of anaglyphic/stereo state in SceneView::draw().
2003-08-08 00:36:51 +00:00
Robert Osfield
ee30f2e30c Added support for osg::State::s/getInitialViewMatrix();
Added slideshow3D examples to the runexamples.bat.

Fixed DatabasePager to work with the latest OpenThreads.
2003-07-22 21:03:59 +00:00
Robert Osfield
23fc1900ce From Romano Jose Magacho da Silva, added osg:FragmentProgram.
From Robert, add .osg support for FragmentProgram.
2003-07-17 06:43:15 +00:00