Opticka 2.16.1
Opticka is an experiment manager for behavioral research.
|
screenManager — manage opening and configuring the PTB screen More...
screenManager — manage opening and configuring the PTB screen
screenManager manages the (many!) PTB screen settings. You can set many properties of this class to control PTB screens, and use it to open and close the screen based on those properties. This class controls the transformation from degrees into pixels, and it can offset the screen co-ordinates (i.e. you can set a global X and Y position offset, to a screen position and then all other positions will be relative to this global screen center). By setting bitDepth
you can enable Display++, DataPixx, HDR and high bit-depth display modes. This class also manages movie recording of the screen buffer. Finally it wraps some generic drawing commands like grids, text, spots or other basic things that would be overkill for aa dedicated stimulus class.
Copyright ©2014-2024 Ian Max Andolina — released: LGPL3, see LICENCE.md
Public Member Functions | |
function | screenManager (in varargin) |
function | prepareScreen (in me) |
function | open (in me, in debug, in tL, in forceScreen) |
open a screen with object defined settings | |
function | switchChannel (in me, in channel) |
function | demo (in me) |
Small demo of screen opening, drawing, closing. | |
function | flip (in me, in varargin) |
Flip the screen. | |
function | asyncFlip (in me, in when, in varargin) |
Flip the screen asynchrounously. | |
function | asyncCheck (in me) |
Check async state? | |
function | asyncEnd (in me) |
end async state | |
function | forceWin (in me, in win) |
force this object to use an existing window handle | |
function | hideScreenFlash (in me) |
This is the trick Mario told us to "hide" the colour changes as PTB starts – we could use backgroundcolour here to be even better. | |
function | close (in me) |
close the screen when finished or on error | |
function | resetScreenGamma (in me) |
reset the gamma table | |
function set | font (in me, in varargin) |
function set | backgroundColour (in me, in value) |
function set | bitDepth (in me, in value) |
function set | srcMode (in me, in value) |
function set | dstMode (in me, in value) |
function set | distance (in me, in value) |
function set | pixelsPerCm (in me, in value) |
function get | ppd (in me) |
function set | windowed (in me, in value) |
function set | screenXOffset (in me, in value) |
Set method for screenXOffset. | |
function set | screenYOffset (in me, in value) |
Set method for screenYOffset. | |
function set | verbosityLevel (in me, in value) |
Set method for verbosityLevel. | |
function | finishDrawing (in me) |
Screen('DrawingFinished') | |
function | testWindowOpen (in me) |
Test if window is actully open. | |
function | flashScreen (in me, in interval) |
Flash the screen until keypress. | |
function | drawCross (in me, in size, in colour, in x, in y, in lineWidth, in showDisk, in alpha, in alpha2) |
draw fixation cross from Thaler L, Schütz AC, Goodale MA, & Gegenfurtner KR (2013) “What is the best fixation target? The effect of target shape on stability of fixational eye movements. Vision research 76, 31-42 http://doi.org/10.1016/j.visres.2012.10.012 | |
function | drawSimpleCross (in me, in size, in colour, in x, in y, in lineWidth) |
draw small cross | |
function | drawPupilCoreMarker (in me, in sz, in x, in y, in stop) |
draw pupil core calibration marker | |
function | drawSpot (in me, in size, in colour, in x, in y) |
draw small spot centered on the screen | |
function | drawTimedSpot (in me, in size, in colour, in time, in reset) |
draw timed small spot centered on the screen | |
function | drawGreenSpot (in me, in size) |
draw small spot centered on the screen | |
function | drawRedSpot (in me, in size) |
draw small spot centered on the screen | |
function | drawTextNow (in me, in text, in x, in y, in wrapat) |
draw text and flip immediately | |
function | drawText (in me, in text, in x, in y) |
draw text | |
function | drawTextWrapped (in me, in text, in wrapat, in x, in y) |
draw text with wrapping | |
function | drawLines (in me, in xy, in width, in colour) |
draw lines specified in degrees to pixels | |
function | drawBox (in me, in xy, in boxsize, in colour) |
draw box specified with x and y and size in degrees | |
function | drawBoxPx (in me, in xy, in boxsize, in colour) |
draw box specified with x and y and size in pixels | |
function | drawRect (in me, in rect, in colour) |
draw Rect specified in degrees | |
function | drawDots (in me, in xy, in size, in colour, in center) |
draw dots specified in degrees to pixel center coordinates | |
function | drawDotsDegs (in me, in xy, in size, in colour) |
draw dots specified in degrees | |
function | drawScreenCenter (in me) |
draw small spot centered on the screen | |
function | drawGrid (in me) |
draw a 5x5 1deg dot grid for visual debugging | |
function | drawPhotoDiodeSquare (in me, in colour) |
draw a square in top-right of screen to trigger photodiode | |
function | drawMousePosition (in me, in force) |
draw the mouse X and Y position on screen | |
function | drawBackground (in me, in background) |
Draw the background colour. | |
function | captureScreen (in me, in filename) |
Copies the window to a screenshot. | |
function | mousePosition (in me, in verbose) |
return mouse position in degrees | |
function | checkWindowValid (in me) |
Check window handle is valid. | |
function | prepareMovie (in me) |
prepare the recording of stimulus frames | |
function | addMovieFrame (in me) |
add current frame to recorded stimulus movie | |
function | finaliseMovie (in me) |
finish stimulus recording | |
function | playMovie (in me) |
play back the recorded stimulus | |
function | toDegrees (in me, in in, in axis) |
toDegrees - convert from pixels to degrees | |
function | toPixels (in me, in in, in axis) |
toPixels - convert from degrees to pixels | |
function | delete (in me) |
Delete method. | |
function | drawPhotoDiode (in me, in colour) |
Public Member Functions inherited from optickaCore | |
function | optickaCore (in varargin) |
Class constructor. | |
function get | fullName (in me) |
function | getALF (in me, in subject, in sessionPrefix, in lab, in create) |
function | findAttributes (in me, in attrName, in attrValue) |
function | findAttributesandType (in me, in attrName, in attrValue, in type) |
find properties of object with specific attributes, for example all properties whose GetAcccess attribute is public and type is logical. | |
function | findPropertyDefault (in me, in propName) |
function | clone (in me) |
Use this syntax to make a deep copy of the object, i.e. OBJ_OUT has the same field values, but will not behave as a handle-copy of me anymore. | |
function | checkSuperclasses (in List) |
function | editProperties (in me, in properties) |
method to modify a set of properties | |
function | setProp (in me, in property, in value) |
method to fast change a particular value. This is useful for use in anonymous functions, like in the state machine. | |
function | initialiseGlobals (in me, in doReset, in doOpen) |
function | initialiseSaveFile (in me) |
Initialise Save prefix. | |
function | checkPaths (in me) |
checks the paths are valid | |
Static Public Member Functions | |
static function | equidistantPoints (in n, in distance, in phase) |
static function | rectToPos (in rect) |
static function | posToRect (in pos) |
static function | setRefresh (in value) |
Set Refresh Screen('ConfigureDisplay', setting, screenNumber, outputId [, newwidth][, newheight][, newHz][, newX][, newY]);. | |
static function | setResolution (in w, in h, in f) |
Set Resolution and refresh Screen('ConfigureDisplay', setting, screenNumber, outputId [, newwidth][, newheight][, newHz][, newX][, newY]);. | |
static function | validateDisplayPlusPlus (in screen, in vulkan) |
Run validation for Display++. | |
static function | identifyScreens () |
Identify screens. | |
static function | bitsCheckOpen (in port, in keepOpen) |
check for display++, and keep open or close again | |
static function | bitsSwitchStatusScreen () |
Flip the screen. | |
Static Public Member Functions inherited from optickaCore | |
static function | makeArgs (in args) |
Converts cell args to structure array. | |
static function | addDefaults (in args, in defs) |
add default options to arg input | |
static function | hasKey (in in, in key) |
check if a struct / object has a propery / field | |
static function | getKeys (in device) |
PTB Get key presses, stops key bouncing. | |
Public Attributes | |
Property | screen |
Property | pixelsPerCm |
Set method for pixelsPerCm. | |
Property | distance |
Set method for distance. | |
Property | windowed |
Set method for windowed. | |
Property | stereoMode |
stereo mode | |
Property | debug |
Property | visualDebug |
Property | doubleBuffer |
Property | mirrorDisplay |
Property | bitDepth |
Set method for bitDepth. | |
Property | timestampingMode |
Property | antiAlias |
Property | backgroundColour |
background RGBA of display during stimulus presentation | |
Property | blend |
use OpenGL blending mode | |
Property | srcMode |
OpenGL blending source mode. | |
Property | dstMode |
OpenGL blending dst mode. | |
Property | screenXOffset |
Property | screenYOffset |
Property | gammaTable |
gamma correction info saved as a calibrateLuminance object | |
Property | movieSettings |
Property | screenVals |
Property | verbose |
verbose output? | |
Property | verbosityLevel |
level of PTB verbosity, set to 10 for full PTB logging | |
Property | useRetina |
Property | screenToHead |
Property | displayPPRefresh |
Property | hideFlash |
Property | font |
Constant Property | bitDepths |
possible bitDepth or display modes | |
Constant Property | blendModes |
possible OpenGL blend modes (src or dst) | |
Property | anaglyphLeft |
anaglyph channel gains | |
Property | anaglyphRight |
Property | colorMode |
The mode to use for color++ mode. | |
Property | disableSyncTests |
Property | syncVariance |
Property | overlayWin |
overlay window if mirrorDisplay was enabled | |
Property | specialFlags |
e.g. kPsychGUIWindow | |
Property | useVulkan |
try to enable vulkan? | |
Public Attributes inherited from optickaCore | |
Property | name |
object name | |
Property | comment |
comment | |
Property | verbose |
verbose logging, subclasses must assign this. This is normally logical true/false | |
Property | dateStamp |
clock() dateStamp set on construction | |
Property | uuid |
universal ID | |
Property | paths |
storage of various paths | |
Property | fullName |
The fullName is the object name combined with its uuid and class name. | |
Additional Inherited Members | |
Protected Member Functions inherited from optickaCore | |
function | parseArgs (in me, in args, in allowedProperties) |
Sets properties from a structure or normal arguments pairs, ignores invalid or non-allowed properties. | |
function | addArgs (in me, in args) |
function | setPaths (in me) |
Sets properties from a structure or normal arguments pairs, ignores invalid or non-allowed properties. | |
function | getFonts (in me) |
set paths for object | |
function | toStructure (in me) |
Converts properties to a structure. | |
function | getType (in me, in in) |
function | logOutput (in me, in in, in message, in override) |
Give a metaproperty return the likely property class. | |
function | salutation (in me, in varargin) |
Prints messages dependent on verbosity. | |
Protected Attributes inherited from optickaCore | |
Property | cloning |
are we cloning this from another object | |
Property | mversion |
Matlab version number, this is transient so it is not saved. | |
Property | sansFont |
sans font | |
Property | monoFont |
monoFont | |
Property | className |
class name | |
Property | savePrefix |
save prefix generated from clock time | |
Property | fullName_ |
cached full name | |
me screenManager::screenManager | ( | in | varargin | ) |
screenManager CONSTRUCTOR
varargin | can be simple name value pairs, a structure or cell array |
function screenManager::addMovieFrame | ( | in | me | ) |
add current frame to recorded stimulus movie
return
screenManager::asyncCheck | ( | in | me | ) |
Check async state?
screenManager::asyncEnd | ( | in | me | ) |
end async state
screenManager::asyncFlip | ( | in | me, |
in | when, | ||
in | varargin | ||
) |
Flip the screen asynchrounously.
when | - when to flip |
function set screenManager::backgroundColour | ( | in | me, |
in | value | ||
) |
function set screenManager::bitDepth | ( | in | me, |
in | value | ||
) |
|
static |
check for display++, and keep open or close again
port | optional serial USB port |
keepOpen | should we keep it open after check (default yes) |
|
static |
Flip the screen.
return
screenManager::captureScreen | ( | in | me, |
in | filename | ||
) |
Copies the window to a screenshot.
filename | optional filename |
function screenManager::checkWindowValid | ( | in | me | ) |
Check window handle is valid.
screenManager::close | ( | in | me | ) |
close the screen when finished or on error
return
function screenManager::delete | ( | in | me | ) |
Delete method.
screenManager::demo | ( | in | me | ) |
Small demo of screen opening, drawing, closing.
function set screenManager::distance | ( | in | me, |
in | value | ||
) |
screenManager::drawBackground | ( | in | me, |
in | background | ||
) |
Draw the background colour.
background | an optional colour |
function screenManager::drawBox | ( | in | me, |
in | xy, | ||
in | boxsize, | ||
in | colour | ||
) |
draw box specified with x and y and size in degrees
xy | X is row1 and Y is row2 in degrees |
size | in degrees, either 1 or 2 values |
colour | RGB[A], use columns for multiple colours |
function screenManager::drawBoxPx | ( | in | me, |
in | xy, | ||
in | boxsize, | ||
in | colour | ||
) |
draw box specified with x and y and size in pixels
xy | X is row1 and Y is row2 in px |
size | in px |
colour | RGB[A], use columns for multiple colours |
screenManager::drawCross | ( | in | me, |
in | size, | ||
in | colour, | ||
in | x, | ||
in | y, | ||
in | lineWidth, | ||
in | showDisk, | ||
in | alpha, | ||
in | alpha2 | ||
) |
draw fixation cross from Thaler L, Schütz AC, Goodale MA, & Gegenfurtner KR (2013) “What is the best fixation target? The effect of target shape on stability of fixational eye movements. Vision research 76, 31-42 http://doi.org/10.1016/j.visres.2012.10.012
size | size in degrees |
colour | of cross |
x | position in degrees relative to screen center |
y | position in degrees relative to screen center |
lineWidth | of lines in degrees (1px minimum) |
showDisk | show background disc? |
alpha | alpha for the lines |
alpha2 | alpha for the disc |
function screenManager::drawDots | ( | in | me, |
in | xy, | ||
in | size, | ||
in | colour, | ||
in | center | ||
) |
draw dots specified in degrees to pixel center coordinates
xy | x is row1 and y is row2 |
function screenManager::drawDotsDegs | ( | in | me, |
in | xy, | ||
in | size, | ||
in | colour | ||
) |
draw dots specified in degrees
xy | x is row1 and y is row2 |
function screenManager::drawGreenSpot | ( | in | me, |
in | size | ||
) |
draw small spot centered on the screen
return
function screenManager::drawGrid | ( | in | me | ) |
draw a 5x5 1deg dot grid for visual debugging
return
function screenManager::drawLines | ( | in | me, |
in | xy, | ||
in | width, | ||
in | colour | ||
) |
draw lines specified in degrees to pixels
xy | x is row1 and y is row2 |
function screenManager::drawMousePosition | ( | in | me, |
in | force | ||
) |
draw the mouse X and Y position on screen
force,override | the global X and Y position which is only updated when stimuli are animating and visible... |
function screenManager::drawPhotoDiode | ( | in | me, |
in | colour | ||
) |
function screenManager::drawPhotoDiodeSquare | ( | in | me, |
in | colour | ||
) |
draw a square in top-right of screen to trigger photodiode
colour | colour of square |
screenManager::drawPupilCoreMarker | ( | in | me, |
in | sz, | ||
in | x, | ||
in | y, | ||
in | stop | ||
) |
draw pupil core calibration marker
size | size in degrees |
x | position in degrees relative to screen center |
y | position in degrees relative to screen center |
is | it a stop marker? |
function screenManager::drawRect | ( | in | me, |
in | rect, | ||
in | colour | ||
) |
draw Rect specified in degrees
rect | [left, top, right, bottom] in degrees |
colour | RGB[A] |
function screenManager::drawRedSpot | ( | in | me, |
in | size | ||
) |
draw small spot centered on the screen
return
function screenManager::drawScreenCenter | ( | in | me | ) |
draw small spot centered on the screen
return
screenManager::drawSimpleCross | ( | in | me, |
in | size, | ||
in | colour, | ||
in | x, | ||
in | y, | ||
in | lineWidth | ||
) |
draw small cross
size | size in degrees |
colour | of cross |
x | position in degrees relative to screen center |
y | position in degrees relative to screen center |
lineWidth | of lines |
screenManager::drawSpot | ( | in | me, |
in | size, | ||
in | colour, | ||
in | x, | ||
in | y | ||
) |
draw small spot centered on the screen
radius | size in degrees |
colour | of spot |
x | position in degrees relative to screen center |
y | position in degrees relative to screen center |
function screenManager::drawText | ( | in | me, |
in | text, | ||
in | x, | ||
in | y | ||
) |
draw text
text | text to draw |
function screenManager::drawTextNow | ( | in | me, |
in | text, | ||
in | x, | ||
in | y, | ||
in | wrapat | ||
) |
draw text and flip immediately
text | text to draw |
screenManager::drawTextWrapped | ( | in | me, |
in | text, | ||
in | wrapat, | ||
in | x, | ||
in | y | ||
) |
draw text with wrapping
text | text to draw |
wrapat | character to wrap at |
function screenManager::drawTimedSpot | ( | in | me, |
in | size, | ||
in | colour, | ||
in | time, | ||
in | reset | ||
) |
draw timed small spot centered on the screen
function set screenManager::dstMode | ( | in | me, |
in | value | ||
) |
|
static |
function screenManager::finaliseMovie | ( | in | me | ) |
finish stimulus recording
return
screenManager::finishDrawing | ( | in | me | ) |
Screen('DrawingFinished')
screenManager::flashScreen | ( | in | me, |
in | interval | ||
) |
Flash the screen until keypress.
interval |
screenManager::flip | ( | in | me, |
in | varargin | ||
) |
Flip the screen.
[VBLTimestamp StimulusOnsetTime FlipTimestamp Missed Beampos] = Screen('Flip', me.win [, when] [, dontclear] [, dontsync] [, multiflip]);
varargin | - pass other options to screen flip |
function set screenManager::font | ( | in | me, |
in | varargin | ||
) |
screenManager::forceWin | ( | in | me, |
in | win | ||
) |
force this object to use an existing window handle
win | - the window handle to bind to |
screenManager::hideScreenFlash | ( | in | me | ) |
This is the trick Mario told us to "hide" the colour changes as PTB starts – we could use backgroundcolour here to be even better.
return
|
static |
Identify screens.
return
function screenManager::mousePosition | ( | in | me, |
in | verbose | ||
) |
return mouse position in degrees
screenManager::open | ( | in | me, |
in | debug, | ||
in | tL, | ||
in | forceScreen | ||
) |
open a screen with object defined settings
debug,whether | we show debug status, called from runExperiment |
tL | timeLog object to add timing info on screen construction |
forceScreen | force a particular screen number to open |
function set screenManager::pixelsPerCm | ( | in | me, |
in | value | ||
) |
function screenManager::playMovie | ( | in | me | ) |
play back the recorded stimulus
return
|
static |
function get screenManager::ppd | ( | in | me | ) |
function screenManager::prepareMovie | ( | in | me | ) |
prepare the recording of stimulus frames
return
screenManager::prepareScreen | ( | in | me | ) |
prepare the initial Screen values on the local machine
|
static |
n | number of points |
distance | distance from center |
return
screenManager::resetScreenGamma | ( | in | me | ) |
reset the gamma table
return
function set screenManager::screenXOffset | ( | in | me, |
in | value | ||
) |
Set method for screenXOffset.
function set screenManager::screenYOffset | ( | in | me, |
in | value | ||
) |
Set method for screenYOffset.
|
static |
Set Refresh Screen('ConfigureDisplay', setting, screenNumber, outputId [, newwidth][, newheight][, newHz][, newX][, newY]);.
|
static |
Set Resolution and refresh Screen('ConfigureDisplay', setting, screenNumber, outputId [, newwidth][, newheight][, newHz][, newX][, newY]);.
function set screenManager::srcMode | ( | in | me, |
in | value | ||
) |
function screenManager::switchChannel | ( | in | me, |
in | channel | ||
) |
screenManager::testWindowOpen | ( | in | me | ) |
Test if window is actully open.
function screenManager::toDegrees | ( | in | me, |
in | in, | ||
in | axis | ||
) |
toDegrees - convert from pixels to degrees
expects col1 = x, col2 = y for 'xy'
function screenManager::toPixels | ( | in | me, |
in | in, | ||
in | axis | ||
) |
toPixels - convert from degrees to pixels
|
static |
Run validation for Display++.
function set screenManager::verbosityLevel | ( | in | me, |
in | value | ||
) |
Set method for verbosityLevel.
function set screenManager::windowed | ( | in | me, |
in | value | ||
) |
Property screenManager::anaglyphLeft |
anaglyph channel gains
Property screenManager::anaglyphRight |
Property screenManager::antiAlias |
multisampling sent to the graphics card, try values 0[disabled], 4, 8 and 16 – useful for textures to minimise aliasing, but this does provide extra work for the GPU
set screenManager::backgroundColour |
background RGBA of display during stimulus presentation
Set method for backgroundColour.
set screenManager::bitDepth |
Set method for bitDepth.
float precision and bitDepth of framebuffer/output: '8bit' is best for old GPUs, but choose 'FloatingPoint32BitIfPossible' for newer GPUs. Native high bitdepths (assumes FloatingPoint32Bit internal processing): 'PseudoGray', 'HDR', 'Native10Bit', 'Native11Bit', 'Native16Bit', 'Native16BitFloat' Options to enable Display++ or VPixx modes: 'EnableBits++Bits++Output', 'EnableBits++Mono++Output', 'EnableBits++Mono++OutputWithOverlay' or 'EnableBits++Color++Output' 'EnableDataPixxM16Output', 'EnableDataPixxC48Output'
Constant Property screenManager::bitDepths |
possible bitDepth or display modes
Property screenManager::blend |
use OpenGL blending mode
Constant Property screenManager::blendModes |
possible OpenGL blend modes (src or dst)
Property screenManager::colorMode |
The mode to use for color++ mode.
Property screenManager::debug |
enable debug for poorer temporal fidelity but no sync testing etc.
Property screenManager::disableSyncTests |
for some development macOS and windows machines we have to disable sync tests, but we hide this as we should remember this is for development ONLY!
Property screenManager::displayPPRefresh |
force framerate for Display++ (120Hz or 100Hz, empty uses the default OS setup)
set screenManager::distance |
Set method for distance.
distance in centimeters of subject from Display rad2ang(2 * atan( size / (2 * distance) ) ) = Xdeg when size == 1cm & distance == 57.3cm; X == 1deg
value |
Property screenManager::doubleBuffer |
normally should be left at 1 (1 is added to this number so doublebuffering is enabled)
set screenManager::dstMode |
OpenGL blending dst mode.
Set method for GL blending dst.
value |
Property screenManager::font |
Details for drawing fonts, either sets defaults if window is closed or or updates values if window open...
Property screenManager::gammaTable |
gamma correction info saved as a calibrateLuminance object
Property screenManager::hideFlash |
hide the black flash as PTB tests its refresh timing, uses a gamma trick from Mario
Property screenManager::mirrorDisplay |
Mirror the content to a second window. In this case we need a screen 0 and screen 1 and the main output to screen 1. We will get an overlay window for this too we can draw to.
Property screenManager::movieSettings |
settings for movie output type 1 = video file, 2 = mat array, 3 = single pictures
Property screenManager::overlayWin |
overlay window if mirrorDisplay was enabled
set screenManager::pixelsPerCm |
Set method for pixelsPerCm.
Pixels Per Centimeter — used for calculating the number of pixels per visual degree (ppd). Use the calibrateSize.m function to measure this value accurately for each monitor you will use. Examples: MBP 1440x900 is 33.2x20.6cm so 44px/cm; Flexscan is 32px/cm @1280 26px/cm @ 1024; Display++ is 27px/cm @1920x1080
value |
Property screenManager::screen |
the display to use, 0 is the main display on macOS/Linux default value will be set to ‘max(Screen('Screens’))`
Property screenManager::screenToHead |
Screen To Head Mapping, a Nx3 vector: Screen('Preference', 'ScreenToHead', screen, head, crtc); Each N should be a different display
Property screenManager::screenVals |
populated on window open; useful screen info, initial gamma tables and the like
Property screenManager::screenXOffset |
shunt center by X degrees (coordinates are in degrees from centre of monitor)
Property screenManager::screenYOffset |
shunt center by Y degrees (coordinates are in degrees from centre of monitor)
Property screenManager::specialFlags |
e.g. kPsychGUIWindow
set screenManager::srcMode |
OpenGL blending source mode.
Set method for GL blending src.
Property screenManager::stereoMode |
stereo mode
Property screenManager::syncVariance |
The acceptable variance in flip timing tests performed when screen opens, set with Screen('Preference', 'SyncTestSettings', syncVariance) AMD cards under Ubuntu are very low variance, PTB default is 2e-04. DO NOT change this unless you know what you are doing.
Property screenManager::timestampingMode |
timestamping mode 1=beamposition,kernel fallback | 2=beamposition crossvalidate with kernel
Property screenManager::useRetina |
Use retina resolution natively (worse performance but double resolution)
Property screenManager::useVulkan |
try to enable vulkan?
Property screenManager::verbose |
verbose output?
Property screenManager::verbosityLevel |
level of PTB verbosity, set to 10 for full PTB logging
Property screenManager::visualDebug |
shows some info text and position grid during stimulus presentation if true
set screenManager::windowed |
Set method for windowed.
windowed: when FALSE use fullscreen; set to TRUE and it is windowed 800x600pixels or you can add in a window width and height i.e. [800 600] to specify windowed size. Remember that windowed presentation should never be used for real experimental presentation due to poor timing…
value |