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