13 #include <osg/Referenced>
14 #include <osgDB/Options>
19 #include <boost/thread.hpp>
32 class DtOsgShaderManager;
46 virtual std::string getEffectTypeCode()
const =0;
51 virtual osg::Texture* installEffectTexture(
osg::Texture* baseTexture,
int texUnit, osg::StateSet* stateSet,
const osgDB::Options* dbOptions,
const FilenameMap& possibleFilenames);
54 virtual void findEffectTexture(
const std::string& baseTextureName,
const osgDB::Options* dbOptions,
const FilenameMap &possibleFilenames,
const osg::Texture* baseTexture, osg::ref_ptr<osg::Texture>& effectTexture);
57 virtual bool generateShaders(
int baseUnit,
int effectUnit,
osg::Texture* tex, osg::StateSet* stateSet,
const std::string& baseTextureName) {
return true; }
66 virtual bool effectTextureInstalled(
const std::string& baseTextureName, osg::StateSet* stateSet)
const;
69 static std::string getTextureFilePath(
osg::Texture* texture);
72 std::string getExtendedFileName(
const std::string& baseFileName)
const;
76 void getPossibleEffectTextureFileNames(
const std::string& baseFileName, std::vector<std::string>& output)
const;
88 void applyDefaultShaderLODRanges(osgEarth::VirtualProgram* vp,
const std::string&
function)
const;