本文整理汇总了C++中ofx::ImageEffectDescriptor::defineRGBAParam方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageEffectDescriptor::defineRGBAParam方法的具体用法?C++ ImageEffectDescriptor::defineRGBAParam怎么用?C++ ImageEffectDescriptor::defineRGBAParam使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ofx::ImageEffectDescriptor
的用法示例。
在下文中一共展示了ImageEffectDescriptor::defineRGBAParam方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void CheckerboardPluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
OFX::ClipDescriptor* srcClip = desc.defineClip( kOfxImageEffectSimpleSourceClipName );
srcClip->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClip->addSupportedComponent( OFX::ePixelComponentRGB );
srcClip->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClip->setSupportsTiles( kSupportTiles );
// Create the mandated output clip
OFX::ClipDescriptor* dstClip = desc.defineClip( kOfxImageEffectOutputClipName );
dstClip->addSupportedComponent( OFX::ePixelComponentRGBA );
dstClip->addSupportedComponent( OFX::ePixelComponentRGB );
dstClip->addSupportedComponent( OFX::ePixelComponentAlpha );
dstClip->setSupportsTiles( kSupportTiles );
OFX::Int2DParamDescriptor* boxes = desc.defineInt2DParam( kCheckerboardBoxes );
boxes->setDefault( 10, 10 );
boxes->setLabel( "boxes number" );
boxes->setHint( "Number of boxes of the checkerboard." );
OFX::RGBAParamDescriptor* color1 = desc.defineRGBAParam( kCheckerboardColor1 );
color1->setDefault( 0, 0, 0, 1 );
color1->setLabel( "color1" );
OFX::RGBAParamDescriptor* color2 = desc.defineRGBAParam( kCheckerboardColor2 );
color2->setDefault( 1, 1, 1, 1 );
color2->setLabel( "color2" );
}
示例2: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void ConstantPluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
describeGeneratorParamsInContext( desc, context );
OFX::RGBAParamDescriptor* color1 = desc.defineRGBAParam( kConstantColor );
color1->setDefault( 0, 0, 0, 1 );
color1->setLabel( "Color" );
}
示例3: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void TextPluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
OFX::ClipDescriptor* srcClip = desc.defineClip( kOfxImageEffectSimpleSourceClipName );
srcClip->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClip->addSupportedComponent( OFX::ePixelComponentRGB );
srcClip->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClip->setSupportsTiles( kSupportTiles );
// Create the mandated output clip
OFX::ClipDescriptor* dstClip = desc.defineClip( kOfxImageEffectOutputClipName );
dstClip->addSupportedComponent( OFX::ePixelComponentRGBA );
dstClip->addSupportedComponent( OFX::ePixelComponentRGB );
dstClip->addSupportedComponent( OFX::ePixelComponentAlpha );
dstClip->setSupportsTiles( kSupportTiles );
OFX::StringParamDescriptor* text = desc.defineStringParam( kText );
text->setLabel( "Text" );
text->setStringType( OFX::eStringTypeMultiLine );
OFX::StringParamDescriptor* font = desc.defineStringParam( kFont );
font->setLabel( "Font file" );
font->setStringType( OFX::eStringTypeFilePath );
font->setDefault( "/usr/share/fonts/truetype/msttcorefonts/arial.ttf" );
OFX::IntParamDescriptor* size = desc.defineIntParam( kSize );
size->setLabel( "Size" );
size->setDefault( 18 );
size->setRange( 0, std::numeric_limits<int>::max() );
size->setDisplayRange( 0, 60 );
OFX::DoubleParamDescriptor* ratio = desc.defineDoubleParam( kRatio );
ratio->setLabel( "Ratio" );
ratio->setRange( 0.0, std::numeric_limits<double>::max() );
ratio->setDisplayRange( 0.0, 2.0 );
ratio->setDefault( 1.0 );
OFX::RGBAParamDescriptor* color = desc.defineRGBAParam( kColor );
color->setLabel( "Color" );
color->setDefault( 1.0, 1.0, 1.0, 1.0 );
OFX::Double2DParamDescriptor* position = desc.defineDouble2DParam( kPosition );
position->setLabel( "Position" );
position->setDefault( 0.0, 0.0 );
OFX::DoubleParamDescriptor* letterSpacing = desc.defineDoubleParam( kLetterSpacing );
letterSpacing->setLabel( "Letter spacing" );
letterSpacing->setDisplayRange( -10.0, 10.0 );
letterSpacing->setDefault( 0.0 );
OFX::BooleanParamDescriptor* verticalFlip = desc.defineBooleanParam( kVerticalFlip );
verticalFlip->setLabel( "Vertical flip" );
verticalFlip->setDefault( false );
verticalFlip->setAnimates( false );
verticalFlip->setHint( "Some hosts use inverted images, so you can correct this problem using this flag." );
}
示例4: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void DiffPluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
OFX::ClipDescriptor* srcClipA = desc.defineClip( kDiffSourceA );
assert( srcClipA );
srcClipA->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClipA->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClipA->setSupportsTiles( kSupportTiles );
srcClipA->setOptional( false );
OFX::ClipDescriptor* srcClipB = desc.defineClip( kDiffSourceB );
assert( srcClipB );
srcClipB->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClipB->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClipB->setSupportsTiles( kSupportTiles );
srcClipB->setOptional( false );
// Create the mandated output clip
OFX::ClipDescriptor* dstClip = desc.defineClip( kOfxImageEffectOutputClipName );
assert( dstClip );
dstClip->addSupportedComponent( OFX::ePixelComponentRGBA );
dstClip->addSupportedComponent( OFX::ePixelComponentAlpha );
dstClip->setSupportsTiles( kSupportTiles );
OFX::ChoiceParamDescriptor* diffFunction = desc.defineChoiceParam( kMeasureFunction );
assert( diffFunction );
diffFunction->setLabel( "Quality mesure function" );
diffFunction->appendOption( "PSNR (Peak Signal to Noise Ratio)" );
// diffFunction->appendOption( "MSE (Mean Square Error)" );
// diffFunction->appendOption( "SSIM (Structural SIMilarity)" );
diffFunction->setDefault( 0 );
OFX::RGBAParamDescriptor* outputQualityMesure = desc.defineRGBAParam( kOutputQualityMesure );
assert( outputQualityMesure );
outputQualityMesure->setLabel( "Quality" );
outputQualityMesure->setEvaluateOnChange( false );
// OFX::PushButtonParamDescriptor* helpButton = desc.definePushButtonParam( kHelpButton );
// assert( helpButton );
// helpButton->setLabel( "Help" );
}
示例5: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void CropPluginFactory::describeInContext(OFX::ImageEffectDescriptor& desc, OFX::EContext context)
{
OFX::ClipDescriptor* srcClip = desc.defineClip(kOfxImageEffectSimpleSourceClipName);
srcClip->addSupportedComponent(OFX::ePixelComponentRGBA);
srcClip->addSupportedComponent(OFX::ePixelComponentRGB);
srcClip->addSupportedComponent(OFX::ePixelComponentAlpha);
srcClip->setSupportsTiles(kSupportTiles);
OFX::ClipDescriptor* dstClip = desc.defineClip(kOfxImageEffectOutputClipName);
dstClip->addSupportedComponent(OFX::ePixelComponentRGBA);
dstClip->addSupportedComponent(OFX::ePixelComponentRGB);
dstClip->addSupportedComponent(OFX::ePixelComponentAlpha);
dstClip->setSupportsTiles(kSupportTiles);
OFX::ChoiceParamDescriptor* mode = desc.defineChoiceParam(kParamMode);
mode->setLabel("Mode");
mode->appendOption(kParamModeCrop);
mode->appendOption(kParamModeFillColor);
// mode->appendOption( kParamModeResize ); // good idea or not?
mode->setDefault(eParamModeCrop);
OFX::RGBAParamDescriptor* fillColor = desc.defineRGBAParam(kParamFillColor);
fillColor->setLabel("Color");
fillColor->setHint("Color to fill bands");
fillColor->setDefault(0.0, 0.0, 0.0, 1.0);
OFX::ChoiceParamDescriptor* axis = desc.defineChoiceParam(kParamAxis);
axis->setLabel("Axis");
axis->appendOption(kParamAxisXY);
axis->appendOption(kParamAxisX);
axis->appendOption(kParamAxisY);
axis->setDefault(eParamAxisY);
axis->setEvaluateOnChange(false);
OFX::ChoiceParamDescriptor* symmetric = desc.defineChoiceParam(kParamSymmetric);
symmetric->setLabel("Symmetric");
symmetric->appendOption(kParamSymmetricNone);
symmetric->appendOption(kParamSymmetricXY);
symmetric->appendOption(kParamSymmetricX);
symmetric->appendOption(kParamSymmetricY);
symmetric->setHint("Is the crop region symmetric around image center?");
symmetric->setDefault(true);
symmetric->setEvaluateOnChange(false);
OFX::BooleanParamDescriptor* fixedRatio = desc.defineBooleanParam(kParamFixedRatio);
fixedRatio->setLabel("Fixed ratio");
fixedRatio->setHint("Constrain the cropped region to this ratio.");
fixedRatio->setDefault(true);
fixedRatio->setEvaluateOnChange(false);
OFX::ChoiceParamDescriptor* preset = desc.defineChoiceParam(kParamPreset);
preset->setLabel("Preset");
preset->appendOption(kParamPreset_custom);
preset->appendOption(kParamPreset_1_33);
preset->appendOption(kParamPreset_1_77);
preset->appendOption(kParamPreset_1_85);
preset->appendOption(kParamPreset_2_35);
preset->appendOption(kParamPreset_2_40);
preset->setDefault(0);
preset->setEvaluateOnChange(false);
OFX::DoubleParamDescriptor* ratio = desc.defineDoubleParam(kParamRatio);
ratio->setLabel("Ratio");
ratio->setRange(0, std::numeric_limits<double>::max());
ratio->setDisplayRange(0, 3);
ratio->setDefault(2.0);
ratio->setHint("Ratio X/Y of the cropped region.");
OFX::BooleanParamDescriptor* overlay = desc.defineBooleanParam(kParamOverlay);
overlay->setLabel("Overlay");
overlay->setHint("Display overlay rectangle");
overlay->setDefault(false);
overlay->setEvaluateOnChange(false);
OFX::GroupParamDescriptor* cropRegion = desc.defineGroupParam(kParamGroupCropRegion);
OFX::IntParamDescriptor* xMin = desc.defineIntParam(kParamXMin);
xMin->setLabel("X min");
// xMin->setRange( 0, std::numeric_limits<int>::max() );
xMin->setDisplayRange(0, 3000);
xMin->setDefault(0);
xMin->setParent(*cropRegion);
OFX::IntParamDescriptor* yMin = desc.defineIntParam(kParamYMin);
yMin->setLabel("Y min");
// yMin->setRange( 0, std::numeric_limits<int>::max() );
yMin->setDisplayRange(0, 3000);
yMin->setDefault(0);
yMin->setParent(*cropRegion);
OFX::IntParamDescriptor* xMax = desc.defineIntParam(kParamXMax);
xMax->setLabel("X max");
// xMax->setRange( 0, std::numeric_limits<int>::max() );
xMax->setDisplayRange(0, 3000);
//.........这里部分代码省略.........
示例6: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void NormalizePluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
OFX::ClipDescriptor* srcClip = desc.defineClip( kOfxImageEffectSimpleSourceClipName );
srcClip->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClip->addSupportedComponent( OFX::ePixelComponentRGB );
srcClip->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClip->setSupportsTiles( kSupportTiles );
// Create the mandated output clip
OFX::ClipDescriptor* dstClip = desc.defineClip( kOfxImageEffectOutputClipName );
dstClip->addSupportedComponent( OFX::ePixelComponentRGBA );
dstClip->addSupportedComponent( OFX::ePixelComponentRGB );
dstClip->addSupportedComponent( OFX::ePixelComponentAlpha );
dstClip->setSupportsTiles( kSupportTiles );
OFX::ChoiceParamDescriptor* mode = desc.defineChoiceParam( kParamMode );
mode->setLabel( "Input" );
mode->appendOption( kParamModeAnalyse );
mode->appendOption( kParamModeCustom );
OFX::ChoiceParamDescriptor* analyse = desc.defineChoiceParam( kParamAnalyseMode );
analyse->setLabel( "Analyse" );
analyse->appendOption( kParamAnalysePerChannel );
analyse->appendOption( kParamAnalyseLuminosity );
analyse->appendOption( kParamAnalyseR );
analyse->appendOption( kParamAnalyseG );
analyse->appendOption( kParamAnalyseB );
analyse->appendOption( kParamAnalyseA );
OFX::PushButtonParamDescriptor* analyseNow = desc.definePushButtonParam( kParamAnalyseNow );
analyseNow->setLabel( "Analyse" );
OFX::GroupParamDescriptor* srcGroup = desc.defineGroupParam( kParamSrcGroup );
srcGroup->setLabel( "Source" );
OFX::RGBAParamDescriptor* srcMinColor = desc.defineRGBAParam( kParamSrcCustomColorMin );
srcMinColor->setLabel( "Min" );
srcMinColor->setDefault( 0.0, 0.0, 0.0, 0.0 );
srcMinColor->setParent( srcGroup );
OFX::RGBAParamDescriptor* srcMaxColor = desc.defineRGBAParam( kParamSrcCustomColorMax );
srcMaxColor->setLabel( "Max" );
srcMaxColor->setDefault( 1.0, 1.0, 1.0, 1.0 );
srcMaxColor->setParent( srcGroup );
OFX::GroupParamDescriptor* dstGroup = desc.defineGroupParam( kParamDstGroup );
dstGroup->setLabel( "Destination" );
OFX::RGBAParamDescriptor* dstMinColor = desc.defineRGBAParam( kParamDstCustomColorMin );
dstMinColor->setLabel( "Min" );
dstMinColor->setDefault( 0.0, 0.0, 0.0, 0.0 );
dstMinColor->setParent( dstGroup );
OFX::RGBAParamDescriptor* dstMaxColor = desc.defineRGBAParam( kParamDstCustomColorMax );
dstMaxColor->setLabel( "Max" );
dstMaxColor->setDefault( 1.0, 1.0, 1.0, 1.0 );
dstMaxColor->setParent( dstGroup );
OFX::GroupParamDescriptor* processGroup = desc.defineGroupParam( kParamProcessGroup );
processGroup->setLabel( "Process" );
OFX::BooleanParamDescriptor* processR = desc.defineBooleanParam( kParamProcessR );
processR->setLabel( "R" );
processR->setDefault( true );
processR->setParent( processGroup );
OFX::BooleanParamDescriptor* processG = desc.defineBooleanParam( kParamProcessG );
processG->setLabel( "G" );
processG->setDefault( true );
processG->setParent( processGroup );
OFX::BooleanParamDescriptor* processB = desc.defineBooleanParam( kParamProcessB );
processB->setLabel( "B" );
processB->setDefault( true );
processB->setParent( processGroup );
OFX::BooleanParamDescriptor* processA = desc.defineBooleanParam( kParamProcessA );
processA->setLabel( "A" );
processA->setDefault( true );
processA->setParent( processGroup );
}
示例7: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void TextPluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
OFX::ClipDescriptor* srcClip = desc.defineClip( kOfxImageEffectSimpleSourceClipName );
srcClip->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClip->addSupportedComponent( OFX::ePixelComponentRGB );
srcClip->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClip->setSupportsTiles( kSupportTiles );
srcClip->setOptional(true);
// Create the mandated output clip
OFX::ClipDescriptor* dstClip = desc.defineClip( kOfxImageEffectOutputClipName );
dstClip->addSupportedComponent( OFX::ePixelComponentRGBA );
dstClip->addSupportedComponent( OFX::ePixelComponentRGB );
dstClip->addSupportedComponent( OFX::ePixelComponentAlpha );
dstClip->setSupportsTiles( kSupportTiles );
OFX::StringParamDescriptor* text = desc.defineStringParam( kParamText );
text->setLabel( "Text" );
text->setStringType( OFX::eStringTypeMultiLine );
OFX::BooleanParamDescriptor* isExpression = desc.defineBooleanParam( kParamIsExpression );
isExpression->setLabel( "Expression" );
isExpression->setHint( "If you check this parameter the text must be a python code.\n"
"The final result must be in a variable with the name of the parameter.\n"
"Example:\n"
"from math import *\n"
//+ kParamText +
"text = 'At frame '+str(time)+', value is ' + str( sin(time) )\n" );
isExpression->setDefault( false );
OFX::StringParamDescriptor* font = desc.defineStringParam( kParamFont );
font->setLabel( "Font file" );
font->setStringType( OFX::eStringTypeFilePath );
font->setDefault( "/usr/share/fonts/truetype/msttcorefonts/arial.ttf" );
OFX::IntParamDescriptor* size = desc.defineIntParam( kParamSize );
size->setLabel( "Size" );
size->setDefault( 18 );
size->setRange( 0, std::numeric_limits<int>::max() );
size->setDisplayRange( 0, 60 );
OFX::DoubleParamDescriptor* ratio = desc.defineDoubleParam( kParamRatio );
ratio->setLabel( "Ratio" );
ratio->setRange( 0.0, std::numeric_limits<double>::max() );
ratio->setDisplayRange( 0.0, 2.0 );
ratio->setDefault( 1.0 );
OFX::RGBAParamDescriptor* color = desc.defineRGBAParam( kParamColor );
color->setLabel( "Color" );
color->setDefault( 1.0, 1.0, 1.0, 1.0 );
OFX::Double2DParamDescriptor* position = desc.defineDouble2DParam( kParamPosition );
position->setLabel( "Position" );
position->setDefault( 0.0, 0.0 );
OFX::DoubleParamDescriptor* letterSpacing = desc.defineDoubleParam( kParamLetterSpacing );
letterSpacing->setLabel( "Letter spacing" );
letterSpacing->setDisplayRange( -10.0, 10.0 );
letterSpacing->setDefault( 0.0 );
OFX::ChoiceParamDescriptor* vAlign = desc.defineChoiceParam( kParamVAlign );
vAlign->setLabel( "Vertically align" );
vAlign->appendOption( kParamVAlignTop );
vAlign->appendOption( kParamVAlignCenter );
vAlign->appendOption( kParamVAlignBottom );
vAlign->setDefault( eParamVAlignCenter );
OFX::ChoiceParamDescriptor* hAlign = desc.defineChoiceParam( kParamHAlign );
hAlign->setLabel( "Horizontally align" );
hAlign->appendOption( kParamHAlignLeft );
hAlign->appendOption( kParamHAlignCenter );
hAlign->appendOption( kParamHAlignRight );
hAlign->setDefault( eParamHAlignCenter );
OFX::BooleanParamDescriptor* verticalFlip = desc.defineBooleanParam( kParamVerticalFlip );
verticalFlip->setLabel( "Vertical flip" );
verticalFlip->setDefault( false );
verticalFlip->setAnimates( false );
verticalFlip->setHint( "Some hosts use inverted images, so you can correct this problem using this flag." );
}
示例8: describeInContext
//.........这里部分代码省略.........
page1->addChild(*i3DParam);
page1->addChild(PageParamDescriptor::gSkipColumn);
// boolean
BooleanParamDescriptor *boolean = desc.defineBooleanParam("bool");
boolean->setLabels("bool", "bool", "bool");
boolean->setDefault(false);
page1->addChild(*boolean);
// choice
ChoiceParamDescriptor *choice = desc.defineChoiceParam("choice");
choice->setLabels("choice", "choice", "choice");
choice->appendOption("This", "This");
choice->appendOption("That", "That");
choice->appendOption("The Other", "The Other");
choice->resetOptions();
choice->appendOption("Tom", "Tom");
choice->appendOption("Dick", "Dick");
choice->appendOption("Harry", "Harry");
choice->setDefault(0);
page1->addChild(*choice);
page1->addChild(PageParamDescriptor::gSkipColumn);
// push button
PushButtonParamDescriptor *push = desc.definePushButtonParam("push");
push->setLabels("push me", "push me", "push me Big Nose");
page1->addChild(*push);
// make a custom param
CustomParamDescriptor *custom = desc.defineCustomParam("custom");
custom->setLabels("custom", "custom", "custom");
custom->setDefault("wibble");
// rgba colours
RGBAParamDescriptor *rgba = desc.defineRGBAParam("rgba");
rgba->setLabels("rgba", "rgba", "rgba");
rgba->setDefault(0, 0, 0, 1);
page1->addChild(*rgba);
RGBParamDescriptor *rgba2 = desc.defineRGBParam("rgbaCustom");
rgba2->setLabels("RGB Custom", "RGB Custom", "RGB Custom");
rgba2->setDefault(0, 1, 1);
rgba2->setInteractDescriptor(new ColourInteractDescriptor<0>);
page1->addChild(*rgba2);
RGBParamDescriptor *rgba3 = desc.defineRGBParam("rgbaCustom2");
rgba3->setLabels("RGB Custom 2", "RGB Custom 2", "RGB Custom 2");
rgba3->setDefault(1, 0, 1);
rgba3->setInteractDescriptor(new ColourInteractDescriptor<1>);
page1->addChild(*rgba3);
page1->addChild(PageParamDescriptor::gSkipRow);
// rgb colour
RGBParamDescriptor *rgb = desc.defineRGBParam("rgb");
rgb->setLabels("rgb", "rgb", "rgb");
rgb->setDefault(0, 0, 0);
page1->addChild(*rgb);
// make a 1D double parameter of each type
describeDoubleParam(desc, "double", eDoubleTypePlain, -100, 100, page2);
describeDoubleParam(desc, "angle", eDoubleTypeAngle, -100, 100, page2);
describeDoubleParam(desc, "scale", eDoubleTypeScale, -1, 1, page2);
describeDoubleParam(desc, "time", eDoubleTypeTime, -100, 100, page2);
describeDoubleParam(desc, "absoluteTime", eDoubleTypeAbsoluteTime, 0, 1000, page2);
describeDoubleParam(desc, "X_Value", eDoubleTypeNormalisedX, -1, 1, page2);
describeDoubleParam(desc, "Y_Value", eDoubleTypeNormalisedY, -1, 1, page2);
describeDoubleParam(desc, "X_Position", eDoubleTypeNormalisedXAbsolute, -1, 1, page2);
describeDoubleParam(desc, "Y_Position", eDoubleTypeNormalisedYAbsolute, -1, 1, page2);
page2->addChild(PageParamDescriptor::gSkipColumn);
// make a 2D double parameter of each type
describe2DDoubleParam(desc, "double2D", eDoubleTypePlain, -100, 100, page2);
describe2DDoubleParam(desc, "angle2D", eDoubleTypeAngle, -100, 100, page2);
describe2DDoubleParam(desc, "scale2D", eDoubleTypeScale, -1, 1, page2);
describe2DDoubleParam(desc, "XY_Value", eDoubleTypeNormalisedXY, -1, 1, page2);
describe2DDoubleParam(desc, "XY_Position", eDoubleTypeNormalisedXYAbsolute, -1, 1, page2);
page2->addChild(PageParamDescriptor::gSkipColumn);
// make a 3D double parameter of each type
describe3DDoubleParam(desc, "double3D", eDoubleTypePlain, -100, 100, page2);
describe3DDoubleParam(desc, "angle3D", eDoubleTypeAngle, -100, 100, page2);
describe3DDoubleParam(desc, "scale3D", eDoubleTypeScale, -1, 1, page2);
// make a string param param of each type
describeStringParam(desc, "singleLine", eStringTypeSingleLine, page3);
describeStringParam(desc, "multiLine", eStringTypeMultiLine, page3);
describeStringParam(desc, "filePath", eStringTypeFilePath, page3);
describeStringParam(desc, "dirPath", eStringTypeDirectoryPath, page3);
describeStringParam(desc, "label", eStringTypeLabel, page3);
}
示例9: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void ColorTransformPluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
OFX::ClipDescriptor* srcClip = desc.defineClip( kOfxImageEffectSimpleSourceClipName );
srcClip->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClip->addSupportedComponent( OFX::ePixelComponentRGB );
srcClip->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClip->setSupportsTiles( kSupportTiles );
// Create the mandated output clip
OFX::ClipDescriptor* dstClip = desc.defineClip( kOfxImageEffectOutputClipName );
dstClip->addSupportedComponent( OFX::ePixelComponentRGBA );
dstClip->addSupportedComponent( OFX::ePixelComponentRGB );
dstClip->addSupportedComponent( OFX::ePixelComponentAlpha );
dstClip->setSupportsTiles( kSupportTiles );
OFX::DoubleParamDescriptor* paramHueShift = desc.defineDoubleParam( kParamHueShift );
paramHueShift->setLabel( "Hue Shift" );
paramHueShift->setDefault( 0.0 );
paramHueShift->setDisplayRange( 0.0, 1.0 );
OFX::DoubleParamDescriptor* paramSaturation = desc.defineDoubleParam( kParamSaturation );
paramSaturation->setLabel( "Saturation" );
paramSaturation->setDefault( 0.0 );
paramSaturation->setDisplayRange( 0.0, 1.0 );
OFX::DoubleParamDescriptor* paramBrightnessRGB = desc.defineDoubleParam( kParamBrightnessRGB );
paramBrightnessRGB->setLabel( "Global Brightness RGB" );
paramBrightnessRGB->setHint( "Global manipulation of RGB brightness." );
paramBrightnessRGB->setDefault( 1.0 );
paramBrightnessRGB->setDisplayRange( 0.0, 1.0 );
OFX::RGBAParamDescriptor* paramBrightness = desc.defineRGBAParam( kParamBrightness );
paramBrightness->setLabel( "Brightness" );
paramBrightness->setDefault( 1.0, 1.0, 1.0, 1.0 );
OFX::DoubleParamDescriptor* paramPivotRGB = desc.defineDoubleParam( kParamPivotRGB );
paramPivotRGB->setLabel( "Global Pivot RGB" );
paramPivotRGB->setHint( "Global manipulation of RGB pivot." );
paramPivotRGB->setDefault( 0.0 );
paramPivotRGB->setDisplayRange( 0.0, 1.0 );
OFX::RGBAParamDescriptor* paramPivot = desc.defineRGBAParam( kParamPivot );
paramPivot->setLabel( "Pivot" );
paramPivot->setDefault( 0.0, 0.0, 0.0, 0.0 );
OFX::DoubleParamDescriptor* paramContrastRGB = desc.defineDoubleParam( kParamContrastRGB );
paramContrastRGB->setLabel( "Global Contrast RGB" );
paramContrastRGB->setHint( "Global manipulation of RGB contrast." );
paramContrastRGB->setDefault( 1.0 );
paramContrastRGB->setDisplayRange( 0.0, 1.0 );
OFX::RGBAParamDescriptor* paramContrast = desc.defineRGBAParam( kParamContrast );
paramContrast->setLabel( "Contrast" );
paramContrast->setDefault( 1.0, 1.0, 1.0, 1.0 );
OFX::DoubleParamDescriptor* paramOffsetRGB = desc.defineDoubleParam( kParamOffsetRGB );
paramOffsetRGB->setLabel( "Global Offset RGB" );
paramOffsetRGB->setHint( "Global manipulation of RGB offset." );
paramOffsetRGB->setDefault( 0.0 );
paramOffsetRGB->setDisplayRange( 0.0, 1.0 );
OFX::RGBAParamDescriptor* paramOffset = desc.defineRGBAParam( kParamOffset );
paramOffset->setLabel( "Offset" );
paramOffset->setDefault( 0.0, 0.0, 0.0, 0.0 );
}
示例10: describeInContext
/**
* @brief Function called to describe the plugin controls and features.
* @param[in, out] desc Effect descriptor
* @param[in] context Application context
*/
void ImageStatisticsPluginFactory::describeInContext( OFX::ImageEffectDescriptor& desc,
OFX::EContext context )
{
OFX::ClipDescriptor* srcClip = desc.defineClip( kOfxImageEffectSimpleSourceClipName );
srcClip->addSupportedComponent( OFX::ePixelComponentRGBA );
srcClip->addSupportedComponent( OFX::ePixelComponentAlpha );
srcClip->setSupportsTiles( kSupportTiles );
// Create the mandated output clip
OFX::ClipDescriptor* dstClip = desc.defineClip( kOfxImageEffectOutputClipName );
dstClip->addSupportedComponent( OFX::ePixelComponentRGBA );
dstClip->addSupportedComponent( OFX::ePixelComponentAlpha );
dstClip->setSupportsTiles( kSupportTiles );
OFX::ChoiceParamDescriptor* coordSystem = desc.defineChoiceParam( kParamCoordinateSystem );
coordSystem->setLabel( "Coordinate system" );
coordSystem->appendOption( kParamCoordinateSystemNormalized );
coordSystem->appendOption( kParamCoordinateSystemCanonical );
coordSystem->setDefault( 0 );
OFX::Double2DParamDescriptor* rectCenter = desc.defineDouble2DParam( kParamRectCenter );
rectCenter->setLabel( "Center" );
rectCenter->setDoubleType( OFX::eDoubleTypePlain );
// rectCenter->setDoubleType( OFX::eDoubleTypeNormalisedXYAbsolute );
rectCenter->setDefault( 0.5, 0.5 );
OFX::Double2DParamDescriptor* rectSize = desc.defineDouble2DParam( kParamRectSize );
rectSize->setLabel( "Size" );
rectSize->setDoubleType( OFX::eDoubleTypePlain );
// rectSize->setDoubleType( OFX::eDoubleTypeNormalisedXYAbsolute );
rectSize->setDefault( 0.5, 0.5 );
OFX::ChoiceParamDescriptor* chooseOutput = desc.defineChoiceParam( kParamChooseOutput );
chooseOutput->setLabel( "Choose output" );
chooseOutput->appendOption( kParamChooseOutputSource );
chooseOutput->appendOption( kParamChooseOutputAverage );
chooseOutput->appendOption( kParamChooseOutputChannelMin );
chooseOutput->appendOption( kParamChooseOutputChannelMax );
chooseOutput->appendOption( kParamChooseOutputLuminosityMin );
chooseOutput->appendOption( kParamChooseOutputLuminosityMax );
chooseOutput->setDefault( 0 );
OFX::GroupParamDescriptor* outputGroup = desc.defineGroupParam( kParamOutputGroup );
outputGroup->setLabel( "Output" );
// -----------------------------------------------------------------------------
OFX::GroupParamDescriptor* rgbaGroup = desc.defineGroupParam( kParamOutputGroupRGBA );
rgbaGroup->setLabel( "RGBA" );
rgbaGroup->setParent( outputGroup );
OFX::RGBAParamDescriptor* outputAverage = desc.defineRGBAParam( kParamOutputAverage );
outputAverage->setLabel( "Average" );
outputAverage->setParent( rgbaGroup );
outputAverage->setEvaluateOnChange( false );
OFX::RGBAParamDescriptor* outputChannelMin = desc.defineRGBAParam( kParamOutputChannelMin );
outputChannelMin->setLabel( "Channels' min" );
outputChannelMin->setHint( "Minimum value per channel" );
outputChannelMin->setParent( rgbaGroup );
outputChannelMin->setEvaluateOnChange( false );
OFX::RGBAParamDescriptor* outputChannelMax = desc.defineRGBAParam( kParamOutputChannelMax );
outputChannelMax->setLabel( "Channels' max" );
outputChannelMax->setParent( rgbaGroup );
outputChannelMax->setEvaluateOnChange( false );
OFX::RGBAParamDescriptor* outputLuminosityMin = desc.defineRGBAParam( kParamOutputLuminosityMin );
outputLuminosityMin->setLabel( "Luminosity min" );
outputLuminosityMin->setParent( rgbaGroup );
outputLuminosityMin->setEvaluateOnChange( false );
OFX::RGBAParamDescriptor* outputLuminosityMax = desc.defineRGBAParam( kParamOutputLuminosityMax );
outputLuminosityMax->setLabel( "Luminosity max" );
outputLuminosityMax->setParent( rgbaGroup );
outputLuminosityMax->setEvaluateOnChange( false );
OFX::RGBAParamDescriptor* outputKurtosis = desc.defineRGBAParam( kParamOutputKurtosis );
outputKurtosis->setLabel( "Kurtosis" );
outputKurtosis->setParent( rgbaGroup );
outputKurtosis->setEvaluateOnChange( false );
OFX::RGBAParamDescriptor* outputSkewness = desc.defineRGBAParam( kParamOutputSkewness );
outputSkewness->setLabel( "Skewness" );
outputSkewness->setParent( rgbaGroup );
outputSkewness->setEvaluateOnChange( false );
// -----------------------------------------------------------------------------
OFX::GroupParamDescriptor* hslGroup = desc.defineGroupParam( kParamOutputGroupHSL );
hslGroup->setLabel( "HSL" );
hslGroup->setParent( outputGroup );
OFX::Double3DParamDescriptor* outputAverageHSL = desc.defineDouble3DParam( kParamOutputAverageHSL );
//.........这里部分代码省略.........