TuttleOFX  1
PrintProcess.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_PRINT_PROCESS_HPP_
00002 #define _TUTTLE_PLUGIN_PRINT_PROCESS_HPP_
00003 
00004 #include <tuttle/plugin/ImageGilFilterProcessor.hpp>
00005 
00006 #include <caca.h>
00007 
00008 namespace tuttle {
00009 namespace plugin {
00010 namespace print {
00011 
00012 struct CacaViewer
00013 {
00014         caca_display_t *dp;
00015         caca_event_t    ev;
00016         caca_canvas_t  *cv;
00017 };
00018 
00019 /**
00020  * @brief Print process
00021  *
00022  */
00023 template<class View>
00024 class PrintProcess : public ImageGilFilterProcessor<View>
00025 {
00026 public:
00027         typedef typename View::value_type Pixel;
00028         typedef typename boost::gil::channel_type<View>::type Channel;
00029         typedef float Scalar;
00030 protected:
00031     PrintPlugin&    _plugin;            ///< Rendering plugin
00032         PrintProcessParams<Scalar> _params; ///< parameters
00033 
00034 public:
00035     PrintProcess( PrintPlugin& effect );
00036     ~PrintProcess();
00037         void setup( const OFX::RenderArguments& args );
00038 
00039     void multiThreadProcessImages( const OfxRectI& procWindowRoW );
00040 
00041 
00042 private:
00043     CacaViewer viewerOpenGL;
00044 };
00045 
00046 }
00047 }
00048 }
00049 
00050 #include "PrintProcess.tcc"
00051 
00052 #endif