TuttleOFX
1
|
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