Commit Graph

69 Commits

Author SHA1 Message Date
Robert Osfield
d0df2df7ad Replaced the setTextureUnit(0) call in State::reset() with code that just
sets the member variables without requiring a graphics context.
2006-11-21 16:59:04 +00:00
Robert Osfield
0336231321 Moved extension function pointer initilization into a method, and the pointers from
being static to be local member variables.  This should avoid issues under Windows
with multiple graphics contexts have seperate entry points.
2006-08-02 16:14:17 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
32b929a493 Added support for OpenGL mode black listing to provide better support
for extension checking and invalidation of OpenGL modes associated with
extensions.
2006-02-22 14:31:13 +00:00
Robert Osfield
44d0e90f92 Changed the error number reporting to be reported as hex. 2005-11-01 20:16:31 +00:00
Robert Osfield
a4275fb8d7 From Brad Colbert, Added checking for a NULL return string rom gluErrorString (with slight reformating of this by Robert Osfield.) 2005-11-01 11:18:40 +00:00
Robert Osfield
b9e651baf1 Added new osg::GraphicsContext base class 2005-07-20 15:55:07 +00:00
Robert Osfield
fe384e53c7 Added clear of lazy uniform updating structure on relink, also added debug
output of shader being compiled.
2005-05-12 08:54:11 +00:00
Robert Osfield
1afd5e48a7 Added support for PROTECTED and OVERRIDE to uniforms. 2005-05-10 13:56:05 +00:00
Robert Osfield
7480d51830 From Mike Weiblen, further work on GLSL support 2005-05-06 09:58:49 +00:00
Robert Osfield
97daa561f4 Added support for lazy state updating of uniforms. 2005-05-03 21:46:47 +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
a1bda0dab8 Added support for per context extension string.
Note, this required adding a unsigned int context ID to the osg::isGLUExtensionSupported(,)
and osg::isGLExtensionSupported(,) functions.  This may require reimplementation
of end user code to accomodate the new calling convention.
2005-04-26 13:15:27 +00:00
Robert Osfield
678b22ce83 Updated Copyright notices to 1998-2005. 2005-04-14 21:41:28 +00:00
Robert Osfield
789cb7dea7 Added applying of all parents uniforms 2005-04-13 14:31:25 +00:00
Robert Osfield
0015a31de8 Added basic support for applying uniforms to programs, non lazy state updating
is yet applied though.
2005-04-13 14:12:06 +00:00
Robert Osfield
2e10cffb4d Work in progress on shader language uniform support 2005-04-13 12:00:28 +00:00
Robert Osfield
edb15e17bc Added new getMember() method and TypeMemberPair into StateAttribute and
support for the unsigned int member to be paired with types in osg::StateSet
so that lights, clipplanes and other attributes that have a type group but
then need to differentiate within that group via a member uint.
2004-10-13 11:15:50 +00:00
Robert Osfield
d77e6a0829 Added new clear, removeAttribute, removeMode, removeTextureAttribute and
removeTextureMode method and deprecated the setToInherit equivilants.
2004-10-07 09:40:03 +00:00
Robert Osfield
41a07127fe Added applyProjectionMatrix(0); & applyModelViewMatrix(0); into
osg::State::popAllStateSets(), removed some debugging output.
2003-09-10 23:18:52 +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
bd798a6c4e Added getInitialInverseViewMatrix() to osg::State. 2003-08-25 13:06:15 +00:00
Robert Osfield
2f47ab559a Made the fine grained checking of GL errors off by default. 2003-07-23 20:55:26 +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
b5442ac835 Added support for the ARB_vertex_buffer_object into osg::Geometry. 2003-06-29 21:41:57 +00:00
Don BURNS
15f88f35b2 *** empty log message *** 2003-06-24 15:40:09 +00:00
Robert Osfield
57af40ee95 Updates to the handling of vertex attributes. 2003-05-09 13:07:06 +00:00
Robert Osfield
cda2c90315 From Romano José Magacho da Silva, support for vertex attributes in vertex program. 2003-05-07 13:13:13 +00:00
Robert Osfield
1cf0be9963 Fixes to BlendFunc - adding missing ZERO handling.
Improved handling of alpha values in DXT1 compression.
2003-04-18 19:46:46 +00:00
Robert Osfield
e51c7f1587 Added support for AbortRendering flag pointer in osg::State which is used
by osgUtil::RenderLeaf to test if any abort state has been set, if so it
doesn't do any further drawing.

The osgProducer::Viewer has been set up to set the osg::State's it manages
with their AbortRendering flag pointers set to the osgProducer::Viewer::_done
memeber varaible.  Now when escape is pressed the rendering is aborted early.
2003-03-11 15:25:49 +00:00
Robert Osfield
78de76f17f Bug fixes to osgText to handle the osgUtil::Optimizer being used on a scene
graph containing text.

Fixed warning in MD2 plugin.
2003-03-11 13:30:03 +00:00
Robert Osfield
d3e9fea28b Fixed the setInterleavedArray call. 2003-03-06 10:38:56 +00:00
Robert Osfield
5e396d40e1 Made the State::setInterleavedArrays method use a const GLvoid*. 2003-03-05 21:02:37 +00:00
Robert Osfield
7877c55770 Implemented an osg::minimum and osg::maximum template functions to replace
the std::min/max functions previously used in parts of the osg, since the
std::min/max methods do not seem implemented under IRIX.
2003-02-24 12:02:00 +00:00
Robert Osfield
696c89e2c5 Added #include<algorithm> to keep OSX build compiling.
Reverted the mymax implementation to std::max, hopefully this should be ok now
that we have standardised on non native STL under VisualStudio.
2003-02-21 20:22:32 +00:00
Robert Osfield
6c4f2f5207 Fixes for multipipe support.
Addition of FrameStatsHandler to osgproducer demo to add frame stats.
2003-01-29 17:16:26 +00:00
Robert Osfield
48bda9cc79 Added new Copyright/License notice to header and source files. 2003-01-21 16:45:36 +00:00
Robert Osfield
08456ecf70 Added osg::State::dirtyAllModes() and dirtyAllAttributes() methods. 2003-01-19 15:28:08 +00:00
Robert Osfield
f36bc69c58 Made the more of the OSG's referenced object desctructors protected to ensure
that they arn't created on the stack inappropriately.

Split the implemention of Matrix up so that it is a simple no referenced counted
class and can be safefly created on the stack.  To support referenced counting a
seperate subclass now exists, this is RefMatrix which inherits from both Matrix and
Object.
2003-01-10 09:25:42 +00:00
Robert Osfield
5fca8ea229 Moved Drawable across to using osg::buffered_value.
Added new osg::State::setInterleavedArray() method.

Added new osg::Group::setNode(uint,Node*) method.

Cleaned up and fixed the osg::Texture's handling of dirtyTextureParamters().
2002-11-19 10:56:59 +00:00
Robert Osfield
bd7762a73e Added State::computeSecondaryColorSupported() & computeFogCoordSupported().
Updated NEWS.
2002-11-13 11:09:55 +00:00
Robert Osfield
6f6e237429 Added setActiveTextureUnit(0) to State::reset(). 2002-09-30 18:11:34 +00:00
Robert Osfield
098e34ece0 Added a dirtyAllVertexArrays() to State::reset(). 2002-09-28 07:47:10 +00:00
Robert Osfield
6d21fbd6cf Added dirty methods for vertex arrays to better support external OpenGL
code which modifies the OpenGL state and needs to tell the osg::State
about it to ensure that the OSG doesn't make any errors during lazy
state updating.
2002-09-13 13:50:58 +00:00
Robert Osfield
12226e4371 Converted the instances of const built in types being returned from methods
and passed as paramters into straight forward non const built in types,
i.e. const bool foogbar(const int) becomes bool foobar(int).
2002-09-02 12:31:35 +00:00
Robert Osfield
239068f223 Added new osg::TextureBase, osg::Texture1D, osg::Texture2D, and osg::Texture3D
classes, and changed osg::Texture and osg::TextureCubeMap so that they now derive
from osg::TextureBase.
2002-08-24 19:39:39 +00:00
Robert Osfield
c2c6bb5ca6 Moved the include<osg/GLExtensions> from the State header into State.cpp, and
added it into other files which now required it.
2002-08-20 22:43:42 +00:00
Robert Osfield
058ef0dc98 Merged fixes to the osg::GLExtensions function pointer code from Stefan Huber,
and a fix to osg::State's secondary color code from Bob Kuehne.

Moved the body of the getGLExtensionFuncPtr() into the header to help out
support for Windows mapping of different OpenGL extensions function ptr per
dll.
2002-08-20 10:14:12 +00:00
Robert Osfield
8551e1c555 Supported added for secondary color & fog coords to osg::Geometry and osg::State. 2002-08-15 20:27:33 +00:00
Robert Osfield
0ff08a2978 Added missing default values to State constructor. 2002-07-20 22:44:21 +00:00