TuttleOFX  1
OpenImageIOWriterPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_OPENIMAGEIO_WRITER_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_OPENIMAGEIO_WRITER_PLUGIN_HPP_
00003 
00004 #include "OpenImageIOWriterDefinitions.hpp"
00005 
00006 #include <tuttle/plugin/context/WriterPlugin.hpp>
00007 
00008 #include <typedesc.h>
00009 
00010 namespace tuttle {
00011 namespace plugin {
00012 namespace openImageIO {
00013 namespace writer {
00014 
00015 struct OpenImageIOWriterProcessParams
00016 {
00017         std::string             _filepath;           ///< filepath
00018         ETuttlePluginComponents _components;         ///< Force RGB
00019         ETuttlePluginBitDepth   _bitDepth;           ///< Output bit depth (real bit depth, not the buffer passed to OpenImageIO)
00020 
00021         bool                    _premultiply;        ///< Output premultiply
00022         int                     _quality;            ///< Output quality
00023         int                     _orientation;        ///< Output orientation
00024 };
00025 
00026 /**
00027  * @brief OpenImageIO writer
00028  */
00029 class OpenImageIOWriterPlugin : public WriterPlugin
00030 {
00031 public:
00032         OpenImageIOWriterPlugin( OfxImageEffectHandle handle );
00033 
00034 public:
00035         OpenImageIOWriterProcessParams getProcessParams( const OfxTime time );
00036         void                      render( const OFX::RenderArguments& args );
00037 
00038 public:
00039         OFX::ChoiceParam* _components;             ///< Choose components RGBA/RGB
00040         OFX::IntParam*    _quality;
00041         OFX::ChoiceParam* _orientation;
00042 };
00043 
00044 }
00045 }
00046 }
00047 }
00048 
00049 #endif