public RecipeCPPEffect(IImageProvider source, double factor)
            : base(source)
        {
            effect = new CPP.MyEffect( factor);

             delegatingEffect = new DelegatingEffect(source, effect);
             SetPipelineBeginEnd(delegatingEffect, delegatingEffect);
        }
        // Protected implementation of Dispose pattern.
        protected override void Dispose(bool disposing)
        {
            if (disposed)
                return;

            if (disposing)
            {

            }

            if (delegatingEffect != null)
            {
                delegatingEffect.Dispose();
                delegatingEffect = null;
            }
            if (effect != null)
            {
                effect.Dispose();
                effect = null;
            }
            disposed = true;
            // Call base class implementation.
            base.Dispose(disposing);
        }