TuttleOFX  1
CTLProcess.hpp
Go to the documentation of this file.
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