Robert Osfield
b90503fdf5
Introduced new shader composition approach that utilizes #pragma requires(), #pragma import_defines() and #ifdef in GLSL to enable multiple different versions of shaders based
...
on defines passed in from osg::StateSet::setDefine(..).
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14681 16af8721-9629-0410-8352-f15c8da7e697
2015-02-10 17:04:02 +00:00
Robert Osfield
f634152de0
Moved osg::Drawable::Extensions into osg::GL2Extensions
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14575 16af8721-9629-0410-8352-f15c8da7e697
2014-12-05 17:26:42 +00:00
Robert Osfield
aa090f0f99
From the GLintptr + GLsizeiptr defintions to GL2Extensions header
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14572 16af8721-9629-0410-8352-f15c8da7e697
2014-12-05 08:58:23 +00:00
Robert Osfield
89ca694684
Added using Callback::run() method to Drawable::CullCallback
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14249 16af8721-9629-0410-8352-f15c8da7e697
2014-06-10 08:50:42 +00:00
Robert Osfield
977ec20751
Refactored Callback system in osg::Node, osg::Drawable, osg::StateSet and osg::StateAttribute to use a new osg::Callback base class.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14244 16af8721-9629-0410-8352-f15c8da7e697
2014-06-05 16:26:13 +00:00
Robert Osfield
3dde165f14
Refactor osg::Geode to subclass from osg::Group and reuse the NodeList children container
2014-06-03 09:23:24 +00:00
Robert Osfield
2d41cbd0cf
Removed OSG_USE_BOUND and associated osg::Bound adapter class to avoid problems with BoundingBox::expandBy/expandByRadius() implementation choosing a null BoundingBox from
...
the osg::Bound class causing crashes.
2014-06-02 16:20:39 +00:00
Robert Osfield
9859f3110b
Renamed callbacks to avoid overlap with Node callbacks
2014-05-21 09:06:17 +00:00
Robert Osfield
30b54e3af2
Moved the _boundingSphere set method into the update section of the Drawable::getBoundingBox() method
...
Added an UpdateVisitor::apply(Drawable&) implementation.
2014-05-20 16:09:34 +00:00
Robert Osfield
e70acf4c51
From Pjotr Svetachov, "I stumbled on a little bug with the new drawables. I was distributing points data into different drawables that I used in a LOD later. When simplifying the system to not use geodes anymore I came upon the following bug:
...
If Drawable::getBoundingBox would compute an invalid bounding box (if it was for example empty) it would make a bounding sphere with a infinite radius which counts as a valid sphere in osg.
Attached is a small fix."
2014-05-20 15:34:12 +00:00
Robert Osfield
20b9f3ff88
Added Node::asDrawable() and Node::asGeometry() methods to provide a low cost way of casting a node to Drawable and Geoemtry.
...
Changed the Group::computeBound() method so that it takes account of the a Drawable's BoundingBox.
2014-05-15 09:26:59 +00:00
Robert Osfield
afcf54b108
Fixed the bounding sphere computation and handling of Drawable as the root of the scene graph
2014-05-14 16:52:18 +00:00
Robert Osfield
74f91037a7
Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase
2014-05-14 16:01:40 +00:00
Robert Osfield
4174d72a52
2014-05-14 10:19:43 +00:00
Robert Osfield
b2c7bacfe9
From Farshid Lashkari, "As discussed, I've added the ability to handle Drawable objects within the NodeVisitor class. Here is an overview of the changes:
...
- Added apply(Drawable) and apply(Geometry) to NodeVisitor
- Added accept(NodeVisitor) method to Drawable/Geometry
- Added traverse(NodeVisitor) to Geode which calls accept(NodeVisitor) on all Drawables
- Updated CullVisitor to use new apply(Drawable) to handle drawables. The apply(Billboard) method still manually handles the drawables since it is depends on the billboard settings. I needed to disable the traverse within billboard to prevent duplicate traversal of drawables.
- Update other osgUtil node visitors (GLObjectsVisitor, IncrementalCompileOperation, ..) to use new apply(Drawable) method.
"
2014-05-12 12:10:35 +00:00
Robert Osfield
5597248895
Introduced new scheme for setting up which version of OpenGL/OpenGL ES the OSG is compiled for.
...
To select standard OpenGL 1/2 build with full backwards and forwards comtability use:
./configure
make
OR
./configure -DOPENGL_PROFILE=GL2
To select OpenGL 3 core profile build using GL3/gl3.h header:
./configure -DOPENGL_PROFILE=GL3
To select OpenGL Arb core profile build using GL/glcorearb.h header:
./configure -DOPENGL_PROFILE=GLCORE
To select OpenGL ES 1.1 profile use:
./configure -DOPENGL_PROFILE=GLES1
To select OpenGL ES 2 profile use:
./configure -DOPENGL_PROFILE=GLES2
Using OPENGL_PROFILE will select all the appropriate features required so no other settings in cmake will need to be adjusted.
The new configuration options are stored in the include/osg/OpenGL header that deprecates the old include/osg/GL header.
2014-04-23 09:08:26 +00:00
Robert Osfield
0f2502c72d
Removed duplicated instances of GLint64EXT declarations
2014-01-07 18:32:45 +00:00
Robert Osfield
14a563dc9f
Ran script to remove trailing spaces and tabs
2012-03-21 17:36:20 +00:00
Robert Osfield
8b06c30691
Fixed Coverity issue.
...
CID 11666: Uninitialized pointer field (UNINIT_CTOR)
Non-static class member _glMultiTexCoord1dv is not initialized in this constructor nor in any functions that it calls.
Non-static class member _glVertexAttrib1dv is not initialized in this constructor nor in any functions that it calls.
2011-05-24 10:14:03 +00:00
Robert Osfield
043ae090a5
From Tim Moore, Fix for drivers that don't properly support timer extensions.
...
""
2010-11-24 10:38:28 +00:00
Robert Osfield
68f37c4dcb
From Tim More and Robert Osfield, implementation of ARB_timer_query based GPU timing stats syncronization.
...
Initial email from Tim : "I've implemented using a timestamp, available with ARB_timer_query and OpenGL 3.3, to gather GPU stats. This is nice because it can accurately fix the GPU draw time with respect to the other times on the stats graph, rather than having to estimate the wall time of the end of GPU drawing. This also prevents anomalies like the GPU phase starting before the draw phase..."
Changes to Tim's submission by Robert: Removal of need for swap buffer callback in ViewerBase.cpp, by
integrating a osg::State::frameCompleted() method that does the stats timing collection. Introduction of a
GraphicsContext::swapBuffersCallbackOrImplementation() method that calls the State::frameCompleted() and
the swap buffers callback or the swapImplementation as required.
2010-11-10 16:58:58 +00:00
Robert Osfield
a6c7fee246
From Alok Priyadarshi, "1. Replaced APIENTRY to GL_APIENTRY which is used by OpenGL ES
...
headers. For desktop GL GL_APIENTRY has been defined as APIENTRY."
2010-04-28 21:22:44 +00:00
Robert Osfield
8b67830f6e
Added check against OSG_GL3_AVAILABLE to avoid issues with GL3 build under linux
2010-02-19 20:14:12 +00:00
Robert Osfield
6e7c02b5d8
Added a Geometry::compileGLObjects() to handle compilation of VBO + EBO's.
2009-12-09 13:51:02 +00:00
Robert Osfield
327b67a305
Added CMake support for specifying what OpenGL target and features that the OpenSceneGraph build should use.
...
Added use of the new Cmake generated #define's for optionally compiling parts of the OpenSceneGraph's OpenGL support for the various OpenGL targets
2009-10-23 13:19:57 +00:00
Robert Osfield
0289e5e5a2
From Stephan Huber, compile fix to OSX.
2009-10-22 12:41:48 +00:00
Robert Osfield
9499b19b43
Moved the ArrayDispatchers management so that osg::State now has a ArrayDispatchers object that any osg::Geometry can reuse,
...
and optimized the implementation to reduce the CPU overhead.
2009-10-21 11:18:13 +00:00
Robert Osfield
6a56b6e6be
Refactored osg::Geometry::drawImplementation(..) to use new osg::ArrayDispatchers that encapsulate the task
...
of dispatch osg::Array data as OpenGL attributes.
2009-10-20 19:34:24 +00:00
Robert Osfield
411431f3be
Fixed warnings, updated NEWS
2009-01-30 10:55:28 +00:00
Robert Osfield
0969a5384b
Improved the constness of parameters the Node::getWorldMatrices(..) method.
...
Added Drawable::getWorldMatrices(const Node*) method.
2008-09-18 10:38:18 +00:00
Robert Osfield
6d3a90219c
Removed redundental vertex buffer object flush methods
2008-01-21 11:36:54 +00:00
Robert Osfield
ff565128af
Introduced new osg::discardDeletedOpenGLObjects() methods, and usage of it in
...
GrpahicsContext::close() to handle cases where deletingOpenGLObjects is no possible,
such as when GraphicsWindowEmbedded is used.
2008-01-08 13:24:29 +00:00
Robert Osfield
f4afa427a7
From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)."
2007-12-10 17:30:18 +00:00
Robert Osfield
1b1c5bbdd1
Added support for new double Vec*Array classes in various functors.
2007-12-04 14:46:46 +00:00
Robert Osfield
eac3dc1963
From Paul Melis, "Here is a list of fixes to misspelled APIs. Unfortunately, more than one
...
of these are public APIs and therefore will break linkage to existing
shared libraries."
Note from Robert Osfield, updated wrappers.
2007-06-27 20:36:16 +00:00
Robert Osfield
74e968df76
Clean up comments and rebuilt wrappers.
...
Added extra event handlers to osgsimulator example
2007-05-14 16:14:40 +00:00
Robert Osfield
859bcf3c4b
Further perfomrmance optimizations and clean up on new VBO/EBO/PBO API.
2007-05-01 18:03:32 +00:00
Robert Osfield
4968eb7136
Further work on the new VBO support
2007-04-27 14:52:30 +00:00
Robert Osfield
7fc714ada1
Removed deprecated drawImplementation(State&) method from Drawable and Drawable::DrawCallback
2007-03-28 11:30:38 +00:00
Robert Osfield
37f4740c45
From Mike Wittman, remove redundent const from in front of unsigned int.
...
From Robert Osfield, updated wrappers
2007-03-23 17:27:53 +00:00
Robert Osfield
89c99a88fa
Added computeDataVariance method into osg::Object and implementations in Drawable and StateSet,
...
and calling of osgUtil::StaticObjectDetectionVisitor in osgViewer::Viewer
2007-02-14 11:24:42 +00:00
Robert Osfield
45dea96d75
Added #define of GL_QUERY_RESULT and GL_QUERY_RESULT_AVAILABLE
2007-01-23 16:02:37 +00:00
Robert Osfield
a90206bcbb
Added EXT_timer_query support
2007-01-19 14:41:29 +00:00
Robert Osfield
73fffe1800
Made Refernced::setThreadSafeReferenceCounting(bool) a virtual then overrode
...
this in various scene graph classes to ensure that the scene graph gets
updated as well as the objects that the initialial call is made from.
2007-01-04 16:49:58 +00:00
Robert Osfield
ff195bddf5
Added Object::resizeGLObjectBuffers(uint) method to help improve the ability
...
to change the number of active graphics contexts on the fly during an applications
life.
2007-01-04 14:11:51 +00:00
Robert Osfield
d0cc014f1b
Further migration to using RenderInfo
2006-11-14 12:51:31 +00:00
Robert Osfield
8e3a092a00
Removed the redundent relaseGLObjects() method declerations
2006-10-03 20:42:57 +00:00
Robert Osfield
e0599f652e
Added releaseGLObjects to NodeCallbacks, Drawable::DrawCallbacks and wired up
...
osgProducer to use it when doing cleanup_frame.
2006-10-02 15:38:31 +00:00
Robert Osfield
def74d3471
Introduced new osg::View, and osg::RenderInfo classes into the core OSG to help
...
handle scenes with multiple views with elements that need coordinating on a per view basis.
Added beginings of new osgText::FadeText class (not functionality yet).
2006-09-18 20:54:48 +00:00
Robert Osfield
f1c2694c17
Updated copyright years.
2006-07-18 15:21:48 +00:00