Commit Graph

1092 Commits

Author SHA1 Message Date
Robert Osfield
0f209a5362 From Eric Sokolowsky, "There is code in Image.cpp that calculates the size of a compressed image
based on the internal format. There is similar code in the Texture class
but it does not account for the ARB types. I modified the Texture class
implementation to show a warning when an incomplete internal format is
used to calculate the image size."
2006-07-05 13:44:07 +00:00
Robert Osfield
ce4b3a7b9e Changed parameter name from osberver_ptr to observer. 2006-07-04 19:58:53 +00:00
Robert Osfield
f181228d4a From Michael Platings, added support for glBlendFuncSeperate. 2006-06-30 13:50:02 +00:00
Robert Osfield
6a2387373c From Eric Sokolowsky, made a couple of methods static. 2006-06-30 13:47:12 +00:00
Robert Osfield
30265ac0b3 Added support for RenderBin's have a local top level StateSet. This is now
used by default in the depth sorted bin.
2006-06-29 15:57:24 +00:00
Robert Osfield
d084c34e04 Added a functional DeleteHandler. 2006-06-26 20:35:10 +00:00
Robert Osfield
4ab7be2833 Martin Spindler, new osg::ClampColor state attribute. 2006-06-08 15:27:18 +00:00
Robert Osfield
e1c77dfe2a Minor tweaks of ints to unsigned ints 2006-05-16 21:20:36 +00:00
Robert Osfield
690aeea7e4 From Mike Weiblen, futher work on Uniform array support. 2006-05-16 21:00:45 +00:00
Robert Osfield
bf065ed3a4 From Mike Weiblen, support GLSL uniform arrays. A couple of tweaks and fixes from Robert Osfield. 2006-05-15 15:46:08 +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
ff518eb9c6 Removed redundent variable declaration. 2006-05-09 09:13:07 +00:00
Robert Osfield
3132f1f2f7 Fixed expire of children to work with the new Group::removeChildren method. 2006-05-04 19:15:52 +00:00
Robert Osfield
a8c52a90f0 Added selective support for thread safe ref/unref such that the rendering
backend now doesn't use thread safe ref counting where multi-buffering exists.
This reduces the overhead of multi-threading.
2006-05-02 15:52:46 +00:00
Robert Osfield
43f0efd6d2 Reorganised the Group::removeChild and Geode::removeDrawable methods so
that removeChild(Node*), removeChild(uint) and equivilant Geode methods are
now inline methods, not designed to be overriden, and seperated out the
multiple remove method to be called removeChildren(uint, uint) which is
now the only virtual method.  There removeChildren is now the method to
override in subclasses.

This reorganisation requires some call code to be rename removeChild usage
to removeChildren.
2006-05-02 09:45:31 +00:00
Robert Osfield
6558a5589f Reset the default number of graphics context to 1. 2006-04-25 09:00:07 +00:00
Robert Osfield
e7a4ad287b From Mike Weiblen, changes to internal help class in prep for array uniform support.
Small tweaks for build under Linux from Robert Osfield.
2006-03-28 16:08:32 +00:00
Robert Osfield
2b61cf0a1e From Farshid Lashkari, "The following patch adds a multisample option to the
osg::DisplaySettings class. OsgCameraGroup will now read the setting
from the DisplaySettings instead of hardcoding the value. I added the
following commandline option to be able to set the multisample value:

--samples <num>

One thing to note, OsgCameraGroup would previously check if the
computer is an SGI and set multisample to 4. I retained this check in
DisplaySettings to be backwards compatible."
2006-03-13 21:29:17 +00:00
Robert Osfield
4fc4e60cc3 From Bob Kuehne, added osg::getGlVersion() and fixed a minor typo in Texture3D. 2006-03-08 16:11:54 +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
deb6632b04 Fixes to removed dependency on RefNodePath. 2006-02-28 18:54:29 +00:00
Robert Osfield
abed6b7951 Ported NodeTrackCallback and NodeTrackManipulator across to use oberserver_ptr
instead of RefNodePath.

Removed now redundent RefNodePath.
2006-02-27 19:49:47 +00:00
Robert Osfield
1dcf4fe81f Added support in osg::computeWorldToLocal and compteLocalToWorld functions for automatically
stripping any absolute or root CameraNode's from the NodePaths.

Added osg::Node::getWorldMatrices() convinience method.
2006-02-27 19:48:34 +00:00
Robert Osfield
8f2ffb7c2d Added new observer_ptr templated smart pointer to allow one to retain pointers
to objects but have the pointer reset to null if that object is deleted.
2006-02-27 19:44:33 +00:00
Robert Osfield
def7a78842 Fixed typo of Validity. 2006-02-22 19:14:01 +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
25abad8307 From Paul Martz, "I've attempted to make AutoTransform override computeBounds() to return
an invalid bounding sphere if it hasn't seen a cull traversal yet. It
depends on _firstTimeToSetEyePoint, which is initially true, then false
after a cull. There might be a better way? If so, let me know.

This change does resolve the issue I had encountered with auto scale to
screen and incorrect culling."
2006-02-21 13:51:10 +00:00
Robert Osfield
7d5c81bf5e From Ulrich Hertlein, spelling corrections and a few Doxgen comments. 2006-02-20 21:05:23 +00:00
Robert Osfield
9473d80345 Moved the intialization variable reset to end of the init funciton to
avoid multi-thread initialization from producing different results.
2006-02-20 16:50:47 +00:00
Robert Osfield
59ad441be1 Added BlenColour(Vec4) constructor and updated wrappers. 2006-02-09 12:20:42 +00:00
Robert Osfield
39381c6fe7 From Edmond Gheury, fixe and bug in the PrimitiveShapeVisitor. 2006-02-04 21:25:33 +00:00
Robert Osfield
e89852e25f From Marco Jez, " I've modified in order to make FBO mipmapping work. In
FrameBufferObject.cpp there is also another fix: when initializing a FBO
attachment from a CameraNode attachment, the renderbuffer's format must be
set to the attachment's internal format, not to the image's pixel format.

Another problem is that attaching a renderbuffer to the FBO through
CameraNode is not simple (if not impossible) if you don't intend to specify
an Image object. Probably CameraNode could be enriched with an
"attach(buffer, width, height, format)" method. For example if you attach a
color buffer as a texture whose size is different than that of the
CameraNode's viewport you also need to attach a depth buffer of the same
size, because the depth buffer that is automatically attached by RenderStage
has the viewport's size. FBOs require that all attachment have the same
dimensions, so said setup will fail if you can't specify a custom depth
renderbuffer"
2006-02-04 21:20:25 +00:00
Robert Osfield
a0f43443a4 From Marco Jez, addition of glw extension checking under Windows, and tweaks to
BlendEquation and RenderStage to correct the extensions being tested.
2006-01-18 11:45:58 +00:00
Robert Osfield
93a2c3d011 Improved handling of clean up of osg::Program/osg::Shader on closing of a graphis context. 2006-01-16 17:05:17 +00:00
Robert Osfield
ab71114219 Moved the body of the FBOExtensions::instance() to the .cpp and added bool to
control whether that an FBOExtensions structure can be created if missing.
2006-01-03 10:44:14 +00:00
Robert Osfield
bcd082db3d From Farshid Lashkari, compile fix 2005-12-20 09:13:59 +00:00
Robert Osfield
4535cc0c09 Added back in Switch::removeChild(Node*) 2005-12-16 11:04:33 +00:00
Robert Osfield
6ff781b5b0 Removed Switch::removedChild(Node*) as the Group::removeChild(Node*) implementation
should be sufficient, as it calls the virtual removeChild(uint,uint).
2005-12-15 15:50:17 +00:00
Robert Osfield
a8d7234a0b From Eric Wing, added missing removeChildren method. 2005-12-09 11:22:09 +00:00
Robert Osfield
a4ea759ce5 From Simon Julier, fixed typo of unknown. 2005-12-08 14:08:09 +00:00
Robert Osfield
53ee0ce3ec Added CameraNode::releaseGLObejcts() to help in clean up, and changed the
ordering in SceneView::flushDeleteGLObjects() so that fbo's are deleted
before any texture objects they use are deleted.
2005-12-08 10:06:57 +00:00
Robert Osfield
27ad107378 Added new Node::getParentalNodePaths() method.
Added better handling in computeIntersections(..) of nodes that are internal
to the scene graph, correctly accounting for the accumulated transforms.

Changed the EventVisitor so that it only traveses active children rather than
all children.

Updated wrappers.
2005-12-07 15:29:29 +00:00
Robert Osfield
3f3c7b1df8 Added Camera::isRenderToTextureCamera() method, and improved support in PickVisitor
and IntersectVisitor for CameraNode, including the ignoring of render to texture cameras,
such that HUD's etc are still intersected against.
2005-12-07 11:36:56 +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
6971588592 Changed debug message to INFO. 2005-12-05 20:11:50 +00:00
Robert Osfield
b16f40e5ab Moved the body of the getNumPrimitives() into the .cpp. 2005-12-03 00:03:31 +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
06cb8c030f Added temporary ref_ptr<osg::Image> to prevent the _image going out of scope
due to another thread complete the texture::apply() while the present texture::apply()
is still running.
2005-11-28 20:08:36 +00:00
Robert Osfield
0663c3b653 From John Donovan, typo fixes. 2005-11-25 19:18:12 +00:00
Robert Osfield
daefa1cae6 Added releaseGLObjects to PrimitiveSet. 2005-11-25 12:31:04 +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
b5a5cd7901 Changed the default value of Texture::_resizeNonPowerOfTwoHint to true, to
improve the backwards compatibility of peformance on systems that have OpenGL2.0
drivers but without hardware that can't handle non power of two textures.
2005-11-24 10:28:09 +00:00
Robert Osfield
4ca3a4fd45 Changed the linux implement of getGLExtensionFuncPtr to querry for glXGetProcAddressARB
and then use this if its available, otherwise fallback to the original dlsym usage.
2005-11-23 15:25:56 +00:00
Robert Osfield
74830f9ce1 Added multi-buffering of the CameraNode::_renderingCache to help cope with multiple graphis context usages. 2005-11-23 13:44:27 +00:00
Robert Osfield
a91b8fa40a Moved getGLExtensionFuncPtr implementation into the .cpp to make it easier to
change it implementation without forcing a complete recompile.
2005-11-23 10:16:25 +00:00
Robert Osfield
33f4494830 Added missing dirtyDisplayList call into osg::Geometry::set calls. 2005-11-22 13:56:50 +00:00
Robert Osfield
85b3c4b179 Added check against LODScale being zero, and fixed the search for the maximum
LOD range in the pixel size range fallback.
2005-11-22 10:26:27 +00:00
Robert Osfield
611e49b736 From Chris Hanson, add LODScale support to pixel based LOD range selection. 2005-11-22 10:08:00 +00:00
Robert Osfield
26e77fc92f From Jason Daly, (with small tweak by Robert Osfield) fix for Prorgram::removeShader(Shader*)
so that it properly remove the shader and its entry in the _shaderList.
2005-11-22 09:57:32 +00:00
Robert Osfield
0e16b64665 Coverted tabs to space in core libraries. 2005-11-17 13:35:53 +00:00
Robert Osfield
b15b677cc3 From Mikkel Gjøl, addition of paramter set/get methods to osgGA::*Manipulators,
change of ' ' to GUIEventAdapter::KEY_Space, fix to url in Matrix_implementation.cpp.
Syntax fixes by Robert Osfield to above submission fix inconsistencies with normal
OSG coding style.
2005-11-17 11:03:20 +00:00
Robert Osfield
19c1863432 Added (_data || rhs._data) extra qualify to Image::compare is data equal test. 2005-11-17 09:20:58 +00:00
Robert Osfield
2d33e6f2ad From Mike Weiblen, support for ARB_texture_rectangle extension name. 2005-11-16 09:28:09 +00:00
Robert Osfield
c2f1527fe0 Added better control for cancel GraphicsThreads. 2005-11-10 15:25:06 +00:00
Robert Osfield
20d9c3c3c4 Compile fixes for VS7.1 2005-11-10 09:42:34 +00:00
Robert Osfield
73f7a68dbe Added writing of commandline options in getFormatedString when there is no description string. 2005-11-09 17:19:34 +00:00
Robert Osfield
83d492162e Added the support in AnimationPathCallback for taking a pivot, axis and rotation rate
paramters in its constructor to allow it to be used to create rotations around a point.
This provides the same interface and functionality as osgUtil::TransformCallback but
has the advantage and AnimationPathCallback is fully supported by the .osg and .ive file formats.
2005-11-09 15:11:22 +00:00
Robert Osfield
258425d649 Bumped the version numbers up to 1.0 in preparation for 1.0-rc1. 2005-11-09 10:49:56 +00:00
Robert Osfield
6c70812928 Fixed warnings. 2005-11-09 10:41:52 +00:00
Robert Osfield
53e075f78b From Brad Colbert/Robert Osfield: added s/getSourceFormat and s/getSourceType to osg::Texture
along with support for this Texture1D, 2D, 3D, TextureCubeMap and TextureRectangle.  The
new SourceFormat and SourceType parameters are only used when no osg::Image is assigned to
an osg::Texture, and main use is for render to texture effects.

Added support for --hdr option in osgprerender, which utilises the new Texture::setSourceFormat/Type() methods.
2005-11-08 15:52:21 +00:00
Robert Osfield
6ed9cb40cc From Colin McDonald, fixed image size calculation in getTotalSizeInBytesIncludingMipmaps(),
added checks on success of opening files for writing in the .ive plugin.
2005-11-08 13:51:28 +00:00
Robert Osfield
18c916de1a From Bob Kuehne, proper c++ cast instead of c-cast for ApplicationUsage 2005-11-07 15:46:05 +00:00
Robert Osfield
efd96108fb From Gideon May, compile fixes for OSX. 2005-11-07 11:14:23 +00:00
Robert Osfield
4915259878 Improved support for texture subload/render to texture in various Texture classes
and RenderStage.
2005-11-04 12:08:16 +00:00
Robert Osfield
7c612fb1d9 Added env var docs on OSG_MAX_TEXTURE_SIZE 2005-11-03 10:59:22 +00:00
Robert Osfield
eb28f9f587 From Eric Sokolowsky, added writeEnvironmentSettings to help report what OSG
centric environment variables are used.
2005-11-03 10:01:09 +00:00
Robert Osfield
f3cfe97da9 Added support in DisplaySettings and OscCameraGroup for requesting accumulator buffer. 2005-11-02 19:15:18 +00:00
Robert Osfield
781f6d3cec From Colin McDonald, "Fixes for some duplicate global symbol definitions in the plugins,
which cause errors when creating a statically linked executable."
2005-11-02 10:29:38 +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
4509232792 Improved handling of osg::Image copying. 2005-11-01 15:23:03 +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
a742cb682e Added RenderTargetFallback option into osg::CameraNode. 2005-11-01 10:42:54 +00:00
Robert Osfield
79a7f8c729 Added catch for NULL return from glGetString( GL_VERSION ); 2005-10-29 10:04:35 +00:00
Robert Osfield
fa5ab64c94 From Ravi Mathur, "Here is an update to BlendEquation that adds checking for the
SGIX_blend_alpha_minmax and EXT_blend_logic_op extensions.  It is
tested with the osgblendequation example.  If the extensions are not
supported, a WARN level notification is generated."
2005-10-28 13:18:09 +00:00
Robert Osfield
1b26232f71 Added command line support for the interlaced stereo modes. 2005-10-25 15:49:48 +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
2b2ca82b5a Added check against glGetString(GL_VERSION) returning NULL. 2005-10-25 13:24:39 +00:00
Robert Osfield
f2f6e6bb45 Added beginnings of Programming Guide, and NodeTrackerCallback. 2005-10-24 10:51:50 +00:00
Robert Osfield
1e508d432b Added SmokeTrailEffect which renders created particles as single quad or line
strip, in the case of the quad strip the strip is aligned to the be orthogonal with
the eye point.
2005-10-12 18:42:36 +00:00
Robert Osfield
4b43b22c5a Added support for CameraView into NodeVistor, and support for CameraNode and CameraView
into the AnimationPathCallback so you can now animate both via animation paths.
2005-10-05 09:48:53 +00:00
Robert Osfield
8e9ffd09af Added osg::CameraView to help application/modellers position their cameras in scenes. Note,
CameraView is *not* a camera, it isn't an active object, but a passive one that
camera must track each frame to following the path of the CameraView.
2005-10-04 13:41:20 +00:00
Robert Osfield
ff9ace16b4 From Keith Steffen, fixed bug in StateSet::clear() where parents of texture attributes
where not being reset correctly due to incorrect ordering of _textureAttributeList.clear().
2005-10-03 19:37:54 +00:00
Robert Osfield
e2f2960704 Added a dirtyDisplayList() to the setColor() and setTesselationHint() methods. 2005-10-01 19:27:52 +00:00
Robert Osfield
76058f747c From Marco Jez, added fallback to TextureCubeMap subloading that calls load
when mipmaps are required, but non are present.
2005-09-29 09:49:20 +00:00
Robert Osfield
05528abf25 From Chris Hanson:
Spelling fixes in include/osg/LOD

   Negated priority in PagedLOD when using _rangeMode==PIXEL_SIZE_ON_SCREEN

   Added clampedPixelSize() methods to CullStack and CullingSet to return fabs()ed values.

   Changed LOD and PagedLOD ::traverse to use clampedPixelSize() methods.
2005-09-28 13:33:58 +00:00
Robert Osfield
871cc70c32 From Ravi Mathur, added extension checks for point sprite support.
From Robert Osfield, tweaks of the above to use osg::buffer_object and a local struct to store
initialized to help with multi-thread and out of order context usage.
2005-09-19 15:28:31 +00:00
Robert Osfield
f32984fefe Removed some debugging messages 2005-09-10 12:51:18 +00:00
Robert Osfield
6391691be6 Added release() to all GraphicsOperations in GraphicsThread. 2005-09-03 20:54:32 +00:00
Robert Osfield
4167a3f980 Added clean up class to help improve the exit of GraphicsThread 2005-09-02 13:10:46 +00:00
Robert Osfield
caaeaee321 Fixed typo 2005-09-01 19:12:06 +00:00