Removed the rescalling of images in osg::Image during texture apply, moving
the rescale so it is locally calculated. This solves an outstanding threading
problem which occured by multiple draw threads all tried to rescale the same
image at one time.
Made osg::Image ptr in osg::Texture2D non mutable as it is no longer modified
during apply.
any reference to these in the distribution across to using unsigned char,
unsigned short etc. This has been done to keep the OSG code more opaque
to what types are.
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().
initializes the array to the number of graphics contexts, and automatically
expands the array when indices outside the current size are required.
Added new osg::Texture::Extensions nested class to handle extensions on a per
context basis.
code in Texture::apply() to set the _image to 0 on apply. Note,
this will only work when you have a single graphics context, as
with multiple graphics contexts one can't delete the image after
the first apply, as there will be more than one texture object to
update.
it now maintains references to the last applied matrices, automatically doing
lazy state updating. This simplifies the various places in the OSG which
were previously doing the applying, add paves the way for managing the
projection matrix within the scene graph.
Remove MemoryAdapter and mem_ptr as they arn't being used, and can potentially
confuse users by their existance.
osg::Texture. The values default to 0, and in this state they are
sizes of the glTexSubImage2D are taken from the source image size. This
allows the previous setup with no settings for subload size to work as
before.
much more of the core texture setup code. This largely invloved paramterizing
the applyImmediateMode, which has also been rename applyTexImage to reflect
its functionality better.
mode by using a _texParamtersDirty flag in combination with an
applyTexParamters(State&) method which does the paramters setting in one
tidy bundle. This new implementations replaces the CompileFlags submitted
yesterday.
Simplified NodeCallback by remove osg::NodeCallback::Requirements as they
are no longer needed.
Fixed comments in Drawable.
Put guards around cosf definations so that they are only used under Win32/Mac.
Fixed warning in CullVisitor.
copy constructor which takes an optional Cloner object, and the old
osg::Object::clone() has changed so that it now requires a Cloner as paramter.
This is passed on to the copy constructor to help control the shallow vs
deep copying. The old functionality of clone() which was clone of type has
been renamed to cloneType().
Updated all of the OSG to work with these new conventions, implemention all
the required copy constructors etc. A couple of areas will do shallow
copies by design, a couple of other still need to be updated to do either
shallow or deep.
Neither of the shallow or deep copy operations have been tested yet, only
the old functionality of the OSG has been checked so far, such running the
viewer on various demo datasets.
Also fixed a problem in osg::Optimize::RemoveRendundentNodesVisitor which
was not checking that Group didn't have have any attached StateSet's, Callbacks
or UserData. These checks have now been added, which fixes a bug which was
revealled by the new osgscribe demo, this related to removal of group acting
as state decorator.
method