16 #include <osgDB/Options>
18 #include <osg/Referenced>
19 #include <osg/ExtendedMaterial>
20 #include <osg/StateAttribute>
36 class DtOsgShaderManager;
38 class DtPossibleFileNamesCache;
40 struct DtVirtualProgramParams;
53 virtual const std::string & effectTypeCode()
const;
56 virtual int effectTextureType()
const;
68 virtual void findEffectTexture(
const std::string& baseTextureName,
const osgDB::Options* dbOptions,
const DtPossibleFileNamesCache& possibleFilenames,
const osg::Texture* baseTexture, osg::ref_ptr<osg::Texture>& effectTexture)
const;
71 virtual bool installShaders(
int baseUnit,
int effectUnit,
const osg::Texture* tex, osg::StateSet* stateSet,
const std::string& baseTextureName)
const {
return true; }
79 virtual osgEarth::VirtualProgram* installVirtualProgram(
int baseUnit,
int effectUnit,
const osg::Texture* tex, osg::StateSet* stateSet,
const std::string& baseTextureName
83 virtual void applyDefaultShaderLODRanges(osgEarth::VirtualProgram* vp,
const std::string&
function)
const;
100 static const osg::StateAttribute::Type EffectTextureUnitStateAttributeType = (osg::StateAttribute::Type)2000;
114 virtual bool isTextureAttribute()
const;
117 virtual int compare(
const osg::StateAttribute& sa)
const;
120 unsigned int texCoordUnit()
const;