Another update for beta. It contains:
- Fixes to color handling on systems that run on a color-depth of 24 bit
or 16 bit, instead of 32 bit: 16 and 24 bit modes don't fail anymore
when giving the "wrong" color argument in drawing commands for that
mode. This is important for Windows and Linux as they sometimes operate
at 24 bpp instead of the 32 bpp default on OS-X. 16 bit modes work, but
give a warning/recommendation to switch to 24/32 bpp, because alpha
blending won't work in that setting and color accuracy is reduced.
- Fixes to the Offscreen-Windows support, when using exotic pixeldepth
settings + color depth + color specs.
- The color argument in Screen('OpenWindow', screenid [color], ...)
should now work properly. Up to now it was completely ignored by PTB,
imposing the need to do a Screen('FillRect', win, color) to set the
background clear color.
Most interesting addition is the restoration of LoadClut functionality.
You can load a hardware CLUT in the old OS-9/WinPTB style either via the
M-File function LoadClut or via a call to Screen('LoadCLUT', ...).
Restrictions: LoadClut is just a convenience-wrapper around
Screen('LoadNormalizedGammaTable'), transforming your clut into the
format expected by that function and then calling that function. So its
just to keep old code working unmodified. Use LoadNormalizedGammaTable
in new code - it works with all DAC resolutions always giving highest
attainable precision on your gfx-card, whereas for LoadClut you need to
specify the precision of your DAC as a parameter. If you don't spec.
it,it will default to only 8-bit resolution (the only safe default)!
LoadClut is not suitable for color animation on M$-Windows due to some
braindamage in the M$-OS design, but PTB offers better facilities for
precisely timed high-perf animation and stimulus presentation for most
cases anyway...
LoadClut was coded solely based on the help-text of the old LoadClut, so
you need to test it, in case that the documented behaviour deviates from
the one actually implemented.
The use of Screen('SetCLUT') and Screen('Gamma') was always strongly
discouraged in the old Psychtoolboxes, replicating their behaviour would
be a nightmare, so as far as i'm concerned there won't be such an
implementation in the new PTB anytime in the future.
best,
-mario
- Fixes to color handling on systems that run on a color-depth of 24 bit
or 16 bit, instead of 32 bit: 16 and 24 bit modes don't fail anymore
when giving the "wrong" color argument in drawing commands for that
mode. This is important for Windows and Linux as they sometimes operate
at 24 bpp instead of the 32 bpp default on OS-X. 16 bit modes work, but
give a warning/recommendation to switch to 24/32 bpp, because alpha
blending won't work in that setting and color accuracy is reduced.
- Fixes to the Offscreen-Windows support, when using exotic pixeldepth
settings + color depth + color specs.
- The color argument in Screen('OpenWindow', screenid [color], ...)
should now work properly. Up to now it was completely ignored by PTB,
imposing the need to do a Screen('FillRect', win, color) to set the
background clear color.
Most interesting addition is the restoration of LoadClut functionality.
You can load a hardware CLUT in the old OS-9/WinPTB style either via the
M-File function LoadClut or via a call to Screen('LoadCLUT', ...).
Restrictions: LoadClut is just a convenience-wrapper around
Screen('LoadNormalizedGammaTable'), transforming your clut into the
format expected by that function and then calling that function. So its
just to keep old code working unmodified. Use LoadNormalizedGammaTable
in new code - it works with all DAC resolutions always giving highest
attainable precision on your gfx-card, whereas for LoadClut you need to
specify the precision of your DAC as a parameter. If you don't spec.
it,it will default to only 8-bit resolution (the only safe default)!
LoadClut is not suitable for color animation on M$-Windows due to some
braindamage in the M$-OS design, but PTB offers better facilities for
precisely timed high-perf animation and stimulus presentation for most
cases anyway...
LoadClut was coded solely based on the help-text of the old LoadClut, so
you need to test it, in case that the documented behaviour deviates from
the one actually implemented.
The use of Screen('SetCLUT') and Screen('Gamma') was always strongly
discouraged in the old Psychtoolboxes, replicating their behaviour would
be a nightmare, so as far as i'm concerned there won't be such an
implementation in the new PTB anytime in the future.
best,
-mario