Show
Ignore:
Timestamp:
09/22/08 18:18:02 (6 years ago)
Author:
robert
Message:

Added --page-and-discard, --page-and-retain, --preload and --length command line options

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgimagesequence/osgimagesequence.cpp

    r8916 r8918  
    4646{ 
    4747    osg::ref_ptr<osg::ImageSequence> imageSequence = new osg::ImageSequence; 
     48 
     49    bool preLoad = true; 
     50         
     51    while (arguments.read("--page-and-discard")) 
     52    { 
     53        imageSequence->setMode(osg::ImageSequence::PAGE_AND_DISCARD_USED_IMAGES); 
     54        preLoad = false; 
     55    } 
     56     
     57    while (arguments.read("--page-and-retain")) 
     58    { 
     59        imageSequence->setMode(osg::ImageSequence::PAGE_AND_RETAIN_IMAGES); 
     60        preLoad = false; 
     61    } 
     62     
     63    while (arguments.read("--preload")) 
     64    { 
     65        imageSequence->setMode(osg::ImageSequence::PRE_LOAD_ALL_IMAGES); 
     66        preLoad = true; 
     67    } 
     68     
     69    double length = -1.0; 
     70    while (arguments.read("--length",length)) {} 
    4871     
    4972    if (arguments.argc()>1) 
     
    5174        for(unsigned int i=1; i<arguments.argc(); ++i) 
    5275        { 
    53             osg::ref_ptr<osg::Image> image = osgDB::readImageFile(arguments[i]); 
    54             if (image.valid()) 
    55             { 
    56                 imageSequence->addImage(image.get()); 
    57             } 
    58         } 
    59         imageSequence->setLength(float(imageSequence->getImages().size())*0.1f); 
     76            if (preLoad) 
     77            { 
     78                osg::ref_ptr<osg::Image> image = osgDB::readImageFile(arguments[i]); 
     79                if (image.valid()) 
     80                { 
     81                    imageSequence->addImage(image.get()); 
     82                } 
     83            } 
     84            else 
     85            { 
     86                imageSequence->addImageFile(arguments[i]); 
     87            } 
     88        } 
     89         
     90        if (length>0.0) 
     91        { 
     92            imageSequence->setLength(length); 
     93        } 
     94        else 
     95        { 
     96            imageSequence->setLength(float(imageSequence->getImages().size())*0.1f); 
     97        } 
    6098    } 
    6199    else 
    62100    { 
    63         imageSequence->setLength(4.0); 
     101        if (length>0.0) 
     102        { 
     103            imageSequence->setLength(length); 
     104        } 
     105        else 
     106        { 
     107            imageSequence->setLength(4.0); 
     108        } 
    64109        imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/posx.png")); 
    65110        imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/negx.png"));