Introduced CMake option OSG_PROVIDE_READFILE option that defaults to ON, but when switched to OFF disables the building of the osgDB::read*File() methods,

forcing users to use osgDB::readRef*File() methods.  The later is preferable as it closes a potential threading bug when using paging databases in conjunction
with the osgDB::Registry Object Cache.  This threading bug occurs when one thread gets an object from the Cache via an osgDB::read*File() call where only
a pointer to the object is passed back, so taking a reference to the object is delayed till it gets reassigned to a ref_ptr<>, but at the same time another
thread calls a flush of the Object Cache deleting this object as it's referenceCount is now zero.  Using osgDB::readREf*File() makes sure the a ref_ptr<> is
passed back and the referenceCount never goes to zero.

To ensure the OSG builds when OSG_PROVIDE_READFILE is to OFF the many cases of osgDB::read*File() usage had to be replaced with a ref_ptr<> osgDB::readRef*File()
usage.  The avoid this change causing lots of other client code to be rewritten to handle the use of ref_ptr<> in place of C pointer I introduced a serious of
templte methods in various class to adapt ref_ptr<> to the underly C pointer to be passed to old OSG API's, example of this is found in include/osg/Group:

    bool addChild(Node* child); // old method which can only be used with a Node*

    tempalte<class T> bool addChild(const osg::ref_ptr<T>& child) { return addChild(child.get()); } // adapter template method

These changes together cover 149 modified files, so it's a large submission. This extent of changes are warrent to make use of the Object Cache
and multi-threaded loaded more robust.



git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15164 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
Robert Osfield 2015-10-22 13:42:19 +00:00
parent 79fb9abbbf
commit dd996a3289
295 changed files with 2503 additions and 2172 deletions

View File

@ -398,6 +398,7 @@ ENDIF()
OPTION(OSG_DISABLE_MSVC_WARNINGS "Set to OFF to not disable MSVC warnings generated by OSG headers." ON)
MARK_AS_ADVANCED(OSG_DISABLE_MSVC_WARNINGS)
OPTION(OSG_PROVIDE_READFILE "Set to ON for include/osgDB/ReadFile to provide the osgDB::read*File(() methods. " ON)
OPTION(OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION "Set to ON to use the ref_ptr<> T* operator() output conversion. " ON)

View File

@ -135,7 +135,7 @@ int main( int argc, char **argv )
++itr)
{
std::cout<<"reading "<<*itr<<std::endl;
osg::ref_ptr<osg::Object> obj = osgDB::readObjectFile(*itr);
osg::ref_ptr<osg::Object> obj = osgDB::readRefObjectFile(*itr);
if (obj.valid())
{
std::cout<<" write to archive "<<*itr<<std::endl;

View File

@ -772,7 +772,7 @@ int main( int argc, char **argv )
osg::Timer_t startTick = osg::Timer::instance()->tick();
osg::ref_ptr<osg::Node> root = osgDB::readNodeFiles(fileNames);
osg::ref_ptr<osg::Node> root = osgDB::readRefNodeFiles(fileNames);
if (root.valid())
{

View File

@ -272,9 +272,9 @@ public:
}
}
osg::Node* readNodeFileAndWriteToCache(const std::string& filename)
osg::ref_ptr<osg::Node> readNodeFileAndWriteToCache(const std::string& filename)
{
osg::Node* node = 0;
osg::ref_ptr<osg::Node> node = 0;
if (_fileCache.valid() )
{
if (_fileCache->existsInCache(filename))
@ -286,7 +286,7 @@ public:
{
osg::notify(osg::NOTICE)<<"reading : "<<filename<<std::endl;
node = osgDB::readNodeFile(filename);
node = osgDB::readRefNodeFile(filename);
if (node)
{
osg::notify(osg::NOTICE)<<"write to FileCache : "<<filename<<std::endl;
@ -298,7 +298,7 @@ public:
else
{
osg::notify(osg::NOTICE)<<"reading : "<<filename<<std::endl;
node = osgDB::readNodeFile(filename);
node = osgDB::readRefNodeFile(filename);
}
return node;
}

View File

@ -87,10 +87,10 @@ int main(int argc, char** argv)
std::string device;
while(arguments.read("--device", device))
{
osg::ref_ptr<osgGA::Device> dev = osgDB::readFile<osgGA::Device>(device);
osg::ref_ptr<osgGA::Device> dev = osgDB::readRefFile<osgGA::Device>(device);
if (dev.valid())
{
viewer.addDevice(dev.get());
viewer.addDevice(dev);
}
}
@ -152,7 +152,7 @@ int main(int argc, char** argv)
viewer.addEventHandler(new osgViewer::ScreenCaptureHandler);
// load the data
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel)
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;
@ -172,9 +172,9 @@ int main(int argc, char** argv)
// optimize the scene graph, remove redundant nodes and state etc.
osgUtil::Optimizer optimizer;
optimizer.optimize(loadedModel.get());
optimizer.optimize(loadedModel);
viewer.setSceneData( loadedModel.get() );
viewer.setSceneData(loadedModel);
viewer.realize();

View File

@ -215,24 +215,24 @@ osg::ref_ptr<osg::Node> p3d::readShowFiles(osg::ArgumentParser& arguments,const
std::string filename;
while (arguments.read("--image",filename))
{
osg::ref_ptr<osg::Image> image = readImageFile(filename.c_str(), local_options.get());
if (image.valid()) nodeList.push_back(osg::createGeodeForImage(image.get()));
osg::ref_ptr<osg::Image> image = readRefImageFile(filename.c_str(), local_options.get());
if (image.valid()) nodeList.push_back(osg::createGeodeForImage(image));
}
while (arguments.read("--movie",filename))
{
osg::ref_ptr<osg::Image> image = readImageFile(filename.c_str(), local_options.get());
osg::ref_ptr<osg::Image> image = readRefImageFile(filename.c_str(), local_options.get());
osg::ref_ptr<osg::ImageStream> imageStream = dynamic_cast<osg::ImageStream*>(image.get());
if (image.valid())
{
imageStream->play();
nodeList.push_back(osg::createGeodeForImage(imageStream.get()));
nodeList.push_back(osg::createGeodeForImage(imageStream));
}
}
while (arguments.read("--dem",filename))
{
osg::HeightField* hf = readHeightFieldFile(filename.c_str(), local_options.get());
osg::ref_ptr<osg::HeightField> hf = readRefHeightFieldFile(filename.c_str(), local_options.get());
if (hf)
{
osg::Geode* geode = new osg::Geode;
@ -247,7 +247,7 @@ osg::ref_ptr<osg::Node> p3d::readShowFiles(osg::ArgumentParser& arguments,const
if (!arguments.isOption(pos))
{
// not an option so assume string is a filename.
osg::Node *node = osgDB::readNodeFile( arguments[pos], local_options.get());
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFile( arguments[pos], local_options.get());
if(node)
{

View File

@ -266,7 +266,7 @@ void processLoadedModel(osg::ref_ptr<osg::Node>& loadedModel, int optimizer_opti
void addDeviceTo(osgViewer::Viewer& viewer, const std::string& device_name, bool forward_mouse_events)
{
osg::ref_ptr<osgGA::Device> dev = osgDB::readFile<osgGA::Device>(device_name);
osg::ref_ptr<osgGA::Device> dev = osgDB::readRefFile<osgGA::Device>(device_name);
if (dev.valid())
{
OSG_INFO << "Adding Device : " << device_name << std::endl;
@ -317,7 +317,7 @@ int main( int argc, char **argv )
if (arguments.read("-devices") || arguments.read("--devices"))
{
// Force load QuickTime plugin, probe video capability, exit
osgDB::readImageFile("devices.live");
osgDB::readRefImageFile("devices.live");
return 1;
}
@ -451,7 +451,7 @@ int main( int argc, char **argv )
osg::ref_ptr<osgDB::Options> device_options = new osgDB::Options("documentRegisteredHandlers");
osg::ref_ptr<osgGA::Device> rest_http_device = osgDB::readFile<osgGA::Device>(server_address+":"+server_port+"/"+document_root+".resthttp", device_options.get());
osg::ref_ptr<osgGA::Device> rest_http_device = osgDB::readRefFile<osgGA::Device>(server_address+":"+server_port+"/"+document_root+".resthttp", device_options.get());
if (rest_http_device.valid())
{
viewer.addDevice(rest_http_device.get());

View File

@ -85,7 +85,7 @@ int main( int argc, char **argv )
std::string filename;
if (arguments.read("--shader",filename))
{
osg::ref_ptr<osg::Shader> shader = osgDB::readShaderFile(filename);
osg::ref_ptr<osg::Shader> shader = osgDB::readRefShaderFile(filename);
if (shader.valid())
{
std::string name = osgDB::getStrippedName(filename);

View File

@ -311,7 +311,7 @@ public:
//set OSG_FILE_PATH for loading axes.osgt
void ComputeNode::addHelperGeometry()
{
_helperNode = osgDB::readNodeFile("axes.osgt");
_helperNode = osgDB::readRefNodeFile("axes.osgt");
if (_helperNode.valid())
{
@ -464,8 +464,8 @@ void ComputeNode::addDataMonitor(osg::Vec3 placement, osg::Vec3 relativePlacemen
ss->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
//add a label
osgText::Text* text = new osgText::Text;
osgText::Font* font = osgText::readFontFile("fonts/arial.ttf");
osg::ref_ptr<osgText::Text> text = new osgText::Text;
osg::ref_ptr<osgText::Font> font = osgText::readRefFontFile("fonts/arial.ttf");
text->setFont(font);
text->setColor(osg::Vec4(1, 1, 1, 1));
text->setCharacterSize(0.1*scale);

View File

@ -557,7 +557,7 @@ public:
osg::notify(osg::NOTICE)<<"LoadAndCompileOperation "<<_filename<<std::endl;
_modelReadyToMerge = false;
_loadedModel = osgDB::readNodeFile(_filename);
_loadedModel = osgDB::readRefNodeFile(_filename);
if (_loadedModel.valid())
{

View File

@ -136,9 +136,9 @@ osg::Node* createMovingModel(const osg::Vec3& center, float radius)
osg::AnimationPath* animationPath = createAnimationPath(center,radius,animationLength);
osg::Group* model = new osg::Group;
osg::ref_ptr<osg::Group> model = new osg::Group;
osg::Node* glider = osgDB::readNodeFile("glider.osgt");
osg::ref_ptr<osg::Node> glider = osgDB::readRefNodeFile("glider.osgt");
if (glider)
{
const osg::BoundingSphere& bs = glider->getBound();
@ -159,7 +159,7 @@ osg::Node* createMovingModel(const osg::Vec3& center, float radius)
model->addChild(xform);
}
osg::Node* cessna = osgDB::readNodeFile("cessna.osgt");
osg::ref_ptr<osg::Node> cessna = osgDB::readRefNodeFile("cessna.osgt");
if (cessna)
{
const osg::BoundingSphere& bs = cessna->getBound();
@ -173,26 +173,26 @@ osg::Node* createMovingModel(const osg::Vec3& center, float radius)
positioned->addChild(cessna);
osg::MatrixTransform* xform = new osg::MatrixTransform;
osg::ref_ptr<osg::MatrixTransform> xform = new osg::MatrixTransform;
xform->setUpdateCallback(new osg::AnimationPathCallback(animationPath,0.0f,2.0));
xform->addChild(positioned);
model->addChild(xform);
}
return model;
return model.release();
}
osg::Node* createModel(bool overlay, osgSim::OverlayNode::OverlayTechnique technique)
osg::ref_ptr<osg::Group> createModel(bool overlay, osgSim::OverlayNode::OverlayTechnique technique)
{
osg::Vec3 center(0.0f,0.0f,0.0f);
float radius = 100.0f;
osg::Group* root = new osg::Group;
osg::ref_ptr<osg::Group> root = new osg::Group;
float baseHeight = center.z()-radius*0.5;
osg::Node* baseModel = createBase(osg::Vec3(center.x(), center.y(), baseHeight),radius);
osg::Node* movingModel = createMovingModel(center,radius*0.8f);
osg::ref_ptr<osg::Node> baseModel = createBase(osg::Vec3(center.x(), center.y(), baseHeight),radius);
osg::ref_ptr<osg::Node> movingModel = createMovingModel(center,radius*0.8f);
if (overlay)
{
@ -232,14 +232,14 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
// load the nodes from the commandline arguments.
osg::Node* model = createModel(overlay, technique);
osg::ref_ptr<osg::Group> model = createModel(overlay, technique);
if (!model)
{
return 1;
}
// tilt the scene so the default eye position is looking down on the model.
osg::MatrixTransform* rootnode = new osg::MatrixTransform;
osg::ref_ptr<osg::MatrixTransform> rootnode = new osg::MatrixTransform;
rootnode->setMatrix(osg::Matrix::rotate(osg::inDegrees(30.0f),1.0f,0.0f,0.0f));
rootnode->addChild(model);

View File

@ -196,8 +196,8 @@ int main (int argc, char* argv[])
while (psr.read("--software")) { hardware = false; }
while (psr.read("--number", maxChar)) {}
osg::ref_ptr<osg::Group> root = dynamic_cast<osg::Group*>(osgDB::readNodeFiles(psr));
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFiles(psr);
osg::ref_ptr<osg::Group> root = dynamic_cast<osg::Group*>(node.get());
if (!root)
{
std::cout << psr.getApplicationName() <<": No data loaded" << std::endl;

View File

@ -50,7 +50,7 @@ struct GeometryFinder : public osg::NodeVisitor
osg::ref_ptr<osg::Geometry> getShape(const std::string& name)
{
osg::ref_ptr<osg::Node> shape0 = osgDB::readNodeFile(name);
osg::ref_ptr<osg::Node> shape0 = osgDB::readRefNodeFile(name);
if (shape0)
{
GeometryFinder finder;

View File

@ -163,7 +163,8 @@ int main (int argc, char* argv[])
file = psr[1];
// replace the manager
osg::Group* root = dynamic_cast<osg::Group*>(osgDB::readNodeFile(file));
osg::ref_ptr<osg::Node> loadedmodel = osgDB::readRefNodeFile(file);
osg::Group* root = dynamic_cast<osg::Group*>(loadedmodel.get());
if (!root) {
osg::notify(osg::FATAL) << "can't read file " << file << std::endl;
return 1;

View File

@ -127,7 +127,8 @@ int main(int argc, char** argv)
osgViewer::Viewer viewer(arguments);
osg::ref_ptr<osg::Group> group = new osg::Group();
osg::Group* node = dynamic_cast<osg::Group*>(osgDB::readNodeFiles(arguments)); //dynamic_cast<osgAnimation::AnimationManager*>(osgDB::readNodeFile(psr[1]));
osg::ref_ptr<osg::Node> loadedmodel = osgDB::readRefNodeFiles(arguments);
osg::Group* node = dynamic_cast<osg::Group*>(loadedmodel.get());
if(!node)
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;

View File

@ -165,7 +165,7 @@ int main(int argc, char** argv)
viewer.addEventHandler(new osgViewer::ScreenCaptureHandler);
// load the data
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel)
{
osg::Geometry * quad = osg::createTexturedQuadGeometry(osg::Vec3f(-2.0f, 0.0f, -2.0f),

View File

@ -287,7 +287,7 @@ int main( int argc, char **argv )
}
// load the data
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel)
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;

View File

@ -42,10 +42,10 @@
typedef std::vector< osg::ref_ptr<osg::Image> > ImageList;
/** create quad at specified position. */
osg::Drawable* createSquare(const osg::Vec3& corner,const osg::Vec3& width,const osg::Vec3& height, osg::Image* image=NULL)
osg::Drawable* createSquare(const osg::Vec3& corner,const osg::Vec3& width,const osg::Vec3& height, osg::ref_ptr<osg::Image> image)
{
// set up the Geometry.
osg::Geometry* geom = new osg::Geometry;
osg::ref_ptr<osg::Geometry> geom = new osg::Geometry;
osg::Vec3Array* coords = new osg::Vec3Array(4);
(*coords)[0] = corner;
@ -80,13 +80,13 @@ osg::Drawable* createSquare(const osg::Vec3& corner,const osg::Vec3& width,const
geom->setStateSet(stateset);
}
return geom;
return geom.release();
}
osg::Drawable* createAxis(const osg::Vec3& corner,const osg::Vec3& xdir,const osg::Vec3& ydir,const osg::Vec3& zdir)
{
// set up the Geometry.
osg::Geometry* geom = new osg::Geometry;
osg::ref_ptr<osg::Geometry> geom = new osg::Geometry;
osg::Vec3Array* coords = new osg::Vec3Array(6);
(*coords)[0] = corner;
@ -121,20 +121,20 @@ osg::Drawable* createAxis(const osg::Vec3& corner,const osg::Vec3& xdir,const os
stateset->setMode(GL_LIGHTING,osg::StateAttribute::OFF);
geom->setStateSet(stateset);
return geom;
return geom.release();
}
osg::Node* createModel()
osg::ref_ptr<osg::Node> createModel()
{
// create the root node which will hold the model.
osg::Group* root = new osg::Group();
osg::ref_ptr<osg::Group> root = new osg::Group();
// add the drawable into a single geode to be shared...
osg::Billboard* center = new osg::Billboard();
center->setMode(osg::Billboard::POINT_ROT_EYE);
center->addDrawable(
createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readImageFile("Images/reflect.rgb")),
createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Images/reflect.rgb")),
osg::Vec3(0.0f,0.0f,0.0f));
osg::Billboard* x_arrow = new osg::Billboard();
@ -142,7 +142,7 @@ osg::Node* createModel()
x_arrow->setAxis(osg::Vec3(1.0f,0.0f,0.0f));
x_arrow->setNormal(osg::Vec3(0.0f,-1.0f,0.0f));
x_arrow->addDrawable(
createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readImageFile("Cubemap_axis/posx.png")),
createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Cubemap_axis/posx.png")),
osg::Vec3(5.0f,0.0f,0.0f));
osg::Billboard* y_arrow = new osg::Billboard();
@ -150,7 +150,7 @@ osg::Node* createModel()
y_arrow->setAxis(osg::Vec3(0.0f,1.0f,0.0f));
y_arrow->setNormal(osg::Vec3(1.0f,0.0f,0.0f));
y_arrow->addDrawable(
createSquare(osg::Vec3(0.0f,-0.5f,-0.5f),osg::Vec3(0.0f,1.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readImageFile("Cubemap_axis/posy.png")),
createSquare(osg::Vec3(0.0f,-0.5f,-0.5f),osg::Vec3(0.0f,1.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Cubemap_axis/posy.png")),
osg::Vec3(0.0f,5.0f,0.0f));
osg::Billboard* z_arrow = new osg::Billboard();
@ -158,7 +158,7 @@ osg::Node* createModel()
z_arrow->setAxis(osg::Vec3(0.0f,0.0f,1.0f));
z_arrow->setNormal(osg::Vec3(0.0f,-1.0f,0.0f));
z_arrow->addDrawable(
createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readImageFile("Cubemap_axis/posz.png")),
createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Cubemap_axis/posz.png")),
osg::Vec3(0.0f,0.0f,5.0f));

View File

@ -71,9 +71,17 @@ int main( int argc, char **argv )
bool useGlobalBlending = false;
if ( arguments.read("--no-draw-buffers") ) useGlobalBlending = true;
osg::ref_ptr<osg::Node> cessna = osgDB::readRefNodeFile("cessna.osgt");
if (!cessna)
{
OSG_NOTICE<<"Cannot not find model 'cessna.osg' to render"<<std::endl;
return 1;
}
// Create a camera to output multi-rendering-targets (MRT)
osg::Camera* mrtCam = createMRTCamera( textures );
mrtCam->addChild( osgDB::readNodeFile("cessna.osgt") );
osg::ref_ptr<osg::Camera> mrtCam = createMRTCamera( textures );
mrtCam->addChild( cessna );
// Create shader program to be used
const char* mrtFragmentCode = {
@ -87,8 +95,8 @@ int main( int argc, char **argv )
osg::ref_ptr<osg::Program> program = new osg::Program;
program->addShader( new osg::Shader(osg::Shader::FRAGMENT, mrtFragmentCode) );
osg::StateSet* ss = mrtCam->getOrCreateStateSet();
ss->setAttributeAndModes( program.get() );
osg::ref_ptr<osg::StateSet> ss = mrtCam->getOrCreateStateSet();
ss->setAttributeAndModes( program );
// Apply blending to the original scene in MRT
if ( !useGlobalBlending )
@ -103,8 +111,8 @@ int main( int argc, char **argv )
// Accept different blend/colormask attributes on multiple render targets
osg::ref_ptr<osg::BlendFunci> blend0 = new osg::BlendFunci(0, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
osg::ref_ptr<osg::ColorMaski> colormask3 = new osg::ColorMaski(3, false, true, false, true);
ss->setAttribute( blend0.get() );
ss->setAttributeAndModes( colormask3.get() );
ss->setAttribute( blend0 );
ss->setAttributeAndModes( colormask3 );
}
else
{

View File

@ -139,10 +139,10 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
// load the nodes from the commandline arguments.
osg::Node* loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("cessnafire.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cessnafire.osgt");
if (!loadedModel)
{
@ -150,11 +150,11 @@ int main( int argc, char **argv )
return 1;
}
osg::Group* root = new osg::Group;
osg::ref_ptr<osg::Group> root = new osg::Group;
root->addChild(loadedModel);
osg::StateSet* stateset = new osg::StateSet;
osg::ref_ptr<osg::StateSet> stateset = new osg::StateSet;
stateset->setDataVariance(osg::Object::DYNAMIC);
osg::BlendEquation* blendEquation = new osg::BlendEquation(osg::BlendEquation::FUNC_ADD);

View File

@ -239,10 +239,10 @@ int main( int argc, char **argv )
}
else
{
rootnode = osgDB::readNodeFiles(arguments);
rootnode = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!rootnode) rootnode = osgDB::readNodeFile("cow.osgt");
if (!rootnode) rootnode = osgDB::readRefNodeFile("cow.osgt");
if (!rootnode)
{

View File

@ -51,7 +51,7 @@ public:
{
if (ea.getKey()=='l')
{
osg::ref_ptr<osg::Node> model = osgDB::readNodeFile( _filenames[_position] );
osg::ref_ptr<osg::Node> model = osgDB::readRefNodeFile( _filenames[_position] );
++_position;
if (_position>=_filenames.size()) _position = 0;
@ -214,7 +214,7 @@ int main( int argc, char **argv )
osg::ref_ptr<osg::Node> model;
if (sharedModel)
{
model = osgDB::readNodeFiles(arguments);
model = osgDB::readRefNodeFiles(arguments);
if (!model) return 0;
if (enableVBO)
@ -242,7 +242,7 @@ int main( int argc, char **argv )
if (sharedModel) viewer.setSceneData(model.get());
else
{
osg::ref_ptr<osg::Node> node = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFiles(arguments);
if (!node) return 0;
if (enableVBO)
@ -300,7 +300,7 @@ int main( int argc, char **argv )
while (arguments.read("--config", configfile))
{
osg::notify(osg::NOTICE)<<"Trying to read config file "<<configfile<<std::endl;
osg::ref_ptr<osg::Object> object = osgDB::readObjectFile(configfile);
osg::ref_ptr<osg::Object> object = osgDB::readRefObjectFile(configfile);
osgViewer::View* view = dynamic_cast<osgViewer::View*>(object.get());
if (view)
{
@ -329,9 +329,9 @@ int main( int argc, char **argv )
else
{
// load the scene.
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel) loadedModel = osgDB::readNodeFile("cow.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cow.osgt");
if (!loadedModel)
{
@ -339,7 +339,7 @@ int main( int argc, char **argv )
return 1;
}
viewer.setSceneData(loadedModel.get());
viewer.setSceneData(loadedModel);
}
viewer.realize();

View File

@ -117,7 +117,7 @@ void Character::setCharacter(const std::string& filename, const std::string& nam
float _characterSize = _width.length()*0.2f;
osg::Image* image = osgDB::readImageFile(filename);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(filename);
if (image)
{
osg::Vec3 pos(-0.5f*_characterSize,0.0f,0.0f);
@ -153,7 +153,7 @@ void Character::setLives(const std::string& filename, const osg::Vec3& origin, c
_numLives = numLives;
_livesSwitch = new osg::Switch;
osg::Image* image = osgDB::readImageFile(filename);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(filename);
if (image)
{
osg::StateSet* stateset = _livesSwitch->getOrCreateStateSet();
@ -186,7 +186,7 @@ void Character::setCatches(const std::string& filename, const osg::Vec3& origin,
_numCatches = 0;
_catchSwitch = new osg::Switch;
osg::Image* image = osgDB::readImageFile(filename);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(filename);
if (image)
{
osg::StateSet* stateset = _catchSwitch->getOrCreateStateSet();
@ -395,7 +395,7 @@ void CatchableObject::setUpCatchablesMap(const FileList& fileList)
++itr)
{
const std::string& filename = *itr;
osg::Image* image = osgDB::readImageFile(filename);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(filename);
if (image)
{
osg::ref_ptr<osg::StateSet> stateset = new osg::StateSet();
@ -1045,10 +1045,10 @@ osg::Node* GameEventHandler::createScene()
// set up welcome subgraph
{
osg::Geode* geode = new osg::Geode;
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
// set up the background
osg::Image* image = osgDB::readImageFile("Catch/Welcome.jpg");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Catch/Welcome.jpg");
if (image)
{
osg::Geometry* geometry = osg::createTexturedQuadGeometry(_origin,_width,_height);
@ -1121,9 +1121,9 @@ osg::Node* GameEventHandler::createScene()
// set up you've lost subgraph
{
osg::Geode* geode = new osg::Geode;
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
osg::Image* image = osgDB::readImageFile("Catch/YouLost.jpg");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Catch/YouLost.jpg");
if (image)
{
osg::Geometry* geometry = osg::createTexturedQuadGeometry(_origin,_width,_height);
@ -1184,9 +1184,9 @@ osg::Node* GameEventHandler::createScene()
// set up you've won subgraph
{
osg::Geode* geode = new osg::Geode;
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
osg::Image* image = osgDB::readImageFile("Catch/YouWon.jpg");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Catch/YouWon.jpg");
if (image)
{
osg::Geometry* geometry = osg::createTexturedQuadGeometry(_origin,_width,_height);
@ -1269,7 +1269,7 @@ osg::Node* GameEventHandler::createScene()
++itr)
{
osg::Image* image = osgDB::readImageFile(*itr);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(*itr);
if (image)
{
osg::Geometry* geometry = osg::createTexturedQuadGeometry(_origin,_width,_height);

View File

@ -40,10 +40,9 @@
#include <osgUtil/Optimizer>
osg::Node* decorate_with_clip_node(osg::Node* subgraph)
osg::ref_ptr<osg::Node> decorate_with_clip_node(const osg::ref_ptr<osg::Node>& subgraph)
{
osg::Group* rootnode = new osg::Group;
osg::ref_ptr<osg::Group> rootnode = new osg::Group;
// create wireframe view of the model so the user can see
// what parts are being culled away.
@ -117,11 +116,11 @@ int main( int argc, char **argv )
osg::ArgumentParser arguments(&argc,argv);
// load the nodes from the commandline arguments.
osg::Node* loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("cow.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cow.osgt");
if (!loadedModel)
@ -131,7 +130,7 @@ int main( int argc, char **argv )
}
// decorate the scenegraph with a clip node.
osg::Node* rootnode = decorate_with_clip_node(loadedModel);
osg::ref_ptr<osg::Node> rootnode = decorate_with_clip_node(loadedModel);
// run optimization over the scene graph
osgUtil::Optimizer optimzer;

View File

@ -505,7 +505,7 @@ int main( int argc, char **argv )
}
// load model.
osg::ref_ptr<osg::Node> rootnode = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> rootnode = osgDB::readRefNodeFiles(arguments);
// set the scene to render
viewer.setSceneData(rootnode.get());

View File

@ -133,7 +133,7 @@ int main( int argc, char **argv )
osg::ArgumentParser arguments(&argc,argv);
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
if (!scene)
{
@ -149,7 +149,7 @@ int main( int argc, char **argv )
{
osgViewer::View* view = new osgViewer::View;
view->setName("Single view");
view->setSceneData(osgDB::readNodeFile("fountain.osgt"));
view->setSceneData(osgDB::readRefNodeFile("fountain.osgt"));
view->addEventHandler( new osgViewer::StatsHandler );
@ -283,7 +283,7 @@ int main( int argc, char **argv )
view->setName("View three");
viewer.addView(view);
view->setSceneData(osgDB::readNodeFile("cessnafire.osgt"));
view->setSceneData(osgDB::readRefNodeFile("cessnafire.osgt"));
view->getCamera()->setName("Cam three");
view->getCamera()->setProjectionMatrixAsPerspective(30.0, double(traits->width) / double(traits->height/2), 1.0, 1000.0);

View File

@ -63,7 +63,7 @@ int main( int argc, char** argv )
// Create a node for outputting to the texture.
// It is OK to have just an empty node here, but seems inbuilt uniforms like osg_FrameTime won't work then.
// TODO: maybe we can have a custom drawable which also will implement glMemoryBarrier?
osg::Node* sourceNode = osgDB::readNodeFile("axes.osgt");
osg::ref_ptr<osg::Node> sourceNode = osgDB::readRefNodeFile("axes.osgt");
if ( !sourceNode ) sourceNode = new osg::Node;
sourceNode->setDataVariance( osg::Object::DYNAMIC );
sourceNode->getOrCreateStateSet()->setAttributeAndModes( computeProg.get() );

View File

@ -198,7 +198,7 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
// load the nodes from the commandline arguments.
osg::Node* rootnode = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> rootnode = osgDB::readRefNodeFiles(arguments);
if (!rootnode)
{
osg::notify(osg::NOTICE)<<"Please specify a model filename on the command line."<<std::endl;

View File

@ -95,10 +95,10 @@ int main(int argc, char *argv[])
osgViewer::Viewer viewer;
// load the nodes from the commandline arguments.
osg::Node* rootnode = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> rootnode = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!rootnode) rootnode = osgDB::readNodeFile("cessna.osgt");
if (!rootnode) rootnode = osgDB::readRefNodeFile("cessna.osgt");
if (!rootnode)
{
@ -107,7 +107,7 @@ int main(int argc, char *argv[])
}
// create specular highlights
create_specular_highlights(rootnode);
create_specular_highlights(rootnode.get());
// run optimization over the scene graph
osgUtil::Optimizer optimzer;

View File

@ -129,7 +129,7 @@ int main(int argc, char** argv)
// load the data
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile(file);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFile(file);
if (!loadedModel)
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;

View File

@ -224,7 +224,7 @@ public:
osg::StateSet *dstate= gm->getOrCreateStateSet( );
dstate->setMode( GL_LIGHTING, osg::StateAttribute::ON );
osg::Image* image = osgDB::readImageFile("Images/Brick-Std-Orange.TGA");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/Brick-Std-Orange.TGA");
if (image)
{
osg::Texture2D* txt = new osg::Texture2D;
@ -354,7 +354,7 @@ osg::Group *makedelaunay(const int ndcs)
osg::Vec3Array *points=new osg::Vec3Array;
osg::Image* image = osgDB::readImageFile("Images/blueFlowers.png");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/blueFlowers.png");
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;
@ -817,7 +817,7 @@ osg::Geometry *WallConstraint::makeWallGeometry() const
{
osg::ref_ptr<osg::Geometry> gm=new osg::Geometry; // the wall
if (texture!="") {
osg::Image* image = osgDB::readImageFile(texture.c_str());
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(texture.c_str());
if (image)
{
osg::Texture2D* txt = new osg::Texture2D;
@ -1005,7 +1005,7 @@ deprecated_osg::Geometry *ArealConstraint::makeWallGeometry( osg::Vec3Array *pt)
tscx->retessellatePolygons(*(edges)); // find all edges
if (walltexture!="") {
osg::Image* image = osgDB::readImageFile(walltexture.c_str());
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(walltexture.c_str());
if (image)
{
osg::Texture2D* txt = new osg::Texture2D;
@ -1062,7 +1062,7 @@ deprecated_osg::Geometry * ArealConstraint::makeAreal( osg::Vec3Array *points)
gm->setNormalArray(getCanopyNormals(points));
gm->setNormalBinding(deprecated_osg::Geometry::BIND_PER_PRIMITIVE);
gm->setTexCoordArray(0,getCanopyTexcoords(points));
osg::Image* image = osgDB::readImageFile(texture);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(texture);
if (image)
{
osg::Texture2D* txt = new osg::Texture2D;
@ -1238,7 +1238,7 @@ deprecated_osg::Geometry * LinearConstraint::makeGeometry(const osg::Vec3Array *
if (_midline->size()>0) {
osg::ref_ptr<osg::Vec3Array> locpts=getPoints(points);
if (texture!="") {
osg::Image* image = osgDB::readImageFile(texture.c_str());
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(texture.c_str());
if (image)
{
osg::Texture2D* txt = new osg::Texture2D;

View File

@ -139,7 +139,7 @@ int main( int argc, char **argv )
bool needToSetHomePosition = false;
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
// if one hasn't been loaded create an earth and sun test model.
if (!scene)

View File

@ -232,7 +232,7 @@ int main( int argc, char **argv )
viewer.getCamera()->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR);
// read the model to do depth peeling with
osg::Node* loadedModel = osgDB::readNodeFile(arguments.argv()[1]);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFile(arguments.argv()[1]);
if (!loadedModel)
return 1;

View File

@ -703,10 +703,10 @@ int main(int argc, char** argv)
osgViewer::Viewer viewer(arguments);
// load the nodes from the commandline arguments.
osg::Node* loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("cow.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cow.osgt");
if (!loadedModel)
{
@ -731,7 +731,7 @@ int main(int argc, char** argv)
}
else
{
osg::Node* distortionNode = createDistortionSubgraph( options, loadedModel, viewer.getCamera()->getClearColor());
osg::Node* distortionNode = createDistortionSubgraph( options, loadedModel.get(), viewer.getCamera()->getClearColor());
viewer.setSceneData( distortionNode );
}

View File

@ -97,7 +97,7 @@ createStateSet()
ss->setAttribute( program.get(),
osg::StateAttribute::ON | osg::StateAttribute::PROTECTED );
osg::ref_ptr< osg::Image> iLogo = osgDB::readImageFile( "Images/osg128.png" );
osg::ref_ptr< osg::Image> iLogo = osgDB::readRefImageFile( "Images/osg128.png" );
if( !iLogo.valid() )
{
osg::notify( osg::ALWAYS ) << "Can't open image file osg128.png" << std::endl;

View File

@ -51,7 +51,7 @@ osg::Node* createEarth()
geode->addDrawable(sd);
std::string filename = osgDB::findDataFile("Images/land_shallow_topo_2048.jpg");
geode->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::Texture2D(osgDB::readImageFile(filename)));
geode->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::Texture2D(osgDB::readRefImageFile(filename)));
osg::CoordinateSystemNode* csn = new osg::CoordinateSystemNode;
csn->setEllipsoidModel(new osg::EllipsoidModel());

View File

@ -62,7 +62,7 @@ osgText::Text* createLabel(const std::string& l, const char* f, unsigned int siz
static osg::Vec3 pos(10.0f, 10.0f, 0.0f);
osgText::Text* label = new osgText::Text();
osgText::Font* font = osgText::readFontFile(f);
osg::ref_ptr<osgText::Font> font = osgText::readRefFontFile(f);
label->setFont(font);
label->setCharacterSize(size);

View File

@ -388,7 +388,7 @@ osg::Geode* ForestTechniqueManager::createTerrain(const osg::Vec3& origin, const
// ---------------------------------------
osg::StateSet* stateset = new osg::StateSet();
osg::Image* image = osgDB::readImageFile("Images/lz.rgb");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/lz.rgb");
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;
@ -1182,7 +1182,7 @@ osg::Node* ForestTechniqueManager::createScene(unsigned int numTreesToCreates, u
osg::Texture2D *tex = new osg::Texture2D;
tex->setWrap( osg::Texture2D::WRAP_S, osg::Texture2D::CLAMP );
tex->setWrap( osg::Texture2D::WRAP_T, osg::Texture2D::CLAMP );
tex->setImage(osgDB::readImageFile("Images/tree0.rgba"));
tex->setImage(osgDB::readRefImageFile("Images/tree0.rgba"));
osg::StateSet *dstate = new osg::StateSet;
{

View File

@ -961,7 +961,7 @@ int main(int argc, char **argv)
arguments.getApplicationUsage()->write(std::cout,osg::ApplicationUsage::COMMAND_LINE_OPTION);
return 1;
}
ref_ptr<Node> loadedModel = osgDB::readNodeFiles(arguments);
ref_ptr<Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel) {
cerr << "couldn't load " << argv[1] << "\n";
return 1;

View File

@ -175,10 +175,10 @@ protected:
float zPos = -0.1; // note from Robert, was 0.1f, but now must be -0.1f to keep text visible??#!? due
// to some other change in the OSG not tracked down yet...
osg::ref_ptr<osgText::Font> arial = osgText::readFontFile("fonts/arial.ttf");
osg::ref_ptr<osgText::Font> arial = osgText::readRefFontFile("fonts/arial.ttf");
osg::ref_ptr<osgText::Text> hints = new osgText::Text;
hints->setFont(arial.get());
hints->setFont(arial);
hints->setColor(_hints_color);
hints->setAlignment(osgText::Text::CENTER_BOTTOM);
hints->setCharacterSize(13);
@ -336,10 +336,10 @@ int main(int argc, char *argv[])
}
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("dumptruck.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("dumptruck.osgt");
if (!loadedModel)
{

View File

@ -117,14 +117,14 @@ int main(int argc, char *argv[])
}
// load the image
osg::ref_ptr<osg::Image> startIm = osgDB::readImageFile(startName);
osg::ref_ptr<osg::Image> startIm = osgDB::readRefImageFile(startName);
if (!startIm) {
std::cout << "Could not load start image.\n";
return(1);
}
osg::Node* scene = createScene(startIm.get());
osg::ref_ptr<osg::Node> scene = createScene(startIm.get());
// construct the viewer.
osgViewer::Viewer viewer;

View File

@ -550,7 +550,7 @@ osg::Node* createBackground()
{
// we'll create a texture mapped quad to sit behind the Geometry
osg::Image* image = osgDB::readImageFile("Images/primitives.gif");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/primitives.gif");
if (!image) return NULL;

View File

@ -434,8 +434,8 @@ int main(int argv, char **argc)
osg::ref_ptr<osg::Group> group = new osg::Group;
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
if (loadedModel.valid()) group->addChild(loadedModel.get());
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (loadedModel.valid()) group->addChild(loadedModel);
for(Tracks::iterator itr = tracks.begin();
itr != tracks.end();

View File

@ -52,12 +52,12 @@ int main(int argc, char** argv)
osgViewer::Viewer viewer(arguments);
osg::ref_ptr<osg::Node> node = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFiles(arguments);
if (!node) return 0;
osg::ref_ptr<osg::GraphicsCostEstimator> gce = new osg::GraphicsCostEstimator;
viewer.setSceneData(node.get());
viewer.setSceneData(node);
viewer.realize();

View File

@ -67,7 +67,7 @@ Node *makeBase( void )
Texture2D *tex = new Texture2D;
tex->setImage(osgDB::readImageFile("Images/water.rgb"));
tex->setImage(osgDB::readRefImageFile("Images/water.rgb"));
tex->setWrap( Texture2D::WRAP_S, Texture2D::REPEAT );
tex->setWrap( Texture2D::WRAP_T, Texture2D::REPEAT );

View File

@ -112,7 +112,7 @@ Node *makeSky( void )
Texture2D *tex = new Texture2D;
tex->setImage(osgDB::readImageFile("Images/white.rgb"));
tex->setImage(osgDB::readRefImageFile("Images/white.rgb"));
StateSet *dstate = new StateSet;

View File

@ -171,7 +171,7 @@ Node *makeTank( void )
tex->setWrap( Texture2D::WRAP_S, Texture2D::REPEAT );
tex->setWrap( Texture2D::WRAP_T, Texture2D::REPEAT );
tex->setImage(osgDB::readImageFile("Images/tank.rgb"));
tex->setImage(osgDB::readRefImageFile("Images/tank.rgb"));
StateSet *dstate = new StateSet;
dstate->setTextureAttributeAndModes(0, tex, StateAttribute::ON );

View File

@ -131,7 +131,7 @@ Node *makeTerrain( void )
Texture2D *tex = new Texture2D;
tex->setImage(osgDB::readImageFile("Images/lz.rgb"));
tex->setImage(osgDB::readRefImageFile("Images/lz.rgb"));
StateSet *dstate = new StateSet;
dstate->setMode( GL_LIGHTING, StateAttribute::OFF );

View File

@ -234,7 +234,7 @@ Node *makeTrees( void )
struct _tree *t;
Texture2D *tex = new Texture2D;
tex->setImage(osgDB::readImageFile("Images/tree0.rgba"));
tex->setImage(osgDB::readRefImageFile("Images/tree0.rgba"));
StateSet *dstate = new StateSet;

View File

@ -284,10 +284,10 @@ int main( int argc, char **argv )
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default model instead.
if (!scene) scene = osgDB::readNodeFile("dumptruck.osgt");
if (!scene) scene = osgDB::readRefNodeFile("dumptruck.osgt");
if (!scene)
@ -320,7 +320,7 @@ int main( int argc, char **argv )
viewer.addSlave(hudCamera, false);
// set the scene to render
viewer.setSceneData(scene.get());
viewer.setSceneData(scene);
return viewer.run();
@ -334,7 +334,7 @@ int main( int argc, char **argv )
osgViewer::View* view = new osgViewer::View;
viewer.addView(view);
view->setSceneData(scene.get());
view->setSceneData(scene);
view->setUpViewAcrossAllScreens();;
view->setCameraManipulator(new osgGA::TrackballManipulator);
@ -375,11 +375,11 @@ int main( int argc, char **argv )
osg::ref_ptr<osg::Group> group = new osg::Group;
// add the HUD subgraph.
if (scene.valid()) group->addChild(scene.get());
if (scene.valid()) group->addChild(scene);
group->addChild(createHUD());
// set the scene to render
viewer.setSceneData(group.get());
viewer.setSceneData(group);
return viewer.run();
}

View File

@ -111,7 +111,7 @@ osg::StateSet* createState(osg::ArgumentParser& arguments)
const std::string& filename = *itr;
if (preLoad)
{
osg::ref_ptr<osg::Image> image = osgDB::readImageFile(filename);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(filename);
if (image.valid())
{
imageSequence->addImage(image.get());
@ -144,12 +144,12 @@ osg::StateSet* createState(osg::ArgumentParser& arguments)
{
imageSequence->setLength(4.0);
}
imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/posx.png"));
imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/negx.png"));
imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/posy.png"));
imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/negy.png"));
imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/posz.png"));
imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/negz.png"));
imageSequence->addImage(osgDB::readRefImageFile("Cubemap_axis/posx.png"));
imageSequence->addImage(osgDB::readRefImageFile("Cubemap_axis/negx.png"));
imageSequence->addImage(osgDB::readRefImageFile("Cubemap_axis/posy.png"));
imageSequence->addImage(osgDB::readRefImageFile("Cubemap_axis/negy.png"));
imageSequence->addImage(osgDB::readRefImageFile("Cubemap_axis/posz.png"));
imageSequence->addImage(osgDB::readRefImageFile("Cubemap_axis/negz.png"));
}
// start the image sequence playing

View File

@ -244,7 +244,7 @@ int main( int argc, char **argv )
// load the nodes from the commandline arguments.
osg::ref_ptr<osg::Node> model = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> model = osgDB::readRefNodeFiles(arguments);
if (model)
{
// the osgSim::InsertImpostorsVisitor used lower down to insert impostors
@ -280,7 +280,7 @@ int main( int argc, char **argv )
// on it right now as it requires a getRoots() method to be added to
// osg::Node, and we're about to make a release so no new features!
osg::ref_ptr<osg::Group> rootnode = new osg::Group;
rootnode->addChild(model.get());
rootnode->addChild(model);
// now insert impostors in the model using the InsertImpostorsVisitor.
@ -304,7 +304,7 @@ int main( int argc, char **argv )
}
// add model to viewer.
viewer.setSceneData(model.get());
viewer.setSceneData(model);
return viewer.run();
}

View File

@ -36,9 +36,15 @@
struct MyReadCallback : public osgUtil::IntersectionVisitor::ReadCallback
{
#if 0
virtual osg::Node* readNodeFile(const std::string& filename)
{
return osgDB::readNodeFile(filename);
return osgDB::readRefNodeFile(filename).release();
}
#endif
virtual osg::ref_ptr<osg::Node> readNodeFile(const std::string& filename)
{
return osgDB::readRefNodeFile(filename);
}
};
@ -48,7 +54,7 @@ int main(int argc, char **argv)
// use an ArgumentParser object to manage the program arguments.
osg::ArgumentParser arguments(&argc,argv);
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
if (!scene)
{

View File

@ -56,7 +56,7 @@ int main(int argc, char **argv)
osgDB::Registry::instance()->setBuildKdTreesHint(osgDB::ReaderWriter::Options::BUILD_KDTREES);
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
if (!scene)
{
@ -65,6 +65,6 @@ int main(int argc, char **argv)
}
osgViewer::Viewer viewer;
viewer.setSceneData(scene.get());
viewer.setSceneData(scene);
return viewer.run();
}

View File

@ -341,10 +341,10 @@ int main( int argc, char **argv )
osg::ref_ptr<osg::Node> loadedModel;
// load the scene.
if (argc>1) loadedModel = osgDB::readNodeFile(argv[1]);
if (argc>1) loadedModel = osgDB::readRefNodeFile(argv[1]);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("dumptruck.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("dumptruck.osgt");
if (!loadedModel)
{
@ -374,7 +374,7 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
viewer.getCamera()->setGraphicsContext(gc.get());
viewer.getCamera()->setViewport(0,0,800,600);
viewer.setSceneData(loadedModel.get());
viewer.setSceneData(loadedModel);
// create a tracball manipulator to move the camera around in response to keyboard/mouse events
viewer.setCameraManipulator( new osgGA::TrackballManipulator );

View File

@ -45,7 +45,7 @@ int main( int argc, char **argv )
osg::DisplaySettings* ds = viewer.getDisplaySettings() ? viewer.getDisplaySettings() : osg::DisplaySettings::instance().get();
ds->readCommandLine(arguments);
osg::ref_ptr<osg::Node> model = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> model = osgDB::readRefNodeFiles(arguments);
if (!model)
{
@ -57,7 +57,7 @@ int main( int argc, char **argv )
OSG_NOTICE<<"Stereo "<<ds->getStereo()<<std::endl;
OSG_NOTICE<<"StereoMode "<<ds->getStereoMode()<<std::endl;
viewer.setSceneData(model.get());
viewer.setSceneData(model);
// add the state manipulator
viewer.addEventHandler( new osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()) );

View File

@ -291,7 +291,7 @@ void SetObjectTextureState(osg::Geode *geodeCurrent, std::string texture)
osg::StateSet* stateTexture = geodeCurrent->getOrCreateStateSet();
// load texture.jpg as an image
osg::Image* imgTexture = osgDB::readImageFile( texture );
osg::ref_ptr<osg::Image> imgTexture = osgDB::readRefImageFile( texture );
// if the image is successfully loaded
if (imgTexture)

View File

@ -226,7 +226,7 @@ osg::Geometry* createWall(const osg::Vec3& v1,const osg::Vec3& v2,const osg::Vec
}
osg::Node* createRoom(osg::Node* loadedModel)
osg::ref_ptr<osg::Node> createRoom(const osg::ref_ptr<osg::Node>& loadedModel)
{
// default scale for this model.
osg::BoundingSphere bs(osg::Vec3(0.0f,0.0f,0.0f),1.0f);
@ -323,20 +323,20 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
// load the nodes from the commandline arguments.
osg::Node* loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("glider.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("glider.osgt");
// create a room made of foor walls, a floor, a roof, and swinging light fitting.
osg::Node* rootnode = createRoom(loadedModel);
osg::ref_ptr<osg::Node> rootnode = createRoom(loadedModel);
// run optimization over the scene graph
osgUtil::Optimizer optimzer;
optimzer.optimize(rootnode);
// add a viewport to the viewer and attach the scene graph.
viewer.setSceneData( rootnode );
viewer.setSceneData(rootnode);
// create the windows and run the threads.

View File

@ -129,7 +129,7 @@ osg::Node* createLightPointsDatabase()
// Set point sprite texture in LightPointNode StateSet.
osg::Texture2D *tex = new osg::Texture2D();
tex->setImage(osgDB::readImageFile("Images/particle.rgb"));
tex->setImage(osgDB::readRefImageFile("Images/particle.rgb"));
set->setTextureAttributeAndModes(0, tex, osg::StateAttribute::ON);
}
@ -232,7 +232,7 @@ int main( int argc, char **argv )
osg::Group* rootnode = new osg::Group;
// load the nodes from the commandline arguments.
rootnode->addChild(osgDB::readNodeFiles(arguments));
rootnode->addChild(osgDB::readRefNodeFiles(arguments));
rootnode->addChild(createLightPointsDatabase());
rootnode->addChild(CreateBlinkSequenceLightNode());

View File

@ -142,10 +142,10 @@ int main( int argc, char **argv )
osg::ArgumentParser arguments(&argc,argv);
// load the nodes from the commandline arguments.
osg::Node* loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("glider.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("glider.osgt");
if (!loadedModel)
{
@ -153,11 +153,11 @@ int main( int argc, char **argv )
return 1;
}
osg::Group* root = new osg::Group;
osg::ref_ptr<osg::Group> root = new osg::Group;
root->addChild(loadedModel);
osg::StateSet* stateset = new osg::StateSet;
osg::LogicOp* logicOp = new osg::LogicOp(osg::LogicOp::OR_INVERTED);
osg::ref_ptr<osg::StateSet> stateset = new osg::StateSet;
osg::ref_ptr<osg::LogicOp> logicOp = new osg::LogicOp(osg::LogicOp::OR_INVERTED);
stateset->setAttributeAndModes(logicOp,osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON);
@ -170,7 +170,7 @@ int main( int argc, char **argv )
// construct the viewer.
osgViewer::Viewer viewer;
viewer.addEventHandler(new TechniqueEventHandler(logicOp));
viewer.addEventHandler(new TechniqueEventHandler(logicOp.get()));
// run optimization over the scene graph
osgUtil::Optimizer optimzer;

View File

@ -234,7 +234,7 @@ osg:: Node* createGlobe(const osg::BoundingBox& bb,float ratio, const std::strin
osg::MatrixTransform* xform = new osg::MatrixTransform;
xform->setUpdateCallback(new osg::AnimationPathCallback(bb.center(),osg::Vec3(0.0f,0.0f,1.0f),osg::inDegrees(10.0f)));
osg::Node* bluemarble = filename.empty() ? 0 : osgDB::readNodeFile(filename.c_str());
osg::ref_ptr<osg::Node> bluemarble = filename.empty() ? 0 : osgDB::readRefNodeFile(filename.c_str());
if (bluemarble)
{
const osg::BoundingSphere& bs = bluemarble->getBound();
@ -252,7 +252,7 @@ osg:: Node* createGlobe(const osg::BoundingBox& bb,float ratio, const std::strin
osg::StateSet* stateset = geode->getOrCreateStateSet();
osg::Image* image = osgDB::readImageFile("Images/land_shallow_topo_2048.jpg");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/land_shallow_topo_2048.jpg");
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;

View File

@ -453,7 +453,7 @@ int main( int argc, char **argv )
osg::Timer_t start_tick = osg::Timer::instance()->tick();
// read the scene from the list of file specified command line args.
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if no model has been successfully loaded report failure.
bool tragger2Scene(true);
@ -481,14 +481,14 @@ int main( int argc, char **argv )
// optimize the scene graph, remove redundant nodes and state etc.
osgUtil::Optimizer optimizer;
optimizer.optimize(loadedModel.get());
optimizer.optimize(loadedModel);
// pass the loaded scene graph to the viewer.
if ( tragger2Scene ) {
viewer.setSceneData(addDraggerToScene(loadedModel.get(), dragger_name, fixedSizeInScreen));
} else {
viewer.setSceneData(loadedModel.get());
viewer.setSceneData(loadedModel);
}

View File

@ -96,10 +96,10 @@ int main( int argc, char **argv )
arguments.read("-P", persistence) || arguments.read("--persistence", persistence);
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("cow.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cow.osgt");
// if no model has been successfully loaded report failure.
if (!loadedModel)

View File

@ -520,8 +520,8 @@ int main(int argc, char** argv)
{
if (arguments.isString(i))
{
osg::Image* image = osgDB::readImageFile(arguments[i]);
osg::ImageStream* imagestream = dynamic_cast<osg::ImageStream*>(image);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(arguments[i]);
osg::ImageStream* imagestream = dynamic_cast<osg::ImageStream*>(image.get());
if (imagestream)
{
osg::ImageStream::AudioStreams& audioStreams = imagestream->getAudioStreams();
@ -550,7 +550,7 @@ int main(int argc, char** argv)
float width = image->s() * image->getPixelAspectRatio();
float height = image->t();
osg::ref_ptr<osg::Drawable> drawable = myCreateTexturedQuadGeometry(pos, width, height,image, useTextureRectangle, xyPlane, flip);
osg::ref_ptr<osg::Drawable> drawable = myCreateTexturedQuadGeometry(pos, width, height, image.get(), useTextureRectangle, xyPlane, flip);
if (image->isImageTranslucent())
{

View File

@ -362,7 +362,7 @@ private:
static osg::Node* readImageStream(const std::string& file_name, osg::Vec3& p, float desired_height, osgDB::Options* options)
{
osg::ref_ptr<osg::Object> obj = osgDB::readObjectFile(file_name, options);
osg::ref_ptr<osg::Object> obj = osgDB::readRefObjectFile(file_name, options);
osg::ref_ptr<osg::Texture> tex = dynamic_cast<osg::Texture*>(obj.get());
osg::Geometry* geo(NULL);
float w(0);
@ -374,7 +374,7 @@ static osg::Node* readImageStream(const std::string& file_name, osg::Vec3& p, fl
// try readImageFile if readObjectFile failed
if (!img_stream)
{
img_stream = dynamic_cast<osg::ImageStream*>(osgDB::readImageFile(file_name, options));
img_stream = osgDB::readRefFile<osg::ImageStream>(file_name, options);
}
if (img_stream)
@ -531,7 +531,9 @@ private:
if (!tex) {
osg::ref_ptr<osg::ImageStream> stream = dynamic_cast<osg::ImageStream*>(obj.get());
if (!stream)
stream = dynamic_cast<osg::ImageStream*>(osgDB::readImageFile(_files[_currentFile], _options.get()));
{
stream = osgDB::readRefFile<osg::ImageStream>(_files[_currentFile], _options.get());
}
if (stream)
{

View File

@ -44,10 +44,10 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
// load the nodes from the commandline arguments.
osg::Node* rootnode = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> rootnode = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!rootnode) rootnode = osgDB::readNodeFile("cessnafire.osgt");
if (!rootnode) rootnode = osgDB::readRefNodeFile("cessnafire.osgt");
if (!rootnode)
{
@ -55,7 +55,7 @@ int main( int argc, char **argv )
return 1;
}
osg::Image* image = osgDB::readImageFile("Images/reflect.rgb");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/reflect.rgb");
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;

View File

@ -72,8 +72,8 @@ public:
T* _foundNode;
};
template<class T>
T* findTopMostNodeOfType(osg::Node* node)
template<class T, class R>
T* findTopMostNodeOfType(R node)
{
if (!node) return 0;
@ -338,7 +338,7 @@ int main( int argc, char **argv )
// set up the scene graph
{
// load the nodes from the commandline arguments.
osg::Node* rootnode = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> rootnode = osgDB::readRefNodeFiles(arguments);
if (!rootnode)
{

View File

@ -284,10 +284,10 @@ int main( int argc, char **argv )
}
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default model instead.
if (!scene) scene = osgDB::readNodeFile("dumptruck.osgt");
if (!scene) scene = osgDB::readRefNodeFile("dumptruck.osgt");
if (!scene)
{
@ -307,10 +307,10 @@ int main( int argc, char **argv )
std::string device;
while(arguments.read("--device", device))
{
osg::ref_ptr<osgGA::Device> dev = osgDB::readFile<osgGA::Device>(device);
osg::ref_ptr<osgGA::Device> dev = osgDB::readRefFile<osgGA::Device>(device);
if (dev.valid())
{
viewer.addDevice(dev.get());
viewer.addDevice(dev);
}
}
@ -318,7 +318,7 @@ int main( int argc, char **argv )
osg::ref_ptr<osg::Group> group = new osg::Group;
// add the HUD subgraph.
if (scene.valid()) group->addChild(scene.get());
if (scene) group->addChild(scene);
viewer.setCameraManipulator(new osgGA::MultiTouchTrackballManipulator());
viewer.realize();

View File

@ -64,11 +64,11 @@ int main( int argc, char **argv )
osg::ArgumentParser arguments(&argc,argv);
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
if (!scene)
{
scene = osgDB::readNodeFile("http://www.openscenegraph.org/data/earth_bayarea/earth.ive");
scene = osgDB::readRefNodeFile("http://www.openscenegraph.org/data/earth_bayarea/earth.ive");
}
if (!scene)
@ -123,7 +123,7 @@ int main( int argc, char **argv )
view->setName("View one");
viewer.addView(view);
view->setSceneData(scene.get());
view->setSceneData(scene);
view->getCamera()->setName("Cam one");
view->getCamera()->setViewport(new osg::Viewport(0,0, traits->width/2, traits->height/2));
view->getCamera()->setGraphicsContext(gc.get());
@ -148,7 +148,7 @@ int main( int argc, char **argv )
view->setName("View two");
viewer.addView(view);
view->setSceneData(scene.get());
view->setSceneData(scene);
view->getCamera()->setName("Cam two");
view->getCamera()->setViewport(new osg::Viewport(traits->width/2,0, traits->width/2, traits->height/2));
view->getCamera()->setGraphicsContext(gc.get());
@ -162,7 +162,7 @@ int main( int argc, char **argv )
view->setName("View three");
viewer.addView(view);
view->setSceneData(scene.get());
view->setSceneData(scene);
view->getCamera()->setName("Cam three");
view->getCamera()->setProjectionMatrixAsPerspective(30.0, double(traits->width) / double(traits->height/2), 1.0, 1000.0);

View File

@ -311,10 +311,10 @@ int main( int argc, char **argv )
}
// load the nodes from the commandline arguments.
osg::Node* loadedmodel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedmodel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try using default mode instead.
if (!loadedmodel) loadedmodel = osgDB::readNodeFile("glider.osgt");
if (!loadedmodel) loadedmodel = osgDB::readRefNodeFile("glider.osgt");
if (!loadedmodel)
{
@ -336,12 +336,12 @@ int main( int argc, char **argv )
}
else
{
rootnode = createOccludersAroundModel(loadedmodel);
rootnode = createOccludersAroundModel(loadedmodel.get());
}
// add a viewport to the viewer and attach the scene graph.
viewer.setSceneData( rootnode.get() );
viewer.setSceneData( rootnode );
return viewer.run();
}

View File

@ -749,8 +749,8 @@ int main(int argc, char** argv)
if (arguments.argc()>1)
{
root = osgDB::readNodeFiles( arguments );
if (root.valid())
root = osgDB::readRefNodeFiles( arguments );
if (root)
{
// Run a NodeVisitor to insert OcclusionQueryNodes in the scene graph.
OcclusionQueryVisitor oqv;
@ -787,10 +787,10 @@ int main(int argc, char** argv)
if (optimize)
{
osgUtil::Optimizer optimizer;
optimizer.optimize( root.get() );
optimizer.optimize( root );
}
viewer.setSceneData( root.get() );
viewer.setSceneData( root );
KeyHandler* kh = new KeyHandler( *root );
viewer.addEventHandler( kh );

View File

@ -66,12 +66,12 @@ int main(int argc, char** argv)
arguments.reportRemainingOptionsAsUnrecognized();
// read the dump truck, we will need it twice
osg::ref_ptr<osg::Node> dt = osgDB::readNodeFile("dumptruck.osg");
osg::ref_ptr<osg::Node> dt = osgDB::readRefNodeFile("dumptruck.osg");
// display a solid version of the dump truck
osg::ref_ptr<osg::PositionAttitudeTransform> solidModel = new osg::PositionAttitudeTransform;
solidModel->setPosition(osg::Vec3f(7.0f, -2.0f, 7.0f));
solidModel->addChild(dt.get());
solidModel->addChild(dt);
// generate the 3D heatmap surface to display
osg::ref_ptr<Heatmap> hm = new Heatmap(30, 30, 10, 30, 30, 1.0, 0.25);

View File

@ -377,7 +377,7 @@ public:
std::ostringstream ss ;
ss << host << ":" << port << ".sender.osc";
_device = osgDB::readFile<osgGA::Device>(ss.str());
_device = osgDB::readRefFile<osgGA::Device>(ss.str());
osgGA::EventVisitor* ev = dynamic_cast<osgGA::EventVisitor*>(nv);
osgViewer::View* view = ev ? dynamic_cast<osgViewer::View*>(ev->getActionAdapter()) : NULL;
@ -403,7 +403,7 @@ int main( int argc, char **argv )
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
if (!scene)
{
@ -463,15 +463,15 @@ int main( int argc, char **argv )
view->addEventHandler( new osgViewer::StatsHandler );
view->addEventHandler( new UserEventHandler(text) );
osg::ref_ptr<osgGA::Device> device = osgDB::readFile<osgGA::Device>("0.0.0.0:9000.receiver.osc");
osg::ref_ptr<osgGA::Device> device = osgDB::readRefFile<osgGA::Device>("0.0.0.0:9000.receiver.osc");
if (device.valid() && (device->getCapabilities() & osgGA::Device::RECEIVE_EVENTS))
{
view->addDevice(device.get());
view->addDevice(device);
// add a zeroconf device, advertising the osc-device
if(use_zeroconf)
{
osgGA::Device* zeroconf_device = osgDB::readFile<osgGA::Device>("_osc._udp:9000.advertise.zeroconf");
osg::ref_ptr<osgGA::Device> zeroconf_device = osgDB::readRefFile<osgGA::Device>("_osc._udp:9000.advertise.zeroconf");
if (zeroconf_device)
{
view->addDevice(zeroconf_device);
@ -527,7 +527,7 @@ int main( int argc, char **argv )
if (use_zeroconf)
{
osgGA::Device* zeroconf_device = osgDB::readFile<osgGA::Device>("_osc._udp.discover.zeroconf");
osg::ref_ptr<osgGA::Device> zeroconf_device = osgDB::readRefFile<osgGA::Device>("_osc._udp.discover.zeroconf");
if(zeroconf_device) {
view->addDevice(zeroconf_device);
view->getEventHandlers().push_front(new OscServiceDiscoveredEventHandler());
@ -536,7 +536,7 @@ int main( int argc, char **argv )
}
else
{
osg::ref_ptr<osgGA::Device> device = osgDB::readFile<osgGA::Device>("localhost:9000.sender.osc");
osg::ref_ptr<osgGA::Device> device = osgDB::readRefFile<osgGA::Device>("localhost:9000.sender.osc");
if (device.valid() && (device->getCapabilities() & osgGA::Device::SEND_EVENTS))
{
// add as first event handler, so it gets ALL events ...

View File

@ -25,7 +25,7 @@ int main(int argc, char** argv)
// load outlined object
std::string modelFilename = arguments.argc() > 1 ? arguments[1] : "dumptruck.osgt";
osg::ref_ptr<osg::Node> outlineModel = osgDB::readNodeFile(modelFilename);
osg::ref_ptr<osg::Node> outlineModel = osgDB::readRefNodeFile(modelFilename);
if (!outlineModel)
{
osg::notify(osg::FATAL) << "Unable to load model '" << modelFilename << "'\n";
@ -38,18 +38,18 @@ int main(int argc, char** argv)
{
// create outline effect
osg::ref_ptr<osgFX::Outline> outline = new osgFX::Outline;
root->addChild(outline.get());
root->addChild(outline);
outline->setWidth(8);
outline->setColor(osg::Vec4(1,1,0,1));
outline->addChild(outlineModel.get());
outline->addChild(outlineModel);
}
if (testOcclusion)
{
// load occluder
std::string occludedModelFilename = "cow.osgt";
osg::ref_ptr<osg::Node> occludedModel = osgDB::readNodeFile(occludedModelFilename);
osg::ref_ptr<osg::Node> occludedModel = osgDB::readRefNodeFile(occludedModelFilename);
if (!occludedModel)
{
osg::notify(osg::FATAL) << "Unable to load model '" << occludedModelFilename << "'\n";
@ -63,14 +63,14 @@ int main(int argc, char** argv)
// occluder behind outlined model
osg::ref_ptr<osg::PositionAttitudeTransform> modelTransform0 = new osg::PositionAttitudeTransform;
modelTransform0->setPosition(bsphere.center() + occluderOffset);
modelTransform0->addChild(occludedModel.get());
root->addChild(modelTransform0.get());
modelTransform0->addChild(occludedModel);
root->addChild(modelTransform0);
// occluder in front of outlined model
osg::ref_ptr<osg::PositionAttitudeTransform> modelTransform1 = new osg::PositionAttitudeTransform;
modelTransform1->setPosition(bsphere.center() - occluderOffset);
modelTransform1->addChild(occludedModel.get());
root->addChild(modelTransform1.get());
modelTransform1->addChild(occludedModel);
root->addChild(modelTransform1);
}
// must have stencil buffer...
@ -78,7 +78,7 @@ int main(int argc, char** argv)
// construct the viewer
osgViewer::Viewer viewer;
viewer.setSceneData(root.get());
viewer.setSceneData(root);
// must clear stencil buffer...
unsigned int clearMask = viewer.getCamera()->getClearMask();

View File

@ -254,7 +254,7 @@ int main( int argc, char **argv )
// }
osg::ref_ptr<osg::Node> model = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> model = osgDB::readRefNodeFiles(arguments);
if (!model)
{

View File

@ -163,7 +163,7 @@ osg::Node* createModel(const std::string& shader, const std::string& textureFile
osg::Shader* vertex_shader = new osg::Shader(osg::Shader::VERTEX, vertexShaderSource_texture);
program->addShader(vertex_shader);
osg::Image* image = 0;
osg::ref_ptr<osg::Image> image;
if (terrainFileName.empty())
{
@ -184,7 +184,7 @@ osg::Node* createModel(const std::string& shader, const std::string& textureFile
}
else
{
image = osgDB::readImageFile(terrainFileName);
image = osgDB::readRefImageFile(terrainFileName);
num_x = image->s();
num_y = image->t();
@ -206,7 +206,7 @@ osg::Node* createModel(const std::string& shader, const std::string& textureFile
osg::Shader* fragment_shader = new osg::Shader(osg::Shader::FRAGMENT, fragmentShaderSource);
program->addShader(fragment_shader);
osg::Texture2D* texture = new osg::Texture2D(osgDB::readImageFile(textureFileName));
osg::Texture2D* texture = new osg::Texture2D(osgDB::readRefImageFile(textureFileName));
stateset->setTextureAttributeAndModes(0,texture);
osg::Uniform* baseTextureSampler = new osg::Uniform("baseTexture",0);

View File

@ -77,9 +77,9 @@ osg::Node* createMovingModel(const osg::Vec3& center, float radius)
osg::AnimationPath* animationPath = createAnimationPath(center,radius,animationLength);
osg::Group* model = new osg::Group;
osg::ref_ptr<osg::Group> model = new osg::Group;
osg::Node* glider = osgDB::readNodeFile("glider.osgt");
osg::ref_ptr<osg::Node> glider = osgDB::readRefNodeFile("glider.osgt");
if (glider)
{
const osg::BoundingSphere& bs = glider->getBound();
@ -102,7 +102,7 @@ osg::Node* createMovingModel(const osg::Vec3& center, float radius)
model->addChild(xform);
}
osg::Node* cessna = osgDB::readNodeFile("cessna.osgt");
osg::ref_ptr<osg::Node> cessna = osgDB::readRefNodeFile("cessna.osgt");
if (cessna)
{
const osg::BoundingSphere& bs = cessna->getBound();
@ -126,7 +126,7 @@ osg::Node* createMovingModel(const osg::Vec3& center, float radius)
model->addChild(xform);
}
return model;
return model.release();
}
@ -162,8 +162,8 @@ void build_world(osg::Group *root)
osg::Geode* terrainGeode = new osg::Geode;
// create terrain
{
osg::StateSet* stateset = new osg::StateSet();
osg::Image* image = osgDB::readImageFile("Images/lz.rgb");
osg::ref_ptr<osg::StateSet> stateset = new osg::StateSet();
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/lz.rgb");
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;

View File

@ -75,21 +75,20 @@ std::string ImageReaderWriter::local_insertReference(const std::string& fileName
return myReference;
}
osg::Image* ImageReaderWriter::readImage_Archive(DataReference& dr, float& s,float& t)
osg::ref_ptr<osg::Image> ImageReaderWriter::readImage_Archive(DataReference& dr, float& s,float& t)
{
for(PhotoArchiveList::iterator itr=_photoArchiveList.begin();
itr!=_photoArchiveList.end();
++itr)
{
osg::Image* image = (*itr)->readImage(dr._fileName,dr._resolutionX,dr._resolutionY,s,t);
osg::ref_ptr<osg::Image> image = (*itr)->readImage(dr._fileName,dr._resolutionX,dr._resolutionY,s,t);
if (image) return image;
}
return 0;
}
osg::Image* ImageReaderWriter::readImage_DynamicSampling(DataReference& dr, float& s,float& t)
osg::ref_ptr<osg::Image> ImageReaderWriter::readImage_DynamicSampling(DataReference& dr, float& s,float& t)
{
// record previous options.
osg::ref_ptr<osgDB::ReaderWriter::Options> previousOptions = osgDB::Registry::instance()->getOptions();
@ -99,7 +98,7 @@ osg::Image* ImageReaderWriter::readImage_DynamicSampling(DataReference& dr, floa
osgDB::Registry::instance()->setOptions(options.get());
osg::Image* image = osgDB::readImageFile(dr._fileName);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(dr._fileName);
// restore previous options.
osgDB::Registry::instance()->setOptions(previousOptions.get());
@ -119,7 +118,7 @@ osgDB::ReaderWriter::ReadResult ImageReaderWriter::local_readNode(const std::str
DataReference& dr = itr->second;
osg::Image* image = 0;
osg::ref_ptr<osg::Image> image;
float s=1.0f,t=1.0f;
// try to load photo from any loaded PhotoArchives

View File

@ -80,9 +80,9 @@ class ImageReaderWriter : public osgDB::ReaderWriter
bool _backPage;
};
osg::Image* readImage_Archive(DataReference& dr, float& s,float& t);
osg::ref_ptr<osg::Image> readImage_Archive(DataReference& dr, float& s,float& t);
osg::Image* readImage_DynamicSampling(DataReference& dr, float& s,float& t);
osg::ref_ptr<osg::Image> readImage_DynamicSampling(DataReference& dr, float& s,float& t);
typedef std::map< std::string,DataReference > DataReferenceMap;
typedef std::vector< osg::ref_ptr<PhotoArchive> > PhotoArchiveList;

View File

@ -72,7 +72,7 @@ void PhotoArchive::getImageFileNameList(FileNameList& filenameList)
}
osg::Image* PhotoArchive::readImage(const std::string& filename,
osg::ref_ptr<osg::Image> PhotoArchive::readImage(const std::string& filename,
unsigned int target_s, unsigned target_t,
float& original_s, float& original_t)
{
@ -99,7 +99,7 @@ osg::Image* PhotoArchive::readImage(const std::string& filename,
unsigned char* data = new unsigned char[imageHeader.size];
in.read((char*)data,imageHeader.size);
osg::Image* image = new osg::Image;
osg::ref_ptr<osg::Image> image = new osg::Image;
image->setImage(photoHeader.thumbnail_s,photoHeader.thumbnail_t,1,
imageHeader.pixelFormat,imageHeader.pixelFormat,imageHeader.type,
data,osg::Image::USE_NEW_DELETE);
@ -125,7 +125,7 @@ osg::Image* PhotoArchive::readImage(const std::string& filename,
unsigned char* data = new unsigned char[imageHeader.size];
in.read((char*)data,imageHeader.size);
osg::Image* image = new osg::Image;
osg::ref_ptr<osg::Image> image = new osg::Image;
image->setImage(photoHeader.fullsize_s,photoHeader.fullsize_t,1,
imageHeader.pixelFormat,imageHeader.pixelFormat,imageHeader.type,
data,osg::Image::USE_NEW_DELETE);
@ -196,7 +196,7 @@ void PhotoArchive::buildArchive(const std::string& filename, const FileNameList&
std::cout<<"Processing image "<<photoCount<<" of "<< photoIndex.size()<<" filename="<< photoHeader.filename << std::endl;
std::cout<<" reading image...";std::cout.flush();
osg::ref_ptr<osg::Image> image = osgDB::readImageFile(photoHeader.filename);
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(photoHeader.filename);
std::cout<<"done."<< std::endl;

View File

@ -42,7 +42,7 @@ public:
static void buildArchive(const std::string& filename, const FileNameList& imageList, unsigned int thumbnailSize=256, unsigned int maximumSize=1024, bool compressed=true);
osg::Image* readImage(const std::string& filename,
osg::ref_ptr<osg::Image> readImage(const std::string& filename,
unsigned int target_s, unsigned target_t,
float& original_s, float& original_t);

View File

@ -239,7 +239,7 @@ int main( int argc, char **argv )
osg::ArgumentParser arguments(&argc,argv);
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles(arguments);
if (!scene && arguments.read("--relative-camera-scene"))
{
@ -271,7 +271,7 @@ int main( int argc, char **argv )
}
// if not loaded assume no arguments passed in, try use default mode instead.
if (!scene) scene = osgDB::readNodeFile("fountain.osgt");
if (!scene) scene = osgDB::readRefNodeFile("fountain.osgt");
osg::ref_ptr<osg::Group> group = dynamic_cast<osg::Group*>(scene.get());
if (!group)

View File

@ -366,7 +366,7 @@ osg::Geode* SolarSystem::createSpace( const std::string& name, const std::string
if( !textureName.empty() )
{
osg::Image* image = osgDB::readImageFile( textureName );
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile( textureName );
if ( image )
{
sSpaceSphere->getOrCreateStateSet()->setTextureAttributeAndModes( 0, new osg::Texture2D( image ), osg::StateAttribute::ON );
@ -467,7 +467,7 @@ osg::Geode* SolarSystem::createPlanet( double radius, const std::string& name, c
if( !textureName.empty() )
{
osg::Image* image = osgDB::readImageFile( textureName );
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile( textureName );
if ( image )
{
osg::Texture2D* tex2d = new osg::Texture2D( image );
@ -493,7 +493,7 @@ osg::Geode* SolarSystem::createPlanet( double radius, const std::string& name, c
if( !textureName2.empty() )
{
osg::Image* image = osgDB::readImageFile( textureName2 );
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile( textureName2 );
if ( image )
{
osg::StateSet* stateset = geodePlanet->getOrCreateStateSet();

View File

@ -145,7 +145,7 @@ int main( int argc, char **argv )
}
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if no model has been successfully loaded report failure.
if (!loadedModel)
@ -176,7 +176,7 @@ int main( int argc, char **argv )
/// The texture for the sprites
osg::Texture2D *tex = new osg::Texture2D();
tex->setImage(osgDB::readImageFile("Images/particle.rgb"));
tex->setImage(osgDB::readRefImageFile("Images/particle.rgb"));
stateset->setTextureAttributeAndModes(0, tex, osg::StateAttribute::ON);
}

View File

@ -86,7 +86,7 @@ osg::StateSet* makeStateSet(float size)
/// The texture for the sprites
osg::Texture2D *tex = new osg::Texture2D();
tex->setImage(osgDB::readImageFile("Images/particle.rgb"));
tex->setImage(osgDB::readRefImageFile("Images/particle.rgb"));
set->setTextureAttributeAndModes(0, tex, osg::StateAttribute::ON);
return set;

View File

@ -9,9 +9,9 @@
/* PagedLoadingCallback: Callback for loading paged nodes while doing intersecting test */
struct PagedLoadingCallback : public osgUtil::IntersectionVisitor::ReadCallback
{
virtual osg::Node* readNodeFile( const std::string& filename )
virtual osg::ref_ptr<osg::Node> readNodeFile( const std::string& filename )
{
return osgDB::readNodeFile( filename );
return osgDB::readRefNodeFile( filename );
}
};
static osg::ref_ptr<PagedLoadingCallback> g_pagedLoadingCallback = new PagedLoadingCallback;

View File

@ -298,8 +298,8 @@ int main( int argc, char** argv )
}
// Construct scene graph
osg::Node* scene = osgDB::readNodeFiles( arguments );
if ( !scene ) scene = osgDB::readNodeFile( "cow.osgt" );
osg::ref_ptr<osg::Node> scene = osgDB::readRefNodeFiles( arguments );
if ( !scene ) scene = osgDB::readRefNodeFile( "cow.osgt" );
if ( !scene )
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;
@ -373,7 +373,7 @@ int main( int argc, char** argv )
{
osg::Camera* camera = viewer.getCamera();
if ( !useLatLongHeight ) computeViewMatrix( camera, eye, hpr );
else computeViewMatrixOnEarth( camera, scene, latLongHeight, hpr );
else computeViewMatrixOnEarth( camera, scene.get(), latLongHeight, hpr );
osg::ref_ptr<CustomRenderer> renderer = new CustomRenderer( camera );
camera->setRenderer( renderer.get() );

View File

@ -175,7 +175,7 @@ int main( int argc, char **argv )
}
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel)
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;

View File

@ -463,10 +463,10 @@ int main( int argc, char **argv )
// load the nodes from the commandline arguments.
osg::Node* loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("cessna.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cessna.osgt");
if (!loadedModel)
{

View File

@ -63,7 +63,7 @@ osg::StateSet* createMirrorTexturedState(const std::string& filename)
dstate->setMode(GL_CULL_FACE,osg::StateAttribute::OFF|osg::StateAttribute::PROTECTED);
// set up the texture.
osg::Image* image = osgDB::readImageFile(filename.c_str());
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile(filename.c_str());
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;
@ -335,10 +335,10 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
// read the scene from the list of file specified commandline args.
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("cessna.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cessna.osgt");
// if no model has been successfully loaded report failure.
if (!loadedModel)
@ -350,11 +350,11 @@ int main( int argc, char **argv )
// optimize the scene graph, remove redundant nodes and state etc.
osgUtil::Optimizer optimizer;
optimizer.optimize(loadedModel.get());
optimizer.optimize(loadedModel);
// add a transform with a callback to animate the loaded model.
osg::ref_ptr<osg::MatrixTransform> loadedModelTransform = new osg::MatrixTransform;
loadedModelTransform->addChild(loadedModel.get());
loadedModelTransform->addChild(loadedModel);
osg::ref_ptr<osg::NodeCallback> nc = new osg::AnimationPathCallback(loadedModelTransform->getBound().center(),osg::Vec3(0.0f,0.0f,1.0f),osg::inDegrees(45.0f));
loadedModelTransform->setUpdateCallback(nc.get());
@ -364,7 +364,7 @@ int main( int argc, char **argv )
osg::ref_ptr<osg::Node> rootNode = createMirroredScene(loadedModelTransform.get());
// set the scene to render
viewer.setSceneData(rootNode.get());
viewer.setSceneData(rootNode);
// hint to tell viewer to request stencil buffer when setting up windows
osg::DisplaySettings::instance()->setMinimumNumStencilBits(8);

View File

@ -726,7 +726,7 @@ int main(int argc, char** argv)
}
// load the data
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel)
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;
@ -746,9 +746,9 @@ int main(int argc, char** argv)
// optimize the scene graph, remove redundant nodes and state etc.
osgUtil::Optimizer optimizer;
optimizer.optimize(loadedModel.get());
optimizer.optimize(loadedModel);
viewer.setSceneData( loadedModel.get() );
viewer.setSceneData(loadedModel);
if (pbuffer.valid())

View File

@ -40,10 +40,10 @@ int main( int argc, char **argv )
osgViewer::Viewer viewer;
// load the nodes from the commandline arguments.
osg::Node* loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
// if not loaded assume no arguments passed in, try use default mode instead.
if (!loadedModel) loadedModel = osgDB::readNodeFile("cow.osgt");
if (!loadedModel) loadedModel = osgDB::readRefNodeFile("cow.osgt");
if (!loadedModel)
{
@ -56,9 +56,9 @@ int main( int argc, char **argv )
// but overrides various state attributes, so that the second instance
// is rendered as wireframe.
osg::Group* rootnode = new osg::Group;
osg::ref_ptr<osg::Group> rootnode = new osg::Group;
osg::Group* decorator = new osg::Group;
osg::ref_ptr<osg::Group> decorator = new osg::Group;
rootnode->addChild(loadedModel);
@ -71,17 +71,17 @@ int main( int argc, char **argv )
// and that the drawing mode is changed to wireframe, and a polygon offset
// is added to ensure that we see the wireframe itself, and turn off
// so texturing too.
osg::StateSet* stateset = new osg::StateSet;
osg::PolygonOffset* polyoffset = new osg::PolygonOffset;
osg::ref_ptr<osg::StateSet> stateset = new osg::StateSet;
osg::ref_ptr<osg::PolygonOffset> polyoffset = new osg::PolygonOffset;
polyoffset->setFactor(-1.0f);
polyoffset->setUnits(-1.0f);
osg::PolygonMode* polymode = new osg::PolygonMode;
osg::ref_ptr<osg::PolygonMode> polymode = new osg::PolygonMode;
polymode->setMode(osg::PolygonMode::FRONT_AND_BACK,osg::PolygonMode::LINE);
stateset->setAttributeAndModes(polyoffset,osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON);
stateset->setAttributeAndModes(polymode,osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON);
#if 1
osg::Material* material = new osg::Material;
osg::ref_ptr<osg::Material> material = new osg::Material;
stateset->setAttributeAndModes(material,osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON);
stateset->setMode(GL_LIGHTING,osg::StateAttribute::OVERRIDE|osg::StateAttribute::OFF);
#else

View File

@ -145,11 +145,11 @@ osg::Sequence* createSequence(osg::ArgumentParser& arguments)
++itr)
{
// load model
osg::Node* node = osgDB::readNodeFile(*itr);
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFile(*itr);
if (node)
{
seq->addChild(createScaledNode(node, 100.0f));
seq->addChild(createScaledNode(node.get(), 100.0f));
seq->setTime(seq->getNumChildren()-1, 1.0f);
}
}

View File

@ -22,7 +22,7 @@
osg::Node* createOldShaderCompositionScene(osg::ArgumentParser& arguments)
{
osg::Node* node = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFiles(arguments);
if (!node) return 0;
osg::Group* group = new osg::Group;

View File

@ -25,7 +25,7 @@ extern osg::Node* createOldShaderCompositionScene(osg::ArgumentParser& arguments
osg::Node* createNewShaderCompositionScene(osg::ArgumentParser& arguments)
{
osg::ref_ptr<osg::Node> node = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFiles(arguments);
if (!node) return 0;
osg::ref_ptr<osg::Group> group = new osg::Group;
@ -34,21 +34,21 @@ osg::Node* createNewShaderCompositionScene(osg::ArgumentParser& arguments)
osg::ref_ptr<osg::Program> program = new osg::Program;
stateset->setAttribute(program.get());
osg::ref_ptr<osg::Shader> lighting_shader = osgDB::readShaderFile("shaders/lighting.vert");
osg::ref_ptr<osg::Shader> lighting_shader = osgDB::readRefShaderFile("shaders/lighting.vert");
if (lighting_shader.valid())
{
program->addShader(lighting_shader.get());
OSG_NOTICE<<"Adding lighting shader"<<std::endl;
}
osg::ref_ptr<osg::Shader> vertex_shader = osgDB::readShaderFile("shaders/osgshadercomposition.vert");
osg::ref_ptr<osg::Shader> vertex_shader = osgDB::readRefShaderFile("shaders/osgshadercomposition.vert");
if (vertex_shader.valid())
{
program->addShader(vertex_shader.get());
OSG_NOTICE<<"Adding vertex shader"<<std::endl;
}
osg::ref_ptr<osg::Shader> fragment_shader = osgDB::readShaderFile("shaders/osgshadercomposition.frag");
osg::ref_ptr<osg::Shader> fragment_shader = osgDB::readRefShaderFile("shaders/osgshadercomposition.frag");
if (fragment_shader.valid())
{
program->addShader(fragment_shader.get());

View File

@ -141,7 +141,7 @@ int main(int argc, char** argv)
osgDB::Registry::instance()->setReadFileCallback(readFileCallback);
// load the data
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel)
{
std::cout << arguments.getApplicationName() <<": No data loaded" << std::endl;

View File

@ -121,7 +121,7 @@ osg::Node* createScene()
stateset->setTextureAttributeAndModes(0,terrainTexture,osg::StateAttribute::ON);
osg::Image* image = osgDB::readImageFile("Images/lz.rgb");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/lz.rgb");
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;

View File

@ -390,7 +390,7 @@ namespace ModelTwo
// set up the texture of the base.
osg::StateSet* stateset = new osg::StateSet();
osg::Image* image = osgDB::readImageFile("Images/lz.rgb");
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile("Images/lz.rgb");
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;
@ -451,7 +451,7 @@ namespace ModelTwo
osg::Group* model = new osg::Group;
osg::Node* cessna = osgDB::readNodeFile("cessna.osgt");
osg::ref_ptr<osg::Node> cessna = osgDB::readRefNodeFile("cessna.osgt");
if (cessna)
{
const osg::BoundingSphere& bs = cessna->getBound();
@ -571,7 +571,7 @@ namespace ModelThree
if (withBaseTexture)
{
scene->getOrCreateStateSet()->setTextureAttributeAndModes( 0, new osg::Texture2D(osgDB::readImageFile("Images/lz.rgb")), osg::StateAttribute::ON);
scene->getOrCreateStateSet()->setTextureAttributeAndModes( 0, new osg::Texture2D(osgDB::readRefImageFile("Images/lz.rgb")), osg::StateAttribute::ON);
}
return scene;
@ -626,13 +626,13 @@ namespace ModelFive
{
// Set the ground (only receives shadow)
osg::ref_ptr<osg::MatrixTransform> groundNode = new osg::MatrixTransform;
groundNode->addChild( osgDB::readNodeFile("lz.osg") );
groundNode->addChild( osgDB::readRefNodeFile("lz.osg") );
groundNode->setMatrix( osg::Matrix::translate(200.0f, 200.0f,-200.0f) );
groundNode->setNodeMask( ReceivesShadowTraversalMask );
// Set the cessna (only casts shadow)
osg::ref_ptr<osg::MatrixTransform> cessnaNode = new osg::MatrixTransform;
cessnaNode->addChild( osgDB::readNodeFile("cessna.osg.0,0,90.rot") );
cessnaNode->addChild( osgDB::readRefNodeFile("cessna.osg.0,0,90.rot") );
cessnaNode->addUpdateCallback( createAnimationPathCallback(50.0f, 6.0f) );
cessnaNode->setNodeMask( CastsShadowTraversalMask );
@ -1025,7 +1025,7 @@ int main(int argc, char** argv)
OSG_INFO<<"shadowedScene->getShadowTechnique()="<<shadowedScene->getShadowTechnique()<<std::endl;
osg::ref_ptr<osg::Node> model = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> model = osgDB::readRefNodeFiles(arguments);
if (model.valid())
{
model->setNodeMask(CastsShadowTraversalMask | ReceivesShadowTraversalMask);
@ -1061,7 +1061,7 @@ int main(int argc, char** argv)
geode->setNodeMask(shadowedScene->getReceivesShadowTraversalMask());
geode->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::Texture2D(osgDB::readImageFile("Images/lz.rgb")));
geode->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::Texture2D(osgDB::readRefImageFile("Images/lz.rgb")));
shadowedScene->addChild(geode);
}

View File

@ -42,7 +42,7 @@ osg::Geode* createShapes()
// ---------------------------------------
osg::StateSet* stateset = new osg::StateSet();
osg::Image* image = osgDB::readImageFile( "Images/lz.rgb" );
osg::ref_ptr<osg::Image> image = osgDB::readRefImageFile( "Images/lz.rgb" );
if (image)
{
osg::Texture2D* texture = new osg::Texture2D;

View File

@ -265,10 +265,8 @@ int main( int argc, char **argv )
SwitchDOFVisitor* visit = new SwitchDOFVisitor;
viewer.addEventHandler(visit);
osg::ref_ptr<osg::Node> loadedModel;
// load the scene.
loadedModel = osgDB::readNodeFiles(arguments);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFiles(arguments);
if (!loadedModel)
{
std::cout << argv[0] <<": No data loaded." << std::endl;
@ -278,16 +276,14 @@ int main( int argc, char **argv )
osg::Group* group = new osg::Group;
osg::Group* group1 = new osg::Group;
group1->addChild(loadedModel.get());
group1->addChild(loadedModel);
group1->setNodeMask(1);
// Uncomment these lines if you like to compare the loaded model to the resulting model in a merge/diff tool
//osgDB::writeNodeFile(*loadedModel.get(), "dummy1.osgt");
osgDB::writeNodeFile(*loadedModel.get(), outputfile);
osg::ref_ptr<osg::Node> convertedModel = osgDB::readNodeFile(outputfile);
//osgDB::writeNodeFile(*convertedModel.get(), "dummy2.osgt");
osgDB::writeNodeFile(*loadedModel, outputfile);
osg::ref_ptr<osg::Node> convertedModel = osgDB::readRefNodeFile(outputfile);
osg::Group* group2 = new osg::Group;
group2->addChild(convertedModel.get());

Some files were not shown because too many files have changed in this diff Show More