From Jannik Heller, typo fixes
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14832 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
parent
166c49eedd
commit
0a1db3d6fc
@ -14,8 +14,8 @@
|
|||||||
#In OSG ffmpeg plugin, we used "#include <header.h>" for compatibility with old version of ffmpeg
|
#In OSG ffmpeg plugin, we used "#include <header.h>" for compatibility with old version of ffmpeg
|
||||||
#With the new version of FFmpeg, a file named "time.h" was added that breaks compatability with the old version of ffmpeg.
|
#With the new version of FFmpeg, a file named "time.h" was added that breaks compatability with the old version of ffmpeg.
|
||||||
|
|
||||||
#We have to search the path which contain the header.h (usefull for old version)
|
#We have to search the path which contain the header.h (useful for old version)
|
||||||
#and search the path which contain the libname/header.h (usefull for new version)
|
#and search the path which contain the libname/header.h (useful for new version)
|
||||||
|
|
||||||
#Then we need to include ${FFMPEG_libname_INCLUDE_DIRS} (in old version case, use by ffmpeg header and osg plugin code)
|
#Then we need to include ${FFMPEG_libname_INCLUDE_DIRS} (in old version case, use by ffmpeg header and osg plugin code)
|
||||||
# (in new version case, use by ffmpeg header)
|
# (in new version case, use by ffmpeg header)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# full path of the library name. in order to differentiate release and debug, this macro get the
|
# full path of the library name. in order to differentiate release and debug, this macro get the
|
||||||
# NAME of the variables, so the macro gets as arguments the target name and the following list of parameters
|
# NAME of the variables, so the macro gets as arguments the target name and the following list of parameters
|
||||||
# is intended as a list of variable names each one containing the path of the libraries to link to
|
# is intended as a list of variable names each one containing the path of the libraries to link to
|
||||||
# The existance of a variable name with _DEBUG appended is tested and, in case it' s value is used
|
# The existence of a variable name with _DEBUG appended is tested and, in case it' s value is used
|
||||||
# for linking to when in debug mode
|
# for linking to when in debug mode
|
||||||
# the content of this library for linking when in debugging
|
# the content of this library for linking when in debugging
|
||||||
#######################################################################################################
|
#######################################################################################################
|
||||||
|
@ -174,7 +174,7 @@ public:
|
|||||||
{
|
{
|
||||||
texture->setInternalFormatMode(_internalFormatMode);
|
texture->setInternalFormatMode(_internalFormatMode);
|
||||||
|
|
||||||
// need to disable the unref after apply, other the image could go out of scope.
|
// need to disable the unref after apply, otherwise the image could go out of scope.
|
||||||
bool unrefImageDataAfterApply = texture->getUnRefImageDataAfterApply();
|
bool unrefImageDataAfterApply = texture->getUnRefImageDataAfterApply();
|
||||||
texture->setUnRefImageDataAfterApply(false);
|
texture->setUnRefImageDataAfterApply(false);
|
||||||
|
|
||||||
@ -807,7 +807,7 @@ int main( int argc, char **argv )
|
|||||||
root->accept(av);
|
root->accept(av);
|
||||||
}
|
}
|
||||||
|
|
||||||
// optimize the scene graph, remove rendundent nodes and state etc.
|
// optimize the scene graph, remove redundant nodes and state etc.
|
||||||
osgUtil::Optimizer optimizer;
|
osgUtil::Optimizer optimizer;
|
||||||
optimizer.optimize(root.get());
|
optimizer.optimize(root.get());
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// The majority of the application is dedicated to building the
|
// The majority of the application is dedicated to building the
|
||||||
// current contribitors list by parsing the ChangeLog, it just takes
|
// current contributors list by parsing the ChangeLog, it just takes
|
||||||
// one line in the main itself to report the version number.
|
// one line in the main itself to report the version number.
|
||||||
|
|
||||||
#include <set>
|
#include <set>
|
||||||
|
@ -250,7 +250,7 @@ void CameraPacket::writeEventQueue(osgViewer::Viewer& viewer)
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Reciever
|
// Receiver
|
||||||
//
|
//
|
||||||
Receiver::Receiver( void )
|
Receiver::Receiver( void )
|
||||||
{
|
{
|
||||||
|
@ -248,7 +248,7 @@ void processLoadedModel(osg::ref_ptr<osg::Node>& loadedModel, int optimizer_opti
|
|||||||
loadedModel->getOrCreateStateSet()->setMode(GL_ALPHA_TEST, osg::StateAttribute::ON);
|
loadedModel->getOrCreateStateSet()->setMode(GL_ALPHA_TEST, osg::StateAttribute::ON);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// optimize the scene graph, remove rendundent nodes and state etc.
|
// optimize the scene graph, remove redundant nodes and state etc.
|
||||||
osgUtil::Optimizer optimizer;
|
osgUtil::Optimizer optimizer;
|
||||||
optimizer.optimize(loadedModel.get(), optimizer_options);
|
optimizer.optimize(loadedModel.get(), optimizer_options);
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
// Search in str for all occurences of spat and replace them with rpat.
|
// Search in str for all occurrences of spat and replace them with rpat.
|
||||||
void searchAndReplace(std::string& str, const std::string& spat, const std::string& rpat)
|
void searchAndReplace(std::string& str, const std::string& spat, const std::string& rpat)
|
||||||
{
|
{
|
||||||
std::string::size_type pos = 0;
|
std::string::size_type pos = 0;
|
||||||
|
@ -71,7 +71,7 @@ int main (int argc, char* argv[])
|
|||||||
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
|
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
|
||||||
geode->addDrawable(new osg::ShapeDrawable(new osg::Box(osg::Vec3(0.0f,0.0f,0.0f),0.5)));
|
geode->addDrawable(new osg::ShapeDrawable(new osg::Box(osg::Vec3(0.0f,0.0f,0.0f),0.5)));
|
||||||
|
|
||||||
//Tranformation to be manipulated by the animation
|
//Transformation to be manipulated by the animation
|
||||||
osg::ref_ptr<osg::MatrixTransform> trans = new osg::MatrixTransform();
|
osg::ref_ptr<osg::MatrixTransform> trans = new osg::MatrixTransform();
|
||||||
trans->setName("AnimatedNode");
|
trans->setName("AnimatedNode");
|
||||||
//Dynamic object, has to be updated during update traversal
|
//Dynamic object, has to be updated during update traversal
|
||||||
@ -84,7 +84,7 @@ int main (int argc, char* argv[])
|
|||||||
//The second element modifies the rotation around x-axis
|
//The second element modifies the rotation around x-axis
|
||||||
updatecb->getStackedTransforms().push_back(new osgAnimation::StackedTranslateElement("position"));
|
updatecb->getStackedTransforms().push_back(new osgAnimation::StackedTranslateElement("position"));
|
||||||
updatecb->getStackedTransforms().push_back(new osgAnimation::StackedRotateAxisElement("euler",osg::Vec3(1,0,0),0));
|
updatecb->getStackedTransforms().push_back(new osgAnimation::StackedRotateAxisElement("euler",osg::Vec3(1,0,0),0));
|
||||||
//connect the UpdateMatrixTransform callback to the MatrixTRanform
|
//connect the UpdateMatrixTransform callback to the MatrixTransform
|
||||||
trans->setUpdateCallback(updatecb);
|
trans->setUpdateCallback(updatecb);
|
||||||
//initialize MatrixTranform
|
//initialize MatrixTranform
|
||||||
trans->setMatrix(osg::Matrix::identity());
|
trans->setMatrix(osg::Matrix::identity());
|
||||||
@ -102,7 +102,7 @@ int main (int argc, char* argv[])
|
|||||||
//add the rest of the scene to the grp node
|
//add the rest of the scene to the grp node
|
||||||
grp->addChild(root);
|
grp->addChild(root);
|
||||||
|
|
||||||
// And we finaly define our channel for linear Vector interpolation
|
// And we finally define our channel for linear Vector interpolation
|
||||||
osgAnimation::Vec3LinearChannel* channelAnimation1 = new osgAnimation::Vec3LinearChannel;
|
osgAnimation::Vec3LinearChannel* channelAnimation1 = new osgAnimation::Vec3LinearChannel;
|
||||||
//name of the AnimationUpdateCallback
|
//name of the AnimationUpdateCallback
|
||||||
channelAnimation1->setTargetName("AnimatedCallback");
|
channelAnimation1->setTargetName("AnimatedCallback");
|
||||||
|
@ -98,9 +98,9 @@ struct ExampleTimelineUsage : public osgGA::GUIEventHandler
|
|||||||
{
|
{
|
||||||
// we add a scratch head priority 1 each 10 second
|
// we add a scratch head priority 1 each 10 second
|
||||||
// note:
|
// note:
|
||||||
// it's possible to add the same instance more then once on the timeline
|
// it's possible to add the same instance more than once on the timeline
|
||||||
// the only things you need to take care is if you remove it. It will remove
|
// the only things you need to take care is if you remove it. It will remove
|
||||||
// all instance that exist on the timeline. If you need to differtiate
|
// all instance that exist on the timeline. If you need to differentiate
|
||||||
// it's better to create a new instance
|
// it's better to create a new instance
|
||||||
tml->addActionAt(5.0 + 10.0 * i, _scratchHead.get(), 1);
|
tml->addActionAt(5.0 + 10.0 * i, _scratchHead.get(), 1);
|
||||||
}
|
}
|
||||||
|
@ -406,7 +406,7 @@ int main( int argc, char **argv )
|
|||||||
viewer.renderingTraversals();
|
viewer.renderingTraversals();
|
||||||
|
|
||||||
osg::Timer_t afterRenderTick = osg::Timer::instance()->tick();
|
osg::Timer_t afterRenderTick = osg::Timer::instance()->tick();
|
||||||
std::cout<<"Rendring time = "<<osg::Timer::instance()->delta_s(beforeRenderTick, afterRenderTick) <<" seconds"<<std::endl;
|
std::cout<<"Rendering time = "<<osg::Timer::instance()->delta_s(beforeRenderTick, afterRenderTick) <<" seconds"<<std::endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ osg::Node* createModel()
|
|||||||
// create the root node which will hold the model.
|
// create the root node which will hold the model.
|
||||||
osg::Group* root = new osg::Group();
|
osg::Group* root = new osg::Group();
|
||||||
|
|
||||||
// add the drawable into a single goede to be shared...
|
// add the drawable into a single geode to be shared...
|
||||||
osg::Billboard* center = new osg::Billboard();
|
osg::Billboard* center = new osg::Billboard();
|
||||||
center->setMode(osg::Billboard::POINT_ROT_EYE);
|
center->setMode(osg::Billboard::POINT_ROT_EYE);
|
||||||
center->addDrawable(
|
center->addDrawable(
|
||||||
|
@ -304,7 +304,7 @@ int main( int argc, char **argv )
|
|||||||
osgViewer::View* view = dynamic_cast<osgViewer::View*>(object.get());
|
osgViewer::View* view = dynamic_cast<osgViewer::View*>(object.get());
|
||||||
if (view)
|
if (view)
|
||||||
{
|
{
|
||||||
osg::notify(osg::NOTICE)<<"Read config file succesfully"<<std::endl;
|
osg::notify(osg::NOTICE)<<"Read config file successfully"<<std::endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ osg::Node* decorate_with_clip_node(osg::Node* subgraph)
|
|||||||
rootnode->addChild(wireframe_subgraph);
|
rootnode->addChild(wireframe_subgraph);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// simple approach to adding a clipnode above a subrgaph.
|
// simple approach to adding a clipnode above a subgraph.
|
||||||
|
|
||||||
// create clipped part.
|
// create clipped part.
|
||||||
osg::ClipNode* clipped_subgraph = new osg::ClipNode;
|
osg::ClipNode* clipped_subgraph = new osg::ClipNode;
|
||||||
@ -78,7 +78,7 @@ osg::Node* decorate_with_clip_node(osg::Node* subgraph)
|
|||||||
|
|
||||||
|
|
||||||
// more complex approach to managing ClipNode, allowing
|
// more complex approach to managing ClipNode, allowing
|
||||||
// ClipNode node to be transformed independantly from the subgraph
|
// ClipNode node to be transformed independently from the subgraph
|
||||||
// that it is clipping.
|
// that it is clipping.
|
||||||
|
|
||||||
osg::MatrixTransform* transform= new osg::MatrixTransform;
|
osg::MatrixTransform* transform= new osg::MatrixTransform;
|
||||||
|
@ -211,7 +211,7 @@ int main( int argc, char **argv )
|
|||||||
|
|
||||||
// ------------- Start of copy specific code -------------------------------------------------------
|
// ------------- Start of copy specific code -------------------------------------------------------
|
||||||
|
|
||||||
// do a deep copy, using MyCopyOp to reveal whats going on under the good,
|
// do a deep copy, using MyCopyOp to reveal whats going on under the hood,
|
||||||
// in your own code you'd typically just use the basic osg::CopyOp something like
|
// in your own code you'd typically just use the basic osg::CopyOp something like
|
||||||
osg::ref_ptr<osg::Node> mycopy = dynamic_cast<osg::Node*>(rootnode->clone(osg::CopyOp::DEEP_COPY_ALL));
|
osg::ref_ptr<osg::Node> mycopy = dynamic_cast<osg::Node*>(rootnode->clone(osg::CopyOp::DEEP_COPY_ALL));
|
||||||
std::cout << "Doing a deep copy of scene graph"<<std::endl;
|
std::cout << "Doing a deep copy of scene graph"<<std::endl;
|
||||||
|
@ -123,7 +123,7 @@ public:
|
|||||||
OSG_NOTICE<<" WindowWidth="<<ea.getWindowWidth()<<std::endl;
|
OSG_NOTICE<<" WindowWidth="<<ea.getWindowWidth()<<std::endl;
|
||||||
OSG_NOTICE<<" WindowHeight="<<ea.getWindowHeight()<<std::endl;
|
OSG_NOTICE<<" WindowHeight="<<ea.getWindowHeight()<<std::endl;
|
||||||
|
|
||||||
// reset the Camera viewpoer and associated Texture's to make sure it tracks the new window size.
|
// reset the Camera viewport and associated Texture's to make sure it tracks the new window size.
|
||||||
camera->resize(ea.getWindowWidth(), ea.getWindowHeight());
|
camera->resize(ea.getWindowWidth(), ea.getWindowHeight());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
// wraps OpenGL very thinly and therefore uses all the same enum and naming conventions. The coordinate data is also
|
// wraps OpenGL very thinly and therefore uses all the same enum and naming conventions. The coordinate data is also
|
||||||
// wrapped around OpenGL's vertex arrays and draw arrays/elements calls. Familiarity with
|
// wrapped around OpenGL's vertex arrays and draw arrays/elements calls. Familiarity with
|
||||||
// OpenGL will help you understand the osg::Geometry class which encapsulate all this, or if you
|
// OpenGL will help you understand the osg::Geometry class which encapsulate all this, or if you
|
||||||
// havn't learned OpenGL yet, learning osg::Geometry will help you understand how OpenGL
|
// haven't learned OpenGL yet, learning osg::Geometry will help you understand how OpenGL
|
||||||
// works!
|
// works!
|
||||||
|
|
||||||
// The osg::Geometry class "is a" subclass of osg::Drawable base class, so is an object that provides
|
// The osg::Geometry class "is a" subclass of osg::Drawable base class, so is an object that provides
|
||||||
|
@ -56,7 +56,7 @@ void createFountainEffect( osgParticle::ModularEmitter* emitter, osgParticle::Mo
|
|||||||
// Bounce particles off objects defined by one or more domains.
|
// Bounce particles off objects defined by one or more domains.
|
||||||
// Supported domains include triangle, rectangle, plane, disk and sphere.
|
// Supported domains include triangle, rectangle, plane, disk and sphere.
|
||||||
// Since a bounce always happens instantaneously, it will not work correctly with unstable delta-time.
|
// Since a bounce always happens instantaneously, it will not work correctly with unstable delta-time.
|
||||||
// At present, even the floating error of dt (which are applied to ParticleSystem and Operator seperately)
|
// At present, even the floating error of dt (which are applied to ParticleSystem and Operator separately)
|
||||||
// causes wrong bounce results. Some one else may have better solutions for this.
|
// causes wrong bounce results. Some one else may have better solutions for this.
|
||||||
osg::ref_ptr<osgParticle::BounceOperator> bounce = new osgParticle::BounceOperator;
|
osg::ref_ptr<osgParticle::BounceOperator> bounce = new osgParticle::BounceOperator;
|
||||||
bounce->setFriction( -0.05 );
|
bounce->setFriction( -0.05 );
|
||||||
@ -191,7 +191,7 @@ int main( int argc, char** argv )
|
|||||||
|
|
||||||
// A floating error of delta-time should be explained here:
|
// A floating error of delta-time should be explained here:
|
||||||
// The particles emitter, program and updater all use a 'dt' to compute the time value in every frame.
|
// The particles emitter, program and updater all use a 'dt' to compute the time value in every frame.
|
||||||
// Because the 'dt' is a double value, it is not suitable to keep three copies of it seperately, which
|
// Because the 'dt' is a double value, it is not suitable to keep three copies of it separately, which
|
||||||
// is the previous implementation. The small error makes some opeartors unable to work correctly, e.g.
|
// is the previous implementation. The small error makes some opeartors unable to work correctly, e.g.
|
||||||
// the BounceOperator.
|
// the BounceOperator.
|
||||||
// Now we make use of the getDeltaTime() of ParticleSystem to maintain and dispatch the delta time. But..
|
// Now we make use of the getDeltaTime() of ParticleSystem to maintain and dispatch the delta time. But..
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
// A simple demo demonstrating planar reflections using multiple renderings
|
// A simple demo demonstrating planar reflections using multiple renderings
|
||||||
// of a subgraph, overriding of state attribures and use of the stencil buffer.
|
// of a subgraph, overriding of state attribures and use of the stencil buffer.
|
||||||
//
|
//
|
||||||
// The multipass system implemented here is a variation if Mark Kilgard's
|
// The multipass system implemented here is a variation of Mark Kilgard's
|
||||||
// paper "Improving Shadows and Reflections via the Stencil Buffer" which
|
// paper "Improving Shadows and Reflections via the Stencil Buffer" which
|
||||||
// can be found on the developer parts of the NVidia web site.
|
// can be found on the developer parts of the NVidia web site.
|
||||||
//
|
//
|
||||||
@ -52,7 +52,7 @@
|
|||||||
// world poking through the mirror to be seen in the final rendering and
|
// world poking through the mirror to be seen in the final rendering and
|
||||||
// also obscures the world correctly when on the reverse side of the mirror.
|
// also obscures the world correctly when on the reverse side of the mirror.
|
||||||
// Although there is still some unresolved issue with the clip plane needing
|
// Although there is still some unresolved issue with the clip plane needing
|
||||||
// to be flipped when looking at the reverse side of the mirror. Niether
|
// to be flipped when looking at the reverse side of the mirror. Neither
|
||||||
// of these issues are mentioned in the Mark's paper, but trip us up when
|
// of these issues are mentioned in the Mark's paper, but trip us up when
|
||||||
// we apply them.
|
// we apply them.
|
||||||
|
|
||||||
@ -322,7 +322,7 @@ osg::Node* createMirroredScene(osg::Node* model)
|
|||||||
//
|
//
|
||||||
// create the viewer
|
// create the viewer
|
||||||
// load a model
|
// load a model
|
||||||
// decoate the model so it renders using a multipass stencil buffer technique for planar reflections.
|
// decorate the model so it renders using a multipass stencil buffer technique for planar reflections.
|
||||||
// release the viewer
|
// release the viewer
|
||||||
// run main loop.
|
// run main loop.
|
||||||
//
|
//
|
||||||
|
@ -173,7 +173,7 @@ int main( int argc, char **argv )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// use new #pragama(tic) shader composition.
|
// use new #pragma(tic) shader composition.
|
||||||
osg::ref_ptr<osg::Node> scenegraph = createNewShaderCompositionScene(arguments);
|
osg::ref_ptr<osg::Node> scenegraph = createNewShaderCompositionScene(arguments);
|
||||||
if (!scenegraph) return 1;
|
if (!scenegraph) return 1;
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ osg::StateSet* createState(osg::ArgumentParser& arguments)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<"Assigned all images to Texture2DArray seperately."<<std::endl;
|
OSG_NOTICE<<"Assigned all images to Texture2DArray separately."<<std::endl;
|
||||||
|
|
||||||
texture->setImage(0, image_0.get());
|
texture->setImage(0, image_0.get());
|
||||||
texture->setImage(1, image_1.get());
|
texture->setImage(1, image_1.get());
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
//
|
//
|
||||||
// A simple demo demonstrating use osg::Texture3D to create a blended animation between four seperate images packed together into a 3d texture
|
// A simple demo demonstrating use osg::Texture3D to create a blended animation between four separate images packed together into a 3d texture
|
||||||
//
|
//
|
||||||
|
|
||||||
typedef std::vector< osg::ref_ptr<osg::Image> > ImageList;
|
typedef std::vector< osg::ref_ptr<osg::Image> > ImageList;
|
||||||
|
@ -96,7 +96,7 @@ int main( int argc, char **argv )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// optimize the scene graph, remove rendundent nodes and state etc.
|
// optimize the scene graph, remove redundant nodes and state etc.
|
||||||
osgUtil::Optimizer optimizer;
|
osgUtil::Optimizer optimizer;
|
||||||
optimizer.optimize(loadedModel.get());
|
optimizer.optimize(loadedModel.get());
|
||||||
|
|
||||||
|
@ -191,19 +191,19 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Set the thread's schedule priority. This is a complex method.
|
* Set the thread's schedule priority. This is a complex method.
|
||||||
* Beware of thread priorities when using a many-to-many kernel
|
* Beware of thread priorities when using a many-to-many kernel
|
||||||
* entity implemenation (such as IRIX pthreads). If one is not carefull
|
* entity implemenation (such as IRIX pthreads). If one is not careful
|
||||||
* to manage the thread priorities, a priority inversion deadlock can
|
* to manage the thread priorities, a priority inversion deadlock can
|
||||||
* easily occur (Although the OpenThreads::Mutex & OpenThreads::Barrier
|
* easily occur (Although the OpenThreads::Mutex & OpenThreads::Barrier
|
||||||
* constructs have been designed with this senario in mind). Unless
|
* constructs have been designed with this scenario in mind). Unless
|
||||||
* you have explicit need to set the schedule pirorites for a given
|
* you have explicit need to set the schedule priorities for a given
|
||||||
* task, it is best to leave them alone.
|
* task, it is best to leave them alone.
|
||||||
*
|
*
|
||||||
* @note some implementations (notably LinuxThreads and IRIX Sprocs)
|
* @note some implementations (notably LinuxThreads and IRIX Sprocs)
|
||||||
* only alow you to decrease thread priorities dynamically. Thus,
|
* only allow you to decrease thread priorities dynamically. Thus,
|
||||||
* a lower priority thread will not allow it's priority to be raised
|
* a lower priority thread will not allow it's priority to be raised
|
||||||
* on the fly.
|
* on the fly.
|
||||||
*
|
*
|
||||||
* @note seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
* @note setting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
||||||
* will output scheduling information for each thread to stdout.
|
* will output scheduling information for each thread to stdout.
|
||||||
*
|
*
|
||||||
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
||||||
@ -213,7 +213,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Get the thread's schedule priority (if able)
|
* Get the thread's schedule priority (if able)
|
||||||
*
|
*
|
||||||
* @note seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
* @note setting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
||||||
* will output scheduling information for each thread to stdout.
|
* will output scheduling information for each thread to stdout.
|
||||||
*
|
*
|
||||||
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
||||||
@ -229,7 +229,7 @@ public:
|
|||||||
* the danger of deadlocking the machine when used as super-user.
|
* the danger of deadlocking the machine when used as super-user.
|
||||||
* In such cases, the command is a no-op.
|
* In such cases, the command is a no-op.
|
||||||
*
|
*
|
||||||
* @note seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
* @note setting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
||||||
* will output scheduling information for each thread to stdout.
|
* will output scheduling information for each thread to stdout.
|
||||||
*
|
*
|
||||||
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
||||||
@ -239,7 +239,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Get the thread's policy (if able)
|
* Get the thread's policy (if able)
|
||||||
*
|
*
|
||||||
* @note seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
* @note setting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO
|
||||||
* will output scheduling information for each thread to stdout.
|
* will output scheduling information for each thread to stdout.
|
||||||
*
|
*
|
||||||
* @return policy if normal, -1 if errno set, errno code otherwise.
|
* @return policy if normal, -1 if errno set, errno code otherwise.
|
||||||
@ -287,14 +287,14 @@ public:
|
|||||||
int join();
|
int join();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disable thread cancelation altogether. Thread::cancel() has no effect.
|
* Disable thread cancellation altogether. Thread::cancel() has no effect.
|
||||||
*
|
*
|
||||||
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
||||||
*/
|
*/
|
||||||
int setCancelModeDisable();
|
int setCancelModeDisable();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark the thread to cancel aysncronously on Thread::cancel().
|
* Mark the thread to cancel asynchronously on Thread::cancel().
|
||||||
* (May not be available with process-level implementations).
|
* (May not be available with process-level implementations).
|
||||||
*
|
*
|
||||||
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
* @return 0 if normal, -1 if errno set, errno code otherwise.
|
||||||
@ -324,7 +324,7 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Thread's cancel cleanup routine, called upon cancel(), after the
|
* Thread's cancel cleanup routine, called upon cancel(), after the
|
||||||
* cancelation has taken place, but before the thread exits completely.
|
* cancellation has taken place, but before the thread exits completely.
|
||||||
* This method should be used to repair parts of the thread's data
|
* This method should be used to repair parts of the thread's data
|
||||||
* that may have been damaged by a pre-mature cancel. No-op by default.
|
* that may have been damaged by a pre-mature cancel. No-op by default.
|
||||||
*/
|
*/
|
||||||
@ -346,7 +346,7 @@ public:
|
|||||||
* This is not strictly thread API but is used
|
* This is not strictly thread API but is used
|
||||||
* so often with threads. It's basically UNIX usleep. Parameter is
|
* so often with threads. It's basically UNIX usleep. Parameter is
|
||||||
* number of microseconds we current thread to sleep. Returns 0 on
|
* number of microseconds we current thread to sleep. Returns 0 on
|
||||||
* succes, non-zero on failure (UNIX errno or GetLastError() will give
|
* success, non-zero on failure (UNIX errno or GetLastError() will give
|
||||||
* detailed description.
|
* detailed description.
|
||||||
*/
|
*/
|
||||||
static int microSleep( unsigned int microsec);
|
static int microSleep( unsigned int microsec);
|
||||||
|
@ -21,7 +21,7 @@ namespace osg {
|
|||||||
|
|
||||||
/** Billboard is a derived form of Geode that orients its osg::Drawable
|
/** Billboard is a derived form of Geode that orients its osg::Drawable
|
||||||
* children to face the eye point. Typical uses include trees and
|
* children to face the eye point. Typical uses include trees and
|
||||||
* particle explosions,
|
* particle explosions.
|
||||||
*/
|
*/
|
||||||
class OSG_EXPORT Billboard : public Geode
|
class OSG_EXPORT Billboard : public Geode
|
||||||
{
|
{
|
||||||
|
@ -180,7 +180,7 @@ void BoundingSphereImpl<VT>::expandRadiusBy(const vector_type& v)
|
|||||||
template<typename VT>
|
template<typename VT>
|
||||||
void BoundingSphereImpl<VT>::expandBy(const BoundingSphereImpl& sh)
|
void BoundingSphereImpl<VT>::expandBy(const BoundingSphereImpl& sh)
|
||||||
{
|
{
|
||||||
// ignore operation if incomming BoundingSphere is invalid.
|
// ignore operation if incoming BoundingSphere is invalid.
|
||||||
if (!sh.valid()) return;
|
if (!sh.valid()) return;
|
||||||
|
|
||||||
// This sphere is not set so use the inbound sphere
|
// This sphere is not set so use the inbound sphere
|
||||||
|
@ -45,7 +45,7 @@ class OSG_EXPORT BufferIndexBinding : public StateAttribute
|
|||||||
BufferIndexBinding(const BufferIndexBinding& rhs, const CopyOp& copyop=CopyOp::SHALLOW_COPY);
|
BufferIndexBinding(const BufferIndexBinding& rhs, const CopyOp& copyop=CopyOp::SHALLOW_COPY);
|
||||||
public:
|
public:
|
||||||
// The member value is part of the key to this state attribute in
|
// The member value is part of the key to this state attribute in
|
||||||
// the State class. Using the index target, we can seperately
|
// the State class. Using the index target, we can separately
|
||||||
// track the bindings for many different index targets.
|
// track the bindings for many different index targets.
|
||||||
virtual unsigned getMember() const { return static_cast<unsigned int>(_index); }
|
virtual unsigned getMember() const { return static_cast<unsigned int>(_index); }
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ namespace osg
|
|||||||
{
|
{
|
||||||
|
|
||||||
/** Template buffer class to be used with a struct as template parameter.
|
/** Template buffer class to be used with a struct as template parameter.
|
||||||
* This class is usefull to send C++ structures on the GPU (e.g. for uniform blocks) but be carefull to the alignments rules on the GPU side !
|
* This class is useful to send C++ structures on the GPU (e.g. for uniform blocks) but be careful to the alignments rules on the GPU side !
|
||||||
*/
|
*/
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class BufferTemplate : public BufferData
|
class BufferTemplate : public BufferData
|
||||||
|
@ -137,7 +137,7 @@ protected:
|
|||||||
|
|
||||||
int imageIndex(double time);
|
int imageIndex(double time);
|
||||||
|
|
||||||
// setImage without aquiring mutex.
|
// setImage without acquiring mutex.
|
||||||
void _setImage(unsigned int pos, osg::Image* image);
|
void _setImage(unsigned int pos, osg::Image* image);
|
||||||
|
|
||||||
double _referenceTime;
|
double _referenceTime;
|
||||||
|
@ -101,7 +101,7 @@ class ScriptEngine : public osg::Object
|
|||||||
/** run a Script.*/
|
/** run a Script.*/
|
||||||
bool run(osg::Script* script)
|
bool run(osg::Script* script)
|
||||||
{
|
{
|
||||||
// assumpt empty input and output paramters lists
|
// assumpt empty input and output parameters lists
|
||||||
Parameters inputParameters, outputParameters;
|
Parameters inputParameters, outputParameters;
|
||||||
return run(script, "", inputParameters, outputParameters);
|
return run(script, "", inputParameters, outputParameters);
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ class OSG_EXPORT Shader : public osg::Object
|
|||||||
|
|
||||||
enum ShaderDefinesMode
|
enum ShaderDefinesMode
|
||||||
{
|
{
|
||||||
USE_SHADER_PRAGAMA,
|
USE_SHADER_PRAGMA,
|
||||||
USE_MANUAL_SETTINGS
|
USE_MANUAL_SETTINGS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
namespace osg {
|
namespace osg {
|
||||||
|
|
||||||
// forward decare visitors.
|
// forward declare visitors.
|
||||||
class ShapeVisitor;
|
class ShapeVisitor;
|
||||||
class ConstShapeVisitor;
|
class ConstShapeVisitor;
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ class OSG_EXPORT State : public Referenced
|
|||||||
|
|
||||||
/** Set the current OpenGL context uniqueID.
|
/** Set the current OpenGL context uniqueID.
|
||||||
* The ContextID is used by classes like osg::StateAttribute's and osg::Drawable's to
|
* The ContextID is used by classes like osg::StateAttribute's and osg::Drawable's to
|
||||||
* help manage seperate OpenGL objects, such as display lists, vertex buffer objects
|
* help manage separate OpenGL objects, such as display lists, vertex buffer objects
|
||||||
* and texture object for each graphics context. The ContextID simply acts as an index
|
* and texture object for each graphics context. The ContextID simply acts as an index
|
||||||
* into arrays that these classes maintain for the purpose of storing GL object handles.
|
* into arrays that these classes maintain for the purpose of storing GL object handles.
|
||||||
*
|
*
|
||||||
@ -1461,9 +1461,9 @@ class OSG_EXPORT State : public Referenced
|
|||||||
enum CheckForGLErrors
|
enum CheckForGLErrors
|
||||||
{
|
{
|
||||||
/** NEVER_CHECK_GL_ERRORS hints that OpenGL need not be checked for, this
|
/** 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.*/
|
is the fastest option since checking for errors does incur a small overhead.*/
|
||||||
NEVER_CHECK_GL_ERRORS,
|
NEVER_CHECK_GL_ERRORS,
|
||||||
/** ONCE_PER_FRAME means that OpenGl errors will be checked for once per
|
/** 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
|
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.*/
|
will be caught, the reporting isn't fine grained enough for debugging purposes.*/
|
||||||
ONCE_PER_FRAME,
|
ONCE_PER_FRAME,
|
||||||
|
@ -312,10 +312,10 @@ class OSG_EXPORT StateSet : public Object
|
|||||||
typedef std::pair<std::string, StateAttribute::OverrideValue> DefinePair;
|
typedef std::pair<std::string, StateAttribute::OverrideValue> DefinePair;
|
||||||
typedef std::map<std::string, DefinePair> DefineList;
|
typedef std::map<std::string, DefinePair> DefineList;
|
||||||
|
|
||||||
/** Added define pass on to shaders that use utilize that define, as secified by the GLSL #pragma import_defines(..) and #pragam requires(..). */
|
/** Added define pass on to shaders that use utilize that define, as specified by the GLSL #pragma import_defines(..) and #pragma requires(..). */
|
||||||
void setDefine(const std::string& defineName, StateAttribute::OverrideValue value=StateAttribute::ON);
|
void setDefine(const std::string& defineName, StateAttribute::OverrideValue value=StateAttribute::ON);
|
||||||
|
|
||||||
/** Added define with value to pass on to shaders that use utilize that define, as secified by the GLSL #pragma import_defines(..) and #pragam requires(..). */
|
/** Added define with value to pass on to shaders that use utilize that define, as specified by the GLSL #pragma import_defines(..) and #pragma requires(..). */
|
||||||
void setDefine(const std::string& defineName, const std::string& defineValue, StateAttribute::OverrideValue value=StateAttribute::ON);
|
void setDefine(const std::string& defineName, const std::string& defineValue, StateAttribute::OverrideValue value=StateAttribute::ON);
|
||||||
|
|
||||||
DefinePair* getDefinePair(const std::string& defineName) { DefineList::iterator itr = _defineList.find(defineName); return (itr!=_defineList.end()) ? &(itr->second) : 0; }
|
DefinePair* getDefinePair(const std::string& defineName) { DefineList::iterator itr = _defineList.find(defineName); return (itr!=_defineList.end()) ? &(itr->second) : 0; }
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
namespace osg {
|
namespace osg {
|
||||||
|
|
||||||
// foward declare core OSG math classes
|
// forward declare core OSG math classes
|
||||||
class Vec2f;
|
class Vec2f;
|
||||||
class Vec3f;
|
class Vec3f;
|
||||||
class Vec4f;
|
class Vec4f;
|
||||||
|
@ -112,7 +112,7 @@ namespace osgAnimation
|
|||||||
unsigned int getNumFrames() const { return _numberFrame;}
|
unsigned int getNumFrames() const { return _numberFrame;}
|
||||||
double getDuration() const { return _numberFrame * 1.0 / _fps; }
|
double getDuration() const { return _numberFrame * 1.0 / _fps; }
|
||||||
|
|
||||||
// 0 means infini else it's the number of loop
|
// 0 means infinite else it's the number of loop
|
||||||
virtual void setLoop(unsigned int nb) { _loop = nb; }
|
virtual void setLoop(unsigned int nb) { _loop = nb; }
|
||||||
virtual unsigned int getLoop() const { return _loop;}
|
virtual unsigned int getLoop() const { return _loop;}
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ namespace osgAnimation
|
|||||||
|
|
||||||
if(!finder._root.valid())
|
if(!finder._root.valid())
|
||||||
{
|
{
|
||||||
osg::notify(osg::WARN) << "A RigGeometry did not find a parent skeleton for RigGeomtry ( " << geom->getName() << " )" << std::endl;
|
osg::notify(osg::WARN) << "A RigGeometry did not find a parent skeleton for RigGeometry ( " << geom->getName() << " )" << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
geom->buildVertexInfluenceSet();
|
geom->buildVertexInfluenceSet();
|
||||||
|
@ -33,7 +33,7 @@ enum CaseSensitivity
|
|||||||
CASE_INSENSITIVE
|
CASE_INSENSITIVE
|
||||||
};
|
};
|
||||||
|
|
||||||
// forward decare
|
// forward declare
|
||||||
class Options;
|
class Options;
|
||||||
|
|
||||||
class OSGDB_EXPORT FindFileCallback : public virtual osg::Referenced
|
class OSGDB_EXPORT FindFileCallback : public virtual osg::Referenced
|
||||||
|
@ -264,7 +264,7 @@ class OSGMANIPULATOR_EXPORT Dragger : public osg::MatrixTransform
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set/Get the traversal mask used by this dragger when looking for intersections during event handling.
|
* Set/Get the traversal mask used by this dragger when looking for intersections during event handling.
|
||||||
* This is usefull to "hide" some geometry during event handling.
|
* This is useful to "hide" some geometry during event handling.
|
||||||
*/
|
*/
|
||||||
virtual void setIntersectionMask(osg::Node::NodeMask intersectionMask) { _intersectionMask = intersectionMask; }
|
virtual void setIntersectionMask(osg::Node::NodeMask intersectionMask) { _intersectionMask = intersectionMask; }
|
||||||
osg::Node::NodeMask getIntersectionMask() const { return _intersectionMask; }
|
osg::Node::NodeMask getIntersectionMask() const { return _intersectionMask; }
|
||||||
|
@ -294,7 +294,7 @@ public:
|
|||||||
ActiveOperators();
|
ActiveOperators();
|
||||||
~ActiveOperators();
|
~ActiveOperators();
|
||||||
|
|
||||||
void collect(osg::Node* incommingNode, osg::NodeVisitor::TraversalMode tm = osg::NodeVisitor::TRAVERSE_ACTIVE_CHILDREN);
|
void collect(osg::Node* incomingNode, osg::NodeVisitor::TraversalMode tm = osg::NodeVisitor::TRAVERSE_ACTIVE_CHILDREN);
|
||||||
|
|
||||||
void process(SlideEventHandler* seh);
|
void process(SlideEventHandler* seh);
|
||||||
|
|
||||||
@ -310,7 +310,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
void processOutgoing(SlideEventHandler* seh);
|
void processOutgoing(SlideEventHandler* seh);
|
||||||
void processIncomming(SlideEventHandler* seh);
|
void processIncoming(SlideEventHandler* seh);
|
||||||
void processMaintained(SlideEventHandler* seh);
|
void processMaintained(SlideEventHandler* seh);
|
||||||
|
|
||||||
bool _pause;
|
bool _pause;
|
||||||
@ -319,7 +319,7 @@ protected:
|
|||||||
OperatorList _current;
|
OperatorList _current;
|
||||||
|
|
||||||
OperatorList _outgoing;
|
OperatorList _outgoing;
|
||||||
OperatorList _incomming;
|
OperatorList _incoming;
|
||||||
OperatorList _maintained;
|
OperatorList _maintained;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -29,7 +29,7 @@ class ShadowVolumeGeometry;
|
|||||||
/** OccluderGeometry provides a sepecialised geometry representation of objects in scene that occlude light and therefore cast shadows.
|
/** OccluderGeometry provides a sepecialised geometry representation of objects in scene that occlude light and therefore cast shadows.
|
||||||
* OccluderGeometry supports the computation of silhouette edges and shadow volume geometries, as well as use as geometry that one can rendering
|
* OccluderGeometry supports the computation of silhouette edges and shadow volume geometries, as well as use as geometry that one can rendering
|
||||||
* into a shadow map or end caps for the ZP+ algorithm. OccluderGeometry may be of the same resolution as an underlying geometry that it
|
* into a shadow map or end caps for the ZP+ algorithm. OccluderGeometry may be of the same resolution as an underlying geometry that it
|
||||||
* represents, or can be of lower resolution and combine manager seperate geometries together into a single shadow casting object.
|
* represents, or can be of lower resolution and combine manager separate geometries together into a single shadow casting object.
|
||||||
* OccluderGeometry may be attached as UserData to Nodes or to Drawables. */
|
* OccluderGeometry may be attached as UserData to Nodes or to Drawables. */
|
||||||
class OSGSHADOW_EXPORT OccluderGeometry : public osg::Drawable
|
class OSGSHADOW_EXPORT OccluderGeometry : public osg::Drawable
|
||||||
{
|
{
|
||||||
|
@ -187,7 +187,7 @@ protected:
|
|||||||
osg::ref_ptr<osg::Texture2D> _fallbackShadowMapTexture;
|
osg::ref_ptr<osg::Texture2D> _fallbackShadowMapTexture;
|
||||||
|
|
||||||
typedef std::vector< osg::ref_ptr<osg::Uniform> > Uniforms;
|
typedef std::vector< osg::ref_ptr<osg::Uniform> > Uniforms;
|
||||||
mutable OpenThreads::Mutex _accessUnfiromsAndProgramMutex;
|
mutable OpenThreads::Mutex _accessUniformsAndProgramMutex;
|
||||||
Uniforms _uniforms;
|
Uniforms _uniforms;
|
||||||
osg::ref_ptr<osg::Program> _program;
|
osg::ref_ptr<osg::Program> _program;
|
||||||
};
|
};
|
||||||
|
@ -793,7 +793,7 @@ class OSGUTIL_EXPORT Optimizer
|
|||||||
|
|
||||||
|
|
||||||
/** Optimize texture usage in the scene graph by combining textures into texture atlas
|
/** Optimize texture usage in the scene graph by combining textures into texture atlas
|
||||||
* Use of texture atlas cuts down on the number of seperate states in the scene, reducing
|
* Use of texture atlas cuts down on the number of separate states in the scene, reducing
|
||||||
* state changes and improving the chances of using larger batches of geometry.*/
|
* state changes and improving the chances of using larger batches of geometry.*/
|
||||||
class OSGUTIL_EXPORT TextureAtlasVisitor : public BaseOptimizerVisitor
|
class OSGUTIL_EXPORT TextureAtlasVisitor : public BaseOptimizerVisitor
|
||||||
{
|
{
|
||||||
|
@ -280,7 +280,7 @@ class OSGWIDGET_EXPORT EventInterface
|
|||||||
|
|
||||||
// Notify the EventInterface object that is has been focused or unfocused; since
|
// Notify the EventInterface object that is has been focused or unfocused; since
|
||||||
// this isn't always bound to a mouse event (i.e., if you want to be able to use
|
// this isn't always bound to a mouse event (i.e., if you want to be able to use
|
||||||
// the TAB key to focus), we need seperate events here.
|
// the TAB key to focus), we need separate events here.
|
||||||
virtual bool focus (const WindowManager*) { return false; }
|
virtual bool focus (const WindowManager*) { return false; }
|
||||||
virtual bool unfocus (const WindowManager*) { return false; }
|
virtual bool unfocus (const WindowManager*) { return false; }
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ private:
|
|||||||
|
|
||||||
volatile int cnt; // number of waiting threads
|
volatile int cnt; // number of waiting threads
|
||||||
|
|
||||||
volatile int phase; // flag to seperate two barriers
|
volatile int phase; // flag to separate two barriers
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ namespace osg
|
|||||||
//#define ENFORCE_THREADSAFE
|
//#define ENFORCE_THREADSAFE
|
||||||
//#define DEBUG_OBJECT_ALLOCATION_DESTRUCTION
|
//#define DEBUG_OBJECT_ALLOCATION_DESTRUCTION
|
||||||
|
|
||||||
// specialized smart pointer, used to get round auto_ptr<>'s lack of the destructor reseting itself to 0.
|
// specialized smart pointer, used to get round auto_ptr<>'s lack of the destructor resetting itself to 0.
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct ResetPointer
|
struct ResetPointer
|
||||||
{
|
{
|
||||||
|
@ -215,13 +215,13 @@ void Shader::discardDeletedGlShaders(unsigned int contextID)
|
|||||||
|
|
||||||
Shader::Shader(Type type) :
|
Shader::Shader(Type type) :
|
||||||
_type(type),
|
_type(type),
|
||||||
_shaderDefinesMode(USE_SHADER_PRAGAMA)
|
_shaderDefinesMode(USE_SHADER_PRAGMA)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Shader::Shader(Type type, const std::string& source) :
|
Shader::Shader(Type type, const std::string& source) :
|
||||||
_type(type),
|
_type(type),
|
||||||
_shaderDefinesMode(USE_SHADER_PRAGAMA)
|
_shaderDefinesMode(USE_SHADER_PRAGMA)
|
||||||
{
|
{
|
||||||
setShaderSource( source);
|
setShaderSource( source);
|
||||||
}
|
}
|
||||||
@ -229,7 +229,7 @@ Shader::Shader(Type type, const std::string& source) :
|
|||||||
Shader::Shader(Type type, ShaderBinary* shaderBinary) :
|
Shader::Shader(Type type, ShaderBinary* shaderBinary) :
|
||||||
_type(type),
|
_type(type),
|
||||||
_shaderBinary(shaderBinary),
|
_shaderBinary(shaderBinary),
|
||||||
_shaderDefinesMode(USE_SHADER_PRAGAMA)
|
_shaderDefinesMode(USE_SHADER_PRAGMA)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ void State::reset()
|
|||||||
_lastAppliedProgramObject = 0;
|
_lastAppliedProgramObject = 0;
|
||||||
|
|
||||||
// what about uniforms??? need to clear them too...
|
// what about uniforms??? need to clear them too...
|
||||||
// go through all active Unfirom's, setting to change to force update,
|
// go through all active Uniform's, setting to change to force update,
|
||||||
// the idea is to leave only the global defaults left.
|
// the idea is to leave only the global defaults left.
|
||||||
for(UniformMap::iterator uitr=_uniformMap.begin();
|
for(UniformMap::iterator uitr=_uniformMap.begin();
|
||||||
uitr!=_uniformMap.end();
|
uitr!=_uniformMap.end();
|
||||||
@ -945,7 +945,7 @@ void State::setInterleavedArrays( GLenum format, GLsizei stride, const GLvoid* p
|
|||||||
OSG_NOTICE<<"Warning: State::setInterleavedArrays(..) not implemented."<<std::endl;
|
OSG_NOTICE<<"Warning: State::setInterleavedArrays(..) not implemented."<<std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// the crude way, assume that all arrays have been effected so dirty them and
|
// the crude way, assume that all arrays have been affected so dirty them and
|
||||||
// disable them...
|
// disable them...
|
||||||
dirtyAllVertexArrays();
|
dirtyAllVertexArrays();
|
||||||
}
|
}
|
||||||
|
@ -985,7 +985,7 @@ unsigned int Uniform::getNameID(const std::string& name)
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use a proxy to force the initialization of the static variables in the Unifrom::getNameID() method during static initialization
|
// Use a proxy to force the initialization of the static variables in the Uniform::getNameID() method during static initialization
|
||||||
OSG_INIT_SINGLETON_PROXY(UniformNameIDStaticInitializationProxy, Uniform::getNameID(std::string()))
|
OSG_INIT_SINGLETON_PROXY(UniformNameIDStaticInitializationProxy, Uniform::getNameID(std::string()))
|
||||||
|
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ void CameraManipulator::computeHomePosition(const osg::Camera *camera, bool useB
|
|||||||
if (camera)
|
if (camera)
|
||||||
{
|
{
|
||||||
|
|
||||||
// try to compute dist from frustrum
|
// try to compute dist from frustum
|
||||||
double left,right,bottom,top,zNear,zFar;
|
double left,right,bottom,top,zNear,zFar;
|
||||||
if (camera->getProjectionMatrixAsFrustum(left,right,bottom,top,zNear,zFar))
|
if (camera->getProjectionMatrixAsFrustum(left,right,bottom,top,zNear,zFar))
|
||||||
{
|
{
|
||||||
|
@ -138,13 +138,13 @@ public:
|
|||||||
bool GetTileOriginType(trpgTileType &) const;
|
bool GetTileOriginType(trpgTileType &) const;
|
||||||
/* Group IDs are used by TerraPage to hook level of detail structures together.
|
/* Group IDs are used by TerraPage to hook level of detail structures together.
|
||||||
A TerraPage database can have an arbitrary number of terrain LODs, each stored
|
A TerraPage database can have an arbitrary number of terrain LODs, each stored
|
||||||
seperately. To hook them together we use trpgAttach nodes and number each group &
|
separately. To hook them together we use trpgAttach nodes and number each group &
|
||||||
LOD node. This returns the maximum group ID in the file, which is important
|
LOD node. This returns the maximum group ID in the file, which is important
|
||||||
to know if you're keeping an array of them. */
|
to know if you're keeping an array of them. */
|
||||||
bool GetMaxGroupID(int &) const;
|
bool GetMaxGroupID(int &) const;
|
||||||
|
|
||||||
/* A TerraPage archive can contain any number of terrain LODs (a typical number is 4).
|
/* A TerraPage archive can contain any number of terrain LODs (a typical number is 4).
|
||||||
Each of these terrain LODs is accessed seperately (as are the tiles within them).
|
Each of these terrain LODs is accessed separately (as are the tiles within them).
|
||||||
This returns the number of terrain LODs in the file. It will be at least 1.
|
This returns the number of terrain LODs in the file. It will be at least 1.
|
||||||
See trpgAttach for instructions on how to hook the terrain LODs together.
|
See trpgAttach for instructions on how to hook the terrain LODs together.
|
||||||
|
|
||||||
@ -2551,14 +2551,14 @@ public:
|
|||||||
this node rotates around the center in the way specified by GetMode. (2) Individual - This
|
this node rotates around the center in the way specified by GetMode. (2) Individual - This
|
||||||
is a little weirder. Basically, it's here for trees. It's assumed that
|
is a little weirder. Basically, it's here for trees. It's assumed that
|
||||||
there will be one or more trpgGeometry nodes below this node. Each single
|
there will be one or more trpgGeometry nodes below this node. Each single
|
||||||
primitive is supposed to rotate "seperately". That is, you must take into
|
primitive is supposed to rotate "separately". That is, you must take into
|
||||||
account the unique center of each one and rotate it around that. If you have
|
account the unique center of each one and rotate it around that. If you have
|
||||||
some optimization scheme where you can deal with groups of billboards (ala Performer)
|
some optimization scheme where you can deal with groups of billboards (ala Performer)
|
||||||
it is valid to do so in the Individual case. */
|
it is valid to do so in the Individual case. */
|
||||||
bool GetType(int &) const;
|
bool GetType(int &) const;
|
||||||
/* Center of the thing to be rotated. For Group this does the obvious thing.
|
/* Center of the thing to be rotated. For Group this does the obvious thing.
|
||||||
For Individual it should be the center of the group of things you want to rotate.
|
For Individual it should be the center of the group of things you want to rotate.
|
||||||
This has no use if you're going to rotate each primitive seperately, but if you've
|
This has no use if you're going to rotate each primitive separately, but if you've
|
||||||
got some sort of optimized scheme for doing so (ala Performer) this information is useful.
|
got some sort of optimized scheme for doing so (ala Performer) this information is useful.
|
||||||
*/
|
*/
|
||||||
bool GetCenter(trpg3dPoint &) const;
|
bool GetCenter(trpg3dPoint &) const;
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
// This will recursivelly call itself up until
|
// This will recursively call itself up until
|
||||||
// all the tiule are done
|
// all the tiles are done
|
||||||
void printBuf(int lod, int x, int y, trpgr_Archive *archive, trpgPrintGraphParser& parser, trpgMemReadBuffer &buf, trpgPrintBuffer &pBuf)
|
void printBuf(int lod, int x, int y, trpgr_Archive *archive, trpgPrintGraphParser& parser, trpgMemReadBuffer &buf, trpgPrintBuffer &pBuf)
|
||||||
{
|
{
|
||||||
char ls[1024];
|
char ls[1024];
|
||||||
|
@ -50,7 +50,7 @@ public:
|
|||||||
int stripStat[15]; // Strip length stats
|
int stripStat[15]; // Strip length stats
|
||||||
int fanStat[15]; // Fan length stats
|
int fanStat[15]; // Fan length stats
|
||||||
|
|
||||||
int stripGeom; // Number of seperate trpgGeometry nodes for strips
|
int stripGeom; // Number of separate trpgGeometry nodes for strips
|
||||||
int fanGeom; // Same for fans
|
int fanGeom; // Same for fans
|
||||||
int bagGeom; // Same for bags
|
int bagGeom; // Same for bags
|
||||||
|
|
||||||
|
@ -557,7 +557,7 @@ ActiveOperators::~ActiveOperators()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActiveOperators::collect(osg::Node* incommingNode, osg::NodeVisitor::TraversalMode tm)
|
void ActiveOperators::collect(osg::Node* incomingNode, osg::NodeVisitor::TraversalMode tm)
|
||||||
{
|
{
|
||||||
_previous.swap(_current);
|
_previous.swap(_current);
|
||||||
|
|
||||||
@ -565,21 +565,21 @@ void ActiveOperators::collect(osg::Node* incommingNode, osg::NodeVisitor::Traver
|
|||||||
|
|
||||||
FindOperatorsVisitor fov(_current, tm);
|
FindOperatorsVisitor fov(_current, tm);
|
||||||
|
|
||||||
if (incommingNode)
|
if (incomingNode)
|
||||||
{
|
{
|
||||||
incommingNode->accept(fov);
|
incomingNode->accept(fov);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<"ActiveOperators::collect() incommingNode="<<incommingNode<<std::endl;
|
OSG_NOTICE<<"ActiveOperators::collect() incomingNode="<<incomingNode<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
OSG_INFO<<"ActiveOperators::collect("<<incommingNode<<")"<<std::endl;
|
OSG_INFO<<"ActiveOperators::collect("<<incomingNode<<")"<<std::endl;
|
||||||
OSG_INFO<<" _previous.size()="<<_previous.size()<<std::endl;
|
OSG_INFO<<" _previous.size()="<<_previous.size()<<std::endl;
|
||||||
OSG_INFO<<" _current.size()="<<_current.size()<<std::endl;
|
OSG_INFO<<" _current.size()="<<_current.size()<<std::endl;
|
||||||
|
|
||||||
_outgoing.clear();
|
_outgoing.clear();
|
||||||
_incomming.clear();
|
_incoming.clear();
|
||||||
_maintained.clear();
|
_maintained.clear();
|
||||||
|
|
||||||
for(OperatorList::iterator itr = _previous.begin();
|
for(OperatorList::iterator itr = _previous.begin();
|
||||||
@ -596,7 +596,7 @@ void ActiveOperators::collect(osg::Node* incommingNode, osg::NodeVisitor::Traver
|
|||||||
++itr)
|
++itr)
|
||||||
{
|
{
|
||||||
ObjectOperator* curr = itr->get();
|
ObjectOperator* curr = itr->get();
|
||||||
if (_previous.count(curr)==0) _incomming.insert(curr);
|
if (_previous.count(curr)==0) _incoming.insert(curr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -636,7 +636,7 @@ void ActiveOperators::process(SlideEventHandler* seh)
|
|||||||
{
|
{
|
||||||
processOutgoing(seh);
|
processOutgoing(seh);
|
||||||
processMaintained(seh);
|
processMaintained(seh);
|
||||||
processIncomming(seh);
|
processIncoming(seh);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActiveOperators::processOutgoing(SlideEventHandler* seh)
|
void ActiveOperators::processOutgoing(SlideEventHandler* seh)
|
||||||
@ -661,11 +661,11 @@ void ActiveOperators::processMaintained(SlideEventHandler* seh)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActiveOperators::processIncomming(SlideEventHandler* seh)
|
void ActiveOperators::processIncoming(SlideEventHandler* seh)
|
||||||
{
|
{
|
||||||
OSG_INFO<<" incomming.size()="<<_incomming.size()<<std::endl;
|
OSG_INFO<<" incoming.size()="<<_incoming.size()<<std::endl;
|
||||||
for(OperatorList::iterator itr = _incomming.begin();
|
for(OperatorList::iterator itr = _incoming.begin();
|
||||||
itr != _incomming.end();
|
itr != _incoming.end();
|
||||||
++itr)
|
++itr)
|
||||||
{
|
{
|
||||||
(*itr)->enter(seh);
|
(*itr)->enter(seh);
|
||||||
|
@ -1603,7 +1603,7 @@ void ConvexPolyhedron::extrude( const osg::Vec3d & offset )
|
|||||||
double dotOffset0 = edgeFaces[0]->plane.getNormal() * offset;
|
double dotOffset0 = edgeFaces[0]->plane.getNormal() * offset;
|
||||||
double dotOffset1 = edgeFaces[1]->plane.getNormal() * offset;
|
double dotOffset1 = edgeFaces[1]->plane.getNormal() * offset;
|
||||||
#endif
|
#endif
|
||||||
//Select orthogonal faces and vertices appropriate for offseting
|
//Select orthogonal faces and vertices appropriate for offsetting
|
||||||
if( (dotOffset0 == 0.0 && dotOffset1 < 0.0) ||
|
if( (dotOffset0 == 0.0 && dotOffset1 < 0.0) ||
|
||||||
(dotOffset1 == 0.0 && dotOffset0 < 0.0) )
|
(dotOffset1 == 0.0 && dotOffset0 < 0.0) )
|
||||||
{
|
{
|
||||||
|
@ -49,9 +49,9 @@ DebugShadowMap::DebugShadowMap():
|
|||||||
// Why this fancy 24 bit depth to 24 bit rainbow colors shader ?
|
// Why this fancy 24 bit depth to 24 bit rainbow colors shader ?
|
||||||
//
|
//
|
||||||
// Depth values cannot be easily cast on color component because they are:
|
// Depth values cannot be easily cast on color component because they are:
|
||||||
// a) 24 or 32 bit and we loose lots of precision when cast on 8 bit
|
// a) 24 or 32 bit and we lose lots of precision when cast on 8 bit
|
||||||
// b) depth value distribution is non linear due to projection division
|
// b) depth value distribution is non linear due to projection division
|
||||||
// when cast on componenent color there is usually very minor shade variety
|
// when cast on component color there is usually very minor shade variety
|
||||||
// and its often difficult to notice that there is anything in the buffer
|
// and its often difficult to notice that there is anything in the buffer
|
||||||
//
|
//
|
||||||
// Shader looks complex but it is used only for debug head-up rectangle
|
// Shader looks complex but it is used only for debug head-up rectangle
|
||||||
|
@ -50,26 +50,26 @@ ShadowTechnique::~ShadowTechnique()
|
|||||||
|
|
||||||
void ShadowTechnique::init()
|
void ShadowTechnique::init()
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<className()<<"::init() not implemened yet"<<std::endl;
|
OSG_NOTICE<<className()<<"::init() not implemented yet"<<std::endl;
|
||||||
|
|
||||||
_dirty = false;
|
_dirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShadowTechnique::update(osg::NodeVisitor& nv)
|
void ShadowTechnique::update(osg::NodeVisitor& nv)
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<className()<<"::update(osg::NodeVisitor&) not implemened yet."<<std::endl;
|
OSG_NOTICE<<className()<<"::update(osg::NodeVisitor&) not implemented yet."<<std::endl;
|
||||||
_shadowedScene->osg::Group::traverse(nv);
|
_shadowedScene->osg::Group::traverse(nv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShadowTechnique::cull(osgUtil::CullVisitor& cv)
|
void ShadowTechnique::cull(osgUtil::CullVisitor& cv)
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<className()<<"::cull(osgUtl::CullVisitor&) not implemened yet."<<std::endl;
|
OSG_NOTICE<<className()<<"::cull(osgUtl::CullVisitor&) not implemented yet."<<std::endl;
|
||||||
_shadowedScene->osg::Group::traverse(cv);
|
_shadowedScene->osg::Group::traverse(cv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShadowTechnique::cleanSceneGraph()
|
void ShadowTechnique::cleanSceneGraph()
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<className()<<"::cleanSceneGraph()) not implemened yet."<<std::endl;
|
OSG_NOTICE<<className()<<"::cleanSceneGraph()) not implemented yet."<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShadowTechnique::traverse(osg::NodeVisitor& nv)
|
void ShadowTechnique::traverse(osg::NodeVisitor& nv)
|
||||||
|
@ -111,7 +111,7 @@ void ShadowVolume::init()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<"STENCIL_TWO_PASSES selecteted"<<std::endl;
|
OSG_NOTICE<<"STENCIL_TWO_PASSES selected"<<std::endl;
|
||||||
|
|
||||||
osg::StateSet* ss_sv1 = geode->getOrCreateStateSet();
|
osg::StateSet* ss_sv1 = geode->getOrCreateStateSet();
|
||||||
ss_sv1->setRenderBinDetails(shadowVolumeBin, "RenderBin");
|
ss_sv1->setRenderBinDetails(shadowVolumeBin, "RenderBin");
|
||||||
@ -351,6 +351,6 @@ void ShadowVolume::cull(osgUtil::CullVisitor& cv)
|
|||||||
|
|
||||||
void ShadowVolume::cleanSceneGraph()
|
void ShadowVolume::cleanSceneGraph()
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<className()<<"::cleanSceneGraph()) not implemened yet, but almost."<<std::endl;
|
OSG_NOTICE<<className()<<"::cleanSceneGraph()) not implemented yet, but almost."<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1164,7 +1164,7 @@ void ViewDependentShadowMap::createShaders()
|
|||||||
|
|
||||||
unsigned int _baseTextureUnit = 0;
|
unsigned int _baseTextureUnit = 0;
|
||||||
|
|
||||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_accessUnfiromsAndProgramMutex);
|
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_accessUniformsAndProgramMutex);
|
||||||
|
|
||||||
_shadowCastingStateSet = new osg::StateSet;
|
_shadowCastingStateSet = new osg::StateSet;
|
||||||
|
|
||||||
@ -2346,7 +2346,7 @@ osg::StateSet* ViewDependentShadowMap::selectStateSetForRenderingShadow(ViewDepe
|
|||||||
|
|
||||||
osg::ref_ptr<osg::StateSet> stateset = vdd.getStateSet();
|
osg::ref_ptr<osg::StateSet> stateset = vdd.getStateSet();
|
||||||
|
|
||||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_accessUnfiromsAndProgramMutex);
|
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_accessUniformsAndProgramMutex);
|
||||||
|
|
||||||
vdd.getStateSet()->clear();
|
vdd.getStateSet()->clear();
|
||||||
|
|
||||||
|
@ -656,7 +656,7 @@ Cameras getActiveCameras(osg::View& view)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool View::setUpDepthPartitionForCamera(osg::Camera* cameraToPartition, DepthPartitionSettings* incomming_dps)
|
bool View::setUpDepthPartitionForCamera(osg::Camera* cameraToPartition, DepthPartitionSettings* incoming_dps)
|
||||||
{
|
{
|
||||||
osg::ref_ptr<osg::GraphicsContext> context = cameraToPartition->getGraphicsContext();
|
osg::ref_ptr<osg::GraphicsContext> context = cameraToPartition->getGraphicsContext();
|
||||||
if (!context) return false;
|
if (!context) return false;
|
||||||
@ -664,7 +664,7 @@ bool View::setUpDepthPartitionForCamera(osg::Camera* cameraToPartition, DepthPar
|
|||||||
osg::ref_ptr<osg::Viewport> viewport = cameraToPartition->getViewport();
|
osg::ref_ptr<osg::Viewport> viewport = cameraToPartition->getViewport();
|
||||||
if (!viewport) return false;
|
if (!viewport) return false;
|
||||||
|
|
||||||
osg::ref_ptr<DepthPartitionSettings> dps = incomming_dps;
|
osg::ref_ptr<DepthPartitionSettings> dps = incoming_dps;
|
||||||
if (!dps) dps = new DepthPartitionSettings;
|
if (!dps) dps = new DepthPartitionSettings;
|
||||||
|
|
||||||
bool useMastersSceneData = true;
|
bool useMastersSceneData = true;
|
||||||
|
@ -73,7 +73,7 @@ REGISTER_OBJECT_WRAPPER( osgManipulator_Dragger,
|
|||||||
osgManipulator::Dragger,
|
osgManipulator::Dragger,
|
||||||
"osg::Object osg::Node osg::Transform osg::MatrixTransform osgManipulator::Dragger" )
|
"osg::Object osg::Node osg::Transform osg::MatrixTransform osgManipulator::Dragger" )
|
||||||
{
|
{
|
||||||
// Dragger should not record children seperately, so ignore the osg::Group class wrapper
|
// Dragger should not record children separately, so ignore the osg::Group class wrapper
|
||||||
|
|
||||||
ADD_BOOL_SERIALIZER( HandleEvents, false ); // _handleEvents
|
ADD_BOOL_SERIALIZER( HandleEvents, false ); // _handleEvents
|
||||||
ADD_BOOL_SERIALIZER( DraggerActive, false ); // _draggerActive
|
ADD_BOOL_SERIALIZER( DraggerActive, false ); // _draggerActive
|
||||||
|
Loading…
Reference in New Issue
Block a user