AssertOSX - aleslab/Psychtoolbox-3-aleslab-fork GitHub Wiki
OS X: ___________________________________________________________________
Call AssertOSX at the head of scripts which use functions unique to the
OS X Psychtoolbox. AssertOSX will exit with an error if called from
MATLAB running on any OS other than OS X, providing an explanation to
users for why the script failed. AssertOSX also serves to document your
code clearly as being specific to OS X.
Use of OSX-specific Psychtoolbox functions is discouraged, though
sometimes necessary.
Note that Psychtoolbox functions which are unique to OpenGL are a
different category than those unique to OS X. Please use AssertOpenGL in
place of AssertOSX if your script calls functions specific to OpenGL but
none specific to OS X. OpenGL-specific Psychtoolbox functions are any
of the following:
Screen('MakeTexture');
Screen('DrawTexture');
Screen('Flip');
Some Psychtoolbox functions are unique to OS X because they exploit
features in OS X not present in other operating systems, for example,
the MachPriority* functions underlying Priority in OS X. Generally, as
with Priority, there is a platform-neutral function overlalying the
platform-specific functions. Where available, you can use these to write
platform-neutral scripts, unless for your purposes you must take
advantage of features specific to the OS. PsychHID is another such
example. It exists only for OS X but is overlayed by KbCheck and Gamepad
(a.k.a. Joystick) which also exist on OS 9. If you have an unusual USB
HID device, you can read from it in OSX using PsychHID, though compromising
platform independence.
Overview- New functions for OS X fall into one of these categories:
* OpenGL-specific functions which are a permanent departure from earlier
Psychtoolboxes. Call IsOpenGL or AssertOpenGL if you use only these.
* Functions which take advantage of features unique to a specific
operating system. When possible, avoid these by using platform-neutral
overlay functions.
* Remaining differences are a temporary failure to keep the OS 9,
Windows, and OS X Psychtoolboxes synchronized during the course of
development. The AssertOSX script is itself an example of this; it has
not been ported back to OS 9 and Windows Psychtoolboxes yet.
Psychtoolbox help displays clear divisions denoting
platform-specificity. In the case of not-yet-backported functions, these
divisions denote the actual currrent state of the Psychtoolbox, not its
intended design.
You can make your scripts and functions platform-neutral by testing the
OS version using MATLAB's "computer" command and conditionally executing
platform-specific calls.
OS9: ___________________________________________________________________
AssertOSX does not yet exist in OS 9.
WIN: ________________________________________________________________
AssertOSX does not yet exist in Windows.
_________________________________________________________________________
see also: AssertOpenGL, IsOSX, computer
Psychtoolbox/PsychOneliners/AssertOSX.m