OSDN Git Service

12
[psychlops/silverlight.git] / test3 / MainPage.xaml.cs
1 using Psychlops;\r
2 \r
3 namespace PsychlopsSilverlight3test\r
4 {\r
5         public partial class MainPage : System.Windows.Controls.UserControl\r
6         {\r
7                 public System.ComponentModel.BackgroundWorker main_routine;\r
8                 public System.Windows.Controls.Image master;\r
9                 public MainPage()\r
10                 {\r
11                         InitializeComponent();\r
12                         initialize();\r
13                         // Show fps counter\r
14                         Canvas.default_instance = image;\r
15                         System.Windows.Application.Current.Host.Settings.MaxFrameRate = 60;\r
16                         System.Windows.Application.Current.Host.Settings.EnableFrameRateCounter = true;\r
17                         System.Windows.Application.Current.Host.Settings.EnableCacheVisualization = true;\r
18                         System.Windows.Media.CompositionTarget.Rendering += new System.EventHandler(CompositionTarget_Rendering);\r
19                         //main_routine =  new System.ComponentModel.BackgroundWorker();\r
20                         //main_routine.DoWork += new System.ComponentModel.DoWorkEventHandler(psychlops_main);\r
21                         //main_routine.RunWorkerAsync();\r
22                 }\r
23                 int background;\r
24                 private void backgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs args)\r
25                 {\r
26                         while (true)\r
27                         {\r
28                                 System.Threading.Thread.Sleep(10);\r
29                                 background++;\r
30                         }\r
31                 }\r
32 \r
33                 int frame;\r
34                 private void CompositionTarget_Rendering(object sender, System.EventArgs e)\r
35                 {\r
36                         frame++;\r
37                         //Canvas.default_buffer.Invalidate();\r
38                         trial();\r
39                 }\r
40 \r
41                 Canvas cnvs;\r
42                 Image img;\r
43                 int isize = 100;\r
44                 double tfreq = 1;\r
45                 public void initialize()\r
46                 {\r
47                         cnvs = new Canvas(500, 500, image, this);\r
48                         img = new Image(isize*2, isize*2);\r
49                         cnvs.clear(Color.gray);\r
50                 }\r
51                 public void trial()\r
52                 {\r
53                         cnvs.clear(new Color(Mouse.left.pressed() ? 1.0 : 0.5));\r
54                         img.field(\r
55                                 (x, y) => new Color(.5 + Math.gaussian(Math.radius(x - isize, y - isize), isize / 8.0) * .5 * Math.sin(frame*2*Math.PI/tfreq/60 + x / 3.0))\r
56                                         );\r
57                         img.centering(Mouse.position);\r
58                         //img.shift(1,0);\r
59                         img.draw();\r
60                         cnvs.flip();\r
61                 }\r
62                 /*\r
63                 Canvas cnvs;\r
64                 Rectangle[] rects;\r
65                 double tfreq = 1;\r
66 \r
67                 public void initialize()\r
68                 {\r
69                         cnvs = new Canvas(500, 500, image, this);\r
70                         rects = new Rectangle[100];\r
71                         for (int i = 0; i < rects.Length; i++) { rects[i] = new Rectangle(10,10); }\r
72                         cnvs.clear(Color.gray);\r
73                 }\r
74                 public void trial()\r
75                 {\r
76                         cnvs.clear(new Color(Mouse.left.pressed() ? 1.0 : 0.5));\r
77                         foreach (Rectangle rect in rects) { rect.centering().shift(background,0).draw(); }\r
78                         cnvs.flip();\r
79                 }\r
80                 */\r
81         }\r
82 }\r
83 \r