15 #include <osg/Texture>
16 #include <osg/Program>
18 #include <osg/Texture2D>
23 #include <boost/unordered_map.hpp>
56 void setFragmentShaderSource(
const char *source);
63 void setFragmentShaderFile(
const std::string& fileName);
69 void setInputTexture(
const DtChannel *channel, osg::Texture2D* texture);
72 virtual void update(
DtChannel *channel) = 0;
77 osg::Texture2D* outputTexture();
82 void setIsFinalEffect(
const DtChannel *channel,
bool final);
86 osg::Camera* cameraForChannel(
const DtChannel *channel);
88 virtual void releaseGLObjects();
91 bool hasEffect(std::string effect);
94 bool effectEnabled(std::string effect);
97 bool anyEffectEnabled();
103 virtual bool enableEffect(std::string effect);
104 virtual bool disableEffect(std::string effect);
108 std::list<std::string> supportedEffects();
112 bool handles2D()
const;
115 const std::string& type()
const;
119 virtual void enablePostProcessor();
120 virtual void disablePostProcessor();
124 bool postProcessorEnabled()
const;
132 void addEffect(std::string effect);
135 void setEnablePostProcessor(
bool enabled);
146 typedef std::map<const DtChannel*, osg::ref_ptr<osg::Camera> >
CameraMap;
156 typedef boost::unordered_map<std::string, bool>
EffectMap;