void BasicExamplePluginFactory::describe(OFX::ImageEffectDescriptor& desc) { // basic labels desc.setLabels("Gain", "Gain", "Gain"); desc.setPluginGrouping("OFX"); // add the supported contexts, only filter at the moment desc.addSupportedContext(eContextFilter); desc.addSupportedContext(eContextGeneral); desc.addSupportedContext(eContextPaint); // add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setOverlayInteractDescriptor( new BasicExampleOverlayDescriptor); }
void SwitchPluginFactory::describe(OFX::ImageEffectDescriptor &desc) { // basic labels desc.setLabels(kPluginName, kPluginName, kPluginName); desc.setPluginGrouping(kPluginGrouping); desc.setPluginDescription(kPluginDescription); // add the supported contexts desc.addSupportedContext(eContextGeneral); desc.addSupportedContext(eContextFilter); // add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); #ifdef OFX_EXTENSIONS_NUKE // Enable transform by the host. // It is only possible for transforms which can be represented as a 3x3 matrix. desc.setCanTransform(true); #endif }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void ConstantPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { desc.setLabels( "TuttleConstant", "Constant", "Constant" ); desc.setPluginGrouping( "tuttle/image/generator" ); desc.setDescription( "Constant" "\n" "is a simple generator of a color." ); // add the supported contexts desc.addSupportedContext( OFX::eContextGenerator ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderFullySafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsTiles( kSupportTiles ); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void TurboJpegWriterPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { desc.setLabels( "TuttleTurboJpegWriter", "TurboJpegWriter", "Turbo Jpeg file writer" ); desc.setPluginGrouping( "tuttle/image/io" ); using namespace boost::assign; std::vector<std::string> supportedExtensions; supportedExtensions += "jpeg", "jpg", "jpe", "jfif", "jfi"; desc.setDescription( "Turbo Jpeg File writer\n" "Plugin is used to write jpeg files.\n\n" "supported extensions: \n" + boost::algorithm::join( supportedExtensions, ", " ) ); // add the supported contexts desc.addSupportedContext( OFX::eContextWriter ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderFullySafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsTiles( kSupportTiles ); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void EXRReaderPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { desc.setLabels( "TuttleExrReader", "ExrReader", "Exr file reader" ); desc.setPluginGrouping( "tuttle/image/io" ); desc.setDescription( "EXR File reader\n" "Plugin is used to read exr files.\n" ); // add the supported contexts desc.addSupportedContext( OFX::eContextReader ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // add supported extensions desc.addSupportedExtension( "exr" ); desc.setPluginEvaluation( 90 ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderFullySafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsTiles( kSupportTiles ); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void JpegReaderPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { desc.setLabels( "TuttleJpegReader", "JpegReader", "Jpeg file reader" ); desc.setPluginGrouping( "tuttle/image/io" ); desc.setDescription( "<b>JPEG File reader</b> plugin is used to read jpeg files. <br />" ); // add the supported contexts desc.addSupportedContext( OFX::eContextReader ); desc.addSupportedContext( OFX::eContextGenerator ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthFloat ); desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderFullySafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsTiles( kSupportTiles ); }
void InvertPluginFactory::describe(OFX::ImageEffectDescriptor &desc) { // basic labels desc.setLabels(kPluginName, kPluginName, kPluginName); desc.setPluginGrouping(kPluginGrouping); desc.setPluginDescription(kPluginDescription); // add the supported contexts desc.addSupportedContext(eContextFilter); desc.addSupportedContext(eContextGeneral); desc.addSupportedContext(eContextPaint); // add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); }
void CrossFadeExamplePluginFactory::describe(OFX::ImageEffectDescriptor &desc) { // basic labels desc.setLabels("Cross Fade", "Cross Fade", "Cross Fade"); desc.setPluginGrouping("OFX"); // Say we are a transition context desc.addSupportedContext(eContextTransition); desc.addSupportedContext(eContextGeneral); // Add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); }
/** * @brief Override this to describe the writer. * You should call the base-class version at the end like this: * GenericWriterPluginFactory<YOUR_FACTORY>::describe(desc); **/ void GenericWriterDescribe(OFX::ImageEffectDescriptor &desc) { desc.setPluginGrouping(kWriterGrouping); #ifdef OFX_EXTENSIONS_TUTTLE desc.addSupportedContext(OFX::eContextWriter); #endif desc.addSupportedContext(OFX::eContextGeneral); // OCIO is only supported for float images. //desc.addSupportedBitDepth(eBitDepthUByte); //desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(false); desc.setSupportsTiles(false); desc.setTemporalClipAccess(false); // say we will be doing random time access on clips desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setRenderThreadSafety(OFX::eRenderInstanceSafe); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void PngWriterPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { desc.setLabels( "TuttlePngWriter", "PngWriter", "Png file writer" ); desc.setPluginGrouping( "tuttle/image/io" ); // add the supported contexts desc.addSupportedContext( OFX::eContextWriter ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // add supported extensions desc.addSupportedExtension( "png" ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderFullySafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsTiles( kSupportTiles ); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void Jpeg2000WriterPluginFactory::describe( OFX::ImageEffectDescriptor &desc ) { desc.setLabels( "TuttleJpeg2000Writer", "Jpeg2000Writer", "Jpeg 2000 image writer" ); desc.setPluginGrouping( "tuttle/image/io" ); desc.setDescription( "Jpeg2000 writer\n" "plugin is used to output jpeg 2000 files.\n" "In the filename pattern, put @ where you want your incrementation to be." ); // add the supported contexts desc.addSupportedContext( OFX::eContextWriter ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // add supported extensions desc.addSupportedExtension( "j2k" ); //desc.addSupportedExtension( "jp2" ); //desc.addSupportedExtension( "j2c" ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderFullySafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsTiles( kSupportTiles ); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void SeExprPluginFactory::describe(OFX::ImageEffectDescriptor& desc) { desc.setLabels("TuttleSeExpr", "SeExpr", "SeExpr"); desc.setPluginGrouping("tuttle/image/generator"); desc.setDescription("SeExpr is a simple expression language that we use to provide" "artistic control and customization to our core software.\n" "We use it for procedural geometry synthesis, image synthesis," "simulation control, and much more.\n\n" "language documentation: http://wdas.github.io/SeExpr/doxygen/userdoc.html" "\n\n" "projet website: http://www.disneyanimation.com/technology/seexpr.html"); // add the supported contexts, only filter at the moment desc.addSupportedContext(OFX::eContextGenerator); desc.addSupportedContext(OFX::eContextGeneral); // add supported pixel depths desc.addSupportedBitDepth(OFX::eBitDepthUByte); desc.addSupportedBitDepth(OFX::eBitDepthUShort); desc.addSupportedBitDepth(OFX::eBitDepthFloat); // plugin flags desc.setRenderThreadSafety(OFX::eRenderFullySafe); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsMultipleClipDepths(true); desc.setSupportsTiles(kSupportTiles); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void DPXWriterPluginFactory::describe(OFX::ImageEffectDescriptor& desc) { desc.setLabels("TuttleDpxWriter", "DpxWriter", "Dpx file writer"); desc.setPluginGrouping("tuttle/image/io"); desc.setDescription("Digital Picture Exchange (DPX), ANSI/SMPTE standard (268M-2003)"); // add the supported contexts desc.addSupportedContext(OFX::eContextWriter); desc.addSupportedContext(OFX::eContextGeneral); // add supported pixel depths desc.addSupportedBitDepth(OFX::eBitDepthUByte); desc.addSupportedBitDepth(OFX::eBitDepthUShort); desc.addSupportedBitDepth(OFX::eBitDepthFloat); // add supported extensions desc.addSupportedExtension("dpx"); desc.setPluginEvaluation(90); // plugin flags desc.setRenderThreadSafety(OFX::eRenderFullySafe); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(false); desc.setSupportsMultipleClipDepths(true); desc.setSupportsTiles(kSupportTiles); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void AVReaderPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { avtranscoder::preloadCodecsAndFormats(); avtranscoder::Logger::setLogLevel( AV_LOG_QUIET ); desc.setLabels( "TuttleAVReader", "AVReader", "Audio Video reader" ); desc.setPluginGrouping( "tuttle/image/io" ); std::vector<std::string> supportedExtensions( avtranscoder::getInputExtensions() ); // Hack: Add basic video container extensions // as some versions of LibAV doesn't declare properly all extensions... supportedExtensions.push_back("mov"); supportedExtensions.push_back("avi"); supportedExtensions.push_back("mpg"); supportedExtensions.push_back("mkv"); supportedExtensions.push_back("flv"); supportedExtensions.push_back("m2ts"); // sort / unique std::sort(supportedExtensions.begin(), supportedExtensions.end()); supportedExtensions.erase( std::unique(supportedExtensions.begin(), supportedExtensions.end()), supportedExtensions.end() ); desc.setDescription( "Video reader based on AvTranscoder library\n\n" "Supported extensions: \n" + boost::algorithm::join( supportedExtensions, ", " ) ); // add the supported contexts desc.addSupportedContext( OFX::eContextReader ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // add supported extensions desc.addSupportedExtensions( supportedExtensions ); desc.setPluginEvaluation( 30 ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderInstanceSafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsMultipleClipPARs( true ); desc.setSupportsTiles( kSupportTiles ); }
void NoiseExamplePluginFactory::describe(OFX::ImageEffectDescriptor &desc) { desc.setLabels("Noise", "Noise", "Noise"); desc.setPluginGrouping("OFX"); desc.addSupportedContext(eContextGenerator); desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setRenderTwiceAlways(false); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void TextPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { desc.setLabels( "TuttleText", "Text", "Text" ); desc.setPluginGrouping( "tuttle/image/generator" ); // add the supported contexts desc.addSupportedContext( OFX::eContextFilter ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderFullySafe ); desc.setSupportsTiles( kSupportTiles ); desc.setSupportsMultiResolution( false ); }
void LensCalibrationPluginFactory::describe(OFX::ImageEffectDescriptor& desc) { //Plugin Labels desc.setLabels( "LensCalibration", "LensCalibration", "openMVG LensCalibration"); //Plugin grouping desc.setPluginGrouping("openMVG"); //Plugin description desc.setPluginDescription( "LensCalibration estimates the best distortion parameters " "according to the couple camera/optics of a dataset." "\n" "The plugin supports video file & folder containing images or " "image sequence." ); //Supported contexts desc.addSupportedContext(OFX::eContextFilter); desc.addSupportedContext(OFX::eContextGeneral); desc.addSupportedContext(OFX::eContextPaint); //Supported pixel depths desc.addSupportedBitDepth(OFX::eBitDepthUByte); desc.addSupportedBitDepth(OFX::eBitDepthUShort); desc.addSupportedBitDepth(OFX::eBitDepthFloat); //Flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(false); desc.setSupportsTiles(false); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setOverlayInteractDescriptor( new LensCalibrationOverlayDescriptor); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void ImageStatisticsPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { desc.setLabels( "TuttleImageStatistics", "ImageStatistics", "Image statistics" ); desc.setPluginGrouping( "tuttle/param/analysis" ); // add the supported contexts desc.addSupportedContext( OFX::eContextGeneral ); desc.addSupportedContext( OFX::eContextFilter ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // plugin flags desc.setSupportsMultiResolution( false ); desc.setSupportsTiles( kSupportTiles ); desc.setOverlayInteractDescriptor( new OFX::DefaultEffectOverlayWrap<ImageStatisticsEffectOverlayDescriptor>() ); }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void OpenImageIOReaderPluginFactory::describe(OFX::ImageEffectDescriptor& desc) { desc.setLabels("TuttleOpenImageIOReader", "OpenImageIOReader", "OpenImageIO file reader"); desc.setPluginGrouping("tuttle/image/io"); using namespace boost::assign; std::vector<std::string> supportedExtensions; supportedExtensions += "bmp", "cin", "dds", "dpx", "exr", "fits", "hdr", "ico", "j2k", "j2c", "jp2", "jpeg", "jpg", "jpe", "jfif", "jfi", "pbm", "pgm", "png", "pnm", "ppm", "pic", "psd", "rgbe", "sgi", "tga", "tif", "tiff", "tpic", "tx", "webp", "cr2"; desc.setDescription("OpenImageIO Reader" "\n\n" "Compression is only available for Exr format." "\n" "supported extensions: \n" + boost::algorithm::join(supportedExtensions, ", ")); // add the supported contexts desc.addSupportedContext(OFX::eContextReader); desc.addSupportedContext(OFX::eContextGenerator); desc.addSupportedContext(OFX::eContextGeneral); // add supported pixel depths desc.addSupportedBitDepth(OFX::eBitDepthFloat); desc.addSupportedBitDepth(OFX::eBitDepthUByte); desc.addSupportedBitDepth(OFX::eBitDepthUShort); // add supported extensions desc.addSupportedExtensions(supportedExtensions); desc.setPluginEvaluation(40); // plugin flags desc.setRenderThreadSafety(OFX::eRenderFullySafe); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(false); desc.setSupportsMultipleClipDepths(true); desc.setSupportsTiles(kSupportTiles); }