TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_WRITERPLUGINFACTORY_HPP_ 00002 #define _TUTTLE_PLUGIN_WRITERPLUGINFACTORY_HPP_ 00003 00004 #include "WriterDefinition.hpp" 00005 00006 #include <tuttle/plugin/exceptions.hpp> 00007 00008 #include <ofxsImageEffect.h> 00009 #include <ofxsMultiThread.h> 00010 00011 namespace tuttle { 00012 namespace plugin { 00013 00014 void describeWriterParamsInContext( OFX::ImageEffectDescriptor& desc, 00015 OFX::EContext context ) 00016 { 00017 OFX::StringParamDescriptor* filename = desc.defineStringParam( kTuttlePluginFilename ); 00018 filename->setLabel( kTuttlePluginFilenameLabel ); 00019 filename->setStringType( OFX::eStringTypeFilePath ); 00020 filename->setCacheInvalidation( OFX::eCacheInvalidateValueAll ); 00021 desc.addClipPreferencesSlaveParam( *filename ); 00022 00023 OFX::ChoiceParamDescriptor* channel = desc.defineChoiceParam( kTuttlePluginChannel ); 00024 channel->setLabel( kTuttlePluginChannelLabel ); 00025 channel->appendOption( kTuttlePluginChannelAuto ); 00026 channel->appendOption( kTuttlePluginChannelGray ); 00027 channel->appendOption( kTuttlePluginChannelRGB ); 00028 channel->appendOption( kTuttlePluginChannelRGBA ); 00029 channel->setDefault( 0 ); 00030 00031 OFX::ChoiceParamDescriptor* bitDepth = desc.defineChoiceParam( kTuttlePluginBitDepth ); 00032 bitDepth->setLabel( kTuttlePluginBitDepthLabel ); 00033 bitDepth->appendOption( kTuttlePluginBitDepth8 ); 00034 bitDepth->appendOption( kTuttlePluginBitDepth16 ); 00035 bitDepth->setDefault( 0 ); 00036 00037 OFX::BooleanParamDescriptor* premult = desc.defineBooleanParam( kParamPremultiplied ); 00038 premult->setLabel( kParamPremultipliedLabel ); 00039 premult->setDefault( false ); 00040 00041 OFX::PushButtonParamDescriptor* render = desc.definePushButtonParam( kParamWriterRender ); 00042 render->setLabels( "Render", "Render", "Render step" ); 00043 render->setHint("Force render (writing)"); 00044 00045 OFX::BooleanParamDescriptor* renderAlways = desc.defineBooleanParam( kParamWriterRenderAlways ); 00046 renderAlways->setLabel( "Render always" ); 00047 // renderAlways->setDefault( false ); 00048 renderAlways->setDefault( true ); // because tuttle is not declared as a background renderer 00049 00050 OFX::IntParamDescriptor* forceNewRender = desc.defineIntParam( kParamWriterForceNewRender ); 00051 forceNewRender->setLabel( "Force new render" ); 00052 forceNewRender->setEnabled( false ); 00053 forceNewRender->setIsSecret( true ); 00054 forceNewRender->setIsPersistant( false ); 00055 forceNewRender->setAnimates( false ); 00056 forceNewRender->setCacheInvalidation( OFX::eCacheInvalidateValueAll ); 00057 forceNewRender->setEvaluateOnChange( true ); 00058 forceNewRender->setDefault( 0 ); 00059 } 00060 00061 } 00062 } 00063 00064 00065 #endif 00066