TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_OCIOLutProcess_HPP_ 00002 #define _TUTTLE_PLUGIN_OCIOLutProcess_HPP_ 00003 00004 #include "OCIOLutPlugin.hpp" 00005 00006 #include <OpenColorIO/OpenColorIO.h> 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 ocio{ 00020 namespace lut { 00021 00022 namespace OCIO = OCIO_NAMESPACE; 00023 00024 /** 00025 * @brief Lut process 00026 */ 00027 template<class View> 00028 class OCIOLutProcess : public ImageGilFilterProcessor<View> 00029 { 00030 private: 00031 OCIOLutPlugin& _plugin; ///< Rendering plugin 00032 OCIOLutProcessParams _params; ///< parameters 00033 00034 OCIO::FileTransformRcPtr fileTransform; 00035 OCIO::GroupTransformRcPtr groupTransform; 00036 OCIO::ConfigRcPtr config; 00037 00038 public: 00039 OCIOLutProcess<View>( OCIOLutPlugin & instance ); 00040 void setup( const OFX::RenderArguments& args ); 00041 00042 void multiThreadProcessImages( const OfxRectI& procWindowRoW ); 00043 00044 // Lut Transform 00045 void applyLut( View& dst, View& src ); 00046 }; 00047 00048 } 00049 } 00050 } 00051 } 00052 00053 #include "OCIOLutProcess.tcc" 00054 00055 #endif