From df2964c3151321d3c04230e25565c36862f7566a Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 4 Mar 2009 13:24:36 +0000 Subject: [PATCH] Added handling of ImageStream Origin to make sure the movie always appears the correct way up. --- src/osgDB/ReadFile.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osgDB/ReadFile.cpp b/src/osgDB/ReadFile.cpp index 5a93fd035..ddde42b28 100644 --- a/src/osgDB/ReadFile.cpp +++ b/src/osgDB/ReadFile.cpp @@ -158,6 +158,8 @@ Node* osgDB::readNodeFiles(osg::ArgumentParser& arguments,const ReaderWriter::Op osg::ref_ptr imageStream = dynamic_cast(image.get()); if (imageStream.valid()) { + bool flip = image->getOrigin()==osg::Image::TOP_LEFT; + // start the stream playing. imageStream->play(); @@ -169,7 +171,7 @@ Node* osgDB::readNodeFiles(osg::ArgumentParser& arguments,const ReaderWriter::Op pictureQuad = osg::createTexturedQuadGeometry(osg::Vec3(0.0f,0.0f,0.0f), osg::Vec3(image->s(),0.0f,0.0f), osg::Vec3(0.0f,0.0f,image->t()), - 0.0f,image->t(), image->s(),0.0f); + 0.0f, flip ? image->t() : 0.0, image->s(), flip ? 0.0 : image->t()); pictureQuad->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::TextureRectangle(image.get()), @@ -180,7 +182,7 @@ Node* osgDB::readNodeFiles(osg::ArgumentParser& arguments,const ReaderWriter::Op pictureQuad = osg::createTexturedQuadGeometry(osg::Vec3(0.0f,0.0f,0.0f), osg::Vec3(image->s(),0.0f,0.0f), osg::Vec3(0.0f,0.0f,image->t()), - 0.0f,0.0f, 1.0f,1.0f); + 0.0f, flip ? 1.0f : 0.0f , 1.0f, flip ? 0.0f : 1.0f); pictureQuad->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::Texture2D(image.get()),