Added ImageSequence IO support in Texture classes

This commit is contained in:
Robert Osfield
2008-07-22 12:40:02 +00:00
parent 5ab73e9f80
commit 14771d3a4d
6 changed files with 203 additions and 62 deletions

View File

@@ -1,4 +1,5 @@
#include "osg/TextureRectangle"
#include "osg/ImageSequence"
#include "osgDB/Registry"
#include "osgDB/Input"
@@ -53,6 +54,12 @@ bool TextureRectangle_readLocalData(Object& obj, Input& fr)
fr += 2;
iteratorAdvanced = true;
}
if (fr[0].matchWord("ImageSequence") || fr[0].matchWord("Image"))
{
osg::Image* image = fr.readImage();
if (image) texture.setImage(image);
}
return iteratorAdvanced;
}
@@ -64,19 +71,27 @@ bool TextureRectangle_writeLocalData(const Object& obj, Output& fw)
if (texture.getImage())
{
std::string fileName = texture.getImage()->getFileName();
if (fw.getOutputTextureFiles())
const osg::ImageSequence* is = dynamic_cast<const osg::ImageSequence*>(texture.getImage());
if (is)
{
if (fileName.empty())
{
fileName = fw.getTextureFileNameForOutput();
}
osgDB::writeImageFile(*texture.getImage(), fileName);
fw.writeObject(*is);
}
if (!fileName.empty())
{
fw.indent() << "file "<<fw.wrapString(fw.getFileNameForOutput(fileName))<< std::endl;
else
{
std::string fileName = texture.getImage()->getFileName();
if (fw.getOutputTextureFiles())
{
if (fileName.empty())
{
fileName = fw.getTextureFileNameForOutput();
}
osgDB::writeImageFile(*texture.getImage(), fileName);
}
if (!fileName.empty())
{
fw.indent() << "file "<<fw.wrapString(fw.getFileNameForOutput(fileName))<< std::endl;
}
}
}