OSDN Git Service

first
[psychlops/cpp.git] / win32gl / test / compilenew.cpp
1 \r
2 // Motion with glass patterns.\r
3 // Ross, J., Badcock, D. R., and Hayes, A. (2000)\r
4 // Coherent global motion in the absence of coherent velocity signals.\r
5 // Current Biology, 10, 679-682.\r
6 ///+ Prefix\r
7 //// Include Psychlops Package\r
8 #include <psychlops.h>\r
9 using namespace Psychlops;    // Initially developed with Psychlops Win32 1.5.3 / 20110311\r
10 ///- Prefix\r
11 \r
12 ///+ Stimulus drawing function\r
13 //// A function for stimulus drawing (main body)\r
14 void psychlops_main() {\r
15 \r
16         Canvas cnvs(Canvas::window);\r
17 \r
18         Letters let(L"flower_png24.png");\r
19         let.fill = Color::white;\r
20 \r
21         Psychlops::Ellipse rect(100,100);\r
22         rect.fill = Color::red;\r
23 \r
24         while(!Keyboard::esc.pushed()) {\r
25                 Display::clear(); //Clear window\r
26 \r
27                 rect.centering();\r
28                 std::cout << rect.getDatum().x << std::endl;\r
29                 rect.shift(100,100).draw();\r
30                 std::cout << rect.getDatum().x << std::endl << std::endl;\r
31                 let.centering();\r
32                 let.shift(100,100).draw();\r
33                 std::cout << let.getDatum().x << std::endl;\r
34 \r
35                 Display::flip(); // Flip frame buffers\r
36         }\r
37 \r
38         //Figures::Movie mov;\r
39         //mov.bin_path = "C:\\";\r
40 }\r
41 ///- Stimulus drawing function\r
42 \r
43 \r
44 #if 0\r
45 \r
46 #include <psychlops.h>\r
47 using namespace Psychlops;\r
48 \r
49 \r
50 Clock before, after;\r
51 void memoBefore() { before.update(); }\r
52 double pastTime() { after.update(); return (after-before).at_msec(); }\r
53 \r
54 \r
55 void psychlops_main() {\r
56 \r
57 \r
58         Display target_display = Display::secondary;\r
59         std::cout << target_display.width << std::endl;\r
60         std::cout << Display::secondary.getHeight() << std::endl;\r
61 \r
62 \r
63         Canvas display(1024, 768, Canvas::window, target_display);\r
64         Range rng;\r
65 /*\r
66         Mouse::show();\r
67         Color::setGammaValue(1.0,1.0,1.0);\r
68 \r
69         double cutoff1=1.0,cutoff2=0.0;\r
70         Widgets::Slider slider[3];\r
71         slider[0].link(cutoff1, "cutoff1"  , 0<=rng<=256, 1);\r
72         slider[1].link(cutoff2, "half width"  , 0<=rng<=1, 0.125);\r
73 */\r
74 \r
75 /*\r
76         //void drawGrating(Image &img, int width, int height, double wavelength, double contrast, double orientation, double phase);
77         //void drawGaussian(Image &img, double sigma, double factor);
78         //void drawGabor(Image &img, double sigma, double wavelength, double contrast, double orientation, double phase);\r
79         std::stringstream ss;
80         Image img;\r
81         for(double wavelength_=2; wavelength_<8; wavelength_+=1.0 )\r
82         {\r
83                 for(double ori = 0; ori<180.0; ori+=30)\r
84                 {\r
85                         for(double amp = 0.25; amp<=1; amp+=0.25)\r
86                         {\r
87                                 for(double phase = 0; phase<360.0; phase+=30)\r
88                                 {\r
89                                         Figures::drawGrating(img, 36, 36, pow(2,wavelength_), amp, ori/360*2*PI, phase/360*2*PI);\r
90                                         ss.str("");\r
91                                         ss << "output/Grating_wav" << pow(2,wavelength_) << "_amp" << amp << "_ori" << ori << "_pha" << phase << ".png";\r
92                                         img.save(ss.str());\r
93                                         //Figures::drawGrating(img, 45, 45, pow(2,wavelength_), amp, ori/360*2*PI, phase/360*2*PI);\r
94                                 }\r
95                         }\r
96                 }\r
97         }\r
98 */\r
99 \r
100 /*\r
101         while(!Keyboard::esc.pushed()) {\r
102 \r
103                 memoBefore();\r
104                 std::cout << pastTime() << std::endl;\r
105 \r
106 \r
107                 memoBefore();\r
108 */\r
109 \r
110         Figures::Movie m;\r
111         m.source.set(100,100).centering();\r
112 \r
113                 //while(!Keyboard::esc.pushed()) {\r
114                 for(int j=0; j<10; j++) {\r
115                         display.clear(Color::blue);\r
116 \r
117 \r
118                         //img.centering().draw();\r
119                         for(int i=0; i<2; i++)\r
120                         {\r
121                                 //slider[i].setDatum(Point(0,0)).shift(20, i*25 + 10).draw();\r
122                         }\r
123                         m.capture();\r
124                         //display.to(m[j], r);\r
125                         display.flip();\r
126                 }\r
127                 m.save("test.gif");\r
128         //      std::cout << pastTime() << std::endl;\r
129         //}* /\r
130 }\r
131 #endif\r