Changeset 5956 for OpenSceneGraph/trunk/examples/osgshaders/osgshaders.cpp
- Timestamp:
- 01/10/07 22:05:26 (6 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgshaders/osgshaders.cpp
r5381 r5956 25 25 #include <osgDB/ReadFile> 26 26 #include <osgUtil/Optimizer> 27 #include <osg Producer/Viewer>27 #include <osgViewer/Viewer> 28 28 29 29 #include "GL2Scene.h" … … 63 63 /////////////////////////////////////////////////////////////////////////// 64 64 65 int main( int argc, char **argv)65 int main(int, char **) 66 66 { 67 // use an ArgumentParser object to manage the program arguments.68 osg::ArgumentParser args(&argc,argv);69 70 // set up the usage document71 args.getApplicationUsage()->setApplicationName(args.getApplicationName());72 args.getApplicationUsage()->setDescription(args.getApplicationName() +73 " demonstrates the OpenGL Shading Language using core OSG");74 args.getApplicationUsage()->setCommandLineUsage(args.getApplicationName());75 args.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");76 77 args.getApplicationUsage()->addKeyboardMouseBinding( "x", "Reload and recompile shader source files." );78 args.getApplicationUsage()->addKeyboardMouseBinding( "y", "Toggle shader enable" );79 80 67 // construct the viewer. 81 osgProducer::Viewer viewer(args); 82 viewer.setUpViewer( osgProducer::Viewer::STANDARD_SETTINGS ); 83 viewer.getUsage( *args.getApplicationUsage() ); 84 85 if( args.read("-h") || args.read("--help") ) 86 { 87 args.getApplicationUsage()->write(std::cout); 88 return 1; 89 } 90 91 // any option left unread are converted into errors to write out later. 92 args.reportRemainingOptionsAsUnrecognized(); 93 if( args.errors() ) 94 { 95 args.writeErrorMessages(std::cout); 96 return 1; 97 } 68 osgViewer::Viewer viewer; 98 69 99 70 // create the scene … … 101 72 102 73 viewer.setSceneData( gl2Scene->getRootNode().get() ); 103 viewer.getEventHandlerList().push_front( new KeyHandler(gl2Scene) );104 viewer.realize();105 while( !viewer.done() )106 {107 viewer.sync();108 viewer.update();109 viewer.frame();110 }111 112 // wait for all cull and draw threads to complete.113 viewer.sync();114 74 115 // run a clean up frame to delete all OpenGL objects. 116 viewer.cleanup_frame(); 75 viewer.addEventHandler( new KeyHandler(gl2Scene) ); 117 76 118 // wait for all the clean up frame to complete. 119 viewer.sync(); 120 return 0; 77 return viewer.run(); 121 78 } 122 79
