From Art Trevs, add support for saving external shader files.

From Robert Osfield, adding missing member variable initializes and Output::getShaderFileNameForOutput() implementation
This commit is contained in:
Robert Osfield
2008-03-04 14:04:48 +00:00
parent 02b52cb73a
commit c4d07194a2
22 changed files with 515 additions and 19 deletions

View File

@@ -13,6 +13,7 @@
#include <osg/Notify>
#include <osg/Object>
#include <osg/Image>
#include <osg/Shader>
#include <osg/ImageStream>
#include <osg/Node>
#include <osg/Group>
@@ -45,6 +46,14 @@ Image* osgDB::readImageFile(const std::string& filename,const ReaderWriter::Opti
return NULL;
}
Shader* osgDB::readShaderFile(const std::string& filename,const ReaderWriter::Options* options)
{
ReaderWriter::ReadResult rr = Registry::instance()->readShader(filename,options);
if (rr.validShader()) return rr.takeShader();
if (rr.error()) notify(WARN) << rr.message() << std::endl;
return NULL;
}
HeightField* osgDB::readHeightFieldFile(const std::string& filename,const ReaderWriter::Options* options)
{
@@ -255,6 +264,14 @@ osg::ref_ptr<osg::Image> osgDB::readRefImageFile(const std::string& filename,con
return NULL;
}
osg::ref_ptr<osg::Shader> osgDB::readRefShaderFile(const std::string& filename,const ReaderWriter::Options* options)
{
ReaderWriter::ReadResult rr = Registry::instance()->readShader(filename,options);
if (rr.validShader()) return osg::ref_ptr<osg::Shader>(rr.getShader());
if (rr.error()) notify(WARN) << rr.message() << std::endl;
return NULL;
}
osg::ref_ptr<osg::HeightField> osgDB::readRefHeightFieldFile(const std::string& filename,const ReaderWriter::Options* options)
{
ReaderWriter::ReadResult rr = Registry::instance()->readHeightField(filename,options);