+\r
+ envelope_small.clear(new Color(bg_lum)); //clear offscreen image\r
+ for(int i=0; i<rect_size*0.5; i++){\r
+ _x=i-0.25*rect_size;\r
+ for(int j=0; j<rect_size*0.5; j++){\r
+ _y=j-0.25*rect_size;\r
+ envelope_small.alpha(i,j,1.0-Math.exp(-((_x*_x+_y*_y)/ (2.0*pow(rect_size/12.0, 2.0) ))));\r
+ }\r
+ }\r
+ envelope.cache(); //send offscreen image from main memory to GPU\r
+ envelope_small.cache(); //send offscreen image from main memory to GPU\r
+ ///- gaussian\r
+\r
+ ///+ user interface\r
+ // Draw user interface\r
+ Widgets::SelectBox stimulus_type;\r
+ stimulus_type.area.set(120, 20);\r
+ stimulus_type.append(L"TypeI");\r
+ stimulus_type.append(L"TypeII");\r
+ stimulus_type.centering().shift(-120.0,250.0);\r
+\r
+ Psychlops::Widgets::SelectBox stimulus_type2;\r
+ stimulus_type2.area.set(120, 20);\r
+ stimulus_type2.append(L"Continuous");\r
+ stimulus_type2.append(L"Periodic");\r
+ stimulus_type2.centering().shift(120.0,250.0);\r
+\r
+ Psychlops::Widgets::Slider duration_slider;\r
+ duration_slider.area.set(100,20);\r
+ duration_slider.centering().shift(120,280.0);\r
+ Interval rng = new Interval();\r
+ duration_slider.link(duration, 50<=rng<=950, 50.0, 50.0);\r
+ ///- user interface\r
+ ///- Preperation\r
+\r
+ ///+ Main loop\r
+ int frame = 0;\r
+ int period = refresh_int;\r
+ int movienum;\r
+ while(!Keyboard.esc.pushed()) {\r
+ Display.clear(new Color(bg_lum));\r
+ movienum = stimulus_type.getSelected(); //if "Type-I" is selected, 0, else frame refresh per sec\r
+\r
+ in;\r
+ else period = refresh_int;\r
+\r
+ if(frame>0){\r
+ movie[movienum, frame].centering().draw();\r
+ envelope.centering().draw();\r
+ component_movie[movienum*2, frame].centering().shift(-rect_size*0.5, -rect_size).draw();\r
+ envelope_small.centering().shift(-rect_size*0.5, -rect_size).draw();\r
+ component_movie[movienum*2+1, frame].centering().shift(rect_size*0.5, -rect_size).draw();\r
+ envelope_small.centering().shift(rect_size*0.5, -rect_size).draw();\r
+ }\r
+\r
+ ///+ draw user interface\r
+ let1.draw(0.75);\r
+ let2.draw(0.75);\r
+ let3.draw(0.75);\r
+ stimulus_type.draw();\r
+ stimulus_type2.draw();\r
+ if(stimulus_type2.getSelected())duration_slider.draw();\r
+ ///- draw user interface\r
+ Display.flip();\r
+ if(frame++ >= period) frame -= refresh_int;\r
+ }\r
+ ///- Main loop\r
+\r
+ }\r
+ ///- Stimulus drawing function\r
+\r
+ ///+ Main function for demo circumstances\r
+ public void psychlops_main() {\r
+ ///+ Demo circumstances\r
+ //// Spells for run demonstration circumstances\r
+ Procedure p = new Procedure();\r
+ //p.setDesign(Procedure::DEMO); //Designate that this is a demo.\r
+ p.setProcedure(drawplaid); //The argument name is a name of drawing function.\r
+ p.run();\r
+ ///- Demo circumstances\r