15 #include <osg/Texture>
16 #include <osg/Program>
18 #include <osg/Texture2D>
23 #include <boost/unordered_map.hpp>
56 virtual void setFragmentShaderSource(
const char *source);
63 virtual void setVertexShaderSource(
const char *source);
70 virtual void setFragmentShaderFile(
const std::string& fileName);
77 virtual void setVertexShaderFile(
const std::string& fileName);
84 virtual void setInputTexture(
const DtChannel *channel, osg::Texture2D* texture);
87 virtual void update(
DtChannel *channel) = 0;
92 virtual osg::Texture2D* outputTexture();
97 virtual void setIsFinalEffect(
const DtChannel *channel,
bool final);
101 virtual osg::Camera* cameraForChannel(
const DtChannel *channel);
103 virtual void releaseGLObjects();
106 virtual bool hasEffect(std::string effect);
109 virtual bool effectEnabled(std::string effect);
112 virtual bool anyEffectEnabled();
118 virtual bool enableEffect(std::string effect);
119 virtual bool disableEffect(std::string effect);
123 virtual std::list<std::string> supportedEffects();
127 virtual bool handles2D()
const;
130 virtual const std::string& type()
const;
134 virtual void enablePostProcessor();
135 virtual void disablePostProcessor();
139 virtual bool postProcessorEnabled()
const;
142 virtual void initialize();
147 virtual void addEffect(std::string effect);
150 virtual void setEnablePostProcessor(
bool enabled);
160 typedef std::map<const DtChannel*, osg::ref_ptr<osg::Camera> >
CameraMap;
170 typedef boost::unordered_map<std::string, bool>
EffectMap;