13 #include <osg/Referenced>
14 #include <osgDB/Options>
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 FilenameSet& possibleFilenames);
54 virtual osg::Texture* findEffectTexture(
const std::string& baseTextureName,
const osgDB::Options* dbOptions,
const FilenameSet &possibleFilenames,
osg::Texture* baseTexture);
57 virtual bool generateShaders(
int baseUnit,
int effectUnit,
osg::Texture* tex, osg::StateSet* stateSet,
const std::string& baseTextureName) {
return true; }
66 virtual bool effectTextureInstalled(
osg::Texture* baseTexture, 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;