From Bryan Thrall, "The attached ReaderWriterGLSL.cpp conveniently sets the shader type when
the filename extension is "vert" or "frag" but still lets this be overridden by the Options (for those crazy people who store their fragment shaders in .vert files :) )."
This commit is contained in:
parent
f2fb93aeec
commit
9a4e17b766
@ -62,7 +62,17 @@ class ReaderWriterGLSL : public osgDB::ReaderWriter
|
|||||||
osgDB::ifstream istream(fileName.c_str(), std::ios::in | std::ios::binary);
|
osgDB::ifstream istream(fileName.c_str(), std::ios::in | std::ios::binary);
|
||||||
if(!istream) return ReadResult::FILE_NOT_HANDLED;
|
if(!istream) return ReadResult::FILE_NOT_HANDLED;
|
||||||
ReadResult rr = readShader(istream, options);
|
ReadResult rr = readShader(istream, options);
|
||||||
if(rr.validShader()) rr.getShader()->setFileName(file);
|
if(rr.validShader())
|
||||||
|
{
|
||||||
|
osg::Shader* shader = rr.getShader();
|
||||||
|
shader->setFileName(file);
|
||||||
|
if (shader->getType() == osg::Shader::UNDEFINED)
|
||||||
|
{
|
||||||
|
// set type based on filename extension, where possible
|
||||||
|
if (ext == "frag") shader->setType(osg::Shader::FRAGMENT);
|
||||||
|
if (ext == "vert") shader->setType(osg::Shader::VERTEX);
|
||||||
|
}
|
||||||
|
}
|
||||||
return rr;
|
return rr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user