TuttleOFX  1
FadeProcess.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_FADE_PROCESS_HPP_
00002 #define _TUTTLE_PLUGIN_FADE_PROCESS_HPP_
00003 
00004 #include <tuttle/plugin/ImageGilFilterProcessor.hpp>
00005 
00006 namespace tuttle {
00007 namespace plugin {
00008 namespace fade {
00009 
00010 /**
00011  * @brief Fade process
00012  *
00013  */
00014 template<class View>
00015 class FadeProcess : public ImageGilProcessor<View>
00016 {
00017 public:
00018         typedef typename View::value_type Pixel;
00019         typedef typename boost::gil::channel_type<View>::type Channel;
00020         typedef float Scalar;
00021 protected:
00022     FadePlugin&    _plugin;            ///< Rendering plugin
00023         FadeProcessParams _params; ///< parameters
00024 
00025         View _srcViewA; ///< Source view A
00026         View _srcViewB; ///< Source view B
00027         boost::scoped_ptr<OFX::Image> _srcA;
00028         boost::scoped_ptr<OFX::Image> _srcB;
00029         OfxRectI _srcPixelRodA;
00030         OfxRectI _srcPixelRodB;
00031         
00032 public:
00033     FadeProcess( FadePlugin& effect );
00034 
00035         void setup( const OFX::RenderArguments& args );
00036 
00037     void multiThreadProcessImages( const OfxRectI& procWindowRoW );
00038 };
00039 
00040 }
00041 }
00042 }
00043 
00044 #include "FadeProcess.tcc"
00045 
00046 #endif