TuttleOFX
1
|
00001 #ifndef _BITDEPTH_PROCESS_HPP_ 00002 #define _BITDEPTH_PROCESS_HPP_ 00003 00004 #include <tuttle/plugin/ImageGilFilterProcessor.hpp> 00005 00006 #include <ofxsImageEffect.h> 00007 #include <ofxsMultiThread.h> 00008 00009 #include <boost/scoped_ptr.hpp> 00010 00011 namespace tuttle { 00012 namespace plugin { 00013 namespace bitDepth { 00014 00015 template<class SView, class DView> 00016 class BitDepthProcess : public ImageGilProcessor<DView> 00017 { 00018 typedef typename SView::value_type sPixel; 00019 typedef typename DView::value_type dPixel; 00020 00021 protected: 00022 BitDepthPlugin& _plugin; ///< Rendering plugin 00023 OFX::Clip* _clipSrc; ///< Source image clip 00024 boost::scoped_ptr<OFX::Image> _src; 00025 OfxRectI _srcPixelRod; 00026 SView _srcView; ///< @brief source clip (filters have only one input) 00027 00028 public: 00029 BitDepthProcess( BitDepthPlugin& instance ); 00030 00031 void setup( const OFX::RenderArguments& args ); 00032 00033 void multiThreadProcessImages( const OfxRectI& procWindowRoW ); 00034 }; 00035 00036 } 00037 } 00038 } 00039 00040 #include "BitDepthProcess.tcc" 00041 00042 #endif