forked from visionegg/visionegg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG.txt
372 lines (255 loc) · 12.6 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
Changes for 1.1.2:
------------------
* Various small bugfixes and improvements:
- bugfix: cast to int to prevent breaking ctypes based PyOpenGL 3 (r1506)
- make default projection retain pixel coordinates by default when
size changes (answers issue of Marcus Leinweber) (r1507)
- support for paletted images (r1508)
- use numpy instead of Numeric (r1511, r1513, r1514)
- bugfix: don't auto-adjust projection if user-specified (r1512)
- allow conversion of pygame surface texture to image (r1518)
- allow export of texel data as numpy array. includes example (r1522)
- add depth_test_enabled parameter to Rectangle3D stimulus type (r1523)
- make depth_test parameter compatible with TextureStimulus3D (r1524)
Changes for 1.1.1:
------------------
* Various small bugfixes and performance improvements:
- Removed old CVS cruft from VisionEgg/PyroClient.py VisionEgg/PyroHelpers.py
- Fix trivial documentation bugs to have the correct version number.
- Workaraound pygame/SDL issue when creating Font objects. (r1491, reported by Jeremy Hill)
- bugfix: allow 4D as well as 3D vectors to specify vertices (r1472, r1474)
- fix comments: improve description of coordinate system transforms (r1473)
- Use standard Python idiom (r1475)
- Further removal of 'from blah import *' (r1476, r1501)
- Minor performance improvement (r1486)
- Remove unintended print statement (r1487 thanks to Jeremy Hill)
- properly detect String and Unicode types (r1470, reported by Dav Clark)
- update license to mention other code (r1502)
Changes for 1.1:
----------------
* Explicitly require Python 2.3 by removing duplicate of Python
standard library's logging module and assume the "True" and "False"
are defined. There were probably other assumptions depending on 2.3
creeping into the code, as well.
* Removed Lib3DS module.
* Workaround PyOpenGL 3.0.0a and 3.0.0b1 bug in glLoadMatrixf().
* Fix SphereMap.AzElGrid() to properly draw iso elevation and azimuth
lines at specified intervals.
* Change to use numpy at the core instead of Numeric. (Require numpy,
no longer require Numeric.)
* Require setuptools
* No longer supporting Python 2.2
* Update Textures to accept numpy arrays as data source (by Martin Spacek)
* Update to work with PyOpenGL 3
* Changes so to reflect standard idioms on Python project layouts:
- src/ directory renamed to VisionEgg/
(but .c files need to be moved back to src/)
- use 'package_data' distutils argument
This enables setuptools to work with the Vision Egg.
* QuickTime movies work in Windows (need to check on OS X).
* FilledCircle stimulus is now anti-aliased. Thanks to Peter Jurica
and Gijs Plomp.
* Added demo/texture3D_alpha.py
Changes for 1.0:
----------------
* Major enhancements to the ephys server/GUI code to use normal (or
slightly modified) demo scripts in this environment were done by Imran
Ali and Lachlan Dowd in the lab of David O'Carroll at the University
of Adelaide.
* An initial patch for stereo support sent by Yuichi Sakano and Kevin
J. MacKenzie at York University.
* Parallel port enhancements by Hubertus Becker, University of
Tübingen.
* Arrow and FilledCircle stimuli by Hubertus Becker, University of
Tübingen.
* DaqKeyboard and ResponseControl by Hubertus Becker, University of Tübingen.
* Full screen anti-aliasing support (FSAA) by Mark Halko, Boston
University.
* Various patches by Tony Arkles (University of Saskatchewan),
including a suggestion to separate camera motions from the
GL_PROJECTION matrix and put them in the GL_MODELVIEW matrix, where
they belong.
* Patch for VISIONEGG_SYSTEM_DIR by Nick Knouf, MIT.
* Added win32_vretrace.WaitForRetrace() (but it's not used for much,
yet)
* Enhancements to EPhys Server/GUI sequencer
* Added 'lat-long rectangle' to available 3D masking windows
* Moved controller.CONSTANTS into FlowControl module namespace
* Numerous bugfixes
Changes for 0.9.9:
------------------
Screen.put_pixels() method for "blitting" of raw pixel data
Support for QuickTime movies (currently Mac OS X only)
Redesign of type check system for accuracy and clarity
TrueType font rendering with SDL_ttf2
Textures with alpha--bugfixes and examples
Positioning of viewports and 2D stimuli can use relative positioning anchors
Now requires Python 2.2 -- new style classes used to restrict attribute acccess
Now requires pygame 1.5
Renamed timing_func() to time_func()
EPhysGUI saves absolute time a trial was started (to recontruct all stimuli)
Allow use of pygame Surfaces as source of texture data
Mipmaps of sphere-mapped sinusoidal grating to prevent spatial aliasing
De-emphasis on Presentation and Controller classes (moved to FlowControl module)
Changed orientations such that 0 degrees is right and 90 degrees is up.
Bugfix in SphereMap module -- gaussian formula produced windows too wide by 2/sqrt(2)
Allow conversion of 3D vertices into 2D screen coordinates
Added wireframe azimuth/elevation grid with text labels
Allow arbitrary orientation of textures and text with angle parameter
FrameTimer class now available for use in your own main loops
Use Python 2.3 logging module (copy included for use with Python 2.2)
No installation of demos or documentation (get source or demo package)
Improved docstrings by using automatic docstring generation
Many small enhancements and bugfixes
New tests:
high-voltage regulation test for displays (Brainard et al., 2002)
incomplete DC restoration test for displays (Brainard et al., 2002)
unit-test suite: among many other things, pixel accuracy of textures
New demos:
mpeg.py plays MPEG movies
quicktime.py plays QuickTime movies (currently Mac OS X only)
convert3d_to_2d.py converts 3D positions to 2D positions
dots_simple_loop.py uses own loop rather than Presentation class
makeMovie2.py makes a movie with get_framebuffer_as_image() function
mouse_gabor_2d.py shows a gabor wavelet under mouse and keyboard control
mouse_gabor_perspective.py is sphereGratingWindowed.py improved and renamed
mouseTarget_user_loop.py uses own loop rather than Presentation class
multi_stim.py shows many stimuli at once
Changes for 0.9.4:
------------------
Major features:
Complete electrophysiology application (see below)
Luminance and color calibration possible
Constant visual angle (perspective-distorted) grating stimulus added
Constant visual angle (perspective-distorted) gaussian and circular windows added
3D texture-mapped sphere stimulus added
Random dot stimulus added
Texture module re-written for ease-of-use, clarity, and support of dynamic texture updating
Color grating stimulus added
Support for plaids added
Masks for gratings and textures implemented using multitexturing - uses high bit depth available there on some hardware
Vision Egg Programmer's Manual created
Many more minor features and bug fixes
New electrophysiology application features:
Complete application with ready-to-run experiments
Application extendible with new experiments by modifying example experiments
Full-screen graphics possible with "server" application, GUI client controls experiments over TCP
Automated sequence control, including sequences-of-sequences
Stimulus onset timing calibration / verification support
3D position / perspective-distortion calibration support
Parameters saved during experiments as Python or Matlab scripts
Complete configurations can be saved and restored from file
All code written for the 0.9.3 release should continue to run on the 0.9.4 release. (There may be some slight changes in functionality due to bug fixes.)
Changes for 0.9.3:
------------------
MAJOR: Added .3ds file support to load 3D models.
MAJOR: Added Labview code to control gratings in a new "contrib"
package. Thanks Jamie Theobald!
Fixed texture-resizing bug.
Added Rectangle3D stimulus class.
Further refined log printing and other small enhancements.
Changes for 0.9.2:
------------------
MAJOR: GUI enhancements.
Maximum priority (with various options) can be set on Mac OS X and
win32.
Frame swap sync with vertical retrace support added to Mac OS X.
Friendly binary installer for Mac OS X, especially useful since now
Mac OS X code requires compilation.
Added SYNC_SWAP, RECORD_TIMES, HIDE_MOUSE, and FRAMELESS_WINDOW
options.
Textures now use mipmaps by default.
Minor: Improvements to check-config.py
Changes for 0.9.1:
------------------
Windows demos now distributed in standalone directory that does not
require python installation.
TCPServer mode can print current state, prints command summary, has
help, minor bugfixes.
Lots of little GUI adjustments, including automatic pop-up of
exception dialog box.
check-config.py detects old version.
Changes for 0.9.0:
------------------
MAJOR: Overall quality of code and base feature set now approaching
1.0 status.
MAJOR: Parameter control over TCP interface implemented using
TCPController class.
MAJOR: Triggering, both out and in, (re)implemented. Same for other
data acquisition.
MAJOR: Gratings module, with SinGrating2D and SinGrating3D (with
perspective distortion) added.
MAJOR: Support for SGI IRIX now added.
MAJOR: Support for variable size (including 10 bits per channel) frame
buffers added.
MAJOR: Support for gamma table setting (including greater than 8 bit)
added. (Requires pygame 1.5.)
MAJOR: ``Run forever'' mode added.
MAJOR: Type-checking implemented for parameters under realtime
control. Complete re-design and re-implementation of realtime
controllers.
MINOR: Too many to list!
Changed license to LGPL from GPL.
Changes for 0.8.2:
------------------
MAJOR: Added frame-by-frame control with realtime_frame_contoller.
(Also renamed realtime_controller to realtime_time_controller.) Make
sure you set your OpenGL driver to swap buffers at vertical retrace
sync if you use this feature!
Added support for on-screen text though VisionEgg.Text module.
Bitmapped text works pretty well, stroke fonts have a few issues still.
Must specify units for stimulus duration, either seconds or frames.
Created new module PlatformDependent, which houses all the platform
dependent C code. Re-enabled setting of maximum priority (on linux,
at least).
Made lower_left and size attributes of Viewport class part of
parameters, so now they can be changed in realtime.
Added automatic detection of all extensions in tests/opengl_info.py.
Removed data acquisition stuff from distribution until I get time to
get it working again.
Re-incorporated linux (and other unix?) kernel scheduler maximum
priority stuff.
Re-incorporated collection and printing of frame-timing
statistics. Turn on by setting "collect_timing_info" argument of
Presentation.go() to non-zero value.
Contrast control in SpinningDrum now acheived with standard OpenGL
texture environment functions, not OpenGL extension.
Changes for 0.8.1:
------------------
Fixed some Mac OS X glitches.
Removed Overlay class from VisionEgg.Core. (The Overlay class was the
same as the Stimulus class with the inclusion of its own projection.
Now, if your stimulus has an associated projection, as 2D stimuli
would, you must keep track of that yourself.)
Support for specifying the order in which stimuli are drawn added by
draw_order argument to the add_stimulus method of the Viewport class.
(Necessary to ensure any graphics that must get drawn on top of
everything else can be drawn last.)
Added remove_stimulus method to Viewport class. Added remove
controller methods to Presentation class.
Improved auto-setting of video modes.
Added GetKeypressDialog and ToplevelDialog classes to GUI module.
Changes for 0.8.0:
------------------
MAJOR: Implemented new Screen, Viewport, Stimulus, Overlay, and
Presentation classes in VisionEgg.Core to more cleanly separate
components and allow multiple viewports on same screen.
MAJOR: Implemented new Parameters class in VisionEgg.Core to allow
more flexible control of any parameters which may change during or
between stimulus presentations. This paves the way for easy control
using any imaginable means, including a local window, a remote python
script (see below about Pyro), or from a data-acquisition card.
MAJOR: Added remote execution methods, so now you can run the
VisionEgg in fullscreen mode while controlling it from a different
computer. Check out the the demos in the demo/Pyro directory.
Requires python package "Pyro" (Python Remote Objects).
New configuration system added. VisionEgg.config holds system-wide
configuration defaults.
Changed VisionEgg.py to Core.py, so now you must do "import
VisionEgg.Core".
Moved demo scripts into 'demo' directory within the main package. Now
there is only one package to maintain.
Pulled texture stuff into Textures.py.
Pulled data acquisition stuff into Daq.py
Added lots of docstrings.
Created this changelog.