TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_CTL_PROCESS_HPP_ 00002 #define _TUTTLE_PLUGIN_CTL_PROCESS_HPP_ 00003 00004 #include <tuttle/plugin/ImageGilFilterProcessor.hpp> 00005 00006 #include <CtlSimdInterpreter.h> 00007 00008 namespace tuttle { 00009 namespace plugin { 00010 namespace ctl { 00011 00012 /** 00013 * @brief CTL process 00014 * 00015 */ 00016 template<class View> 00017 class CTLProcess : public ImageGilFilterProcessor<View> 00018 { 00019 public: 00020 typedef typename View::value_type Pixel; 00021 typedef typename boost::gil::channel_type<View>::type Channel; 00022 typedef float Scalar; 00023 protected: 00024 CTLPlugin& _plugin; ///< Rendering plugin 00025 CTLProcessParams<Scalar> _params; ///< parameters 00026 00027 Ctl::SimdInterpreter _interpreter; 00028 00029 public: 00030 CTLProcess( CTLPlugin& effect ); 00031 00032 void setup( const OFX::RenderArguments& args ); 00033 00034 void multiThreadProcessImages( const OfxRectI& procWindowRoW ); 00035 }; 00036 00037 } 00038 } 00039 } 00040 00041 #include "CTLProcess.tcc" 00042 00043 #endif