示例#1
0
TestOpenGLPlugin::TestOpenGLPlugin(OfxImageEffectHandle handle)
: ImageEffect(handle)
, _dstClip(0)
, _srcClip(0)
, _scale(0)
, _sourceScale(0)
, _sourceStretch(0)
, _teapotScale(0)
, _angleX(0)
, _angleY(0)
, _angleZ(0)
, _projective(0)
, _mipmap(0)
, _anisotropic(0)
, _useGPUIfAvailable(0)
, _haveAniso(false)
, _maxAnisoMax(1.)
{
    _dstClip = fetchClip(kOfxImageEffectOutputClipName);
    assert(_dstClip && (_dstClip->getPixelComponents() == OFX::ePixelComponentRGBA ||
                        _dstClip->getPixelComponents() == OFX::ePixelComponentAlpha));
    _srcClip = getContext() == OFX::eContextGenerator ? NULL : fetchClip(kOfxImageEffectSimpleSourceClipName);
    assert((!_srcClip && getContext() == OFX::eContextGenerator) ||
           (_srcClip && (_srcClip->getPixelComponents() == OFX::ePixelComponentRGBA ||
                         _srcClip->getPixelComponents() == OFX::ePixelComponentAlpha)));

    _scale = fetchDouble2DParam(kParamScale);
    _sourceScale = fetchDouble2DParam(kParamSourceScale);
    _sourceStretch = fetchDoubleParam(kParamSourceStretch);
    _teapotScale = fetchDoubleParam(kParamTeapotScale);
    assert(_scale && _sourceScale);
    _angleX = fetchDoubleParam(kParamAngleX);
    _angleY = fetchDoubleParam(kParamAngleY);
    _angleZ = fetchDoubleParam(kParamAngleZ);
    assert(_angleX && _angleY && _angleZ);
    _projective = fetchBooleanParam(kParamProjective);
    _mipmap = fetchBooleanParam(kParamMipmap);
    _anisotropic = fetchBooleanParam(kParamAnisotropic);
    assert(_projective && _mipmap && _anisotropic);
#if defined(OFX_SUPPORTS_OPENGLRENDER) && defined(HAVE_OSMESA)
    _useGPUIfAvailable = fetchBooleanParam(kParamUseGPU);
    assert(_useGPUIfAvailable);
    const OFX::ImageEffectHostDescription &gHostDescription = *OFX::getImageEffectHostDescription();
    if (!gHostDescription.supportsOpenGLRender) {
        _useGPUIfAvailable->setEnabled(false);
    }
#endif

}
示例#2
0
WriterPlugin::WriterPlugin( OfxImageEffectHandle handle )
	: ImageEffectGilPlugin( handle )
	, _oneRender( false )
	, _oneRenderAtTime( 0 )
{
	_clipSrc             = fetchClip( kOfxImageEffectSimpleSourceClipName );
	_clipDst             = fetchClip( kOfxImageEffectOutputClipName );
	_paramFilepath       = fetchStringParam( kParamWriterFilename );
	_paramRenderButton   = fetchPushButtonParam( kParamWriterRender );
	_paramRenderAlways   = fetchBooleanParam( kParamWriterRenderAlways );
	_paramBitDepth       = fetchChoiceParam( kParamWriterBitDepth );
	_paramForceNewRender = fetchIntParam( kParamWriterForceNewRender );
	_paramFlip           = fetchBooleanParam( kParamWriterFlip );
	_isSequence          = _filePattern.initFromDetection( _paramFilepath->getValue() );
}
示例#3
0
PrintPlugin::PrintPlugin( OfxImageEffectHandle handle )
: ImageEffectGilPlugin( handle )
{
        _paramMode          = fetchChoiceParam ( kParamMode );
        _paramOutput        = fetchChoiceParam ( kParamOutput );
        _paramColor         = fetchChoiceParam ( kParamColor );
        _paramPixel         = fetchInt2DParam  ( kParamPixel );
        _paramRegionMin     = fetchInt2DParam  ( kParamRegionMin );
        _paramRegionMax     = fetchInt2DParam  ( kParamRegionMax );
        _paramOutputColumns = fetchIntParam    ( kParamColumns );
        _paramFlip          = fetchBooleanParam( kParamFlip );
        _paramOpenGlWindow  = fetchBooleanParam( kParamOutputOpenGL );

        updateParams( );
}
示例#4
0
CImgFilterPluginHelperBase::CImgFilterPluginHelperBase(OfxImageEffectHandle handle,
                                                       bool supportsComponentRemapping, // true if the number and order of components of the image passed to render() has no importance
                                                       bool supportsTiles,
                                                       bool supportsMultiResolution,
                                                       bool supportsRenderScale,
                                                       bool defaultUnpremult/* = true*/,
                                                       bool defaultProcessAlphaOnRGBA/* = false*/,
                                                       bool isFilter/* = true*/)
: ImageEffect(handle)
, _dstClip(0)
, _srcClip(0)
, _maskClip(0)
, _processR(0)
, _processG(0)
, _processB(0)
, _processA(0)
, _premult(0)
, _premultChannel(0)
, _mix(0)
, _maskApply(0)
, _maskInvert(0)
, _supportsComponentRemapping(supportsComponentRemapping)
, _supportsTiles(supportsTiles)
, _supportsMultiResolution(supportsMultiResolution)
, _supportsRenderScale(supportsRenderScale)
, _defaultUnpremult(defaultUnpremult)
, _defaultProcessAlphaOnRGBA(defaultProcessAlphaOnRGBA)
, _premultChanged(0)
{
    _dstClip = fetchClip(kOfxImageEffectOutputClipName);
    assert(_dstClip && (_dstClip->getPixelComponents() == OFX::ePixelComponentRGB ||
                        _dstClip->getPixelComponents() == OFX::ePixelComponentRGBA));
    if (isFilter) {
        _srcClip = getContext() == OFX::eContextGenerator ? NULL : fetchClip(kOfxImageEffectSimpleSourceClipName);
        assert((!_srcClip && getContext() == OFX::eContextGenerator) ||
               (_srcClip && (_srcClip->getPixelComponents() == OFX::ePixelComponentRGB ||
                             _srcClip->getPixelComponents() == OFX::ePixelComponentRGBA)));
        _maskClip = fetchClip(getContext() == OFX::eContextPaint ? "Brush" : "Mask");
        assert(!_maskClip || _maskClip->getPixelComponents() == OFX::ePixelComponentAlpha);
    }

    if (paramExists(kNatronOfxParamProcessR)) {
        _processR = fetchBooleanParam(kNatronOfxParamProcessR);
        _processG = fetchBooleanParam(kNatronOfxParamProcessG);
        _processB = fetchBooleanParam(kNatronOfxParamProcessB);
        _processA = fetchBooleanParam(kNatronOfxParamProcessA);
        assert(_processR && _processG && _processB && _processA);
    }
    _premult = fetchBooleanParam(kParamPremult);
    _premultChannel = fetchChoiceParam(kParamPremultChannel);
    assert(_premult && _premultChannel);
    _mix = fetchDoubleParam(kParamMix);
    _maskApply = paramExists(kParamMaskApply) ? fetchBooleanParam(kParamMaskApply) : 0;
    _maskInvert = fetchBooleanParam(kParamMaskInvert);
    assert(_mix && _maskInvert);
    _premultChanged = fetchBooleanParam(kParamPremultChanged);
    assert(_premultChanged);
}
ImageStatisticsPlugin::ImageStatisticsPlugin( OfxImageEffectHandle handle )
	: ImageEffectGilPlugin( handle )
{
	_clipMask = fetchClip( kClipMask );

	_paramRestrictToRegion = fetchBooleanParam( kParamRestrictToRegion );

	_paramCoordinateSystem = fetchChoiceParam( kParamCoordinateSystem );
	_paramRectCenter       = fetchDouble2DParam( kParamRectCenter );
	_paramRectSize         = fetchDouble2DParam( kParamRectSize );
	_paramChooseOutput     = fetchChoiceParam( kParamChooseOutput );

	_paramOutputNbPixels = fetchIntParam( kParamOutputNbPixels );
	
	_paramOutputAverage       = fetchRGBAParam( kParamOutputAverage );
	_paramOutputVariance      = fetchRGBAParam( kParamOutputVariance );
	_paramOutputChannelMin    = fetchRGBAParam( kParamOutputChannelMin );
	_paramOutputChannelMax    = fetchRGBAParam( kParamOutputChannelMax );
	_paramOutputLuminosityMin = fetchRGBAParam( kParamOutputLuminosityMin );
	_paramOutputLuminosityMax = fetchRGBAParam( kParamOutputLuminosityMax );
	_paramOutputKurtosis      = fetchRGBAParam( kParamOutputKurtosis );
	_paramOutputSkewness      = fetchRGBAParam( kParamOutputSkewness );

	_paramOutputAverageHSL       = fetchDouble3DParam( kParamOutputAverageHSL );
	_paramOutputVarianceHSL      = fetchDouble3DParam( kParamOutputVarianceHSL );
	_paramOutputChannelMinHSL    = fetchDouble3DParam( kParamOutputChannelMinHSL );
	_paramOutputChannelMaxHSL    = fetchDouble3DParam( kParamOutputChannelMaxHSL );
	_paramOutputLuminosityMinHSL = fetchDouble3DParam( kParamOutputLuminosityMinHSL );
	_paramOutputLuminosityMaxHSL = fetchDouble3DParam( kParamOutputLuminosityMaxHSL );
	_paramOutputKurtosisHSL      = fetchDouble3DParam( kParamOutputKurtosisHSL );
	_paramOutputSkewnessHSL      = fetchDouble3DParam( kParamOutputSkewnessHSL );
	
	OFX::InstanceChangedArgs args( this->timeLineGetTime() );
	changedParam( args, kParamRestrictToRegion );
}
示例#6
0
ComponentPlugin::ComponentPlugin( OfxImageEffectHandle handle )
: ImageEffectGilPlugin( handle )
{
//    _clipSrcMatte = fetchClip( kClipMatte );
	_paramToComponent   = fetchChoiceParam( kParamTo );
	_paramToGrayMethod  = fetchChoiceParam( kParamToGray );
	_paramPremultiplied = fetchBooleanParam( kParamPremutliplied );
}
示例#7
0
ReaderPlugin::ReaderPlugin( OfxImageEffectHandle handle )
	: OFX::ImageEffect( handle )
{
	_clipDst           = fetchClip( kOfxImageEffectOutputClipName );
	_paramFilepath     = fetchStringParam( kParamReaderFilename );
	_isSequence        = _filePattern.initFromDetection( _paramFilepath->getValue() );
	_paramExplicitConv = fetchChoiceParam( kParamReaderExplicitConversion );
	_paramFlip         = fetchBooleanParam( kParamReaderFlip );
}
示例#8
0
MathOperatorPlugin::MathOperatorPlugin( OfxImageEffectHandle handle )
: ImageEffectGilPlugin( handle )
{
	_operator        = fetchChoiceParam( kMathOperatorOperator );
	_mathOperatorType   = fetchChoiceParam( kMathOperatorType );

	_master          = fetchDoubleParam( kMasterValue );
	_red             = fetchDoubleParam( kRedValue );
	_green           = fetchDoubleParam( kGreenValue );
	_blue            = fetchDoubleParam( kBlueValue );
	_alpha           = fetchDoubleParam( kAlphaValue );

	_redSelect       = fetchBooleanParam( kRedChannel );
	_greenSelect     = fetchBooleanParam( kGreenChannel );
	_blueSelect      = fetchBooleanParam( kBlueChannel );
	_alphaSelect     = fetchBooleanParam( kAlphaChannel );

	updateInterface();
}
示例#9
0
PrintPlugin::PrintPlugin( OfxImageEffectHandle handle )
: ImageEffectGilPlugin( handle )
{
	_paramMode = fetchChoiceParam( kParamMode );
	_paramOutput = fetchChoiceParam( kParamOutput );
	_paramPixel = fetchInt2DParam( kParamPixel );
	_paramRegionMin = fetchInt2DParam( kParamRegionMin );
	_paramRegionMax = fetchInt2DParam( kParamRegionMax );
	_paramFlip = fetchBooleanParam( kParamFlip );
}
示例#10
0
WriterPlugin::WriterPlugin( OfxImageEffectHandle handle )
	: ImageEffectGilPlugin( handle )
	, _oneRender( false )
	, _oneRenderAtTime( 0 )
	, _isSequence( false )
	, _filePattern()
{
	_clipSrc = fetchClip( kOfxImageEffectSimpleSourceClipName );
	_clipDst = fetchClip( kOfxImageEffectOutputClipName );
	_paramFilepath = fetchStringParam( kTuttlePluginFilename );
	_paramRenderButton = fetchPushButtonParam( kParamWriterRender );
	_paramRenderAlways = fetchBooleanParam( kParamWriterRenderAlways );
	_paramCopyToOutput = fetchBooleanParam( kParamWriterCopyToOutput );
	_paramBitDepth = fetchChoiceParam( kTuttlePluginBitDepth );
	_paramPremult = fetchBooleanParam( kParamPremultiplied );
	_paramExistingFile = fetchChoiceParam( kParamWriterExistingFile );
	_paramForceNewRender = fetchIntParam( kParamWriterForceNewRender );

	// update params
	changedParam( OFX::InstanceChangedArgs(), kTuttlePluginFilename );
}
示例#11
0
TextPlugin::TextPlugin( OfxImageEffectHandle handle )
	: ImageEffectGilPlugin( handle )
{
	_text          = fetchStringParam( kText );
	_font          = fetchStringParam( kFont );
	_size          = fetchIntParam( kSize );
	_ratio         = fetchDoubleParam( kRatio );
	_color         = fetchRGBAParam( kColor );
	_position      = fetchDouble2DParam( kPosition );
	_letterSpacing = fetchDoubleParam( kLetterSpacing );
	_verticalFlip  = fetchBooleanParam( kVerticalFlip );
}
示例#12
0
/*
 * fecth plugin IHM parameters with plugin parameters pointer
 */
HistogramPlugin::HistogramPlugin(OfxImageEffectHandle handle)
    : ImageEffectGilPlugin(handle)
{
    _paramGlobalDisplaySelection = fetchBooleanParam(kGlobalDisplay); // global display

    _paramOverlayRSelection = fetchBooleanParam(kBoolRed);   // R (is channel selected?)
    _paramMutliplierR = fetchDoubleParam(kMultiplierRed);    // R multiplier
    _paramOverlayGSelection = fetchBooleanParam(kBoolGreen); // G (is channel selected?)
    _paramMutliplierG = fetchDoubleParam(kMultiplierGreen);  // G multiplier

    _paramOverlayBSelection = fetchBooleanParam(kBoolBlue); // B (is channel selected?)
    _paramMutliplierB = fetchDoubleParam(kMultiplierBlue);  // B multiplier

    _paramOverlayHSelection = fetchBooleanParam(kBoolHue);        // H (is channel selected?)
    _paramMutliplierH = fetchDoubleParam(kMultiplierHue);         // H multiplier
    _paramOverlaySSelection = fetchBooleanParam(kBoolSaturation); // S (is channel selected?)
    _paramMutliplierS = fetchDoubleParam(kMultiplierSaturation);  // S multiplier

    _paramOverlayLSelection = fetchBooleanParam(kBoolLightness); // L (is channel selected?)
    _paramMutliplierL = fetchDoubleParam(kMultiplierLightness);  // L multiplier

    _paramDisplayTypeSelection =
        fetchChoiceParam(kHistoDisplayListParamLabel); // histogram display list (Histogram overlay group)

    _paramDisplaySelection = fetchBooleanParam(kBoolSelection); // display selection on source clip (Selection group)
    _paramSelectionMode = fetchChoiceParam(kSelectionModeListParamLabel); // selection mode (Selection group)

    _paramSelectionMultiplierSelection = fetchDoubleParam(kselectionMultiplier); // selection multiplier (Advanced group)
    _paramRefreshOverlaySelection = fetchPushButtonParam(kButtonRefreshOverlay); // refresh overlay (Advanced group)
    _paramNbStepSelection = fetchIntParam(knbStepRange);                         // nb step range (Advanced group)

    // Reset param booleans
    _isCleaned = false;
    _isNbStepChanged = false;
    _isHistogramRefresh = false;

    // Initialize scoped pointer
    _overlayDataCount = 0;

    /// @todo: HACK to display curves default position
    OFX::InstanceChangedArgs changed(this->timeLineGetTime());
    changedClip(changed, kOfxImageEffectSimpleSourceClipName);
}
示例#13
0
ColorGradationPlugin::ColorGradationPlugin( OfxImageEffectHandle handle )
	: ImageEffectGilPlugin( handle )
{
	_paramIn              = fetchChoiceParam( kParamIn );
	_paramOut             = fetchChoiceParam( kParamOut );

	_paramInGamma         = fetchDoubleParam( kColorSpaceInGammaValue    );
	_paramOutGamma        = fetchDoubleParam( kColorSpaceOutGammaValue   );
	_paramInBlackPoint    = fetchDoubleParam( kColorSpaceInBlackPoint    );
	_paramOutBlackPoint   = fetchDoubleParam( kColorSpaceOutBlackPoint   );
	_paramInWhitePoint    = fetchDoubleParam( kColorSpaceInWhitePoint    );
	_paramOutWhitePoint   = fetchDoubleParam( kColorSpaceOutWhitePoint   );
	_paramInGammaSensito  = fetchDoubleParam( kColorSpaceInGammaSensito  );
	_paramOutGammaSensito = fetchDoubleParam( kColorSpaceOutGammaSensito );

	_paramProcessAlpha    = fetchBooleanParam( kParamProcessAlpha );
	updateParameters();
}
ImageMagickWriterPlugin::ImageMagickWriterPlugin(OfxImageEffectHandle handle)
    : WriterPlugin(handle)
{
    _premult = fetchBooleanParam(kParamPremult);
    _quality = fetchIntParam(kParamQuality);
}
示例#15
0
TurboJpegReaderPlugin::TurboJpegReaderPlugin(OfxImageEffectHandle handle)
    : ReaderPlugin(handle)
{
    _optimization = fetchChoiceParam(kParamOptimization);
    _fastUpsampling = fetchBooleanParam(kParamFastUpsampling);
}
示例#16
0
RampPlugin::RampPlugin( OfxImageEffectHandle handle )
: GeneratorPlugin( handle )
{
    _direction = fetchChoiceParam( kRampDirection );
    _color = fetchBooleanParam( kRampColor );
}