Skip to content

Commit 3291c8c

Browse files
committed
Update online docs for 3.0.22.1 release.
1 parent b6bc567 commit 3291c8c

11 files changed

+320
-171
lines changed

docs/AdditiveBlendingForLinearSuperpositionTutorial.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,24 @@ references and details.
4343
'Native10Bit' - Enables the native 10 bpc framebuffer support on all supported
4444
[GPUs](GPUs). All gpus from AMD since ~2006, Intel since around ~2010 and [NVidia](NVidia) since
4545
around ~2008 support this on Linux. This also works similar modern with [NVidia](NVidia)
46-
Quadro and AMD Fire professional gpu's ounder MS-Windows.
46+
Quadro and AMD Fire professional gpu's under MS-Windows. Also works on
47+
Apple Silicon Macs.
4748

4849
'Native11Bit' - Enables the native ~11 bpc framebuffer support on some ATI
4950
Radeon X1xxx / [HDxxx](HDxxx) GPU's with DCE-8 to DCE-12 display engine when used under
5051
Linux. These GPU's do support ~11 bits per color channel when this special mode
5152
is used (11 bits red, 11 bits green, 10 bits blue).
5253

5354
'Native16Bit' - Enables the native up to 16 bpc framebuffer support on AMD
54-
GPU's when used under Linux with Vulkan display backend. While this activates
55-
a 16 bpc framebuffer, the precision of the video output signal depends on the
56-
specific gpu, connection and display. As of 2023, the "Sea Islands" AMD gpu
57-
family and later can output at most 12 bpc precision to suitable displays over
58-
HDMI or [DisplayPort](DisplayPort).
55+
GPU's when used under Linux with Vulkan display backend. While this
56+
activates a 16 bpc framebuffer, the precision of the video output signal
57+
depends on the specific gpu, connection and display. As of 2023, the "Sea
58+
Islands" AMD gpu family and later can output at most 12 bpc precision to
59+
suitable displays over HDMI or [DisplayPort](DisplayPort). This works for gpu's up to
60+
and including the Vega gpu family. However, as of May 2025 it is unclear
61+
though if this support still works on current generation AMD "Navi" gpu
62+
family "RDNA" gpu's, or if some bugs in AMD's current Vulkan driver
63+
releases prevent this, and if that problem can be worked around.
5964

6065
'Native16BitFloat' - Enable native 16 bit floating point (~11 bit linear)
6166
framebuffer support on suitable operating systems and graphics cards.

docs/BitsPlusCSFDemo.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33

44
[BitsPlusCSFDemo](BitsPlusCSFDemo)([screenid=max] [, gamma = 2.2][, method=0][, charttype=0])
55

6-
This demo utilizes the Psychtoolbox imaging pipeline. Therefore it won't
7-
work on gfx-hardware older than ATI Radeon X1000 or [NVidia](NVidia) Geforce 6000.
8-
96
Demonstrates advantage of the 14 bpc Mono++ display mode, and similar high
107
bit depths display modes over the standard 8 bpc display mode of standard
118
graphics hardware. The demo displays either the Campbell-Robson CSF chart
@@ -18,8 +15,8 @@ modes:
1815
A 'method' of 0 outputs to a regular 8 bit framebuffer. This is the
1916
default, if no method argument is provided.
2017

21-
A 'method' of 1 tries to utilize the native 10 bpc framebuffers of recent
22-
AMD/[NVidia](NVidia) hardware.
18+
A 'method' of 1 tries to utilize the native 10 bpc framebuffers of modern
19+
hardware.
2320

2421
A 'method' of 2 uses a method known as "[PseudoGray](PseudoGray)" or "Bitstealing" for
2522
output.
@@ -31,11 +28,11 @@ attenuator device.
3128

3229
In 'method' == 5, the M16 display mode of the [VPixx](VPixx) - [DataPixx](DataPixx) box is used.
3330

34-
A 'method' of 6 tries to utilize the native ~11 bpc framebuffers of recent
35-
AMD hardware.
31+
A 'method' of 6 tries to utilize the native ~11 bpc framebuffers of
32+
modern AMD hardware with DCE display engines on Linux.
3633

37-
A 'method' of 7 tries to utilize the native up to 16 bpc framebuffers of recent
38-
AMD hardware.
34+
A 'method' of 7 tries to utilize the native up to 16 bpc framebuffers of
35+
modern AMD hardware.
3936

4037
A 'method' of 8 tries to utilize the native 16 bpc float framebuffers of recent
4138
hardware.

docs/GStreamer.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,11 @@ file:
8181
<http://gstreamer.freedesktop.org/download/\>
8282

8383
The following [[GStreamer](GStreamer)][(GStreamer)]((GStreamer)) runtime packages have been lightly tested for compatibility
84-
with Psychtoolbox 3.0.22.0, as of May 2025:
84+
with Psychtoolbox 3.0.22.1, as of July 2025:
8585

86-
For MS-Windows: 64-Bit Intel MSVC runtime v1.22.5 for use with 64-Bit Matlab/Octave.
86+
For MS-Windows: 64-Bit Intel MSVC runtime v1.22.12 for use with 64-Bit Matlab/Octave.
8787

88-
<https://gstreamer.freedesktop.org/data/pkg/windows/1.22.5/msvc/gstreamer-1.0-msvc-x86\_64-1.22.5.msi\>
88+
<https://gstreamer.freedesktop.org/data/pkg/windows/1.22.12/msvc/gstreamer-1.0-msvc-x86\_64-1.22.12.msi\>
8989

9090
You \*must\* install the MSVC variants of [[GStreamer](GStreamer)][(GStreamer)]((GStreamer)), not the [MinGW64](MinGW64) variants!
9191

docs/GetChar.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,14 @@ OS type and version, the type of desktop GUI in use, or if you use Matlab
3939
or Octave, and if you use Matlab with or without Java based GUI active.
4040
For portability it is therefore best to ignore all info returned beyond
4141
the character code. Composed characters, e.g., putting accents on top of
42-
letters, do not always work on all setups. In general, only Matlab with
43-
Java based desktop GUI enabled on Linux and macOS will get optimal
44-
international keyboard and composed character handling, at reduced timing
45-
precision, whereas anything on MS-Windows, and on Linux with KDE desktop,
46-
and on Octave, and Matlab in -nodesktop mode, will use an implementation
47-
based on [KbQueues](KbQueues), which has better timing and flexibility, but worse
48-
handling of international keyboards and composed characters at the moment.
42+
letters, do not always work on all setups. In general, only Matlab
43+
versions older than R2025a, which have a Java based desktop GUI, on Linux
44+
and macOS, will get optimal international keyboard and composed character
45+
handling, at reduced timing precision, whereas anything on MS-Windows,
46+
and on Linux with KDE desktop, and on Octave, and Matlab in -nodesktop
47+
mode, and Matlab R2025a or later, will use an implementation based on
48+
[KbQueues](KbQueues), which has better timing and flexibility, but worse handling of
49+
international keyboards and composed characters at the moment.
4950

5051
"when" is a struct. It (used to) return the time of the keypress, the "adb"
5152
address of the input device, and the state of all the modifier keys
@@ -99,7 +100,8 @@ are not.
99100
---\> If precise timing of the keypress is important, use [KbCheck](KbCheck) or
100101
[KbWait](KbWait) or [KbQueueXXX](KbQueueXXX) functions or [KbEventGet](KbEventGet) for consistent results!
101102

102-
### macOS or Linux (with other than KDE desktop GUI), with Matlab and Java enabled:
103+
macOS or Linux (with other than KDE desktop GUI), with Matlab older than
104+
R2025a, and Java GUI enabled:
103105

104106
JAVA PATH: The [GetChar](GetChar) implementation for Matlab on these systems is
105107
based on Java. Therefore, the Psychtoolbox subfolder [PsychJava](PsychJava) must be
@@ -124,7 +126,9 @@ your script. If Matlab returns to its command prompt without reenabling
124126
keyboard input via [ListenChar](ListenChar)(0) or [ListenChar](ListenChar)(1), Matlab will be left
125127
with a dead keyboard until you press the CTRL+C key combo. This silencing
126128
of clutter does currently not work in matlab -nojvm mode, or if you use
127-
GNU/Octave instead of Matlab.
129+
GNU/Octave instead of Matlab. It also does not work on Matlab R2025a in
130+
GUI mode anymore, as Mathworks switched to a [JavaScript](JavaScript) based GUI, with
131+
no known good and reliable way of suppressing keystrokes on that GUI.
128132

129133
OTHER "when" RETURN ARGUMENT FIELDS: Owing to differences in what
130134
accessory information the underlying operating systems provides about

docs/ListenChar.md

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ suppression of keyboard input to Matlab and unsuppressed mode.
3232

3333
Please note that the commands [ListenChar](ListenChar), [CharAvail](CharAvail) and [GetChar](GetChar) are
3434
subject to various constraints and limitations, depending on the
35-
operating system you use, if you use Matlab in Java or -nojvm mode, if
36-
you use Octave, if you have [Screen](Screen)() onscreen windows open or not, or if
37-
you use [KbQueueXXX](KbQueueXXX) functions in parallel or not. Therefore use of these
35+
operating system you use, if you use a Matlab with/without Java based GUI,
36+
or if you use Octave, if you have [Screen](Screen)() onscreen windows open or not, or
37+
if you use [KbQueueXXX](KbQueueXXX) functions in parallel or not. Therefore use of these
3838
functions can be troublesome for any but the most simple usages. Use of
3939
[KbCheck](KbCheck), [KbWait](KbWait), [KbStroke](KbStroke)/Press/[ReleaseWait](ReleaseWait) is often simpler if you are
4040
just after keyboard input. Use of [KbQueue](KbQueue) functions, e.g., [KbQueueCheck](KbQueueCheck),
@@ -45,13 +45,13 @@ more flexible and subject to less restrictions and gotchas than use of
4545

4646
### Some of the restrictions and caveats:
4747

48-
1. Works very well with Matlab and its Java based GUI enabled on Linux (on
49-
desktop GUI's other than KDE) and macOS, as well as on [WindowsXP](WindowsXP) and earlier
50-
versions of Windows.
48+
1. Works very well with Matlab releases older than R2025a and their Java
49+
based [GUIs](GUIs) enabled on Linux (but only on desktop GUI's other than KDE),
50+
and on macOS.
5151

52-
2. When used on Windows Vista or later (Vista, Windows-7, ..., Windows-10)
53-
with Matlab's Java GUI, you cannot use any [KbQueue](KbQueue) functions at the same
54-
time, ie., [KbQueueCreate](KbQueueCreate)/Start/Stop/Check/Wait as well as [KbWaitTrigger](KbWaitTrigger),
52+
2. When used on Microsoft Windows with old Matlab versions with Java GUI,
53+
you cannot use any [KbQueue](KbQueue) functions at the same time, ie.,
54+
[KbQueueCreate](KbQueueCreate)/Start/Stop/Check/Wait as well as [KbWaitTrigger](KbWaitTrigger),
5555
[KbEventFlush](KbEventFlush), [KbEventAvail](KbEventAvail), and [KbEventGet](KbEventGet) are off limits after any call
5656
to [ListenChar](ListenChar), [ListenChar](ListenChar)(1), [ListenChar](ListenChar)(2), [FlushEvents](FlushEvents), [CharAvail](CharAvail) or
5757
[GetChar](GetChar). You would need to call [ListenChar](ListenChar)(0) before you could call
@@ -61,21 +61,22 @@ to [ListenChar](ListenChar), [ListenChar](ListenChar)(1), [ListenChar](ListenCha
6161
use them again. Use of other devices, e.g., mouse or joystick, is not
6262
prohibited during use of [GetChar](GetChar) et al.
6363

64-
3. If you use Matlab in "matlab -nojvm" mode without its GUI, or if you
65-
use GNU/Octave instead of Matlab, the same restrictions as in 2. apply -
64+
3. If you use Matlab in "matlab -nojvm" or "matlab -nodesktop" mode without
65+
its GUI, or if you use a Matlab of version R2025a or later, or you use
66+
GNU/Octave instead of Matlab, the same restrictions as in 2. apply -
6667
no parallel use of the default keyboards [KbQueue](KbQueue). [KbQueues](KbQueues) can be used
67-
for other input devices and on Linux and OSX for keyboards other than the
68+
for other input devices and on Linux and macOS for keyboards other than the
6869
default keyboard.
6970

7071
The only feature that works in parallel with [KbQueues](KbQueues) on the default keyboard
7172
is the suppression of spilling of keystroke characters into the Matlab or
72-
Octave window during [ListenChar](ListenChar)(2) - at least on Linux and OSX. On
73-
Windows this can't be prevented at all in "matlab -nojvm" mode. However,
74-
if you switch to [ListenChar](ListenChar)(2) mode, you cannot break out of it by
75-
pressing CTRL+C on Linux if the keyboard queue that is in parallel use
76-
didn't get [KbQueueStart](KbQueueStart) called, ie. if it is stopped. On OSX with a
77-
stopped Keyboard queue, neither CTRL+C nor stopping a runaway script
78-
works.
73+
Octave window during [ListenChar](ListenChar)(2) - at least on Linux and macOS with old
74+
Matlab versions before R2025a and their Java based [GUIs](GUIs). On Windows this
75+
can't be prevented at all in "matlab -nojvm" mode. However, if you switch
76+
to [ListenChar](ListenChar)(2) mode, you cannot break out of it by pressing CTRL+C on
77+
Linux if the keyboard queue that is in parallel use didn't get
78+
[KbQueueStart](KbQueueStart) called, ie. if it is stopped. On macOS with a stopped
79+
Keyboard queue, neither CTRL+C nor stopping a runaway script works.
7980

8081
4. On Linux, as a exception, some [GetChar](GetChar), [CharAvail](CharAvail) functionality may
8182
still work in case 3. under certain conditions, e.g., if you don't use
@@ -95,7 +96,7 @@ Basically: Mixing [GetChar](GetChar) et al. and modern [KbQueue](KbQueue) functi
9596
not advisable, or if needed, great care must be taken to sidestep all the
9697
mentioned limitations. Also the [KbQueue](KbQueue) functions usually have better
9798
timing precision and allow to flexibly address multiple keyboards
98-
separately at least on Linux and OSX.
99+
separately at least on Linux and macOS.
99100

100101

101102
For further explanation see help for "[GetChar](GetChar)".

0 commit comments

Comments
 (0)