Merge pull request #93 from Psychtoolbox-3/master

Post-Release fix for BETA: Pull fix for OSX on Apple MacBookPro with Retina display.
Merge pull request #95 from Psychtoolbox-3/master

Post-Release fix for BETA: OSX support for NVidia GeForce 600 Kepler gpu's.

* On OSX by updating the PsychtoolboxKernelDriver for 64-Bit kernels.
* Also enable experimental support for 4 display heads on Kepler gpus.
* Small fixes to PsychDataPixx and panel scaler support for side-by-side stereo.
Merge pull request #97 from Psychtoolbox-3/master

Post-Release update "Aaron Swartz" for PTB BETA RELEASE "The fun in dysfunction"

This update is dedicated to Aaron Swartz.

Some improvements to M-Files:

* Full panelfitter high-level setup support via PsychImaging('AddTask', 'General', 'UsePanelFitter'): Selection of common scaling/fitting modes. Fully compatible with all stereo display modes, high-precision display modes and other PsychImaging tasks. Also fully compatible with RemapMouse() now.

* Cleanups to BeampositionTests by Ian A.

* Robustness improvements to GStreamer-SDK detection on 64-Bit Windows.

* Tiny fixes in moglmorpher() and LoadOBJFile().

* Minor tweaks to some demos.
Merge pull request #111 from Psychtoolbox-3/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!"

* Basic GPGPU compute support via GPUmat.
* Linux Nexus-7 / ARM support.
* Linux experimental multi display backend support.
* CRS Bits# support.
* PR-705 support contributed by Zachary Lindbloom-Brown
* GeForce-600 series support.
* Fixes for OSX Retina and LCD timestamping brokeness and other bugs.
* Various smaller fixes and improvements.
Merge pull request #113 from Psychtoolbox-3/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP1

* Fix PRxxx support on Linux.
* Add missing 64-Bit Radeoncontrol exe on 64-Bit Linux.
Merge pull request #115 from Psychtoolbox-3/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP2
Add improved DrawFormattedText() with ability to center text in user-provided rects.
Merge pull request #24 from Psychtoolbox-3/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP3

* Make java path setup in postinstall routine more robust against users doing weird things.
Merge pull request #117 from Psychtoolbox-3/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP3
* Make java path setup in postinstall routine more robust against users doing weird things. [Fix by zacklb]
SetStereoBlueLineSyncParameters(): Also work in stereomode 11, not only 1.
IsGUI: Adapt Octave code to 3.7.3+ GUI prototype.

Octave now has a builtin function isguirunning() which provides us
with the required info, whereas the old detection heuristic failed
on Ubuntu 13.04 with v3.7.3+
PsychtoolboxKernelDriver.m: Clarify meaning of PathToPsychtoolbox in help.

For people which read too literally.
Screen/OSX: Clarify CoreVideo timestamping message.

Reformulate the message again to convey that the deficient CoreVideo
timestamping would be only used as fallback if beamposition timestamping
would be unavailable or malfunctioning.

Only output the suggestion to install the PsychtoolboxKernelDriver
if the driver isn't already available and connected. Otherwise people
are confused.

Rebuild and testing on OSX pending.
Screen: Allow to create hidden/invisible onscreen windows.

If Screen('Preference','WindowShieldingLevel', -1); is set
before/during call to Screen('Openwindow') for a non-fullscreen
window with kPsychGUIWindow 'specialflags' set, then create
the onscreen window as usual, but do not show/map it, so it
stays invisible on the display.

This is useful if one wants to (ab)use Psychtoolbox as an
offscreen renderer. One can create such an onscreen window,
then an associated 'Offscreenwindow' and then render and
'GetImage' from that offscreen window. The offscreen window
can have arbitrary size and resolution (within the hardware
and vram memory limits of the gpu of course).

One should probably disable sync tests etc. as in
PsychDebugWindowConfiguration() to avoid sync errors
or lots of warning clutter for such a window.

Screen for 64-Bit Octave on Linux rebuilt and tested.
MaskImageIn(), MaskImageOut() - Make it actually work.

This was untested and entirely broken since day 1!
Hopefully fixes issue #109
Improve geometric BVL display calibration routines.

Wait for keyboard input on all connected keyboards.
Add support to select stereoMode for display calibration,
e.g., mode 4 for dual-display co-calibration.

Improvements mostly contributed by Bas Rokers.
PRxxxinit: Don't flush serial port buffers on write.

Add DontFlushOnWrite=1 option to serial port open for the PRxxx
photometer toolboxes. At least on PR-Photometer hangs in the
flush on Linux and we don't need flushing for those functions
anyway, so just avoid it for all of them on all os'es.

Should fix problem reported in forum message #15652.
All Screen mex files rebuilt, except for 32-Bit Matlab on OSX.

-> 32-Bit OSX is deprecated, so skip it.
-> This integrates the less scaring CVDisplayLink timestamping warning
message for OSX 10.7+, which also doesn't ask for installation of the
kernel driver if it is already installed and active.
-> It also enables Screen('preference','windowshieldinglevel', -1) for
all operating systems to allow to open completely hidden/invisible
onscreen windows for offscreen/offline rendering tasks.
DownloadPsychtoolbox: Move /opt/subversion/bin first as search path for svn.

To match a similar change of David in GetSubversionPath().
Merge pull request #118 from kleinerm/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP4
DAQ toolbox: Another attempt to make it less broken.

Instead of calling PsychHID('Devices') directly, all DAQ functions now
call the new function PsychHIDDAQS. This function queries all HID
devices via PsychHID('Devices'), and caches the device list internally
for faster lookup. More importantly, it preprocesses all HID-DAQ
devices as follows: Non MCC devices are ignored. MCC devices get their
productID remapped to a standardized product name string. This because
on MS-Windows, PsychHID can't return a sensible product name string,
but all DAQ toolbox functions are dependent on name string matching.
The productID is well defined across devices and operating systems, so
we use that to map  properly. Also, serialNumber is replaced by a
combination of serialNumber and locationID, again because depending on
OS and device vendor and type, either one of those two can be undefined
or unreliable or useless. Combining both into a sort of hash will
hopefully be at least somewhat robust to common case usage.

DaqDeviceIndex: Fix some bugs and make more robust. This one should be
able to identify devices properly, based on PsychHIDDAQS preprocessing.
It should be able to reliable count and disambiguate interfaces if
multiple device are connected. And fix some bugs. On Linux and Windows,
the interfaceID of a DAQ device is well defined, so finding the daq
index corresponding to interface #0 should be reliable. On OSX we don't
have interfaceID, so we still need to rely on the heuristic of trying
to find interface #0 based on the number of outputs. Given that that
number changes without rhyme and reason across versions of OSX, and
sometimes apparently even across reboots, OSX will remain the least
reliable OS for use with the DAQ toolbox, despite the DAQ toolbox
originally written for it. Yay Apple!

-> All this is untested so far, but given how broken this stuff is, it
can't get much worse.