Exemple #1
0
        protected override void InitDialogFromToken(EffectConfigToken effectTokenCopy)
        {
            ConfigToken token = effectTokenCopy as ConfigToken;

            GridWidth  = token.width;
            GridHeight = token.height;
        }
Exemple #2
0
        public void Start()
        {
            Abort();
            aborted = false;

            if (effectToken != null)
            {
                try
                {
                    effectTokenCopy = (EffectConfigToken)effectToken.Clone();
                }

                catch (Exception ex)
                {
                    exceptions.Add(ex);
                    effectTokenCopy = null;
                }
            }

            threadShouldStop = false;
            OnStartingRendering();
            thread            = new Thread(new ThreadStart(ThreadFunction));
            thread.Name       = "BackgroundEffectRenderer";
            threadInitialized = new ManualResetEvent(false);
            thread.Start();
            threadInitialized.WaitOne();
            threadInitialized.Close();
            threadInitialized = null;
        }
Exemple #3
0
        public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length)
        {
            if (needReRender == false || length == 0)
            {
                return;
            }

            needReRender = false;

            PdnRegion selection = EnvironmentParameters.GetSelectionAsPdnRegion();

            using (Surface tmp = new Surface(srcArgs.Size))
            {
                tmp.CopySurface(srcArgs.Surface);

                Effect            effect = null;
                EffectConfigToken token  = null;

                int count = this.effects.Count;
                for (int i = 0; i < count; i++)
                {
                    effect = this.effects[i];
                    token  = this.dialogs[i]?.EffectToken;

                    effect.SetRenderInfo(token, dstArgs, new RenderArgs(tmp));
                    effect.Render(token, dstArgs, new RenderArgs(tmp), selection);

                    tmp.CopySurface(dstArgs.Surface);
                }

                dstArgs.Surface.CopySurface(tmp);
            }
        }
 public RendererContext(BackgroundEffectRenderer ber, EffectConfigToken token, int threadNumber, int startOffset)
 {
     BackRenderer = ber;
     Token        = token;
     ThreadNumber = threadNumber;
     StartOffset  = startOffset;
 }
Exemple #5
0
        public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length)
        {
            if (this._bitmap == null)
            {
                return;
            }

            Rectangle bounds = srcArgs.Bounds;

            foreach (Rectangle rect in rois)
            {
                for (int y = rect.Top; y < rect.Bottom; y++)
                {
                    int by = y - bounds.Top;
                    if (by < 0 || by >= this._bitmap.Height)
                    {
                        continue;
                    }

                    for (int x = rect.Left; x < rect.Right; x++)
                    {
                        int bx = x - bounds.Left;
                        if (bx < 0 || bx >= this._bitmap.Width)
                        {
                            continue;
                        }

                        dstArgs.Surface[x, y] = this._bitmap[x, y];
                    }
                }
            }
        }
        protected override void InitDialogFromToken(EffectConfigToken effectToken)
        {
            SuspendTokenUpdates();
            ConfigToken token = (ConfigToken)effectToken;

            gradientControl.Gradient = token.Gradient;
            foreach (string s in Enum.GetNames(typeof(Channel)))
            {
                if (token.InputChannel.ToString() == s)
                {
                    modeComboBox.SelectedItem = resourcemanager.GetString(s);
                }
            }
            chkWrapOffset.Checked = token.Wrap;
            chkLockAlpha.Checked  = token.LockAlpha;
            udOffset.Value        = token.Offset;

            //first set the gradient
            if (presetDropdown == null)
            {
                OnLoad(EventArgs.Empty);
            }

            //set the preset name. if there's a preset, it will load it
            if (!token.Preset.IsNullOrEmpty())
            {
                presetDropdown.SetPresetByName(token.Preset);
            }

            ResumeTokenUpdates();
        }
        protected override void OnSetRenderInfo(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs)
        {
            EffectPluginConfigToken token = (EffectPluginConfigToken)parameters;

            Corners     = token.Corners;
            sCorners    = token.sCorners;
            AlphaTrans  = token.AlphaTrans;
            AaAmount    = token.AaLevel;
            Perspective = token.Perspective;
            Uvalue      = (double)token.UValue / 100;
            Vvalue      = (double)token.VValue / 100;

            if (src2 == null || src2.Size != sCorners.Size)
            {
                src2?.Dispose();
                src2 = new Surface(sCorners.Size);
                src2.CopySurface(srcArgs.Surface, sCorners);
            }

            A = new PointD(Corners[0].X, Corners[0].Y);
            B = new PointD(Corners[1].X, Corners[1].Y);
            C = new PointD(Corners[2].X, Corners[2].Y);
            D = new PointD(Corners[3].X, Corners[3].Y);

            Antialias = (AaAmount > 1) && AlphaTrans;
            if (Antialias)
            {
                SetupForSubpixels(AaAmount, AaAmount);
            }

            base.OnSetRenderInfo(parameters, dstArgs, srcArgs);
        }
Exemple #8
0
 /// <summary>
 /// Gets the render information.
 /// </summary>
 /// <param name="parameters">
 /// Saved settings used to restore the GUI to the same settings it was
 /// saved with last time the effect was applied.
 /// </param>
 /// <param name="dstArgs">The destination canvas.</param>
 /// <param name="srcArgs">The source canvas.</param>
 protected override void OnSetRenderInfo(
     EffectConfigToken parameters,
     RenderArgs dstArgs,
     RenderArgs srcArgs)
 {
     base.OnSetRenderInfo(parameters, dstArgs, srcArgs);
 }
        protected override void InitDialogFromToken(EffectConfigToken effectToken)
        {
            BarcodeConfigToken token = (BarcodeConfigToken)effectToken;

            textBoxText.Text            = token.TextToEncode;
            comboEncoding.SelectedIndex = token.EncodingType;
        }
        public ConfigToken ToToken(Dictionary <string, Type> effects, IServiceProvider services, Surface effectSourceSurface)
        {
            ConfigToken token = new ConfigToken();

            for (int i = 0; i < Effects.Count; i++)
            {
                EffectConfigToken stepToken = null;
                Type type;
                if (effects.TryGetValue(Effects[i], out type))
                {
                    Effect effect = (Effect)(type.GetConstructor(Type.EmptyTypes).Invoke(new object[0]));
                    effect.Services = services;
                    effect.EnvironmentParameters = new EffectEnvironmentParameters(allcolors[i].First, allcolors[i].Second, 2, new PdnRegion(effectSourceSurface.Bounds), effectSourceSurface);
                    if (effect.Options.Flags.HasFlag(EffectFlags.Configurable))
                    {
                        try
                        {
                            EffectConfigDialog dialog = effect.CreateConfigDialog();
                            stepToken = dialog.EffectToken;
                            if (effect is PropertyBasedEffect)
                            {
                                PropertyBasedEffectConfigToken pbect      = stepToken as PropertyBasedEffectConfigToken;
                                IEnumerator <Property>         enumerator = pbect.Properties.Properties.GetEnumerator();
                                for (int ii = 0; ii < Properties[i].Length; ii++)
                                {
                                    try
                                    {
                                        enumerator.MoveNext();
                                        enumerator.Current.ReadOnly = false;
                                        if (enumerator.Current.Value is FontFamily)
                                        {
                                            enumerator.Current.Value = new FontFamily((string)Properties[i][ii]);
                                        }
                                        else
                                        {
                                            enumerator.Current.Value = Properties[i][ii];
                                        }
                                    }
                                    catch (ReadOnlyException) { }
                                }
                            }
                            else
                            {
                                Type t = stepToken.GetType();
                                SetObjectPropertiesAndFields(stepToken, Properties[i], Fields[i], effects, services, effectSourceSurface);
                            }
                        }
                        catch (Exception) { }
                    }
                    token.effects.Add(new ScriptStep(effect.Name, effect.Image, type, stepToken, Colors[i].First, Colors[i].Second));
                }
                else
                {
                    token.effects.Add(new ScriptStep(Effects[i], null, null, null, Colors[i].First, Colors[i].Second));
                }
            }

            return(token);
        }
 public EffectBenchmark(string name, int iterations, Effect effect, EffectConfigToken token, Surface image)
     : base(name + " (" + iterations + "x)")
 {
     this.effect     = effect;
     this.token      = token;
     this.image      = image;
     this.iterations = iterations;
 }
Exemple #12
0
        protected override void OnSetRenderInfo(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs)
        {
            base.OnSetRenderInfo(parameters, dstArgs, srcArgs);

            PdnRegion rgn = EnvironmentParameters.GetSelection(EnvironmentParameters.SourceSurface.Bounds);

            bounds = rgn.GetBoundsInt();
        }
 /// <summary>
 /// Gets the render information.
 /// </summary>
 /// <param name="parameters">
 /// Saved settings used to restore the GUI to the same settings it was
 /// saved with last time the effect was applied.
 /// </param>
 /// <param name="dstArgs">The destination canvas.</param>
 /// <param name="srcArgs">The source canvas.</param>
 protected override void OnSetRenderInfo(
     EffectConfigToken parameters,
     RenderArgs dstArgs,
     RenderArgs srcArgs)
 {
     //Copies the render information to the base Effect class.
     base.OnSetRenderInfo(parameters, dstArgs, srcArgs);
 }
Exemple #14
0
        protected override void InitDialogFromToken(EffectConfigToken effectToken)
        {
            ConfigToken token = (ConfigToken)effectToken;

            theEffectToken = token;
            lbScript.Items.Clear();
            lbScript.Items.AddRange(token.effects.ConvertAll(step => step.Name).ToArray());
        }
        protected override void OnSetRenderInfo(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs)
        {
            IVolt_QuickSizerConfigToken token = (IVolt_QuickSizerConfigToken)parameters;

            this.amount1 = token.Amount1;

            base.OnSetRenderInfo(parameters, dstArgs, srcArgs);
        }
Exemple #16
0
 protected override void InitDialogFromToken(EffectConfigToken effectTokenCopy)
 {
     this.types       = new List <int>();
     this.effects     = new List <Effect>();
     this.dialogs     = new List <EffectConfigDialog>();
     this.collections = new List <PropertyCollection>();
     FinishTokenUpdate();
 }
        protected override void InitDialogFromToken(EffectConfigToken effectToken)
        {
            SuppressEvents = true;

            DistortionConfigPanel.InitControlFromToken((DistortionEffectConfigToken)EffectToken);

            SuppressEvents = false;
        }
        protected override void InitDialogFromToken(EffectConfigToken effectTokenCopy)
        {
            BarcodeConfigToken token = (BarcodeConfigToken)effectTokenCopy;

            textBoxText.Text            = token.TextToEncode;
            comboEncoding.SelectedIndex = token.EncodingType;
            checkBoxBW.Checked          = token.ColorsBW;
        }
Exemple #19
0
        protected unsafe override void OnSetRenderInfo(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs)
        {
            if (((ConfigToken)parameters).surface != null)
            {
                dstArgs.Surface.CopySurface(((ConfigToken)parameters).surface, EnvironmentParameters.GetSelection(srcArgs.Bounds));
            }

            base.OnSetRenderInfo(parameters, dstArgs, srcArgs);
        }
Exemple #20
0
        public void InitControlFromToken(EffectConfigToken effectToken)
        {
            DistortionEffectConfigToken token = (DistortionEffectConfigToken)effectToken;

            ValueX = token.ValueX;
            ValueY = token.ValueY;
            ValueR = token.ValueR;
            UpdatePanControls();
        }
Exemple #21
0
        public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length)
        {
            GmicConfigToken token = (GmicConfigToken)parameters;

            if (token.Surface != null)
            {
                dstArgs.Surface.CopySurface(token.Surface, rois, startIndex, length);
            }
        }
Exemple #22
0
        /// <summary>
        /// Sets up the GUI to reflect the previously-used settings; i.e. this
        /// loads the settings. Called twice by a quirk of Paint.NET.
        /// </summary>
        protected override void InitDialogFromToken(EffectConfigToken effectToken)
        {
            //Copies GUI values from the settings.
            PersistentSettings token = (PersistentSettings)effectToken;

            storedImg = token.StoredImg;
            chkbxInvertArea.Checked    = token.DoInvertArea;
            chkbxInvertPicture.Checked = token.DoInvertPicture;
        }
Exemple #23
0
 public ScriptStep(string name, Image icon, Type type, EffectConfigToken token, ColorBgra primary, ColorBgra secondary)
 {
     Name           = name;
     Icon           = icon;
     EffectType     = type;
     Token          = token;
     PrimaryColor   = primary;
     SecondaryColor = secondary;
 }
Exemple #24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="effectTokenCopy"></param>
        protected override void InitDialogFromToken(EffectConfigToken effectTokenCopy)
        {
            MaskConfigToken maskConfigToken = effectTokenCopy as MaskConfigToken;

            _updating = true;
            this.SetMask(maskConfigToken.Mask);
            _updating = false;

            base.InitDialogFromToken(effectTokenCopy);
        }
Exemple #25
0
 public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length)
 {
     if (mesh != null)
     {
         for (int i = startIndex; i < startIndex + length; ++i)
         {
             mesh.Render(dstArgs.Surface, srcArgs.Surface, rois[i]);
         }
     }
 }
Exemple #26
0
        /// <summary>
        /// Sets up the GUI to reflect the previously-used settings; i.e. this
        /// loads the settings. Called twice by a quirk of Paint.NET.
        /// </summary>
        protected override void InitDialogFromToken(EffectConfigToken effectToken)
        {
            //Copies GUI values from the settings.
            PersistentSettings token = (PersistentSettings)effectToken;

            bmpToReplace          = token.BmpToReplace;
            bmpReplacing          = token.BmpReplacing;
            sliderTolerance.Value = token.Tolerance;
            lblTolerance.Text     = "Tolerance: " + sliderTolerance.Value;
        }
Exemple #27
0
        protected override void OnSetRenderInfo(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs)
        {
            PDNPresetsConfigToken token = (PDNPresetsConfigToken)parameters;

            this.effects = token.effects;
            this.dialogs = token.dialogs;

            base.OnSetRenderInfo(parameters, dstArgs, srcArgs);

            needReRender = true;
        }
 public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length)
 {
     if (filterparsed)
     {
         ffparse.Render(enviromentDataHandle, rois, startIndex, length, dstArgs.Surface);
     }
     else
     {
         dstArgs.Surface.CopySurface(srcArgs.Surface, rois, startIndex, length);
     }
 }
Exemple #29
0
        protected override void OnSetRenderInfo(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs)
        {
            if (dialog != null && dialog.DialogResult == System.Windows.Forms.DialogResult.None)
            {
                changed = true;
                dstArgs.Surface.CopySurface(srcArgs.Surface);

                dialog.ClearProgressBars();
            }
            base.OnSetRenderInfo(parameters, dstArgs, srcArgs);
        }
 public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length)
 {
     if (length == 0)
     {
         return;
     }
     for (int i = startIndex; i < startIndex + length; ++i)
     {
         Render(dstArgs.Surface, srcArgs.Surface, rois[i]);
     }
 }