From 18b5e2a9b87f90b5076ae5bd46f4b93342f2fc14 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 20 Apr 2012 09:53:41 +0000 Subject: [PATCH] From John Kaniarz, "Here's a patch to add new extensions for tessellation shaders to the GLSL plugin." "I went with .tctrl and .teval for the shader extensions." --- src/osgPlugins/glsl/ReaderWriterGLSL.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/osgPlugins/glsl/ReaderWriterGLSL.cpp b/src/osgPlugins/glsl/ReaderWriterGLSL.cpp index 62b53818a..d84af38b6 100644 --- a/src/osgPlugins/glsl/ReaderWriterGLSL.cpp +++ b/src/osgPlugins/glsl/ReaderWriterGLSL.cpp @@ -21,6 +21,8 @@ class ReaderWriterGLSL : public osgDB::ReaderWriter supportsExtension("vert","OpenGL Shader Language format"); supportsExtension("geom","OpenGL Shader Language format"); supportsExtension("glsl","OpenGL Shader Language format"); + supportsExtension("tctrl","OpenGL Shader Language format"); + supportsExtension("teval","OpenGL Shader Language format"); } virtual const char* className() const { return "GLSL Shader Reader"; } @@ -96,6 +98,8 @@ class ReaderWriterGLSL : public osgDB::ReaderWriter if (options->getOptionString().find("fragment")!=std::string::npos) shader->setType(osg::Shader::FRAGMENT); if (options->getOptionString().find("vertex")!=std::string::npos) shader->setType(osg::Shader::VERTEX); if (options->getOptionString().find("geometry")!=std::string::npos) shader->setType(osg::Shader::GEOMETRY); + if (options->getOptionString().find("tesscontrol")!=std::string::npos) shader->setType(osg::Shader::TESSCONTROL); + if (options->getOptionString().find("tessevaluation")!=std::string::npos) shader->setType(osg::Shader::TESSEVALUATION); } // return valid shader @@ -123,6 +127,8 @@ class ReaderWriterGLSL : public osgDB::ReaderWriter if (ext == "frag") shader->setType(osg::Shader::FRAGMENT); if (ext == "vert") shader->setType(osg::Shader::VERTEX); if (ext == "geom") shader->setType(osg::Shader::GEOMETRY); + if (ext == "tctrl") shader->setType(osg::Shader::TESSCONTROL); + if (ext == "teval") shader->setType(osg::Shader::TESSEVALUATION); } } return rr;