Another 'beta' update. The highlights from the SVN log:
* For OS/X: Added a new test to quick & dirty test sync of two display
heads of a graphics card wrt. to their video refresh/scanout cycles.
* Improvements to VBL interrupt based timestamping on OS/X. This is
mostly relevant to Intel based Macs without support for beamposition
queries. Can handle a few more broken drivers.
* For Windows: Default textrenderer switched to new (id 1) GDI
text renderer. Users can still choose via the 'TextRenderer'
preference setting, just the default is now the new one.
For all OS:
* PsychImaging(): Now supports line interleaved stereo by use of the
new InterleavedLineStereoShader.frag.txt and kPsychNeedHalfHeightWindow.
See PsychImaging('AddTask', 'General', 'LineInterleavedStereo',
startright);
and its help text for explanation.
* BitsPlusPlus: Now supports automatic setup of transmission of Bits++
T-Lock data packets for sending DIO commands. Packets are setup via
BitsPlusPlus('DIOCommand', window, count, mask, data, command
[,xpos , ypos]);
and auto-emitted at Screen('Flip') time. One can spec one T-Lock line or
multiple lines, and one can ask for one-shot submission, 'count'
repetitions
or infinite repetition.
* PerceptualVBLSyncTest: Now also supports test of synchronous
swapping of
two onscreen windows via 'multiflip==2' mode. This is useful to quickly
test vbl sync across display heads of multi-display cards. Normally one
would just use stereomode 10 or 4 for binocular stimulation, not
multiflip.
* PsychImaging(): Two new 'tasks' for support of software emulated
display mirroring on systems where hardware mirroring doesn't work
sufficiently well:
- 'MirrorDisplayToSingleSplitWindow': Works like stereomode 4. Splits
onscreen window into two halves, pretends the onscreen window is
only half its real width. Shows two copies of the stimulus, one
in the left half, one in the right half.
-> If used on a MS-Windows or Linux system in desktop spanning mode,
or in conjunction with a hardware display splitter to distribute
one "virtual monitor" to two physical display heads, this will
create a mirror image as if "mirror mode" would be enabled.
-> This also works on non-imaging hardware, only needs basic
OpenGL 1.0 support.
- 'MirrorDisplayTo2ndOutputHead': Same purpose as above, mirror mode.
This time by (ab)using stereomode 10 with a modified pipeline config
to distribute/clone/copy the same image onto two output heads, ie.
two different screens/onscreen windows/displays.
* Fix SPDToLinSPD.m as suggested by Mickey Rowe. Calls now
FindModelWeights.m instead of non-existent SPDToLinWgts.m
* BasicSineGratingShader now applies the texture matrix to texcoords, so
the kPsychUseTextureMatrixForRotation flag has an effect, if provided.
* GarboriumDemo adapted to use kPsychUseTextureMatrixForRotation
instead of
the equivalent but less descriptive value 1.
* Some robustness and ease of use improvement to the PR-650 colorimeter
support routines and documentation contributed by Mickey Rowe (UCSB).
* And some smaller cleanups, fixes, cosmetic...
Enjoy!
-mario
* For OS/X: Added a new test to quick & dirty test sync of two display
heads of a graphics card wrt. to their video refresh/scanout cycles.
* Improvements to VBL interrupt based timestamping on OS/X. This is
mostly relevant to Intel based Macs without support for beamposition
queries. Can handle a few more broken drivers.
* For Windows: Default textrenderer switched to new (id 1) GDI
text renderer. Users can still choose via the 'TextRenderer'
preference setting, just the default is now the new one.
For all OS:
* PsychImaging(): Now supports line interleaved stereo by use of the
new InterleavedLineStereoShader.frag.txt and kPsychNeedHalfHeightWindow.
See PsychImaging('AddTask', 'General', 'LineInterleavedStereo',
startright);
and its help text for explanation.
* BitsPlusPlus: Now supports automatic setup of transmission of Bits++
T-Lock data packets for sending DIO commands. Packets are setup via
BitsPlusPlus('DIOCommand', window, count, mask, data, command
[,xpos , ypos]);
and auto-emitted at Screen('Flip') time. One can spec one T-Lock line or
multiple lines, and one can ask for one-shot submission, 'count'
repetitions
or infinite repetition.
* PerceptualVBLSyncTest: Now also supports test of synchronous
swapping of
two onscreen windows via 'multiflip==2' mode. This is useful to quickly
test vbl sync across display heads of multi-display cards. Normally one
would just use stereomode 10 or 4 for binocular stimulation, not
multiflip.
* PsychImaging(): Two new 'tasks' for support of software emulated
display mirroring on systems where hardware mirroring doesn't work
sufficiently well:
- 'MirrorDisplayToSingleSplitWindow': Works like stereomode 4. Splits
onscreen window into two halves, pretends the onscreen window is
only half its real width. Shows two copies of the stimulus, one
in the left half, one in the right half.
-> If used on a MS-Windows or Linux system in desktop spanning mode,
or in conjunction with a hardware display splitter to distribute
one "virtual monitor" to two physical display heads, this will
create a mirror image as if "mirror mode" would be enabled.
-> This also works on non-imaging hardware, only needs basic
OpenGL 1.0 support.
- 'MirrorDisplayTo2ndOutputHead': Same purpose as above, mirror mode.
This time by (ab)using stereomode 10 with a modified pipeline config
to distribute/clone/copy the same image onto two output heads, ie.
two different screens/onscreen windows/displays.
* Fix SPDToLinSPD.m as suggested by Mickey Rowe. Calls now
FindModelWeights.m instead of non-existent SPDToLinWgts.m
* BasicSineGratingShader now applies the texture matrix to texcoords, so
the kPsychUseTextureMatrixForRotation flag has an effect, if provided.
* GarboriumDemo adapted to use kPsychUseTextureMatrixForRotation
instead of
the equivalent but less descriptive value 1.
* Some robustness and ease of use improvement to the PR-650 colorimeter
support routines and documentation contributed by Mickey Rowe (UCSB).
* And some smaller cleanups, fixes, cosmetic...
Enjoy!
-mario