TuttleOFX
1
|
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