TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_LUTPROCESS_HPP_ 00002 #define _TUTTLE_PLUGIN_LUTPROCESS_HPP_ 00003 00004 #include "LutPlugin.hpp" 00005 #include "lutEngine/LutReader.hpp" 00006 #include "lutEngine/Lut.hpp" 00007 00008 #include <tuttle/plugin/global.hpp> 00009 #include <tuttle/plugin/ImageGilFilterProcessor.hpp> 00010 #include <tuttle/plugin/exceptions.hpp> 00011 00012 #include <ofxsImageEffect.h> 00013 #include <ofxsMultiThread.h> 00014 00015 #include <boost/gil/gil_all.hpp> 00016 00017 namespace tuttle { 00018 namespace plugin { 00019 namespace lut { 00020 00021 /** 00022 * @brief Lut process 00023 */ 00024 template<class View> 00025 class LutProcess : public ImageGilFilterProcessor<View> 00026 { 00027 private: 00028 Lut3D* _lut3D; ///< Lut3D 00029 LutPlugin& _plugin; ///< Rendering plugin 00030 00031 public: 00032 LutProcess<View>( LutPlugin & instance ); 00033 00034 void multiThreadProcessImages( const OfxRectI& procWindowRoW ); 00035 00036 // Lut3D Transform 00037 void applyLut( View& dst, View& src, const OfxRectI& procWindow ); 00038 }; 00039 00040 } 00041 } 00042 } 00043 00044 #include "LutProcess.tcc" 00045 00046 #endif