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; }
public override void Execute() { EffectStateStructure state = SManager.State; previousBlend = state.BlendMode; state.BlendMode = blendMode; }
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; }
public override void Execute() { EffectStateStructure state = SManager.State; previousvalue = state[type]; state[type] = value; }
/// <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); } }
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); }
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(); }
public void SpecialExecute() { EffectStateStructure state = SManager.State; state.BlendMode = blendMode; }
public override void Undo() { EffectStateStructure state = SManager.State; state.BlendMode = previousBlend; }
public void SpecialExecute() { EffectStateStructure state = SManager.State; state[type] = value; }
public override void Undo() { EffectStateStructure state = SManager.State; state[type] = previousvalue; }