From 20f8fedfcc26769e9b04128a77bc40f6136e0d39 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 24 Apr 2007 19:08:52 +0000 Subject: [PATCH] From Jeremy Moles, Added check for image transluceny to image loaded code, placing the image quad into the transparent bin for images with alpha values. --- src/osgDB/ReadFile.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/osgDB/ReadFile.cpp b/src/osgDB/ReadFile.cpp index cfcda96da..22b047898 100644 --- a/src/osgDB/ReadFile.cpp +++ b/src/osgDB/ReadFile.cpp @@ -119,10 +119,23 @@ Node* osgDB::readNodeFiles(osg::ArgumentParser& arguments,const ReaderWriter::Op NodeList nodeList; std::string filename; + while (arguments.read("--image",filename)) { osg::ref_ptr image = readImageFile(filename.c_str(), options); - if (image.valid()) nodeList.push_back(osg::createGeodeForImage(image.get())); + if (image.valid()) + { + osg::Geode* geode = osg::createGeodeForImage(image.get()); + + if (image->isImageTranslucent()) + { + osg::notify()<<"Image "<getFileName()<<" is translucent; setting up blending."<getOrCreateStateSet()->setMode(GL_BLEND, osg::StateAttribute::ON); + geode->getOrCreateStateSet()->setRenderingHint(osg::StateSet::TRANSPARENT_BIN); + } + + nodeList.push_back(geode); + } } while (arguments.read("--movie",filename))