private void paletteCombo_SelectedIndexChanged(object sender, EventArgs e) { try { Mandel.SetPalette(((Func <int[]>)(paletteCombo.SelectedValue))()); } catch { return; } optionsPanel.Visible = false; RunRedraw(); }
private void Form1_Load(object sender, EventArgs e) { m_scale = 0.01; m_xcenter = -1; m_ycenter = 0; m_xbase = -1 - ClientSize.Width * m_scale / 2; m_ybase = 0 - ClientSize.Height * m_scale / 2; paletteCombo.DataSource = new BindingSource(PaletteGenerator.Palettes, null); paletteCombo.DisplayMember = "Key"; paletteCombo.ValueMember = "Value"; Mandel.SetPalette(PaletteGenerator.Palettes["Default"]()); RunRedraw(); }
// RunRedraw - Sempre in th GUI private void RunRedraw() { if (m_task != null) { m_cancel.Cancel(); try { m_task.Wait(); } catch { } finally { m_cancel.Dispose(); } } m_cancel = new CancellationTokenSource(); m_task = Mandel.GeneratePicture(m_xbase, m_ybase, m_scale, ClientSize.Width, ClientSize.Height, m_cancel.Token) .ContinueWith( t => GenerateEnd(t), m_cancel.Token, TaskContinuationOptions.OnlyOnRanToCompletion, TaskScheduler.FromCurrentSynchronizationContext() ); statusInfoLabel.Text = "center X: " + m_xcenter + "\n" + "center Y: " + m_ycenter + "\n" + "units/pixel: " + m_scale + "\n"; }