TuttleOFX  1
TuttleOFX/libraries/tuttle/src/tuttle/plugin/ImageEffectGilPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_IMAGEEFFECT_GIL_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_IMAGEEFFECT_GIL_PLUGIN_HPP_
00003 
00004 #include <tuttle/plugin/global.hpp>
00005 #include <tuttle/plugin/exceptions.hpp>
00006 #include <tuttle/plugin/ofxToGil/all.hpp>
00007 
00008 #include <ofxsImageEffect.h>
00009 
00010 namespace tuttle {
00011 namespace plugin {
00012 
00013 /** 
00014  * @brief 
00015  *
00016  */
00017 class ImageEffectGilPlugin : public OFX::ImageEffect
00018 {
00019 public:
00020         ImageEffectGilPlugin( OfxImageEffectHandle handle );
00021         virtual ~ImageEffectGilPlugin() = 0;
00022 
00023 public:
00024     // do not need to delete these, the ImageEffect is managing them for us
00025     OFX::Clip *_clipDst; ///< Destination image clip
00026     OFX::Clip *_clipSrc; ///< Source image clip
00027 };
00028 
00029 
00030 template< template<class> class Process,
00031           bool planar, class Layout, class Bits,
00032           class Plugin >
00033 void doGilRender( Plugin& plugin, const OFX::RenderArguments& args );
00034 
00035 template< template<class> class Process,
00036               bool planar, class Layout,
00037           class Plugin >
00038 void doGilRender( Plugin& plugin, const OFX::RenderArguments& args, const OFX::EBitDepth bitDepth );
00039 
00040 template< template<class> class Process,
00041               bool planar,
00042           class Plugin>
00043 void doGilRender( Plugin& plugin, const OFX::RenderArguments& args, const OFX::EPixelComponent components, const OFX::EBitDepth bitDepth );
00044 
00045 template< template<class> class Process,
00046           class Plugin >
00047 void doGilRender( Plugin& plugin, const OFX::RenderArguments& args, const OFX::Clip& clip );
00048 
00049 /**
00050  * @brief This render function, instanciate a Process class templated with the image type (layout and bit depth).
00051  * @param[in]   args     Rendering parameters
00052  */
00053 template< template<class> class Process,
00054           class Plugin >
00055 void doGilRender( Plugin& plugin, const OFX::RenderArguments& args );
00056 
00057 template< template<class,class> class Process,
00058           bool splanar, class SLayout, class SBits,
00059                   bool dplanar, class DLayout, class DBits,
00060           class Plugin >
00061 void doGilRender2( Plugin& plugin, const OFX::RenderArguments& args );
00062 
00063 template< template<class,class,class> class Process,
00064           bool s1planar, class S1Layout, class S1Bits,
00065           bool s2planar, class S2Layout, class S2Bits,
00066                   bool dplanar, class DLayout, class DBits,
00067           class Plugin>
00068 void doGilRender3( Plugin& plugin, const OFX::RenderArguments& args );
00069 
00070 }
00071 }
00072 
00073 #include "ImageEffectGilPlugin.tcc"
00074 
00075 #endif