Commit Graph

163 Commits

Author SHA1 Message Date
Robert Osfield
b2ead391b3 From Mathias Froehlich, "it appears to me that sun CC cannot use static functions from template
functions. The attached change is required to make it compile with sun CC."
2008-03-11 13:23:49 +00:00
Robert Osfield
5c6869ccc9 Fixed Geometry::removePrimitiveSet method so that it no longer emits a warning when
removing 0 elements form an empty primtive set list.
2008-01-21 12:00:10 +00:00
Robert Osfield
11db24e6b3 From Colin McDonald, build fixes for Solaris. 2008-01-08 18:13:06 +00:00
Robert Osfield
be5f709bdb From Mike Garrity, "There was an on again/off again thread on OSG users about
creating subclasses of osg::Array that referenced data
stored an application's internal data structures. I took
a stab at implementing that and ran into a couple of
downcasts in Geometry.cpp. Enclosed is my take at fixing
those along with a simple example of how to do this."
2007-12-11 15:55:02 +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
2d4ef642e6 from Paul Matz, "Understood. Well, I think it's reasonable to assume that the non-env var
case is the more tested case, and therefore it is correct to set
_supportsVertexBufferObjects to the same value as _fastPath. So here's a
change that does the same thing for the env var case."
2007-12-08 17:00:38 +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
8b46a624c2 Fixed errors is setup of VBO/EBO's. 2007-10-19 09:58:11 +00:00
Robert Osfield
60052a0488 Fixed getOrCreateVertexBufferObject(). 2007-10-19 08:39:07 +00:00
Robert Osfield
8e7e6529be From David Callu, warning fixes 2007-09-07 15:03:56 +00:00
Robert Osfield
59d3e0ceb7 From Andy Skinner, adding C includes to avoid issues when mixing C and C++ standard includes 2007-07-28 10:44:03 +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
fe85a439fb Cleaned up the optional code paths in new VBO code 2007-05-01 09:29:30 +00:00
Robert Osfield
40db1a8934 Moved VBO switching code into inline methods into osg::State to speed performance 2007-05-01 06:28:20 +00:00
Robert Osfield
d625a5e114 Implementated new dirty buffer mechansim for BufferObjects to make it more efficient 2007-04-30 12:18:27 +00:00
Robert Osfield
9e07a72119 Added temporary code (but comment out) for testing VBO performance 2007-04-29 20:13:53 +00:00
Robert Osfield
921eb0fdd0 Further work on new VertexBufferObject/ElementsBufferObject support 2007-04-29 08:12:29 +00:00
Robert Osfield
4968eb7136 Further work on the new VBO support 2007-04-27 14:52:30 +00:00
Robert Osfield
f242570269 Unified the setup of version numbers so that they all are based on the version
number setup in the include/osg/Version header file.
2007-04-22 20:19:43 +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
2151573ccd From Michael Platings, Fixed Geometry cloning of the texture
coordinates and vertex attributes.
2006-11-16 16:25:29 +00:00
Robert Osfield
b832453c10 From Uwe Woessner, implementated by Robert Osfield, Fixed vertex attribute bug, changed _vertexAttribList[unit] -> _vertexAttribList[index] 2006-08-04 13:17:56 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
1dcb923c15 From Daniel Trastenjak, added checking of binding modes to ensure that changes are only applied
when the binding mode changes, thereby avoiding uncessary calls to dirtyDisplayList.

Note, from Robert Osfield, moved bodies of set*Binding() into Geometry.cpp to avoid
clutter in the header.
2006-05-15 11:48:05 +00:00
Robert Osfield
c64f527925 From Brede Johansen, added missing array handling into Geometry::accept(AttributeFunctor&
af) and Geometry::accept(ConstAttributeFunctor& af).
2006-02-28 19:46:02 +00:00
Robert Osfield
e311cf83d8 Added checks in the drawImplementation to catch when attribute bindings are set on
but the relevant arrays remain unset, this prevents previous crash when this
occured.
2005-12-06 11:24:24 +00:00
Robert Osfield
33f4494830 Added missing dirtyDisplayList call into osg::Geometry::set calls. 2005-11-22 13:56:50 +00:00
Robert Osfield
c02e91c1b4 Added support for GrapicsOpeations that are reused each frame, cleaned up
osgcamera example.
2005-08-30 22:28:30 +00:00
Robert Osfield
d35ea68f3e Renamed Byte2,3,4 and Short2,3,4 and UByte4 to use the Vec*b, Vec*s and Vec4ub form 2005-07-15 14:41:19 +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
2b08f729f3 Updated change log.
From Fredric Marmond, changed unsigned int to unsigned long to avoid compile errors under 64 bit compile.
2005-05-25 15:35:51 +00:00
Robert Osfield
678b22ce83 Updated Copyright notices to 1998-2005. 2005-04-14 21:41:28 +00:00
Don BURNS
b84342c59a Spelling errors fixed by Brede Johansen 2004-12-07 00:42:21 +00:00
Robert Osfield
c27bf441e2 Improved the osg::Geometry::computeCorrectBindingsAndArraySizes() implemention
so that it produce more optimal settings.

Changed flt/GeoSetBuilder so that it doensn't merge geometry, as it was
merging geometry even when inappropriate.
2004-10-06 20:32:09 +00:00
Robert Osfield
5b0739bcf0 Updates for better DatabasePager peformance w.r.t constant frame rates. 2004-09-23 12:27:56 +00:00
Robert Osfield
0d884d66eb Various improvements to database paing. 2004-09-21 17:26:08 +00:00
Robert Osfield
bd68cf9f50 Changed binding warnings to be reported as info rather than as warnings. 2004-08-07 19:08:12 +00:00
Robert Osfield
ba295ccab7 Added a more flexible variable on the textured quad generation function 2004-07-12 01:01:00 +00:00
Robert Osfield
888d9e2a25 From Pavel Moloshtan, added support for storing primitive sets in VBO's 2004-06-29 15:04:38 +00:00
Robert Osfield
ad6bf73037 From David Fries, small treak to debugging output. 2004-06-16 06:02:12 +00:00
Robert Osfield
773ffc0c05 Added better debugging messages for verify bindings. 2004-06-11 21:05:50 +00:00
Robert Osfield
0fac56f56a From Max Behensky, fixes to the computation of the number of primitives 2004-06-04 08:13:36 +00:00
Robert Osfield
aa52005b87 Added empty() method to Geometry to facilitate tests for removing empty
geometry from the scene graph.

Added removal of empty geometry leaves from within the RemoveEmptyNodeVisitor
2004-03-29 10:24:16 +00:00
Robert Osfield
86dbbb2874 Added PrimitiveIndexFunctor for better support of TriangleIndexFunctor 2004-03-14 21:54:17 +00:00
Robert Osfield
a3d99d88ff Added float s, float t parameters to createTexturedGeometry function 2004-03-09 14:58:50 +00:00
Robert Osfield
57ed6ebb79 Warning fix 2004-02-24 12:04:48 +00:00
Robert Osfield
dea22aeb8e Added support for a OSG_DISABLE_FAST_PATH_IN_DISPLAY_LISTS environmental
variable in the computeFastPathsUsed() method so that use of vertex arrays
can be forced off.  This is a work around for a bug in the OpenGL drivers in
OSX/Panther.
2004-02-17 09:46:16 +00:00
Robert Osfield
ca06afbc79 Changed the ArrayData constructor to use copyop for copying arrays, instead
of by default doing cloning.
2003-12-18 12:20:38 +00:00
Robert Osfield
4b63fde145 Added a cast (Array*) to get round VS.NET compiler error. 2003-12-05 09:22:03 +00:00
Robert Osfield
9c2f01fd61 Added support for expanding index'd attributes from within
osgUtil:TriStripVisitor.
2003-12-04 17:14:06 +00:00
Robert Osfield
db66abd6d6 Implemented duplicate removal code into TriStripVisitor and added an
extra pass to doing tri stripping in the osgUtil::Optimzer.

Added validity checks into osg::TexEnvCombine to catch eronous enumarant values.

Improved the efficient of CullingSet's handling of new transforms.

Added a copy shared subgraphs and subdivision code into osgUtil::Optimizer.
2003-12-03 21:45:32 +00:00
Robert Osfield
f1c4dc3b0d Updates for osgdem. Including new read/writeHeightField() methods. 2003-10-29 11:11:17 +00:00
Robert Osfield
d55d8f941d Fixed error when handling mulltiple non per vertex vertex attributes during
rendering.
2003-10-22 13:39:16 +00:00
Robert Osfield
c00a88f4a4 From Tree, added missing setTextureData method. 2003-10-01 09:18:24 +00:00
Robert Osfield
b57404d17e Fixed the Geometry::verifyBindings && computeCorrectBindingsAndArraySizes so they
correctly check the indices and array elements.
2003-09-29 14:07:46 +00:00
Robert Osfield
f8df9991b2 Improves to CullStack.
From M.Grngr. options support for f=switching off internal imagery in .ive files
2003-09-26 11:20:43 +00:00
Robert Osfield
2812c50329 Improved the Geometry::verifyBinding() and computeCorrectBindingsAndArraySizes()
methods to check all atributes and to report warnigns when errors are detected.

Added a CheckGeomtryVisitor to osgUtil::Optimizer to detect eroneous Geometry
before rendering.
2003-09-24 15:54:22 +00:00
Robert Osfield
b165fc9b4d Cleaned up handling of vertex arrays in osg::Geometry.
Added support for vertex attribute arrays in .osg and .ive.
2003-09-09 22:18:35 +00:00
Robert Osfield
0ebf005ac1 Added a call to disable all vertex attrib arrays when none are present
on an osg::Geometry.
2003-09-01 11:23:29 +00:00
Robert Osfield
4c62cfe6e5 Added experiment Tempated fast path implemenation, #if 0 out right now. 2003-08-31 22:08:22 +00:00
Robert Osfield
02561a96c7 Compile/Warnings fixes. 2003-08-21 14:26:40 +00:00
Robert Osfield
1de167cd37 Fixed DrawVertex/DrawColors access of null arrays errors. 2003-08-12 10:15:59 +00:00
Robert Osfield
ef4535a2a4 Added s/getFastPathHint(). 2003-08-09 00:46:48 +00:00
Robert Osfield
a11395feec Added missing copy ops in the copy constructor.
Added computeInternalOptimziedGeometry() and associated methods to Geometry
to support alternate versions of a geometry to be used to optimize rendering,
such as flattening indexed attributes to straight attribute arrays.
2003-08-08 00:21:30 +00:00
Robert Osfield
f4d093df36 Fixed computeFastPathsUsed() so that it includes a check for the presence
of _vertexIndices and disables fast paths in this case.
2003-08-04 22:03:55 +00:00
Robert Osfield
9239173019 Tweaked osg::Geometry's VBO code so that it should not call
VBO when the extension is not supported.
2003-07-07 08:01:09 +00:00
Don BURNS
092c094752 Fixed glBindBufferARB to extensions->glBindBuffer() 2003-07-02 01:56:12 +00:00
Robert Osfield
b5442ac835 Added support for the ARB_vertex_buffer_object into osg::Geometry. 2003-06-29 21:41:57 +00:00
Robert Osfield
d70ab592ed Additions since the CVS back up was made. 2003-06-24 21:57:13 +00:00
Don BURNS
15f88f35b2 *** empty log message *** 2003-06-24 15:40:09 +00:00
Robert Osfield
efa16a34c5 Fixes to the Optimizer's handling of merging of osg::Geometry 2003-05-22 15:29:20 +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
43f1c0121b Bug spotted and fix by Sébastien Kuntz. Changed < to <= on Geometry.cpp, in removePrimitiveSet(),
if( i+numElementsToRemove<_primitives.size() )
2003-04-01 15:08:30 +00:00
Robert Osfield
ce46db87b0 Spotted by Brede - missing ! 2003-03-25 13:01:34 +00:00
Robert Osfield
c2b4a05825 Minor fixes to ReaderWriter and Paragraph to help work with use of Doxygen.
Fix to CullVisior to handle the new no referenced counted cull and draw traversal.
2003-02-10 13:58:39 +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
c1831b21f7 Made the setting of default glNormal and glColor values an compile
option via #ifdef USE_DEFAULT_NORMAL and USE_DEFAULT_COLOR defines respectively.
2003-01-20 11:02:27 +00:00
Robert Osfield
3ef3666d0f Added new ARB vertex program state attribute and demo program,
sent in my Brede Johansen.
2003-01-04 20:45:53 +00:00
Robert Osfield
22c313cf3e Warning fixes. 2002-11-22 09:46:25 +00:00
Don BURNS
c735c379af Fixed std:: prefix and reinitialized variable for gcc 3.2 2002-11-21 20:28:28 +00:00
Robert Osfield
5ddcd5d878 Added osg::Geometry::setPrimtiveSet,removePrimtiiveSet, insertPrimitiveSet
and getPrimitiveSetIndex().

Renamed osg::Group::findChildNum(..) to getChildIndex().

Renamed osg::Geode::findDrawableNum(..) to getDrawableIndex().
2002-11-21 09:07:11 +00:00
Robert Osfield
3bd400130c Name change and const change of Drawable::drawImmediateMode(State&) to
Drawable::drawImplementation(State&) const.   Various updates to the
rest of the OSG to accomodate this.
2002-11-06 15:43:11 +00:00
Robert Osfield
5eb65f65cc Added support for recording camera animation paths in osgGLUT::Viewer, and fixed
the osgGA::AnimationPathManipulator to handle it.

Added a new Drawable::ConstAttributeFunctor and make the accept(PrimitiveFunctor)
be a const method so can disallows modification.  Added Drawable::supports(...) methods
for each of the AttributeFunctor, ConstAttributeFunctor and PrimitiveFunctor so
that programs can querry whether it is possible to use functors with that object type.
2002-11-06 10:24:33 +00:00
Robert Osfield
31e8323f17 Added default colour and normal definition to the Geometry draw to prevent state
inheritance of these attributes from causing problems of Geometry which arn't
fully defined.
2002-10-18 12:26:23 +00:00
Robert Osfield
c59fc9a2b7 Fixed a bug in the Optimizer where BIND_PER_PRIMITIVE_SET primitives where being eroneously merged.
Added missing support for reading geometry indices from the .osg format.

Added handling of geometry indices into the primitive functor in osg::Geometry.

Moved the method implementions of AnimationPathManipulator into src/osgGA and added extra convinience
methods for setting the manipulator with an hand built AnimationPath.

FCVS: 	VisualStudio/osgPlugins/iv/iv.dsp
2002-10-08 14:10:55 +00:00
Robert Osfield
0a5ed26940 Moved the new osg::IndexedGeometry class over the top of the the existing
osg::Geometry class, and removed the temporary IndexedGeometry.  Port the rest
of the OSG across to account for the change in method calls -
osg::Geometry::addPrimitive(..) becomes osg::addPrimitiveSet(..)
2002-10-02 13:12:16 +00:00
Robert Osfield
2a28a4297f Futher work on the IndexedGeometry class. Indexed coordinates should now
work.
2002-09-26 15:26:22 +00:00
Robert Osfield
55215651d7 Renamed osg::Primitive to osg::PrimitiveSet which better reflect what it
encapsulates.

Added new osg::IndexGeometry implemention, *not* complete yet.

Changed the rest of the OSG to handle the renaming og Primitive to PrimitiveSet.
2002-09-20 14:51:59 +00:00
Robert Osfield
02d920c930 Fix the sceondary color code. 2002-09-18 16:10:42 +00:00
Robert Osfield
61ff1c7b0a Fixes for Win32 build 2002-08-25 11:00:30 +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
a9732aa046 Added check to disable color binding when the secondary colour extension doesn't
exist.
2002-08-18 11:16:31 +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
95bdcfc3f6 Fixes to Doxygen files from Neil.
Removed unused set/getReportMode() methods and member variables from IntersectVisitor.

Added deep copy construction of Geometry objects.
2002-07-25 21:50:08 +00:00
Robert Osfield
b2fa79293c Added the missing _primtives from the copy constructor list. 2002-07-23 15:48:12 +00:00
Robert Osfield
3cba9a52ef Updates NEWS file for 0.9.0 release.
Added default computeBound() implementation to osg::Drawable which uses
a PrimtiveFunctor to compute the bounding box in a generic way, that
will work for all Drawable subclasses that implement the accept(PrimitiveFunctor&).
2002-07-18 22:35:54 +00:00
Robert Osfield
ff8b4c001d Rewrote the osg::Drawable::AttributeFunctor and PrimtiveFunctor to make
them more consistent with each other. This does mean an API change, so
dependanct code in the OSG has been updated accordingly.
2002-07-18 15:36:14 +00:00
Robert Osfield
8036901ea1 Rewrote osg:Statistics so that it is PrimitiveFunctor as is now completely
decoupled from osg::Drawable.  The Drawable::getStats() virtual method
no longer exists.

Updated the Viewer to use the osg::Statistics incarnation and reformated stats
to clean it up.
2002-07-18 14:20:01 +00:00