TuttleOFX
1
|
00001 00002 #include "PrintPlugin.hpp" 00003 #include "PrintProcess.hpp" 00004 #include "PrintDefinitions.hpp" 00005 00006 #include <boost/gil/gil_all.hpp> 00007 00008 namespace tuttle { 00009 namespace plugin { 00010 namespace print { 00011 00012 00013 PrintPlugin::PrintPlugin( OfxImageEffectHandle handle ) 00014 : ImageEffectGilPlugin( handle ) 00015 { 00016 _paramMode = fetchChoiceParam ( kParamMode ); 00017 _paramOutput = fetchChoiceParam ( kParamOutput ); 00018 _paramColor = fetchChoiceParam ( kParamColor ); 00019 _paramPixel = fetchInt2DParam ( kParamPixel ); 00020 _paramRegionMin = fetchInt2DParam ( kParamRegionMin ); 00021 _paramRegionMax = fetchInt2DParam ( kParamRegionMax ); 00022 _paramOutputColumns = fetchIntParam ( kParamColumns ); 00023 _paramFlip = fetchBooleanParam( kParamFlip ); 00024 _paramOpenGlWindow = fetchBooleanParam( kParamOutputOpenGL ); 00025 00026 updateParams( ); 00027 } 00028 00029 void PrintPlugin::updateParams() 00030 { 00031 _paramPixel -> setIsSecretAndDisabled( true ); 00032 _paramRegionMin -> setIsSecretAndDisabled( true ); 00033 _paramRegionMax -> setIsSecretAndDisabled( true ); 00034 if( _paramMode->getValue() == eParamModeRegion ) 00035 { 00036 _paramRegionMin -> setIsSecretAndDisabled( false ); 00037 _paramRegionMax -> setIsSecretAndDisabled( false ); 00038 } 00039 if( _paramMode->getValue() == eParamModePixel ) 00040 { 00041 _paramPixel -> setIsSecretAndDisabled( false ); 00042 } 00043 } 00044 00045 PrintProcessParams<PrintPlugin::Scalar> PrintPlugin::getProcessParams( const OfxPointD& renderScale ) const 00046 { 00047 PrintProcessParams<Scalar> params; 00048 00049 params._mode = static_cast<EParamMode>( _paramMode->getValue() ); 00050 params._output = static_cast<EParamOutput>( _paramOutput->getValue() ); 00051 OfxPointI pix = _paramPixel->getValue(); 00052 params._pixel.x = pix.x; 00053 params._pixel.y = pix.y; 00054 OfxPointI rMin = _paramRegionMin->getValue(); 00055 OfxPointI rMax = _paramRegionMax->getValue(); 00056 params._region.x1 = rMin.x; 00057 params._region.y1 = rMin.y; 00058 params._region.x2 = rMax.x; 00059 params._region.y2 = rMax.y; 00060 params._flip = _paramFlip->getValue(); 00061 params._openGlViewer = _paramOpenGlWindow->getValue(); 00062 params._colorMode = ( EParamColor ) _paramColor->getValue(); 00063 params._cols = _paramOutputColumns->getValue(); 00064 return params; 00065 } 00066 00067 void PrintPlugin::changedParam( const OFX::InstanceChangedArgs &args, const std::string ¶mName ) 00068 { 00069 updateParams(); 00070 } 00071 00072 00073 bool PrintPlugin::isIdentity( const OFX::RenderArguments& args, OFX::Clip*& identityClip, double& identityTime ) 00074 { 00075 return false; 00076 } 00077 00078 /** 00079 * @brief The overridden render function 00080 * @param[in] args Rendering parameters 00081 */ 00082 void PrintPlugin::render( const OFX::RenderArguments &args ) 00083 { 00084 doGilRender<PrintProcess>( *this, args ); 00085 } 00086 00087 00088 } 00089 } 00090 }