TuttleOFX  1
OutputBufferPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_OUTPUTBUFFER_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_OUTPUTBUFFER_PLUGIN_HPP_
00003 
00004 #include "OutputBufferDefinitions.hpp"
00005 
00006 #include <tuttle/plugin/ImageEffectGilPlugin.hpp>
00007 
00008 namespace tuttle {
00009 namespace plugin {
00010 namespace outputBuffer {
00011 
00012 struct OutputBufferProcessParams
00013 {
00014         CallbackOutputImagePtr _callbackPtr;
00015         CustomDataPtr _customDataPtr;
00016         CallbackDestroyCustomDataPtr _callbackDestroyPtr;
00017 };
00018 
00019 /**
00020  * @brief OutputBuffer plugin
00021  */
00022 class OutputBufferPlugin : public OFX::ImageEffect
00023 {
00024 public:
00025         OutputBufferPlugin( OfxImageEffectHandle handle );
00026         ~OutputBufferPlugin();
00027 
00028         void changedParam( const OFX::InstanceChangedArgs& args, const std::string& paramName );
00029 
00030         OutputBufferProcessParams getProcessParams() const;
00031 
00032         void render( const OFX::RenderArguments& args );
00033 
00034 public:
00035         /// @group Attributes
00036         /// @{
00037         OFX::Clip* _clipSrc;       ///< Input image clip
00038         OFX::Clip* _clipDst;       ///< Ouput image clip
00039 
00040         OFX::StringParam* _paramCallbackOutputPointer;
00041         OFX::StringParam* _paramCustomData;
00042         OFX::StringParam* _paramCallbackDestroyCustomData;
00043         /// @}
00044         
00045         CustomDataPtr _tempStoreCustomDataPtr; //< keep track of the previous value
00046 };
00047 
00048 }
00049 }
00050 }
00051 
00052 #endif