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