17 #include <osg/Texture>
18 #include <osg/Program>
20 #include <osg/Texture2D>
25 #include <boost/unordered_map.hpp>
46 virtual void operator()(osg::Node* node, osg::NodeVisitor* nv);
84 virtual void setFragmentShaderSource(
const char *
source);
91 virtual void setVertexShaderSource(
const char *
source);
98 virtual void setFragmentShaderFile(
const std::string& fileName);
105 virtual void setVertexShaderFile(
const std::string& fileName);
112 virtual void setInputTexture(
const DtChannel *channel, osg::Texture* texture);
115 virtual bool update(
DtChannel *channel) = 0;
120 virtual osg::Texture* outputTexture();
125 virtual void setIsFinalEffect(
const DtChannel *channel,
bool final);
129 virtual osg::Camera* cameraForChannel(
const DtChannel *channel);
133 virtual void slot_releaseResources();
137 virtual void releaseGLObjects();
140 virtual bool hasEffect(
const std::string& effect);
143 virtual bool effectEnabled(
const std::string& effect);
146 virtual bool anyEffectEnabled();
149 virtual bool enableEffect(
const std::string& effect);
153 virtual bool disableEffect(
const std::string& effect);
157 virtual std::list<std::string> supportedEffects();
161 virtual bool handles2D()
const;
164 virtual const std::string& type()
const;
167 virtual void enablePostProcessor();
169 virtual void disablePostProcessor();
173 virtual bool postProcessorEnabled()
const;
179 virtual bool needsOcclusionTexture()
const;
184 typedef boost::unordered_map<std::string, bool>
EffectMap;
186 virtual bool effectItrEnabled(
const EffectMap::iterator &effect);
188 virtual void initialize();
193 virtual void addEffect(std::string effect);
196 virtual void setEnablePostProcessor(
bool enabled);
206 typedef std::map<const DtChannel*, osg::ref_ptr<osg::Camera> >
CameraMap;
std::map< const DtChannel *, osg::ref_ptr< osg::Camera > > CameraMap
Definition: DtPostProcessor.h:206
bool myDirty
Definition: DtPostProcessor.h:53
CameraMap myCameraMap
Definition: DtPostProcessor.h:207
DtPostProcessorCreator is the common base class for all post processor creators.
Definition: DtPostProcessor.h:232
osg::ref_ptr< osg::Program > myProgram
Definition: DtPostProcessor.h:201
osg::ref_ptr< osg::Shader > myVertexShader
Definition: DtPostProcessor.h:203
Factory to create the specific DtPostProcessors registered when vrvOsg starts up. ...
Definition: DtPostProcessorFactory.h:26
DtPostProcessorCullVistorCallback()
Definition: DtPostProcessor.h:40
osg::ref_ptr< osg::Texture > myOutputTexture
Definition: DtPostProcessor.h:200
virtual void setDirty(bool flag)
setter for the dirty flag
DtSignalConnectionManager mySignals
Definition: DtPostProcessor.h:226
osg::ref_ptr< osg::Geode > myQuad
Definition: DtPostProcessor.h:204
bool myHandles2DFlag
Definition: DtPostProcessor.h:209
The abstract Channel Class.
Definition: DtChannel.h:35
bool myEnabledFlag
Definition: DtPostProcessor.h:210
EffectMap myEffects
Definition: DtPostProcessor.h:216
std::map< const DtChannel *, CallbackRefPtr > CallbackMap
Definition: DtPostProcessor.h:221
This class provides the OSG-specific management of post-processing effects.
Definition: DtPostProcessManager.h:25
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::string myType
Definition: DtPostProcessor.h:213
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
const char * source
Definition: lz4.h:442
Contains DLL export macros.
osg::ref_ptr< osg::Shader > myFragmentShader
Definition: DtPostProcessor.h:202
Base class to provide boost signal/slot management.
osg::ref_ptr< DtPostProcessorCullVistorCallback > CallbackRefPtr
Definition: DtPostProcessor.h:220
Definition: DtPostProcessor.h:36
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
virtual void operator()(osg::Node *node, osg::NodeVisitor *nv)
DtDe & myDe
Definition: DtPostProcessor.h:225
boost::unordered_map< std::string, bool > EffectMap
Definition: DtPostProcessor.h:184
CallbackMap myCullCallbackMap
Definition: DtPostProcessor.h:223
This class provides the OSG-specific implementation of a post processor. A post processor has a type ...
Definition: DtPostProcessor.h:66