From 2ea5d71d82983e07c5b7e553bde4cf7fb7b5f768 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 2 Sep 2005 20:06:11 +0000 Subject: [PATCH] Added commandline arguments for controlling number of cameras through to the windowing library to use. --- examples/osgcamera/osgcamera.cpp | 47 +++++++++++++++++++------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/examples/osgcamera/osgcamera.cpp b/examples/osgcamera/osgcamera.cpp index cef070bb3..a767ef8e4 100644 --- a/examples/osgcamera/osgcamera.cpp +++ b/examples/osgcamera/osgcamera.cpp @@ -120,20 +120,40 @@ struct DrawOperation : public osg::GraphicsThread::Operation // int main( int argc, char **argv ) { + // use an ArgumentParser object to manage the program arguments. + osg::ArgumentParser arguments(&argc,argv); - if (argc<2) - { - std::cout << argv[0] <<": requires filename argument." << std::endl; - return 1; - } + std::string windowingLibrary("osgProducer"); + while (arguments.read("--windowing",windowingLibrary)) {} // load the osgProducer library manually. - osg::ref_ptr osgProducerLib = - osgDB::DynamicLibrary::loadLibrary(osgDB::Registry::instance()->createLibraryNameForNodeKit("osgProducer")); + osg::ref_ptr windowingLib = + osgDB::DynamicLibrary::loadLibrary(osgDB::Registry::instance()->createLibraryNameForNodeKit(windowingLibrary)); + if (!windowingLib) + { + std::cout<<"Error: failed to loading windowing library: "< loadedModel = osgDB::readNodeFile(argv[1]); + osg::ref_ptr loadedModel = osgDB::readNodeFiles(arguments); if (!loadedModel) { std::cout << argv[0] <<": No data loaded." << std::endl; @@ -148,13 +168,6 @@ int main( int argc, char **argv ) osgUtil::UpdateVisitor updateVisitor; updateVisitor.setFrameStamp(frameStamp.get()); - - - unsigned int numberCameras = 3; - unsigned int xpos = 0; - unsigned int ypos = 400; - unsigned int width = 400; - unsigned int height = 400; typedef std::list< osg::ref_ptr > CameraList; typedef std::set< osg::GraphicsContext* > GraphicsContextSet; @@ -309,7 +322,6 @@ int main( int argc, char **argv ) osg::Timer_t previous_tick = start_tick; bool done = false; - unsigned int maxNumFrames = 50; // main loop - update scene graph, dispatch frame, wait for frame done. while( !done && frameNum