Exemplo n.º 1
0
 public void SetState(EffectStateStructure state)
 {
     ignoreInput = true;
     if (state != null)
     {
         this.comboBox1.SelectedItem = state.BlendMode;
         this.textBox1.Text          = state.X.ToString();
         this.textBox2.Text          = state.Y.ToString();
         this.textBox3.Text          = state.Alpha.ToString();
         this.textBox4.Text          = state.Rotation.ToString();
         this.textBox5.Text          = state.ScaleX.ToString();
         this.textBox6.Text          = state.ScaleY.ToString();
     }
     else
     {
         this.comboBox1.SelectedItem = BlendMode.None;
         this.textBox1.Text          = "";
         this.textBox2.Text          = "";
         this.textBox3.Text          = "";
         this.textBox4.Text          = "";
         this.textBox5.Text          = "";
         this.textBox6.Text          = "";
     }
     ignoreInput          = false;
     this.button1.Enabled = IsRatioMakerAvailable;
     this.button2.Enabled = IsRatioMakerAvailable;
     this.button3.Enabled = IsRatioMakerAvailable;
     this.button4.Enabled = IsRatioMakerAvailable;
     this.button5.Enabled = IsRatioMakerAvailable;
     this.button6.Enabled = IsRatioMakerAvailable;
 }
Exemplo n.º 2
0
        public override void Execute()
        {
            EffectStateStructure state = SManager.State;

            previousBlend   = state.BlendMode;
            state.BlendMode = blendMode;
        }
Exemplo n.º 3
0
        private void Draw(Graphics g, string filename, EffectStateStructure state)
        {
            if (state == null || state.Alpha <= 0 || state.ScaleX == 0 || state.ScaleY == 0)
            {
                return;
            }
            var   temp  = g.Transform.Clone();
            Image image = dict[filename];

            if (state.ScaleX * image.Width >= 1 && state.ScaleY * image.Height >= 1)
            {
                g.TranslateTransform(state.X, state.Y);
                g.RotateTransform(state.Rotation);
                g.ScaleTransform(state.ScaleX, state.ScaleY);
                g.TranslateTransform(-image.Width / 2, -image.Height / 2);
                var cm = new System.Drawing.Imaging.ColorMatrix
                {
                    Matrix00 = 1,
                    Matrix11 = 1,
                    Matrix22 = 1,
                    Matrix33 = state.Alpha,
                    Matrix44 = 1
                };
                var ia = new System.Drawing.Imaging.ImageAttributes();
                ia.SetColorMatrix(cm);
                g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, ia);
            }
            g.Transform = temp;
        }
Exemplo n.º 4
0
        public override void Execute()
        {
            EffectStateStructure state = SManager.State;

            previousvalue = state[type];
            state[type]   = value;
        }
Exemplo n.º 5
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="device"></param>
 /// <param name="resourceManager">リソースマネージャー</param>
 public CustomEffectObject(PPDDevice device, ResourceManager resourceManager, string filename, EffectStateStructure effectState) : base(device)
 {
     this.effestState     = effectState;
     this.resourceManager = resourceManager;
     imageResource        = resourceManager.GetResource <ImageResourceBase>(filename);
     if (imageResource == null)
     {
         imageResource = ImageResourceFactoryManager.Factory.Create(device, filename, false);
     }
 }
Exemplo n.º 6
0
        private void Draw(string filename, EffectStateStructure state)
        {
            if (state == null || state.Alpha <= 0 || state.ScaleX == 0 || state.ScaleY == 0)
            {
                return;
            }

            var ir = bezierControl1.Drawer.ResourceManager.GetResource <ImageResourceBase>(filename);

            if (ir == null)
            {
                ir = ImageResourceFactoryManager.Factory.Create(bezierControl1.Drawer.Device, filename, false);
            }
            var obj = new CustomEffectObject(bezierControl1.Drawer.Device, bezierControl1.Drawer.ResourceManager, filename, state)
            {
                Position = new SharpDX.Vector2(bezierControl1.Width / 2, bezierControl1.Height / 2)
            };

            bezierControl1.Drawer.DrawTarget.InsertChild(obj, 0);
        }
Exemplo n.º 7
0
        private void CreateAnimation(int framecount, bool withreverse)
        {
            bool first = true;

            if (!withreverse)
            {
                for (int i = 0; i < canvasDock.EffectManager.Effects.Count; i++)
                {
                    IEffect effect = canvasDock.EffectManager.Effects[canvasDock.EffectManager.Effects.Count - 1 - i];
                    effect.Sets.Clear();
                    var ess1 = new EffectStateStructure();
                    var ess2 = new EffectStateStructure();
                    if (first)
                    {
                        first = false;
                    }
                    else
                    {
                        ess1.Alpha = 0;
                        var set1 = new EffectStateRatioSet();
                        foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                        {
                            set1[type] = new ConstantRatioMaker();
                        }
                        set1.StartFrame = 0;
                        set1.EndFrame   = i * framecount;
                        set1.StartState = ess1;
                        set1.EndState   = ess2;
                        effect.Sets.Add(set1.StartFrame, set1);
                    }
                    var ess3 = new EffectStateStructure
                    {
                        Alpha = 0
                    };
                    var set2 = new EffectStateRatioSet();
                    foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                    {
                        set2[type] = new ConstantRatioMaker();
                    }
                    set2.StartFrame = i * framecount;
                    set2.EndFrame   = (i + 1) * framecount;
                    set2.StartState = ess2;
                    set2.EndState   = ess3;
                    effect.Sets.Add(set2.StartFrame, set2);
                    if (i != canvasDock.EffectManager.Effects.Count - 1)
                    {
                        var ess4 = new EffectStateStructure
                        {
                            Alpha = 0
                        };
                        var set3 = new EffectStateRatioSet();
                        foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                        {
                            set3[type] = new ConstantRatioMaker();
                        }
                        set3.StartFrame = (i + 1) * framecount;
                        set3.EndFrame   = (canvasDock.EffectManager.Effects.Count) * framecount;
                        set3.StartState = ess3;
                        set3.EndState   = ess4;
                        effect.Sets.Add(set3.StartFrame, set3);
                    }
                }
            }
            else
            {
                for (int i = 0; i < canvasDock.EffectManager.Effects.Count; i++)
                {
                    IEffect effect = canvasDock.EffectManager.Effects[canvasDock.EffectManager.Effects.Count - 1 - i];
                    effect.Sets.Clear();
                    var ess1 = new EffectStateStructure();
                    var ess2 = new EffectStateStructure();
                    if (!first)
                    {
                        ess1.Alpha = 0;
                        var set1 = new EffectStateRatioSet();
                        foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                        {
                            set1[type] = new ConstantRatioMaker();
                        }
                        set1.StartFrame = 0;
                        set1.EndFrame   = i * framecount;
                        set1.StartState = ess1;
                        set1.EndState   = ess2;
                        effect.Sets.Add(set1.StartFrame, set1);
                    }
                    var ess3 = new EffectStateStructure
                    {
                        Alpha = 0
                    };
                    var set2 = new EffectStateRatioSet();
                    foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                    {
                        set2[type] = new ConstantRatioMaker();
                    }
                    set2.StartFrame = i * framecount;
                    set2.EndFrame   = (i + 1) * framecount;
                    set2.StartState = ess2;
                    set2.EndState   = ess3;
                    effect.Sets.Add(set2.StartFrame, set2);
                    if (i != canvasDock.EffectManager.Effects.Count - 1)
                    {
                        var ess4 = new EffectStateStructure
                        {
                            Alpha = 1
                        };
                        var set3 = new EffectStateRatioSet();
                        foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                        {
                            set3[type] = new ConstantRatioMaker();
                        }
                        set3.StartFrame = (i + 1) * framecount;
                        set3.EndFrame   = ((canvasDock.EffectManager.Effects.Count - 1) * 2 - i) * framecount;
                        set3.StartState = ess3;
                        set3.EndState   = ess4;
                        effect.Sets.Add(set3.StartFrame, set3);
                        ess3 = ess4;
                    }
                    var ess5 = new EffectStateStructure();
                    var set4 = new EffectStateRatioSet();
                    ess5.Alpha = 0;
                    foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                    {
                        set4[type] = new ConstantRatioMaker();
                    }
                    set4.StartFrame = ((canvasDock.EffectManager.Effects.Count - 1) * 2 - i) * framecount;
                    set4.EndFrame   = set4.StartFrame + framecount;
                    set4.StartState = ess3;
                    set4.EndState   = ess5;
                    if (i != canvasDock.EffectManager.Effects.Count - 1)
                    {
                        effect.Sets.Add(set4.StartFrame, set4);
                    }
                    if (!first)
                    {
                        var set5 = new EffectStateRatioSet();
                        var ess6 = new EffectStateStructure
                        {
                            Alpha = 0
                        };
                        foreach (RatioType type in Effect2D.Utility.RatioTypeArray)
                        {
                            set5[type] = new ConstantRatioMaker();
                        }
                        set5.StartFrame = set4.EndFrame;
                        set5.EndFrame   = framecount * (2 * canvasDock.EffectManager.Effects.Count - 1);
                        set5.StartState = i == canvasDock.EffectManager.Effects.Count - 1 ? ess3 : ess5;
                        set5.EndState   = ess6;
                        effect.Sets.Add(set5.StartFrame, set5);
                    }
                    first = false;
                }
            }
            historyDock.CommandManager.ClearAll();
            timeLineDock.AdjustHScroll();
            RefreshTimeLine();
        }
Exemplo n.º 8
0
        public void SpecialExecute()
        {
            EffectStateStructure state = SManager.State;

            state.BlendMode = blendMode;
        }
Exemplo n.º 9
0
        public override void Undo()
        {
            EffectStateStructure state = SManager.State;

            state.BlendMode = previousBlend;
        }
Exemplo n.º 10
0
        public void SpecialExecute()
        {
            EffectStateStructure state = SManager.State;

            state[type] = value;
        }
Exemplo n.º 11
0
        public override void Undo()
        {
            EffectStateStructure state = SManager.State;

            state[type] = previousvalue;
        }