Added ImageSequence to .ive plugin, added support for multiple ImageThreads in osgDB::ImagePager

This commit is contained in:
Robert Osfield
2008-07-25 13:45:07 +00:00
parent 0d1656055c
commit ec4d189b64
18 changed files with 293 additions and 65 deletions

View File

@@ -105,6 +105,11 @@ class OSG_EXPORT ImageSequence : public ImageStream
Images _images;
Images::iterator _imageIterator;
double _imageIteratorTime;
typedef std::pair< std::string, osg::ref_ptr<osg::Image> > FileNameImagePair;
typedef std::list< FileNameImagePair > FileNameImageList;
FileNameImageList _filesRequested;
};

View File

@@ -67,6 +67,14 @@ class OSGDB_EXPORT ImagePager : public osg::NodeVisitor::ImageRequestHandler
std::string _name;
};
ImageThread* getImageThread(unsigned int i) { return _imageThreads[i].get(); }
const ImageThread* getImageThread(unsigned int i) const { return _imageThreads[i].get(); }
unsigned int getNumImageThreads() const { return _imageThreads.size(); }
virtual void requestImageFile(const std::string& fileName,osg::Object* attachmentPoint, double timeToMergeBy, const osg::FrameStamp* framestamp);
/** Return true if there are pending updates to the scene graph that require a call to updateSceneGraph(double). */
@@ -144,8 +152,11 @@ class OSGDB_EXPORT ImagePager : public osg::NodeVisitor::ImageRequestHandler
bool _databasePagerThreadPaused;
osg::ref_ptr<ReadQueue> _readQueue;
osg::ref_ptr<ImageThread> _imageThread;
typedef std::vector< osg::ref_ptr<ImageThread> > ImageThreads;
ImageThreads _imageThreads;
osg::ref_ptr<RequestQueue> _completedQueue;
};