Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
ce8ddc1
.gitignore: Ignore headers/libraries we never want in the repo itself.
kleinerm Nov 3, 2024
446a73f
Add LM base shared infrastructure and config, also for Linux no-op case.
kleinerm Nov 3, 2024
e87cc8b
AssertOpenGL(): Add diagnostics for licensing related problems.
kleinerm Nov 3, 2024
5122a4d
windowsmakeit64_twisty: Add license manager build setup for Octave on…
kleinerm Nov 3, 2024
f573cc2
osxmakeitoctave3: Add license manager build setup for Octave on macOS.
kleinerm Nov 3, 2024
e09db2d
Base: Add license manager core code.
Nov 4, 2024
0d91ac7
Fixup wrong file modes: Remove e(x)ecute bit from C source and M script.
kleinerm Nov 4, 2024
9096615
PsychStartup: Future proof for MS-Windows on ARM64.
kleinerm Nov 4, 2024
caf8e6e
windowsmakeit64_twisty: Build and compiler warning fixes for Octave.
kleinerm Nov 4, 2024
b7769c2
pnet: Fix a compiler warning on Octave for Windows.
kleinerm Nov 4, 2024
6022ba4
PsychVulkanCore/Linux: Skip AMDVLK > 64-modes crash workaround on fut…
kleinerm Nov 5, 2024
9c0f9bb
RenderDemo: Add missing BackupCluts to not annoy the user.
kleinerm Nov 5, 2024
221e7f8
linuxmakeitoctave3: Basic build support for ARM64 and 64-Bit Fedora.
kleinerm Nov 5, 2024
2c6e3fd
AssertOpenGL: Also allow setup for Wayland operation on 64-Bit ARM.
kleinerm Nov 5, 2024
e4dd3ba
LoadIdentityClut(): Skip / No-op under Wayland display servers.
kleinerm Nov 5, 2024
1419b65
PerceptualVBLSyncTest[FlipInfo][2]: Add workaround for gpu's withoug …
kleinerm Nov 5, 2024
f533bb1
FlipTimingWithRTBoxPhotoDiodeTest: Let audio card select its preferre…
kleinerm Nov 5, 2024
a66d474
FlipTimingWithRTBoxPhotoDiodeTest: Work around some Wayland vs. Video…
kleinerm Nov 5, 2024
77e8bf1
Screen/Wayland: Add some hacks to explore how to handle HiDPI/Retina …
kleinerm Nov 5, 2024
e3bbeaf
Linux build scripts: Fix build of PsychKinectCore on non-Debian/Ubuntu.
kleinerm Nov 5, 2024
60b340a
Linux build scripts: Some refinements.
kleinerm Nov 6, 2024
bf1a270
makeftglplugin: Add build support for the Drawtext plugin on Linux + …
kleinerm Nov 6, 2024
801eea0
Add a FTGL Drawtext renderer plugin for Linux on 64-Bit ARM.
kleinerm Nov 6, 2024
878ba44
linuxmakeit64: Fix compiler warnings when building moglcore.mexa64.
kleinerm Nov 6, 2024
0ad279b
MiniBox: Add machine architecture emulation lockout to non-LM mode.
kleinerm Nov 10, 2024
df9b573
PlayMoviesDemo: Cleanup web movies a bit.
kleinerm Nov 12, 2024
6df6cb3
PsychImaging: Some doc update wrt. Intel 10 bpc support on Ubuntu 22.…
kleinerm Nov 12, 2024
57b98c4
Screen: Fix PsychNormalizeTextureOrientation() for multi-window use.
kleinerm Nov 15, 2024
68f8911
Build: Remove unneeded build log and manual build script.
kleinerm Nov 18, 2024
4754dc0
DrawManuallyAntiAliasedTextDemo: Add workaround for Window AMD driver…
kleinerm Nov 20, 2024
8f4e34c
MultiWindowLockStepTest: Workaround for Windows OpenGL quirk.
kleinerm Nov 20, 2024
225cac4
makeftglplugin/OSX: Use lipo to build multi-arch drawtext plugin for …
kleinerm Mar 20, 2024
d75a0ae
Drawtext plugin for macOS rebuilt as universal dylib for Intel and ARM.
kleinerm Mar 20, 2024
e58d650
PsychVulkan: Avoid clutter iff PsychtoolboxKernelDriver unusable. Opt…
kleinerm Mar 25, 2024
019c073
OSX build scripts: Enablement for ARM.
kleinerm Mar 25, 2024
910df1c
libportaudio static link libraries for OSX: Build universal libs for …
kleinerm Mar 25, 2024
169f1ad
PsychVulkanCore: Adapt includes to allow use of GStreamer SDK in liea…
kleinerm Mar 25, 2024
6142ff7
Screen/OSX: Add Apple AGFX gpu detection logic, to properly find caps…
kleinerm Mar 25, 2024
c4477f1
Screen/OSX: Add special Apple Silicon identity passthrough code.
kleinerm Nov 23, 2024
79607c8
Create and add PsychLicenseHandling(): License management.
Nov 23, 2024
cf9787d
macOS build scripts: Bump minimum required macOS version to macOS 10.…
Nov 24, 2024
c36643a
Add example
DavidBrainard Nov 24, 2024
828c560
Update the mex files Psychtoolbox version to 3.0.20.
Nov 24, 2024
da4ce2b
All mex files for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm Nov 25, 2024
613627f
All mex files for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm Nov 25, 2024
5892556
managementtools: Add setup function for LexActivator SDK and runtime …
kleinerm Nov 25, 2024
9920861
CI release bundling scripts: Integrate LexActivator bundling.
kleinerm Nov 25, 2024
36ba218
Save correct version.
DavidBrainard Nov 25, 2024
a439248
All mex files for 64-Bit Octave/Matlab on macOS Intel rebuilt.
kleinerm Nov 26, 2024
ce12353
Screen-Wayland for 64-Bit Octave on Linux Intel rebuilt.
kleinerm Nov 26, 2024
7ba1e29
Screen/OSX: Make Intel iGPU pageflip checking on recent macOS more ro…
kleinerm Nov 28, 2024
a801c2f
AlphaRotateDemo.m: Small fixups for weirdly sized displays and format…
Nov 30, 2024
1e42e92
Screen: Autoenable Vulkan display backend on macOS ARM in various sit…
Nov 30, 2024
e5e7696
PsychScriptingGlueMatlab: Reset firstTime flag at module exit to fix …
kleinerm Dec 1, 2024
ae864ca
PsychVulkanCore/OSX: mexLock() the mex file permanently into memory o…
kleinerm Dec 1, 2024
910abb6
Screen/OSX: Do not auto-enable Vulkan backend for transparent or non-…
Dec 2, 2024
ccd5cd1
Screen/OSX: Disable use of most Cocoa autorelease pools.
Dec 2, 2024
a439d92
PsychHID/OSX: Fix conversion of HID event timestamps to GetSecs time.
Dec 2, 2024
cfc5075
Screen/OSX: Skip sync tests and calibrations on Apple Silicon gpu wit…
Dec 3, 2024
f9ff978
Screen: Reduce chattiness of some status/debug output in general.
Dec 3, 2024
d3778d4
OSX: Refine supported versions reporting for Apple Silicon macOS.
Dec 3, 2024
e1f5b88
Screen: Reshuffle startup output more.
Dec 4, 2024
4861b57
PsychVulkanCore: Reduce chattyness on macOS a teeny bit.
Dec 4, 2024
7e8afa8
Update License.txt files for PsychVulkanCore mex dependencies.
Dec 4, 2024
2d2a223
Screen/OSX: Suppress printing on non master-thread in GetHostingWindo…
Dec 4, 2024
b1f2648
PsychImaging: Small fix for Vulkan auto-enable logic on macOS ARM.
Dec 5, 2024
19217ff
BitsPlusIdentityClutTest(): Refine to handle Vulkan auto-enable on ma…
Dec 5, 2024
204987e
Screen: Some more fixups of status messages.
Dec 5, 2024
6e19e98
PsychImaging: On macOS + AGFX/DCP + Vulkan backend, set up for identi…
Dec 5, 2024
be40dba
Screen, PsychVulkanCore, PsychHID files for 64-Bit Octave/Matlab on m…
kleinerm Dec 6, 2024
6fd2696
PsychVulkanCore: Add debug printing for all known supported color spa…
Dec 6, 2024
b992bc1
PsychVulkanCore/OSX: Prefer triple-buffering swapchains on macOS.
Dec 6, 2024
805bac8
PsychImaging: Refine rules for Vulkan auto-enable logic on macOS ARM.
Dec 6, 2024
9561218
Screen/OSX: Allow RGB10A2 framebuffer setup for pixelSize=30 on ARM A…
Dec 6, 2024
7b6077d
PsychVulkan/OSX: Implement handling of Screen('Flip', ...) dontSync f…
Dec 6, 2024
6a3b6c2
Screen/OSX: Add movie playback support in pixelFormat 11, ie. WCG / HDR.
Dec 6, 2024
3853540
Screen, PsychVulkanCore mex for 64-Bit Octave/Matlab on macOS Intel r…
kleinerm Dec 6, 2024
8059029
PsychPython: Bump version for 3.0.20.0 release.
Dec 6, 2024
43e7cb0
PsychVulkanCore mex for 64-Bit Octave/Matlab on macOS Intel rebuilt.
kleinerm Dec 6, 2024
b2a0072
Merge branch 'master' of https://github.com/kleinerm/Psychtoolbox-3
kleinerm Dec 6, 2024
8912e3b
Initial build of all mex files for 64-Bit Octave/Matlab on macOS ARM …
Dec 6, 2024
6c1d180
Screen/GStreamer playback: Make movie playback pixelFormat 8 an alias…
Dec 7, 2024
7a9f8e6
Screen/GStreamer: Fix movie playback for pixelFormat 6.
Dec 8, 2024
cb6cc01
Screen/GStreamer/OSX: Add isnan() function to macOS pixelFormat 11 sh…
Dec 8, 2024
ecd30b7
Screen/OSX: Conditionally disable hardware accelerated video playback…
Dec 9, 2024
65a666e
Screen/GStreamer: Add another fallback to find movie frame sizes.
Dec 9, 2024
f075685
Screen/GStreamer playback: If video frame row stride is available, us…
Dec 9, 2024
3745700
Screen: Allow using specific stride for OpenGL texture creation.
Dec 9, 2024
27e2d31
Screen: Use new, clean pixelrow stride handling for movie playback.
Dec 9, 2024
17966f9
ImagingStereoDemo: Adapt movie writing to macOS on Apple Silicon.
Dec 10, 2024
5982e52
Screen/OSX: Fix GStreamer videorecording on Apple Silicon.
Dec 10, 2024
72792e7
Screen mex for 64-Bit Octave/Matlab on macOS ARM rebuilt.
Dec 10, 2024
43def42
Update 'help GStreamer' with latest recommended GStreamer versions.
Dec 10, 2024
34c11e2
Screen mex for 64-Bit Octave/Matlab on macOS Intel rebuilt.
kleinerm Dec 11, 2024
83808bb
help GStreamer: Update with latest findings from macOS for Intel Macs.
kleinerm Dec 11, 2024
79d5490
Screen mex for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm Dec 11, 2024
ed0d7db
Screen, PsychVulkanCore for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm Dec 11, 2024
639ec53
PsychVulkan/Windows: Disable fs exclusive on AMD Vulkan drivers again.
kleinerm Dec 11, 2024
873a717
PsychVulkanCore mex for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm Dec 12, 2024
856a7bb
Screen-Wayland for 64-Bit Octave on Linux Intel rebuilt.
kleinerm Dec 12, 2024
3b34018
All mex files for 32-Bit Octave 6.2 on RPi rebuilt.
kleinerm Dec 13, 2024
d8262f4
PsychVulkan[Core]/macOS: Tone down error messages a bit to be less sc…
kleinerm Dec 14, 2024
6105bc7
PsychVulkanCore mex for 64-Bit Octave/Matlab on macOS ARM rebuilt.
kleinerm Dec 14, 2024
22147b2
Screen('AsyncFlipBegin'): Block it on external display backend - Unsu…
kleinerm Dec 14, 2024
2486c7f
Screen mex for 64-Bit Octave/Matlab on macOS ARM rebuilt.
kleinerm Dec 14, 2024
96635dd
PsychLicenseHandling: Code formatting cosmetic, release date update.
kleinerm Dec 14, 2024
482a3a8
'help Psychtoolbox': Add info about new licensing model.
kleinerm Dec 14, 2024
66e2ef1
'help Psychtoolbox': Set release date and version for new 3.0.20 rele…
kleinerm Dec 14, 2024
57d9984
Screen mex for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm Dec 14, 2024
535acf1
Merge pull request #281 from Psychtoolbox-3/master
kleinerm Dec 14, 2024
4c459ee
Merge pull request #855 from Psychtoolbox-3/master
kleinerm Dec 14, 2024
87eada9
Merge pull request #282 from Psychtoolbox-3/beta
kleinerm Dec 14, 2024
7647174
IsARM(): Add query for true host system architecture for macOS.
kleinerm Jan 12, 2025
41ac96b
Switch PsychImaging/PsychVulkan et al. for IsARM(1) to deal with Rose…
kleinerm Jan 12, 2025
5292fc2
PsychtoolboxPostInstallRoutine(): Some random housekeeping cleanups.
kleinerm Jan 12, 2025
ca9dcc3
Audio demos/tests: Only limit latency adjustment to Linux + ARM.
kleinerm Jan 12, 2025
fc7a13d
Merge pull request #856 from Psychtoolbox-3/master
kleinerm Jan 12, 2025
e7b4267
Merge pull request #283 from Psychtoolbox-3/beta
kleinerm Jan 12, 2025
4da9262
PsychPython: Bump version for 3.0.20.2 release.
kleinerm Jan 12, 2025
d1aefe3
osxsetoctaverpath(): Update requirement from Octave 9.2 to Octave 9.3.
kleinerm Jan 13, 2025
8da3530
Datapixx mex for Octave/Matlab on macOS Apple Silicon rebuilt.
kleinerm Jan 13, 2025
5f7c28b
Merge branch 'master' of https://github.com/kleinerm/Psychtoolbox-3
kleinerm Jan 13, 2025
40b632e
PsychLicenseHandling(): Add auto download and install for LM client l…
kleinerm Jan 13, 2025
6423c66
downloadlexactivator(): Update to Cryptlex SDK/Runtime v3.31.2.
kleinerm Jan 31, 2025
d5f52cc
Codespell: Fix one typo, ignore another valid word, formatting.
kleinerm Jan 31, 2025
925bf6f
Screen/Windows: Fix per-pixel alpha for onscreen window transparency.
kleinerm Jan 31, 2025
6f7f636
downloadlexactivator(): Rehash Octave toolbox cache.
kleinerm Jan 31, 2025
4f9f5c4
Screen for 64-Bit Octave on MS-Windows rebuilt.
kleinerm Jan 31, 2025
5cd3e14
Windows: Move all Matlab mexw64 mex files into PsychBasic folder.
kleinerm Jan 31, 2025
ea4d2eb
PsychtoolboxPostInstallRoutine: Raise minimum macOS version check to …
kleinerm Jan 31, 2025
fd4ec59
More fixups for MatlabWindowsFilesR2007a removal, mostly build system.
kleinerm Jan 31, 2025
9fe2aa8
PsychtoolboxPostInstallRoutine: Prune pointless Octave path removals.
kleinerm Jan 31, 2025
c43de88
PsychtoolboxPostInstallRoutine(): Don't forget removal of Wayland path.
kleinerm Jan 31, 2025
78b3636
DrawFormattedText[2](): Improve formatting/layout of Unicode text.
kleinerm Jan 31, 2025
0f25f16
DrawFormattedText2: Convert line endings from CRLF to LF.
kleinerm Jan 31, 2025
e98d226
Merge pull request #858 from Psychtoolbox-3/master
kleinerm Feb 1, 2025
c1a1765
Merge pull request #284 from Psychtoolbox-3/beta
kleinerm Feb 1, 2025
6c5ff86
PsychPython: Bump version for 3.0.20.3 release.
kleinerm Feb 1, 2025
1d7b325
PsychLicenseHandling(): On macOS, also store true machine architecture.
kleinerm Feb 3, 2025
cec831b
Merge pull request #859 from Psychtoolbox-3/master
kleinerm Feb 3, 2025
08e7f61
Merge pull request #285 from Psychtoolbox-3/beta
kleinerm Feb 3, 2025
f9106a4
PsychPython: Bump version for 3.0.20.4 release.
kleinerm Feb 3, 2025
4938752
Screen for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm Feb 21, 2025
64cf70c
osxmakeitoctave3/osxsetoctaverpath: Upgrade for building against Octa…
kleinerm Feb 21, 2025
5a29142
Screen, WaitSecs, PsychVulkanCore mex files for 64-Bit Octave/Matlab …
kleinerm Feb 21, 2025
cfa1fad
Screen/Windows: Whenever GStreamer is used, disallow MMCSS scheduling.
kleinerm Feb 25, 2025
61bd63c
Screen for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm Feb 25, 2025
b67ae57
License handling: Add call to LM libs check and download+setup earlier.
kleinerm Feb 28, 2025
f7e375c
PsychOpenXRCore: Add XR_EXT_hand_tracking articulated hand tracking s…
kleinerm Apr 25, 2024
b6adcad
PsychOpenXRCore: Fix a missing NULL init of a pnext pointer.
kleinerm Mar 18, 2025
1d08298
PsychOpenXRCore mex for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm Mar 18, 2025
2021680
PsychOpenXRCore mex for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm Mar 20, 2025
52276ad
Merge pull request #862 from Psychtoolbox-3/master
kleinerm Mar 21, 2025
299d5d7
Merge pull request #286 from Psychtoolbox-3/beta
kleinerm Mar 21, 2025
88d528a
PsychPython: Bump version for 3.0.20.5 release.
kleinerm Mar 21, 2025
33cc8d1
LM: Increase meta data string length limit and maximum allowable grac…
kleinerm Mar 25, 2025
eb7a3f5
LM: Allow very long offline grace period, warn earlier about license/…
kleinerm Mar 27, 2025
ec8bbe0
LM/PsychLicenseHandling(): Add support for "air-gapped" offline (de)a…
kleinerm Mar 27, 2025
bdb7e22
LM/PsychLicenseHandling(): Add support for push message reception of …
kleinerm Mar 28, 2025
9d91dd9
Base: Bump Psychtoolbox version for mex files from 3.0.20 to 3.0.21 f…
kleinerm Mar 28, 2025
286f1d1
All mex files for 64-Bit Octave/Matlab on macOS ARM rebuilt.
kleinerm Mar 28, 2025
1094388
All mex files for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm Mar 28, 2025
c1589c2
All mex files for 64-Bit Octave/Matlab on macOS Intel rebuilt.
kleinerm Mar 28, 2025
4cb3257
All mex files for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm Mar 28, 2025
f99b154
PsychPython: Bump version for 3.0.21.0 release.
kleinerm Mar 28, 2025
c356837
"help Psychtoolbox": Update version to 3.0.21, release date to 31st M…
kleinerm Mar 30, 2025
135f6ef
Merge pull request #863 from Psychtoolbox-3/master
kleinerm Mar 31, 2025
7e0d168
Merge pull request #287 from Psychtoolbox-3/beta
kleinerm Mar 31, 2025
c626a23
PsychPython: Bump version for 3.0.21.1 release.
kleinerm Mar 31, 2025
13ddf80
LM: Break long push messages into multiple lines, wrapping at 80 char…
kleinerm Apr 28, 2025
b150b40
LM: Add auto-activation support for a node via config file.
kleinerm Apr 29, 2025
03f4235
LM: Add ability to roam outside the allowed network for a IP restrict…
kleinerm May 1, 2025
9e2237d
LM: Also support license activation via user credentials instead of l…
kleinerm May 1, 2025
f67d131
Add Datapixx.mexmaca64 by VPixx in Version 1.10.0 for 64-Bit Matlab m…
kleinerm May 6, 2025
7c5f08a
PsychVersioning: Bump version from 3.0.21 to 3.0.22 before mex rebuild.
kleinerm May 12, 2025
f4ab712
linuxmakeit64: Put PsychPlugins/Intel64 subfolder on -rpath as well.
kleinerm May 12, 2025
9cb0036
PsychLicenseHandling(): Add PsychLicenseHandling('SetupLicense').
kleinerm May 12, 2025
882fba9
PsychVulkanCore/Linux: Add workaround for latest AMDVLK v2023.Q2.2+ b…
kleinerm May 11, 2025
b0d6d9d
PsychPython: Bump version for 3.0.22.0 release.
kleinerm May 12, 2025
9cda728
Screen/Linux/X11: Add some refinements to RandR output config setting.
kleinerm May 12, 2025
b4596d8
Screen/Linux/X11: PsychSetNominalFramerate() - Refine mode tweaking.
kleinerm May 12, 2025
bfb1c44
PsychLicenseHandling: Remove redundant UpdateMetadata() setting code.
kleinerm May 13, 2025
96970e6
Screen/X11: Add support for AMD Freesync Video rapid video refresh sw…
kleinerm May 14, 2025
297cfbb
GetTouchDeviceIndices(): Filter out wrong devices when running under …
kleinerm May 16, 2025
78130b6
PR655parsespdstr(): Handle 0 values.
da5nsy Mar 11, 2025
ecf3a8a
Merge pull request #861 from da5nsy/patch-1
kleinerm May 18, 2025
6e3e107
Core,Screen,Vulkan,PsychPortAudio: Add support for teaching/education…
kleinerm May 19, 2025
fab4732
Add new DemoSplash.ppm images with education/teaching use only splash.
kleinerm May 19, 2025
4771156
Also add .xcf Gimp file variant of DemoSplash.
kleinerm May 19, 2025
4b34425
Screen: Fix compiler warning on Linux gcc.
kleinerm May 19, 2025
a20f33d
WaitSecs, PsychVulkanCore mex for 64-Bit Matlab on Linux rebuilt.
kleinerm May 19, 2025
d59ef76
All mex files for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm May 23, 2025
87e9c1c
All mex files for 64-Bit Octave/Matlab on macOS ARM rebuilt.
kleinerm May 23, 2025
fc5e402
All mex files for 64-Bit Octave/Matlab on macOS Intel rebuilt.
kleinerm May 23, 2025
7ae84fd
Add new VRRFixedRateSwitchingTest() test/demo for rapid FRR switching.
kleinerm May 24, 2025
950f611
All mex files for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm May 24, 2025
5614ae5
help GStreamer et al.: Update GStreamer requirements for Ubuntu 22.04…
kleinerm May 24, 2025
807d64f
PsychtoolboxPostInstallRoutine() et al.: Disable nag for paid support…
kleinerm May 24, 2025
b1d6761
PsychPaidSupportAndServices(): Improve handling of new-style authenti…
kleinerm May 24, 2025
fd344b5
PsychPaidSupportAndServices(): Remove all ad for paid support members…
kleinerm May 24, 2025
be899af
PsychOpenXR[Core]: Optimize performance of hand and finger tracking.
kleinerm May 26, 2025
24301ca
PsychOpenXRCore mex for 64-Bit Octave/Matlab on Linux Intel rebuilt.
kleinerm May 26, 2025
85923d7
PsychOpenXRCore mex for 64-Bit Octave/Matlab on MS-Windows rebuilt.
kleinerm May 26, 2025
42a09c5
PsychVRHMD/PsychOpenXR: Add docs for hand joints tracking api.
kleinerm May 27, 2025
193ad14
PsychOpenXR(): Remove some long dead workaround code.
kleinerm May 27, 2025
29cc7ba
help Psychtoolbox: Update for upcoming 3.0.22.0 release version and d…
kleinerm May 27, 2025
8ae879e
PTB-wikify-into-files.py: Fixup for use with Octave instead of Matlab.
kleinerm May 27, 2025
7b41619
Demos and configs: Update for 11 bpc / 16 bpc situation in 2025. Drop…
kleinerm May 27, 2025
4a8fa79
PsychImaging: Mention current 16 bpc framebuffer woes on AMD Navi + A…
kleinerm May 27, 2025
19b89bd
Merge branch 'kleinerm:master' into master
kleinerm May 27, 2025
a92eb81
Merge pull request #864 from Psychtoolbox-3/master
kleinerm May 27, 2025
9bc7af0
Merge pull request #288 from Psychtoolbox-3/beta
kleinerm May 28, 2025
826652c
Add MacBoynToLMS to invert LMSToMacBoyn.
DavidBrainard Jun 16, 2025
ae1ee13
GetChar()/CharAvail()/ListenChar()/FlushEvents(): Do no longer use th…
kleinerm Jun 22, 2025
3bac401
CedrusResponseBox(): Check for JVM instead of Java desktop, to accoun…
kleinerm Jun 22, 2025
d5a0deb
PsychJavaSwingCleanup(): Cleanup and update docs/comments for R2025a+…
kleinerm Jun 22, 2025
4c0430c
IsGUI(): Fix for Matlab R2025a and its non-Java GUI.
kleinerm Jun 22, 2025
09d910e
TwoStateQuery(): Cleanup, and reenable good questdlg() for Matlab R20…
kleinerm Jun 23, 2025
1014049
PlayMoviesWithoutGapDemo1.m: Refine for more robustness with short mo…
kleinerm Jun 23, 2025
93658d4
PsychLinuxConfiguration(): Adapt for Matlab R2025a and later.
kleinerm Jun 24, 2025
6468eb3
Screen/macOS: Remove support for Screen('ConfigureDisplay', 'AutoBrig…
kleinerm Jul 3, 2025
aca437f
Screen/macOS: Remove legacy IOKit fallback method for Screen('Configu…
kleinerm Jul 3, 2025
261287e
Screen/macOS: Implement new method for Screen('ConfigureDisplay', 'Br…
kleinerm Jul 3, 2025
c5831f8
Screen/macOS: Move GetHostingWindowPID() out of main-dispatch in Psyc…
kleinerm Jul 4, 2025
221bb4a
Screen/macOS: Rewrite restoration of keyboard input focus on macOS.
kleinerm Jul 7, 2025
ab4873e
Screen/OSX: Try to fix the "beep on keypress" with fullscreen windows…
kleinerm Jul 8, 2025
47ce151
Screen/OSX: Fix annoying beep for fullscreen windows also on Apple Si…
kleinerm Jul 8, 2025
43699f5
Screen mex for 64-Bit Octave/Matlab on macOS Apple Silicon rebuilt.
kleinerm Jul 8, 2025
e8098dc
Screen mex for 64-Bit Octave/Matlab on macOS Intel rebuilt.
kleinerm Jul 8, 2025
43c4af6
help GStreamer: Update link to MS-Windows MSVC GStreamer 1.22.
kleinerm Jul 9, 2025
936b2f9
Screen: Cleanup dc1394 video capture engine code to avoid compiler wa…
kleinerm Jul 9, 2025
5c5f99a
Screen/Linux/Wayland: Add initial support for wp_commit_timing protoc…
kleinerm Jul 9, 2025
041007e
PsychStartup(): Add fallback probe sequence for GStreamer 1.26+
kleinerm Jul 11, 2025
0bdbe3a
PsychJavaTrouble(): Skip static classpath setup on R2025a+.
kleinerm Jul 11, 2025
fc7a068
Merge branch 'kleinerm:master' into master
kleinerm Jul 11, 2025
2bd14c7
Merge pull request #865 from Psychtoolbox-3/master
kleinerm Jul 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
skip = .git,*.pdf,*.svg
# globalYg, globalY -- variables
# ans -- matlab talking to us
ignore-words-list = globalyg,ans,globaly
ignore-words-list = globalyg,ans,globaly,abl
6 changes: 6 additions & 0 deletions .github/workflows/buildZipMLTBX.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ jobs:
- name: checkout the repo
uses: actions/checkout@v4

- name: Setup octave
run: sudo apt update ; sudo apt install -y octave

- name: Integrate Cryptlex LexActivator runtime libraries into Psychtoolbox folder
run: octave --eval "warning('off', 'Octave:shadowed-function'); cd('Psychtoolbox'); pwd, addpath(genpath(pwd)); cd('../managementtools'); downloadlexactivator;"

- name: Zip the toolbox
run: zip -r '${{ github.ref_name }}.zip' Psychtoolbox

Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/buildZipMLTBXReleaseDriven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ jobs:
- name: checkout the repo
uses: actions/checkout@v4

- name: Setup octave
run: sudo apt update ; sudo apt install -y octave

- name: Integrate Cryptlex LexActivator runtime libraries into Psychtoolbox folder
run: octave --eval "warning('off', 'Octave:shadowed-function'); cd('Psychtoolbox'); pwd, addpath(genpath(pwd)); cd('../managementtools'); downloadlexactivator;"

- name: Zip the toolbox
run: zip -r '${{ github.ref_name }}.zip' Psychtoolbox

Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ PsychSourceGL/Cohorts/libDC1394/libdc1394-2.0.1/
Psychtoolbox/PsychInitialize/startup.m
Psychtoolbox/ptbflavorinfo.txt
Psychtoolbox/PsychBasic/Octave3LinuxFiles64/
Psychtoolbox/PsychBasic/PsychPlugins/*LexActivator*
*LexActivator*
LexActivator.h
LexStatusCodes.h
LexTypes.h
.fuse_*
liboctave.*
liboctinterp.*
Expand Down
2 changes: 1 addition & 1 deletion PsychPython/psychtoolbox/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '3.0.19.15'
__version__ = '3.0.22.0'
14 changes: 11 additions & 3 deletions PsychSourceGL/Cohorts/FTGLTextRenderer/makeftglplugin.m
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,22 @@
end

if IsOSX
cmd = 'g++ -g -DHAVE_OPENGL_DIR -I. -I/Library/Frameworks/GStreamer.framework/Versions/Current/include/ -I/Library/Frameworks/GStreamer.framework/Versions/Current/include/freetype2/ -L/Library/Frameworks/GStreamer.framework/Versions/Current/lib/ -framework OpenGL -l fontconfig -l freetype -dynamiclib -o libptbdrawtext_ftgl64.dylib libptbdrawtext_ftgl.cpp qstringqcharemulation.cpp OGLFT.cpp';
cmd = 'g++ -g -arch x86_64 -mmacosx-version-min=10.11 -DHAVE_OPENGL_DIR -DGL_SILENCE_DEPRECATION -I. -I/Library/Frameworks/GStreamer.framework/Versions/Current/include/ -I/Library/Frameworks/GStreamer.framework/Versions/Current/include/freetype2/ -L/Library/Frameworks/GStreamer.framework/Versions/Current/lib/ -framework OpenGL -l fontconfig -l freetype -dynamiclib -o intellibptbdrawtext_ftgl64.dylib libptbdrawtext_ftgl.cpp qstringqcharemulation.cpp OGLFT.cpp ; ';
cmd = [cmd 'g++ -g -arch arm64 -mmacosx-version-min=10.11 -DHAVE_OPENGL_DIR -DGL_SILENCE_DEPRECATION -I. -I/Library/Frameworks/GStreamer.framework/Versions/Current/include/ -I/Library/Frameworks/GStreamer.framework/Versions/Current/include/freetype2/ -L/Library/Frameworks/GStreamer.framework/Versions/Current/lib/ -framework OpenGL -l fontconfig -l freetype -dynamiclib -o armlibptbdrawtext_ftgl64.dylib libptbdrawtext_ftgl.cpp qstringqcharemulation.cpp OGLFT.cpp ; '];
cmd = [cmd 'lipo -create intellibptbdrawtext_ftgl64.dylib armlibptbdrawtext_ftgl64.dylib -output libptbdrawtext_ftgl64.dylib ; '];
cmd = [cmd 'rm -rf intellibptbdrawtext_ftgl64* armlibptbdrawtext_ftgl64*'];
name = 'libptbdrawtext_ftgl64.dylib';
end

if IsLinux
if Is64Bit
cmd='g++ -g -fPIC -I. -I/usr/include/ -I/usr/include/freetype2/ -L/usr/lib -pie -shared -Wl,-Bsymbolic -Wl,-Bsymbolic-functions -Wl,--version-script=linuxexportlist.txt -o libptbdrawtext_ftgl64.so.1 libptbdrawtext_ftgl.cpp qstringqcharemulation.cpp OGLFT.cpp -lGL -lGLU -lfontconfig -lfreetype';
name = 'libptbdrawtext_ftgl64.so.1';
if IsARM
cmd='g++ -g -fPIC -I. -I/usr/include/ -I/usr/include/freetype2/ -L/usr/lib -pie -shared -Wl,-Bsymbolic -Wl,-Bsymbolic-functions -Wl,--version-script=linuxexportlist.txt -o libptbdrawtext_ftgl_arm64.so.1 libptbdrawtext_ftgl.cpp qstringqcharemulation.cpp OGLFT.cpp -lGL -lGLU -lfontconfig -lfreetype';
name = 'libptbdrawtext_ftgl_arm64.so.1';
else
cmd='g++ -g -fPIC -I. -I/usr/include/ -I/usr/include/freetype2/ -L/usr/lib -pie -shared -Wl,-Bsymbolic -Wl,-Bsymbolic-functions -Wl,--version-script=linuxexportlist.txt -o libptbdrawtext_ftgl64.so.1 libptbdrawtext_ftgl.cpp qstringqcharemulation.cpp OGLFT.cpp -lGL -lGLU -lfontconfig -lfreetype';
name = 'libptbdrawtext_ftgl64.so.1';
end
else
if IsARM
cmd='g++ -g -fPIC -I. -I/usr/include/ -I/usr/include/freetype2/ -L/usr/lib -pie -shared -Wl,-Bsymbolic -Wl,-Bsymbolic-functions -Wl,--version-script=linuxexportlist.txt -o libptbdrawtext_ftgl_arm.so.1 libptbdrawtext_ftgl.cpp qstringqcharemulation.cpp OGLFT.cpp -lGL -lGLU -lfontconfig -lfreetype';
Expand Down
Binary file modified PsychSourceGL/Cohorts/PortAudio/libportaudio_osx_64.a
Binary file not shown.
Binary file not shown.
Binary file not shown.
15 changes: 15 additions & 0 deletions PsychSourceGL/License.txt
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,21 @@
%
% The Daq toolbox - MIT : Denis Pelli, Mickey P. Rowe, Mario Kleiner.
%
% The PsychVulkanCore driver mex file for our Vulkan display backend, which is
% itself licensed under the MIT license, builds against the Khronos Vulkan SDK C
% header files, which are licensed under MIT and Apache 2.0 license. See
% https://github.com/KhronosGroup/Vulkan-Headers
% It dynamically links against the Khronos Vulkan loader libraries on Linux and
% MS-Windows, which are licensed under the Apache 2.0 license. The loader libraries
% are part of the operating system on Linux, and part of / bundled with the
% graphics drivers on MS-Windows. The Vulkan loader then runtime loads and links
% and interfaces with graphics hardware specific system installed Vulkan ICDs.
% See https://github.com/KhronosGroup/Vulkan-Loader
% On macOS our driver is statically linked against the Khronos MoltenVK Vulkan
% ICD libMoltenVK.a, which implements Vulkan on top of macOS Metal frameworks.
% MoltenVK is also licensed under the Apache 2.0 license. See
% https://github.com/KhronosGroup/MoltenVK
%
% The PsychVRToolbox - MIT : Mario Kleiner. The following terms and licenses
% apply for the Oculus VR platform drivers contained in the PsychVRToolbox:
% [Note: Oculus VR's trademarks, e.g., Oculus, Oculus Rift, etc. are registered trademarks
Expand Down
76 changes: 76 additions & 0 deletions PsychSourceGL/Source/Common/Base/MiniBox.c
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,42 @@ psych_bool PsychIsInteger64InDouble(double *value)
return((*value >= -9.22337203685478e+18) && (*value <= 9.22337203685478e+18) && (floor(*value) == *value));
}

/* Compute proper timeout deadlines for end of a session and start of session degradation for use with educational and teaching licenses. */
void PsychComputeEducationLicenseTimeouts(psych_bool proFeaturesUsed, double demoProFeatureTimeout, double demoDegradeTimeout, double demoSessionTimeout,
double *demoSessionDegradeTime, double *demoSessionEndTime)
{
double demoTargetTimeout = 0;
double now = PsychGetAdjustedPrecisionTimerSeconds(NULL);

if (proFeaturesUsed && (demoProFeatureTimeout > 0)) {
// This window uses at least one pro feature, subject to demoProFeatureTimeout:
printf("PTB-WARNING: Your script requested an advanced feature. This teaching and education license only allows sessions\n");
printf("PTB-WARNING: with advanced features to last at most %f minutes. The session will terminate after that time.\n", demoProFeatureTimeout / 60.0);

demoTargetTimeout = now + demoProFeatureTimeout;
}
else if (demoSessionTimeout > 0) {
// This window does not use pro features, so it will only be subject to standard session timeout:
demoTargetTimeout = now + demoSessionTimeout;

printf("PTB-INFO: Sessions under this TEACHING AND EDUCATION ONLY LICENSE last at most %f minutes.\n", demoSessionTimeout / 60.0);
printf("PTB-INFO: After that time, the session will abort and you need to 'clear all' or even restart the application.\n");
}
else {
// No pro feature timeout or standard timeout applies:
demoTargetTimeout = 0;
}

// If no session end time set yet, or valid demoTargetTimeout is earlier than currently set one, then set it as demoTargetTimeout:
if (demoSessionEndTime && (demoTargetTimeout != 0) && ((*demoSessionEndTime == 0) || (*demoSessionEndTime > demoTargetTimeout))) {
*demoSessionEndTime = demoTargetTimeout;
}

// If no session start of degradation time set yet, set it as demoDegradeTimeout seconds into the future:
if (demoSessionDegradeTime && (demoDegradeTimeout > 0) && (*demoSessionDegradeTime == 0))
*demoSessionDegradeTime = now + demoDegradeTimeout;
}

void PsychInitMasterThreadId(void)
{
// Assign unique id of this thread (the Matlab/Octave/Python main interpreter thread)
Expand All @@ -197,3 +233,43 @@ psych_bool PsychIsMasterThread(void)
{
return(PsychIsCurrentThreadEqualToId(masterthread));
}

#ifdef PSYCH_NOLM

// Stub functions for mex files without license management:
// License checking and management disabled in this build. Just return "Success":
psych_bool PsychIsLicensed(const char* featureName, const char** featureValStr) {
(void) featureValStr;

// Compiled for Linux + 64-Bit Intel? Then only run on real Intel cpu's,
// not on emulated or virtualized Intel architecture on ARM et al.
#if (PSYCH_SYSTEM == PSYCH_LINUX) && defined(__x86_64__)
static psych_bool firstCheck = TRUE;
if (firstCheck && !access("/sys/firmware/devicetree", F_OK)) {
_exit(123);
}
else {
firstCheck = FALSE;
}
#endif

// Specific feature enabled request? The answer is always "No":
if (featureName)
return(FALSE);

// Licensed as a whole? A resounding "Yes":
return(TRUE);
}

void PsychFeatureUsed(const char* featureName)
{
(void) featureName;
}

PsychError PsychManageLicense(void)
{
PsychCopyOutDoubleArg(1, kPsychArgOptional, 0);
return(PsychError_none);
}

#endif
2 changes: 2 additions & 0 deletions PsychSourceGL/Source/Common/Base/MiniBox.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,7 @@ void PsychInitMasterThreadId(void);
psych_threadid PsychGetMasterThreadId(void);
psych_bool PsychIsMasterThread(void);

void PsychComputeEducationLicenseTimeouts(psych_bool proFeaturesUsed, double demoProFeatureTimeout, double demoDegradeTimeout, double demoSessionTimeout,
double *demoSessionDegradeTime, double *demoSessionEndTime);
// end include once
#endif
5 changes: 5 additions & 0 deletions PsychSourceGL/Source/Common/Base/Psych.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ extern "C" {
#include "PsychTimeGlue.h"
#include "PsychInstrument.h"

// Define prototypes needed for license management, regardless if used or not:
psych_bool PsychIsLicensed(const char* featureName, const char** featureValStr);
void PsychFeatureUsed(const char* featureName);
PsychError PsychManageLicense(void);

#ifndef PTBINSCRIPTINGGLUE
// This is provided by the project. We do not
// include it when building PsychScriptingGlue.cc
Expand Down
Loading